-
Notifications
You must be signed in to change notification settings - Fork 21
Support Matrix a11y tool
Our test results for the accessibility extensions vary significantly, depending on the combinations of browser, OS, and screenreaders. While we cannot claim universal support for any combination the extensions should provide good results when only 1 or 2 out of 3 requirements are fixed.
Support is focused on the currently maintained browsers, i.e.,
- IE 10+ and Edge
- Chrome
- Safari
- Firefox
Except for IE, older versions should work as well. Due to severe browser bugs, we cannot support IE 9 and below.
Basic voicing (via aria-labels) should work using Apple VoiceOver and Android Talkback. The explorer tool does not yet support sub-expression exploration on mobile browsers / touchscreen interfaces.
We have tested the following screenreaders with the supported browsers on various OS versions.
- NVDA 2016.2 (Win XP, 7, 8, 10)
- JAWS 17 (Win 7, 8, 10)
- WindowEyes 9.4 (Win 7, 8, 10)
- ChromeVox 50 (any)
- VoiceOver (OS 10.10, iOS 9.1)
- TalkBack (Android Marshmallow)
- [ORCA (3.18, Ubuntu 16.04)]
- [Dolphin Screenreader (Windows 10)]
Not all combinations of screenreader and browser are usable but for each one (except ORCA and Dolphin) should find some combination that works.
Other screenreaders and/or assistive technologies were tested but failed due to lack of support for ARIA labels and/or applications.
While the extensions generally work with any MathJax setup, the explorer only works with MathJax's CommonHTML, SVG, and HTML-CSS output.
The application for keyboard navigation allows users to explore sub-expressions simultaneously visually and aurally. The application uses the following keys bindings:
-
SHIFT+SPACE: start application (requires focus)
- NOTE: Depending on the implementation quality of the particular browser/screenreader/OS combination (especially Chrome and IE), users might have to disable screenreader reading modes (e.g., "browse mode" in NVDA, "virtual cursor" in JAWS) before being able to launch the application.
-
ESC: stop application.
- NOTE: When restarted, the application will continue where the user left off.
-
UP/DOWN: move up or down the sub-expression tree.
- When moving down, navigation will start at the left-most sub-expression of the level.
- The application plays an aural indicator (earcon) if the user is at the bottom/top level of the tree.
- LEFT/RIGHT: navigate the current level in the sub-expression tree horizontally.
- ENTER: switch collapsed state of the current sub-expression and regenerate speech-text to match (e.g., provide summary upon collapsing).
- SPACE: get positional information, i.e., the current level in the sub-expression tree as well as collapsibility/expandability of the current subexpression.
Most screenreaders have at least two modes for interaction: Browse (or virtual) and Focus (or forms) mode. For more information see Leonie Watson's introduction. Some combinations of browsers and screenreaders do not automatically switch to Focus mode on an element with ARIA Role application
.
In this situation, a user will have to manually switch from Browse mode to Focus mode to enable interaction with our explorer application. As an additional complication, MathJax's different outputs can change the behavior; e.g., SVG output might trigger some screenreader behavior specific to SVGs or images.
- NVDA (Browse/Focus Mode) is switched via NVDA+SPACE (default: INS or CapsLock). If MathJax's SVG output is used, NVDA might switch to Focus Mode automatically (in particular on older Windows Versions).
- JAWS ("Virtual PC Cursor") is switched via JAWS+Z (default: INS)
- Window Eyes (Browse/Focus Mode) is switched via CTRL+SHIFT+A
- VoiceOver has no modes but SHIFT+CTRL+CMD+ARROW will trigger direct input
- ChromeVox requires no extra switching
- ORCA: ORCA+A (default: INS)
A key UX problem is to combine the browse mode experience with the Explorer tool.
Readers the screenreader to generate some output while reading the page in browse mode; ARIA labels work reliably here.
But, e.g., when encountering a very long and complex equation, readers want to switch from browse mode to the Explorer tool to explore in detail. For this, readers need to put the relevant equation into focus so they can start the Explorer tool; usually this would be when the screenreader in browse mode reads (or has just read) the label of an equation.
If the screenreader tracks the tabindex while in browse mode, then TAB/SHIFT+TAB might enable this; the screenreader may also have specialized features for this behavior.
The second challenge occurs when exiting the Explorer tool. Readers want to continue in browse mode, in particular find themselves where they left off. In combinations of browsers and screenreaders, manually switching to (or cycling) browse mode helps, but oftentimes there are complications and too often browse mode and tabindex are not kept in sync; screenreaders often track the position of browse-mode when manually switching out of it; then readers have to try to keep the tabindex and browse mode position manually in sync.
We continue to work on improving this interaction to enable a better user experience for everyone.
Verbosity settings of screenreaders might change how elements are announced or labels are spoken.
- WindowEyes offers a configuration option for voicing common mathematical symbols (+, - etc); it is disabled by default.
- Some screenreaders will voice (some) unexpected dashes, e.g., speaking "left-parenthesis" as "left dash paranthesis".
Screenreader | Browser | OS | Usable? | Bugs |
---|---|---|---|---|
ChromeVox | Chrome | any | +1 | notes: if navigating too quickly, ChromeVox might read "d i v" instead of the speech text (the aria live region is on a <div> ). |
NVDA | Firefox | WinXP | +1 | no bugs |
NVDA | Firefox | Win7 | +1 | no bugs, (not a bug: in browse mode reads "application clickable" before the aria-label on each expression; says "space" when space is used to display level/collapsible) |
NVDA | Firefox | Win8.1 | +1 | no bugs |
NVDA | Firefox | Win10 | +1 | no bugs |
NVDA | Chrome | WinXP | +1 | [requires mode switching] |
NVDA | Chrome | Win7 | +1 | [requires mode switching] (not a bug: in browse mode reads "application" before the aria-label on each expression) |
NVDA | Chrome | Win8.1 | +1 | [requires mode switching] |
NVDA | Chrome | Win10 | +1 | [requires mode switching] |
NVDA | MS Edge | Win10 | DNA | [Edge issues prevent support by NVDA] |
NVDA | IE11 | Win10 | +1 | [requires mode switching] |
NVDA | IE11 | Win8.1 | +1 | no bugs |
NVDA | IE10 | Win7 | +1 | no bugs |
VoiceOver | Safari | OSX | +1 | Fences highlighting bug, https://github.com/zorkow/speech-rule-engine/issues/29 |
VoiceOver | Chrome | OSX | +1 | no bugs |
VoiceOver | Firefox | OSX | DNA | FF not exposing live regions yet |
Window Eyes (9.1) | Firefox | WinXP | +1 | voices dashes (plus-or-minus) |
Window Eyes | Firefox | Win7 | -1 | ignores aria-hidden (thus speaks chars from visual rendering in addition to label); other: speaks some dashes (plus-or-minus), adds "application landmark ... end application landmark" to each expression |
Window Eyes | Firefox | Win8.1 | +1 | voices dashes (plus-or-minus) |
Window Eyes | Firefox | Win10 | +1 | voices dashes (plus-or-minus) |
Window Eyes | IE 10 | Win7 | +1 | no bugs |
Window Eyes | IE 11 | Win8.1 | +1 | voices dashes (plus-or-minus) |
Window Eyes | IE 11 | Win10 | +1 | no bugs |
Window Eyes | MS Edge | Win10 | +1 | no bugs |
Window Eyes (9.1) | Chrome | WinXP | -1 | |
Window Eyes | Chrome | Win10 | -1 | |
Window Eyes | Chrome | Win8.1 | -1 | |
Window Eyes | Chrome | Win7 | 0 | requires manual switch to focus mode to trigger walker; speaks "application landmark ... end applicatin landmark" around aria-label; in walker: makes "pling" at each key press; |
JAWS | Firefox | WinXP | +1 | [reads raw MathML from AsssitiveMML when focusing on expression]; voices dashes (plus-or-minus) |
JAWS | FF | Win7 | +1 | speaks dashes ("right dash paranthesis"), in browse mode adds "application" after each expression's aria-label, speaks "space" when space is used to display level/collapsible |
JAWS | Firefox | Win10 | +1 | speaks some dashes (plus-or-minus) |
JAWS | Chrome | WinXP | +1 | speaks some dashes (plus-or-minus) |
JAWS | Chrome | Win7 | +1 | speaks some dashes (plus-or-minus); in browse mode adds "empty application" after each expression's aria-label, speaks "shift space" when activating walker, speaks "space" when in walker, sometimes speaks "blank" for each keypress in walker; |
JAWS | Chrome | Win10 | +1 | voices dashes (plus-or-minus) |
JAWS | MS Edge | Win10 | DNA | [Edge issues prevent MathML support by JAWS] |
JAWS | IE11 | Win8.1 | +1 | |
JAWS | IE11 | Win10 | +1 | |
JAWS | IE10 | Win7 | +1 | |
JAWS | FF | Win8.1 | +1 | |
JAWS | Chrome | Win8.1 | +1 | "blank" precedes speech output; reads raw MathML from AsssitiveMML when focusing on expression |
JAWS 13 | Chrome | Win7 | +1 | voices dashes (plus-or-minus) |
JAWS 13 | Firefox | Win7 | +1 | voices dashes (plus-or-minus) |
Orca | Firefox | Ubuntu 15.10 | 0 | does not voice aria-labels and ignores aria-hidden (thus reading character in visual output; will sometime add "clickable" after those characters) |
Orca | Web | Ubuntu 15.10 | DNA | [WebKitGTK not fully accessible] |
Orca | Chrome(ium) | Ubuntu 15.10 | DNA | [Chrome not accessible] |
Dolphin Screenreader | IE11 | Win10 | -1 | reads arial-labels; does not seem to support live regions, ignores aria-hidden (thus speaks characters in the visual output) |
- A demo for testing individual equations is available at https://mathjax.github.io/MathJax-RespEq/Semantics-Lab/walker/.
- A demonstration with real-world content is available at http://mathjax.github.io/MathJax-RespEq/examples/Struik-speech.html; note that the input was not optimized and contains common authoring mistakes not all of which can be compensated.
We have been creating short videos to demonstrate how the accessibility tool works on various combinations of browsers, operating system, and screenreaders.
The videos can be found at https://www.youtube.com/playlist?list=PL1ATLkPgTEBoIBkY6Ee9rdgAJaJtISOE8.