JAWS does not announce math structure and role inside a contenteditable
Summary
HTML <math> containing MathML
- Go to MathML Examples (Freedom Scientific)
- Use JAWS arrow keys to locate the math elements. (These are not inside an editor.)
- Go to MathML Examples in contenteditable (CodePen)
- Move focus into the editor.
- Use JAWS arrow keys to locate the math elements inside the editor.
ARIA role="math"
- Go to Math inside a rich text editor - testing user agent support (CodePen)
- Use JAWS arrow keys to locate a math element not inside the editor.
- Under "Enter some text and math", move focus into the editor.
- Use JAWS arrow keys to locate the math element inside the editor.
Expected result
Outside of a contenteditable JAWS should announce the math structure and content, and the fact that it is a math element.
Inside of a contenteditable JAWS should announce the math structure and content, and the fact that it is a math element.
- Announcing the math structure and content allows a user to understand the math together with its surrounding content.
- Informing the user of the fact that it is a math element prompts the user to know what kind of mechanism they should use for editing it.
Actual result
HTML <math> containing MathML
Outside of a contenteditable JAWS announces an HTML MathML element as expected. Speech history example (Chrome):
heading level 2 Quadratic Formula x = fraction, negative b ± the square root of b squared minus 4 a c, over 2 a. MathContent
Inside of a contenteditable JAWS announces the text of the HTML MathML element but not its structure, and JAWS does not announce the fact that it is a math element. Speech history example (Chrome):
heading level 2 Quadratic Formula
𝑥
=
-
𝑏
±
𝑏
2
-
4
𝑎
𝑐
2
𝑎
In JAWS with Firefox, the announcements are the same as with Chrome, provided that the user presses RIGHT ARROW instead of DOWN ARROW inside the contenteditable to read the text of the math.
ARIA role="math"
Outside of a contenteditable:
- JAWS with Chrome announces the math content as expected. (It does not announce the fact that it is a math element; this might or might not be a problem in this context.)
- JAWS with Firefox announces neither the math content nor the fact that it is a math element. Instead it skips the element. See #800
Inside of a contenteditable:
- JAWS with Chrome announces neither the math content nor the fact that it is a math element. Instead it repeats nearby content outside of the math.
- JAWS with Firefox announces neither the math content nor the fact that it is a math element. Instead it announces "blank".
Additional Information
Chrome exposes the math element inside a contenteditable. https://bugs.chromium.org/p/chromium/issues/detail?id=1245715
JAWS version and build number
JAWS Version 2024.2312.53
Operating System and version
Windows 10
Browser and version:
Chrome 120 Firefox 121.0.1
Chrome and Firefox both report MathML element semantics in devtools accessibility. That said...
If Chrome is partially responsible, please update Chrome Issue 1245715: JAWS not recognizing role=math element inside contentEditable
If Firefox is partially responsible, please file a bug for it.