Seeking Best Accessibility Practices

Results for JavaScript - Part 1: Navigating links

These results refer back to a quiz and test case from several weeks ago. Our first test was in Quiz 4.1.4: JavaScript - part 1. Results from about 60 runs of the test case were compiled by James Edwards.

As you examine the results tables, be aware that most cells contain additional descriptive information within a title attribute. Clicking the cell will display the full text for that cell in a floating block. Here we go…

Explanation - Summary of Results for Part 1: Navigating links

Browser-based screenreaders are able to read and/or navigate through a page without moving the focus (the dotted-line around links that otherwise accompanies keyboard navigation). This is because they have their own, “virtual” cursor or highlight, which tracks where the user is in a document independently of the main cursor.

Many events are only reported on links if the action would set or transfer focus to an element, further varying by whether the action would: set focus onto an element when none other is currently focussed; or transfer focus to an element from a different focussed element (as opposed to a currently-focussed element receiving another event that retains it).

Actions that set or transfer focus vary between readers:

  • In Windows Eyes a link takes the focus when actuated,
    and also when navigating (like a vanilla browser)
  • In JAWS and Connect Outloud a link takes the focus when actuated,
    but not when navigating (unless the “Virtual PC Cursor” is OFF,
    an atypical setting which the manual disencourages for Internet Explorer)
  • In Hal a link takes the focus when actuated,
    but not when navigating
  • In Home Page Reader a link never takes the focus

The first table shows results for browser-based screenreaders.

The second table shows results for the speaking/voicing capabilities of Opera 8 with Voice, Safari with VoiceOver, and Firefox with the FoxyVoice extension. These devices are designed to provide supplementary speech output/control to users who are not (or not completely) blind, rather than the fully-fledged screenreading functionality needed by those who are. These devices mostly generate the same events as their vanilla browser, but with noted exceptions.

With all devices, there were no differences in the results when comparing static HTML links, with links that were generated in JavaScript. No differences in event-bubbling behavior were observed between readers and their vanilla browser. These results are for keyboard, voice and reader-specific browsing mechanisms only; data for using a device while navigating with the mouse are not included.

Results for browser-based screenreaders
Event Internet Explorer 6 Firefox 1
Vanilla HPR 3.02 HPR 3.04 JAWS Connect Outloud Hal 6.5 WE 5.0 WE 5.5b Vanilla JAWS WE 5.5b
onclick actuating yes yes* yes* yes yes <yes <yes <yes yes yes yes
custom - no yes+* no no no no no - no no
ondblclick custom - no yes+* no no no no no - no no
onfocus reading - no no no no no no no - no no?
navigating yes no no >no no no yes yes yes yes yes
actuating no no* yes* <yes <yes <yes >no >no no no >no?
custom - no yes+* no no no no no - no no
onblur reading - no no no no no no no - no no?
navigating yes no no >no no no yes yes yes yes yes
actuating no no no >no <yes >no no no no no no
custom - no yes+* no no no no no - no no
onactivate reading - no no no no no no no - no no
navigating yes no no >no no no yes yes no no no
actuating no no no <yes <yes <yes >no >no no no no
ondeactivate reading - no no no no no no no - no no
navigating yes no no >no no no yes yes no no no
actuating no no no <yes <yes <yes >no >no no no no
onselectstart reading - yes+ yes+ no no no no no - no no
navigating no yes+ yes+ no no no no no no no no
actuating no no* no* no no no no no no no no
onkeydown navigating yes no no >no no no >no >no yes yes >no?
actuating yes no no >no >no >no >no >no yes >no >no
onkeyup navigating yes no no >no no no >no >no yes yes >no?
actuating yes no no >no >no >no >no >no yes >no >no
onkeypress navigating no no no no no no no no yes yes no
actuating yes no no >no >no >no >no >no yes >no^ >no
custom - no yes+* no no no no no - no no
onmouseover navigating no no no no no no no no no no no
actuating no no yes no no <yes no no no no no
custom - no yes* <yes+ no no no no - <yes+ no
onmousemove navigating no no no no no no no no no no no
actuating no no no no no <yes+ no no no no no
custom - no yes* >no no no no no - >no no
onmousedown navigating no no no no no no no no no no no
actuating no no yes no no <yes no no no no no
custom - no >no no no no no no - no no
onmouseup navigating no no no no no no no no no no no
actuating no no yes no no <yes no no no no no
custom - no >no no no no no no - no no
onmouseout navigating no no no no no no no no no no no
actuating no no no no no <yes no no no no no
custom - no yes* >no no no no no - >no no
yes
The event is reported
yes*
The event is reported with additional data
yes^
The event may be reported without expected additional data
yes+
The event may be reported more than once, or generate or be generated by other events at the same time
<yes
The event is typically reported, but not in particular circumstances
>no
The event is not typically reported, but is in particular circumstances
no

The event is not reported

-
[this device/mode combination doesn’t exist]
…?
[wholly or partly inferred from other data]

Results for speaking/voicing browsers
Event Firefox 1 Opera 8 Safari
Vanilla Foxy Vanilla Vox Vanilla Voice
onclick actuating yes yes yes no yes yes
custom - - - - - -
ondblclick custom - - - - - -
onfocus reading - no - no - yes
navigating yes yes yes+ yes+ yes yes
actuating no no no no no no
custom - - - - - -
onblur reading - no - no - yes
navigating yes yes yes+ yes yes yes
actuating no no no no no no
custom - - - - - -
onactivate reading - no - no - no
navigating no no no no no no
actuating no no no no no no
ondeactivate reading - no - no - no
navigating no no no no no no
actuating no no no no no no
onselectstart reading - no - no - no
navigating no no no* no* no no
actuating no no no* no no no
onkeydown navigating yes yes <yes no yes <yes
actuating yes yes yes no yes <yes
onkeyup navigating yes yes <yes no yes <yes
actuating yes yes yes no yes <yes
onkeypress navigating yes yes <yes no yes <yes
actuating yes yes >no no yes <yes
custom - - - - - -
onmouseover navigating no no >no >no no no
actuating no no no no no no
custom - - - - - -
onmousemove navigating no no >no >no no no
actuating no no no no no no
custom - - - - - -
onmousedown navigating no no no no no no
actuating no no no no no no
custom - - - - - -
onmouseup navigating no no no no no no
actuating no no no no no no
custom - - - - - -
onmouseout navigating no no >no >no no no
actuating no no no no no no
custom - - - - - -
yes
The event is reported
yes*
The event is reported with additional data
yes^

The event may be reported without expected additional data

yes+
The event may be reported more than once, or generate or be generated by other events at the same time
<yes
The event is typically reported, but not in particular circumstances
>no
The event is not typically reported, but is in particular circumstances
no
The event is not reported
-
[this device/mode combination doesn’t exist]
…?
[wholly or partly inferred from other data]

There you have it. Do you see any recommendations you can make from seeing these results?



Bad Behavior has blocked 25567 access attempts in the last 7 days.