[Building Sakai] Inaccessible Keyboard Navigation Issue - select elements with onchange="blur()"

Matthew Jones jonespm at umich.edu
Mon Nov 1 15:02:34 PDT 2010


Merged SAK-18958 today on advice of Zhen and Gonzalo. Should have time to go
through the other ones you've submitted patches that are maintenance team
projects under SAK-18958 tomorrow.

-Matthew

On Mon, Oct 18, 2010 at 7:42 PM, Richwine, Brian L <brichwin at indiana.edu>wrote:

> Hi,
>
> I am working on a significant accessibility issue where forms containing
> select elements with calls to blur() are not easily navigable by keyboard
> only users. I want to double check the solution we are proposing for this
> issue, because I lack the historical knowledge of Sakai's previous
> development that is needed to understand fully why calls to HTML element's
> blur() method were added to Sakai's code.
>
> The Issue:
> When using Internet Explorer and changing the setting of a select element
> containing onchange="blur()", visual focus indication disappears, and (in
> IE) the user must start navigating through the page's controls from the
> beginning instead of the next control in the natural tab order. This is
> because when the select element's value is changed, the onchange event
> handler calls blur() on the element and tells it to give up focus. In
> Internet Explorer, apparently that means the keyboard focus resets and
> starts from the beginning of the tab order. This is very frustrating to
> keyboard users who must then tab through the controls over and over again
> simply to complete a form. This is also very confusing, especially to
> low-vision, blind, and cognitively impaired users who (reasonably) expect to
> be able to tab to the next control. Unsighted users will especially find
> this frustrating, as they do not have the benefit of observing the visual
> indication of focus to find out where they are
>  on the page.
>
> This issue is perhaps best explained by example, so I've created a short
> (4.5 minute) video demonstration:
> http://screencast.com/t/Kzwg3ZcS03c
>
> I've been told two different reasons for the calls to blur() being used in
> Sakai:
>  1.)  Netscape Navigator 4 had a bug that prevented changes to form
> controls from taking place on form submission unless modified controls had
> lost their focus. So, onchange event handlers needed to drop the select
> element's focus before submitting the form.
>  2.) Blur() was being used to prevent the mouse wheel from scrolling a
> select element's value after a mouse was used to change it.
>
> As for reason number one, I'm assuming Netscape Navigator 4 is no longer
> being supported by Sakai.
>
> I've tested IE 7, IE 8, IE 9, Opera 10, Chrome, Firefox 3, and Firefox 3.6
> on Windows; and Safari and Firefox on Mac OS/X and found that turning the
> mouse wheel no longer changes a select element's value after it has been
> set. So, suggested reason number two no longer seems to be a problem.
>
> To my knowledge, using blur() in onchange or onclick events is not a common
> programming practice. My suggestion is to simply remove it from the onchange
> event handlers it appears in. Gonzalo has created an umbrella JIRA issue for
> this: http://jira.sakaiproject.org/browse/SAK-18958. I've created patches
> (see the sub tasks) which remove calls to blur() where it appears in any
> onchange and onclick attribute.
>
> Before I move toward getting these patches applied for verification, I
> wanted to see if anyone in the Sakai community knows any reason the calls to
> blur() should remain.
>
> Thanks,
>  Brian Richwine
>
>
> Brian Richwine
> Sakai Accessibility Working Group Lead
> Adaptive Technology and Accessibility Centers
> Indiana University - Bloomington/Indianapolis
> http://iuadapts.indiana.edu
> (812) 856-4112
>
>
>
>
>
>
> -----Original Message-----
> From: sakai-dev-bounces at collab.sakaiproject.org [mailto:
> sakai-dev-bounces at collab.sakaiproject.org] On Behalf Of Patrick Coleman
> Sent: Monday, October 18, 2010 10:31 AM
> To: sakai-dev at collab.sakaiproject.org
> Subject: Re: [Building Sakai] "mvn clean install" warnings
>
>
> I got no replies regarding the warnings I'm getting? Download and went
> through install instructions again but still getting them.
>
> Anyone have any ideas?
>
> Thanks.
>
> Pat.
>
>
> Patrick Coleman wrote:
> >
> >
> > When I run mvn clean install it finishes with "Success" but in the
> > output I get the following errors.
> >
> > Can I ignore them?
> >
> > I did try and run
> >
> >  mvn clean install sakai:deploy -Dmaven.tomcat.home=/usr/local/tomcat
> >
> > But got many errors like the second set below.
> >
> > Thanks.
> >
> > Pat.
> >
> > [WARNING]
> > [WARNING] Some problems were encountered while building the effective
> > model for org.sakaiproject:master:pom:2.7.1 [WARNING]
> >
> 'dependencyManagement.dependencies.dependency.(groupId:artifactId:type:classifier)'
> > must be unique: javax.jcr:jcr:jar -> version 1.0 vs
> > ${sakai.jcr.version} @ line 506, column 25 [WARNING]
> > 'build.plugins.plugin.version' for
> > org.apache.maven.plugins:maven-compiler-plugin is missing. @ line
> > 1044, column 21 [WARNING] The expression ${artifactId} is deprecated.
> > Please use ${project.artifactId} instead.
> > [WARNING] The expression ${version} is deprecated. Please use
> > ${project.version} instead.
> > [WARNING] 'reporting.plugins.plugin.version' for
> > org.apache.maven.plugins:maven-javadoc-plugin is missing. @ line 921,
> > column 21 [WARNING] 'reporting.plugins.plugin.version' for
> > org.apache.maven.plugins:maven-surefire-plugin is missing. @ line 938,
> > column 21 [WARNING] 'reporting.plugins.plugin.version' for
> > org.apache.maven.plugins:maven-pmd-plugin is missing. @ line 949,
> > column
> > 21
> > [WARNING] 'reporting.plugins.plugin.version' for
> > org.codehaus.mojo:changelog-maven-plugin is missing. @ line 972,
> > column 21 [WARNING] 'reporting.plugins.plugin.version' for
> > org.codehaus.mojo:taglist-maven-plugin is missing. @ line 982, column
> > 21 [WARNING] 'reporting.plugins.plugin.version' for
> > org.codehaus.mojo:jdepend-maven-plugin is missing. @ line 994, column
> > 21 [WARNING] 'reporting.plugins.plugin.version' for
> > org.codehaus.mojo:jxr-maven-plugin is missing. @ line 999, column 21
> > [WARNING] 'reporting.plugins.plugin.version' for
> > net.sourceforge.maven-taglib:maven-taglib-plugin is missing. @ line
> > 1009, column 21 [WARNING] 'distributionManagement.repository.id' must
> > not be 'local', this identifier is reserved for the local repository,
> > using it for other repositories will corrupt your repository metadata.
> > @ line 117, column 17 [WARNING] [WARNING] It is highly recommended to
> > fix these problems because they threaten the stability of your build.
> > [WARNING]
> > [WARNING] For this reason, future Maven versions might no longer
> > support building such malformed projects.
> > [WARNING]
> >
> >
> >
> >
> >
> > [INFO] Scanning for projects...
> > [ERROR] The build could not read 8 projects -> [Help 1]
> > [ERROR]
> > [ERROR]   The project
> > org.sakaiproject.content:content-providers-impl:2.7.1
> > (/Volumes/Data1/SakaiUpgrade2.1.1/sakai-src-2.7.1/content/content-impl
> > -providers/impl/pom.xml)
> > has 1 error
> > [ERROR]     Non-resolvable parent POM: Failure to find
> > org.sakaiproject.content:content:pom:2.7.1 in
> > http://repo1.maven.org/maven2 was cached in the local repository,
> > resolution will not be reattempted until the update interval of
> > central has elapsed or updates are forced and 'parent.relativePath'
> > points at wrong local POM @ line 4, column 11 -> [Help 2]
> > [ERROR]
> >
> >
> >
>
> --
> View this message in context:
> http://old.nabble.com/%22mvn-clean-install%22-warnings-tp29946354p29991050.html
> Sent from the Sakai - Development mailing list archive at Nabble.com.
>
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>
> TO UNSUBSCRIBE: send email to
> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
> "unsubscribe"
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>
> TO UNSUBSCRIBE: send email to
> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
> "unsubscribe"
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20101101/3c85020c/attachment.html 


More information about the sakai-dev mailing list