Test results for PDF/UA-2 documents containing math encoded in combinations of three formats: Associated Files (AF), Structure Elements (SE), and Alt text on the formula tag. Each combination was tested in Adobe Acrobat Pro and Firefox with NVDA and JAWS screen readers.
Encoding formats tested:
Alt
attribute) using \tagpdfsetup{math/alt/use}
| Screen reader + PDF viewer | AF | SE | AF+SE | AF+Alt | SE+Alt | AF+SE+Alt |
|---|---|---|---|---|---|---|
| JAWS with Adobe Acrobat Pro | Failing | Failing | Failing | Failing | Failing | Failing |
| JAWS with Chrome | Failing | Failing | Failing | Failing | Failing | Failing |
| JAWS with Edge | Failing | Failing | Failing | Failing | Failing | Failing |
| JAWS with Firefox | Passing | Passing | Passing | Passing | Passing | Passing |
| NVDA with Adobe Acrobat Pro | Passing | Passing | Passing | Failing | Failing | Failing |
| NVDA with Chrome | Failing | Failing | Failing | Failing | Failing | Failing |
| NVDA with Edge | Failing | Failing | Failing | Failing | Failing | Failing |
| NVDA with Firefox | Passing | Passing | Passing | Passing | Passing | Passing |
| VoiceOver macOS with Adobe Acrobat Pro | Failing | Failing | Failing | Failing | Failing | Failing |
| VoiceOver macOS with Chrome | Failing | Failing | Failing | Failing | Failing | Failing |
| VoiceOver macOS with Edge | Failing | Failing | Failing | Failing | Failing | Failing |
| VoiceOver macOS with Firefox | Failing | Failing | Failing | Failing | Failing | Failing |
| VoiceOver macOS with Preview | Failing | Failing | Failing | Failing | Failing | Failing |
The six test files are available at PDF/UA-2 MathML Encoding Test Files. There you can find details on LaTeX source files, compiled PDFs, and documentation of how they were built in Overleaf.
The goal of accessible math in a PDF is not simply to have something read aloud. It is to give screen reader users the same depth of access that sighted readers get when they look at a formula. That means being able to hear math spoken in natural, accurate, and unambiguous mathematical language; navigate into an expression interactively; and optionally receive braille output on a refreshable braille display.
This is what Configurable math speech/braille output; interactive expression exploring means in the results below. It is the only outcome marked as passing (green) because it is the only outcome where the MathML in the PDF is being processed by a dedicated math accessibility engine (like MathCAT, which is now built natively into both NVDA and JAWS) rather than being ignored, mangled, or substituted with an inferior plain text fallback.
The other outcomes represent meaningful failures:
Speaks broken/misleading math: the screen reader attempts a semantic reading of the expression but produces output that is structurally garbled or factually incorrect: operands rendered as "null," relationships mislabeled (e.g. a fraction spoken as "choose" rather than "over"), silently skips over some symbols, Greek letters, fancy-font characters, or produces other distortions that misrepresent the actual mathematical content.
This is a more serious failure than silence, since a listener may have no way to know the output is wrong without independently verifying the expression.
Here is an example of VoiceOver producing erroneous output when voicing the quadratic formula from MathML encoded as Structured Elements:
Screenshot comparing a quadratic formula equation rendered in a PDF with VoiceOver's spoken caption overlay. MathCAT in NVDA would speak the visible equation as "x is equal to; the fraction with numerator; negative b plus or minus; the square root of b squared minus 4 eigh c, end root; and denominator 2 eigh; end fraction".
VoiceOver's caption instead reads "x equals negative b plus or minus square root of (null), end of root choose 2a, with 3 items, math". The radicand is replaced with "null" and the fraction is mislabeled as "choose."
| Screen reader + PDF viewer | Result | Last tested |
|---|---|---|
| JAWS with Adobe Acrobat Pro | Speaks raw MathML | 2026-06-17 2 |
| JAWS with Chrome | Math is skipped over; not read aloud | 2026-06-17 2 |
| JAWS with Edge | Math is skipped over; not read aloud | 2026-06-17 2 |
| JAWS with Firefox | Configurable math speech/braille output; interactive expression exploring | 2026-06-17 2 |
| NVDA with Adobe Acrobat Pro | Configurable math speech/braille output; interactive expression exploring | 2026-06-15 1 |
| NVDA with Chrome | Math is skipped over; not read aloud | 2026-06-15 1 |
| NVDA with Edge | Math is skipped over; not read aloud | 2026-06-15 1 |
| NVDA with Firefox | Configurable math speech/braille output; interactive expression exploring | 2026-06-15 1 |
| VoiceOver macOS with Adobe Acrobat Pro | Speaks as gibberish | 2026-06-16 3 |
| VoiceOver macOS with Chrome | Math is skipped over; not read aloud | 2026-06-16 3 |
| VoiceOver macOS with Edge | Math is skipped over; not read aloud | 2026-06-16 3 |
| VoiceOver macOS with Firefox | Speaks as gibberish | 2026-06-16 3 |
| VoiceOver macOS with Preview | Speaks as gibberish | 2026-06-16 3 |
| Screen reader + PDF viewer | Result | Last tested |
|---|---|---|
| JAWS with Adobe Acrobat Pro | Math speech character by character? | 2026-06-17 2 |
| JAWS with Chrome | Math is skipped over; not read aloud | 2026-06-17 2 |
| JAWS with Edge | Math is skipped over; not read aloud | 2026-06-17 2 |
| JAWS with Firefox | Configurable math speech/braille output; interactive expression exploring | 2026-06-17 2 |
| NVDA with Adobe Acrobat Pro | Configurable math speech/braille output; interactive expression exploring | 2026-06-15 1 |
| NVDA with Chrome | Math is skipped over; not read aloud | 2026-06-15 1 |
| NVDA with Edge | Math is skipped over; not read aloud | 2026-06-15 1 |
| NVDA with Firefox | Configurable math speech/braille output; interactive expression exploring | 2026-06-15 1 |
| VoiceOver macOS with Adobe Acrobat Pro | Speaks as gibberish | 2026-06-16 3 |
| VoiceOver macOS with Chrome | Math is skipped over; not read aloud | 2026-06-16 3 |
| VoiceOver macOS with Edge | Math is skipped over; not read aloud | 2026-06-16 3 |
| VoiceOver macOS with Firefox | Speaks broken/misleading math | 2026-06-16 3 |
| VoiceOver macOS with Preview | Speaks literal text only, no structure/td> | 2026-06-16 3 |
| Screen reader + PDF viewer | Result | Last tested |
|---|---|---|
| JAWS with Adobe Acrobat Pro | Speaks raw MathML | 2026-06-17 2 |
| JAWS with Chrome | Math is skipped over; not read aloud | 2026-06-17 2 |
| JAWS with Edge | Math is skipped over; not read aloud | 2026-06-17 2 |
| JAWS with Firefox | Configurable math speech/braille output; interactive expression exploring | 2026-06-17 2 |
| NVDA with Adobe Acrobat Pro | Configurable math speech/braille output; interactive expression exploring | 2026-06-15 1 |
| NVDA with Chrome | Math is skipped over; not read aloud | 2026-06-15 1 |
| NVDA with Edge | Math is skipped over; not read aloud | 2026-06-15 1 |
| NVDA with Firefox | Configurable math speech/braille output; interactive expression exploring | 2026-06-15 1 |
| VoiceOver macOS with Adobe Acrobat Pro | Speaks as gibberish | 2026-06-16 3 |
| VoiceOver macOS with Chrome | Math is skipped over; not read aloud | 2026-06-16 3 |
| VoiceOver macOS with Edge | Math is skipped over; not read aloud | 2026-06-16 3 |
| VoiceOver macOS with Firefox | Speaks as gibberish | 2026-06-16 3 |
| VoiceOver macOS with Preview | Speaks as gibberish | 2026-06-16 3 |
| Screen reader + PDF viewer | Result | Last tested |
|---|---|---|
| JAWS with Adobe Acrobat Pro | Alt text | 2026-06-17 2 |
| JAWS with Chrome | Math is skipped over; not read aloud | 2026-06-17 2 |
| JAWS with Edge | Math is skipped over; not read aloud | 2026-06-17 2 |
| JAWS with Firefox | Configurable math speech/braille output; interactive expression exploring | 2026-06-17 2 |
| NVDA with Adobe Acrobat Pro | Alt text | 2026-06-15 1 |
| NVDA with Chrome | Math is skipped over; not read aloud | 2026-06-15 1 |
| NVDA with Edge | Math is skipped over; not read aloud | 2026-06-15 1 |
| NVDA with Firefox | Configurable math speech/braille output; interactive expression exploring | 2026-06-15 1 |
| VoiceOver macOS with Adobe Acrobat Pro | Speaks as gibberish | 2026-06-16 3 |
| VoiceOver macOS with Chrome | Math is skipped over; not read aloud | 2026-06-16 3 |
| VoiceOver macOS with Edge | Math is skipped over; not read aloud | 2026-06-16 3 |
| VoiceOver macOS with Firefox | Speaks as gibberish | 2026-06-16 3 |
| VoiceOver macOS with Preview | Speaks as gibberish | 2026-06-16 3 |
| Screen reader + PDF viewer | Result | Last tested |
|---|---|---|
| JAWS with Adobe Acrobat Pro | Alt text | 2026-06-17 2 |
| JAWS with Chrome | Math is skipped over; not read aloud | 2026-06-17 2 |
| JAWS with Edge | Math is skipped over; not read aloud | 2026-06-17 2 |
| JAWS with Firefox | Configurable math speech/braille output; interactive expression exploring | 2026-06-17 2 |
| NVDA with Adobe Acrobat Pro | Alt text | 2026-06-15 1 |
| NVDA with Chrome | Math is skipped over; not read aloud | 2026-06-15 1 |
| NVDA with Edge | Math is skipped over; not read aloud | 2026-06-15 1 |
| NVDA with Firefox | Configurable math speech/braille output; interactive expression exploring | 2026-06-15 1 |
| VoiceOver macOS with Adobe Acrobat Pro | Speaks as gibberish | 2026-06-16 3 |
| VoiceOver macOS with Chrome | Math is skipped over; not read aloud | 2026-06-16 3 |
| VoiceOver macOS with Edge | Math is skipped over; not read aloud | 2026-06-16 3 |
| VoiceOver macOS with Firefox | Speaks as gibberish | 2026-06-16 3 |
| VoiceOver macOS with Preview | Speaks as gibberish | 2026-06-16 3 |
| Screen reader + PDF viewer | Result | Last tested |
|---|---|---|
| JAWS with Adobe Acrobat Pro | Alt text | 2026-06-17 2 |
| JAWS with Chrome | Math is skipped over; not read aloud | 2026-06-17 2 |
| JAWS with Edge | Math is skipped over; not read aloud | 2026-06-17 2 |
| JAWS with Firefox | Configurable math speech/braille output; interactive expression exploring | 2026-06-17 2 |
| NVDA with Adobe Acrobat Pro | Alt text | 2026-06-15 1 |
| NVDA with Chrome | Math is skipped over; not read aloud | 2026-06-15 1 |
| NVDA with Edge | Math is skipped over; not read aloud | 2026-06-15 1 |
| NVDA with Firefox | Configurable math speech/braille output; interactive expression exploring | 2026-06-15 1 |
| VoiceOver macOS with Adobe Acrobat Pro | Speaks as gibberish | 2026-06-16 3 |
| VoiceOver macOS with Chrome | Math is skipped over; not read aloud | 2026-06-16 3 |
| VoiceOver macOS with Edge | Math is skipped over; not read aloud | 2026-06-16 3 |
| VoiceOver macOS with Firefox | Speaks as gibberish | 2026-06-16 3 |
| VoiceOver macOS with Preview | Speaks as gibberish | 2026-06-16 3 |
1 NVDA testing: 2026-06-15. NVDA 2026.1.1 (build 2026.1.1.55980). MathCAT is built natively into NVDA; no add-on required. Default NVDA settings. Microsoft Windows 11 Enterprise Version 10.0.26100 Build 26100.
2 JAWS testing: 2026-06-17. JAWS Professional Version 2025.2508.120 and JAWS Professional Version 2026.2605.43. MathCAT is built natively into JAWS; no add-on required. Default JAWS settings. Microsoft Windows 11 Enterprise Version 10.0.26100 Build 26100. Results confirmed by users on various other Windows 11 configurations.
3 VoiceOver macOS testing: 2026-06-16. VoiceOver on macOS Tahoe 26.5.1. VoiceOver does not appear to support true access to MathML in PDFs.