Results for JavaScript - Part 2: Navigating forms
These results refer back to a quiz and test case from some weeks ago. . The test case is considerably more complex than the first JavaScript tests. Testing and compiling the results has been a yeoman’s job, one very nicely done 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 2: Navigating forms
For the most part, the results for navigating forms are better and more consistent between devices, than for navigating links. However there are still variations to be noted in devices according to mode, where the events that are reported will vary according to whether a user is reading, manually tabbing past, or fully interacting with a particular form element. Variations between different types of form elements are predictable, in most cases following the same patterns as the host browser.
As before, 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.
| 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 | ||
onsubmit |
submitting | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
onreset |
resetting | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
onchange |
changing | yes | >no | >no | yes | yes | yes | yes | yes | yes | yes | yes |
onselect |
reading | - | <yes* | <yes* | no | no | no | no | no | - | no | no |
| navigating | <yes* | <yes* | <yes* | <yes* | <yes* | no | <yes* | <yes* | <yes+ | <yes+ | <yes+ | |
| selecting | yes* | no | no | yes* | yes* | yes* | yes* | yes* | yes | yes! | yes | |
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! | <yes | <yes | no | <yes | <yes | yes | yes | <yes | |
| actuating | no | no | yes | >no | >no | 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! | <yes | <yes | no | <yes | <yes | yes | yes | <yes | |
| actuating | no | no | no | no | no | <yes+ | 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 | <yes | <yes | no | <yes | <yes | no | no | no | |
| actuating | no | no | no | >no | >no | yes | >no | >no | no | no | no | |
ondeactivate |
reading | - | >no | >no | no | no | no | no | no | - | no | no |
| navigating | yes | >no | >no | <yes | <yes | no | <yes | <yes | no | no | no | |
| actuating | no | no | no | no | no | <yes | no | no | no | no | no | |
onselectstart |
reading | - | <yes+ | <yes+ | no | no | no | no | no | - | no | no |
| navigating | <yes | <yes+ | <yes+ | <yes | <yes | no | yes | yes | no | no | no | |
| selecting | yes | no | no | yes | yes | yes | yes | yes | no | no | no | |
| actuating | no | no | >no+ | no | no | no | no | no | no | no | no | |
onkeydown |
navigating | yes | no | >no! | <yes | <yes | >no | <yes | <yes | yes | yes | <yes |
| typing | yes | no | >no! | yes | yes | yes | yes | yes | yes | yes | yes | |
| actuating | yes | no | no | <yes | <yes | >no | yes | yes | yes | <yes | yes | |
onkeyup |
navigating | yes | no | >no! | <yes | <yes | >no | <yes | <yes | yes | yes | <yes |
| typing | yes | no | >no! | yes | yes | yes | yes | yes | yes | yes | yes | |
| actuating | yes | no | no | <yes | <yes | >no | yes | yes | yes | <yes | yes | |
onkeypress |
navigating | no | no | no | no | no | no | no | no | yes | yes | yes |
| typing | yes | no | no | yes | yes | yes | yes | yes | yes | yes^ | yes | |
| actuating | yes | no | no | <yes | <yes | >no | yes | yes | yes | <yes^ | yes | |
| 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 are ambiguous or inconsistent, or the analysis is inconclusive]
| Event | Firefox 1 | Opera 8 | Safari | ||||
|---|---|---|---|---|---|---|---|
| Vanilla | Foxy | Vanilla | Vox | Vanilla | Voice | ||
onsubmit |
submitting | yes | yes | yes | yes | yes | yes |
onreset |
resetting | yes | yes | yes | yes | yes | yes |
onchange |
changing | yes | yes | yes | yes | yes | yes |
onselect |
reading | - | no | - | no | - | no |
| navigating | <yes+ | <yes+ | <yes+* | <yes+* | no | no | |
| selecting | yes | yes | yes* | yes* | no | no | |
onclick |
actuating | yes | yes | <yes | <yes | 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 | |
| selecting | no | no | no | no | no | no | |
| actuating | no | no | no | no | no | no | |
onkeydown |
navigating | yes | yes | yes | no | yes | <yes |
| typing | yes | yes | yes | yes | yes | yes | |
| actuating | yes | yes | yes | no | yes | <yes | |
onkeyup |
navigating | yes | yes | yes | no | yes | <yes |
| typing | yes | yes | yes | yes | yes | yes | |
| actuating | yes | yes | yes | no | yes | <yes | |
onkeypress |
navigating | yes | yes | yes | no | yes | <yes |
| typing | yes | yes | yes | yes | yes | yes | |
| actuating | yes | yes | yes | 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]
- …!
- [results are ambiguous or inconsistent, or the analysis is inconclusive]
There you have it. Do you see any recommendations you can make from seeing these results?