FreedomScientific / standards-support

Contains documentation for Vispero software support of Web standards
https://freedomscientific.github.io/standards-support/
GNU General Public License v3.0
105 stars 11 forks source link

JAWS does not announce math structure and role inside a contenteditable #799

Open mitchellevan opened 5 months ago

mitchellevan commented 5 months ago

Summary

HTML <math> containing MathML

  1. Go to MathML Examples (Freedom Scientific)
  2. Use JAWS arrow keys to locate the math elements. (These are not inside an editor.)
  3. Go to MathML Examples in contenteditable (CodePen)
  4. Move focus into the editor.
  5. Use JAWS arrow keys to locate the math elements inside the editor.

ARIA role="math"

  1. Go to Math inside a rich text editor - testing user agent support (CodePen)
  2. Use JAWS arrow keys to locate a math element not inside the editor.
  3. Under "Enter some text and math", move focus into the editor.
  4. 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.

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:

Inside of a contenteditable:

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

mitchellevan commented 5 months ago

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.