Test

This is meant to illustrate a few problems with MathJax3 when in explorer mode (i.e. when mathjax itself is generating text for screen readers):

  1. it is difficult to escape from expressions once inside them
  2. In firefox, the menus do not speak correctly: some items speak in full, some items only speak the first bit of the text label; menus speak correctly in chrome
  3. pressing any key, even raw modifiers, can trigger the writing of text to the live region

Hacked solution

The fix for issue 2 (expression escape) is to assign a different role other than "application", and one which also switches screen reader modes like "application" does, then you can escape from it with the escape key. Here I assign role="tree" and aria-roledescription="math".

I have no idea why the menus are speaking incorrectly. The menu structure seems ok, and proper aria roles are used. There could be something being written to a live region after an item gains focus that is cutting of the speech from the announcement of the item's label when it gains focus, but I cannot verify this.

There do seem to be two live region elements, both with same attributes and marked aria-live="assertive" however which is a bit odd.

Testing

  1. be sure MathJax is generating speech; this also demonstrates issue 3 as well
  2. navigate the page with arrows in browse mode
  3. navigate to any expression with tab when screen reader is in browse mode
  4. now try to arrow around
  5. press the "substitute role" button

When `a != 0`, there are two solutions to `ax^2 + bx + c = 0`,
and they are `x = (-b +- sqrt(b^2-4ac))/(2a)`.