Accessibility / i18n: Samigo frame does not set default human language

Description

The default human language doesn't appear to be set in any of the Samigo document contexts.

This is critical especially for international students who use screen-reading software. Their O/S, browser, etc. may default to a different language and the adaptive technology will mispronounce all of the words (for instance, trying to read english text as if it were spanish, french, etc.). This would be a great source of user annoyance which is especially unwelcome while taking an assessment.

Most Sakai tools declare the default human language in the <html> tag. For example, the portal does like so:
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

This issue is a failure to meet WCAG 2.0 SC 3.1.1 Language of Page: The default human language of each Web page can be programmatically determined. (Level A)
WCAG 2.0 SC 3.1.1 is described here: http://www.w3.org/TR/UNDERSTANDING-WCAG20/meaning-doc-lang-id.html

Resource: Internationalization Best Practices: Specifying Language in XHTML & HTML Content - http://www.w3.org/TR/i18n-html-tech-lang/

Activity

Show:

iupui1 December 10, 2012 at 5:37 AM

Created umbrella ticket for hard coded issue. I will add sub-tasks as I can. Please help if you see one that is missed.

https://jira.sakaiproject.org/browse/SAK-23005

iupui1 December 6, 2012 at 11:58 AM

verified on sakai/trunk on Oracle - Built: 12/06/12 12:00 - Sakai Revision: 117334 (Kernel 1.4.0-SNAPSHOT)- Server sakai-nightly.uits.iupui.edu

Steve Swinsburg November 16, 2012 at 8:04 PM

It would be the same via HTML or Javascript, either one would need access to the Locale, which comes from the Sakai server. I think this all should go into a separate ticket so its not lost, and we can track the appropriate fixes for all tools.

Brian Richwine November 16, 2012 at 7:10 AM

If the lang attribute is being set in a template, and is hard to update. Perhaps it would be best set using JavaScript. I'd set it as soon as possible. The following seems to work in IE and FF in my limited tests:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Setting lang attribute on the HTML element using JS Test</title>
</head>
<body class="portalBody">
<script type="text/javascript">
document.body.parentNode.setAttribute('lang','es');
document.body.parentNode.setAttribute('xml:lang','es');
</script>
<h1>Setting lang attribute on the html attribute using js</h1>
</body>
</html>

Brian Richwine November 16, 2012 at 6:45 AM

It seems that there is also a Content-Language meta element coming in from includeStandardHead.vm that sets the language. I'm not sure if this is referenced by adaptive technologies...

I found this when I viewed the source:

<!-- START from includeStandardHead.vm -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Language" content="en_US" />

Fixed

Details

Priority

Affects versions

Fix versions

Components

Assignee

Reporter

Labels

Environment

2.9.0-b05

Created May 3, 2012 at 8:15 AM
Updated April 17, 2018 at 8:31 AM
Resolved November 5, 2012 at 4:37 AM