Accessible Math for Blind Students: MathML vs Screen Readers (2026 Guide) | MathVoice

Accessible Math for Blind Students: MathML vs Screen Readers

The complete 2026 guide to math accessibility for blind and low-vision STEM students โ€” how MathML, JAWS, NVDA MathCAT, and voice editing fit together, and what disability services offices actually need to deploy.

By MathVoice ยท April 11, 2026 ยท 14 min read

1. The scale of the problem

STEM fields have a well-documented accessibility problem for blind and low-vision students. The barriers start early โ€” at the point where a student encounters their first fraction on a digital page โ€” and compound through every year of study. Calculus. Linear algebra. Statistics. Physics. Chemistry. Each discipline adds new notation that must be expressed mathematically.

The irony is that mathematics is, at its core, a language designed for precision. It has a well-defined grammar and formal semantics. It should, in principle, be highly accessible โ€” the structure is explicit. The barrier is not math itself; it's the way math is represented on the web: as images, or as LaTeX strings rendered visually, with no semantic encoding that a screen reader can navigate.

"We don't have a math problem. We have a representation problem."
โ€” Neil Soiffer, developer of MathCAT

Surveys of blind STEM students consistently identify math accessibility as the primary technical barrier to study. Students report spending 3โ€“5 times longer than sighted peers on problem sets, not because the mathematics is harder, but because reading, navigating, and editing equations requires work-arounds that multiply time costs at every step.

2. MathML: the only real solution

MathML (Mathematical Markup Language) is a W3C standard XML vocabulary for describing the structure and content of mathematical expressions. It was first published in 1998, is now at version 4, and is the only web standard that provides semantic math representation that screen readers can navigate.

MathML has two forms:

  • Presentation MathML โ€” describes the visual layout (how the formula looks). This is what screen reader math engines like MathCAT process.
  • Content MathML โ€” describes the mathematical semantics (what the formula means). Less commonly used in practice.

A fraction rendered as Presentation MathML:

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mfrac>
    <mrow><mo>-</mo><mi>b</mi></mrow>
    <mrow><mn>2</mn><mi>a</mi></mrow>
  </mfrac>
</math>

NVDA with MathCAT reads this as "start fraction negative b over 2a end fraction" and allows the user to navigate into the numerator and denominator as separate nodes. This is qualitatively different from reading the LaTeX string \frac{-b}{2a}.

3. How KaTeX and MathJax produce accessible MathML

The two main JavaScript math rendering libraries โ€” KaTeX and MathJax โ€” both support MathML output, but configure it differently.

KaTeX

KaTeX 0.16+ supports output: 'htmlAndMathml' mode. This renders:

  • A visually precise HTML/CSS representation with aria-hidden="true" โ€” sighted users see this
  • A hidden <math> element โ€” screen readers navigate this

The visual element is invisible to screen readers; the MathML element is invisible to sighted users. Both are always present in the DOM. This is the correct accessible pattern.

MathJax

MathJax 3+ supports multiple output renderers. The Accessibility Extension adds an explorer that allows keyboard navigation with JAWS or NVDA even without MathPlayer/MathCAT โ€” though MathCAT is still recommended for Braille output and more natural speech.

For new deployments in 2026: Use KaTeX with output: 'htmlAndMathml'. It's faster than MathJax, and the htmlAndMathml pattern is simpler to configure correctly. If you already use MathJax, ensure the Accessibility Extension is enabled and test with both JAWS and NVDA.

4. JAWS + MathPlayer: setup and limitations

JAWS (Job Access With Speech, by Freedom Scientific / Vispero) is the most widely used commercial screen reader for Windows. JAWS reads MathML using MathPlayer, a plugin from Design Science/Wiris.

Setup

  1. Install JAWS 2024 or later.
  2. Download and install MathPlayer 4 from wiris.com.
  3. In Firefox or Internet Explorer (note: Chrome support is limited for JAWS+MathPlayer), navigate to a page with a KaTeX formula.
  4. JAWS will automatically read the MathML when it encounters a <math> element.

Limitations in 2026

  • Chrome support is partial. JAWS + MathPlayer works best in Firefox. Chrome renders MathML differently, which can cause JAWS to miss some structures.
  • MathPlayer development has slowed. The primary active development in Windows math accessibility has shifted to MathCAT + NVDA.
  • Braille output varies. Nemeth Code output through JAWS + MathPlayer is functional but less actively maintained than MathCAT's Braille support.

5. NVDA + MathCAT: the current recommendation

NVDA (NonVisual Desktop Access) is a free, open-source screen reader for Windows. Combined with the MathCAT add-on, it currently provides the best math reading experience available.

Why MathCAT is better than MathPlayer for new setups

  • Actively developed and updated by Neil Soiffer (one of the original MathML specification authors)
  • Available free from the NVDA Add-ons Store
  • Strong Nemeth Code and UEB Math Braille output
  • Rule-based speech generation โ€” easier to customise for different student preferences
  • Works well in Chrome, Edge, and Firefox

Interactive navigation commands

Once NVDA + MathCAT is installed, students navigate formulas with:

  • Enter โ€” enter math navigation mode on the focused formula
  • โ†’ / โ† โ€” move between sibling nodes (numerator โ†’ denominator)
  • โ†“ / โ†‘ โ€” move deeper into / out of the tree
  • Shift+โ†“ โ€” describe the current node ("this is the denominator")
  • Escape โ€” exit math navigation

6. VoiceOver on macOS and iOS

Apple's VoiceOver includes built-in MathML support on macOS 12+ and iOS 16+. No additional plugin is required.

  • On macOS: VoiceOver reads MathML in Safari. Use VO+Shift+โ†“ to enter a formula, then arrow keys to navigate.
  • On iOS: VoiceOver swipes through MathML nodes. Works with KaTeX in Safari.

VoiceOver's math support is functional but less feature-complete than NVDA + MathCAT for power users. Braille math output (UEB Math) requires a connected Braille display.

7. The gap: reading is not editing

All of the above โ€” MathML, JAWS, NVDA, VoiceOver โ€” solves the reading problem. A blind student can navigate a formula, understand its structure, and hear it spoken with proper mathematical prosody.

The editing problem is entirely separate, and no combination of MathML + screen reader solves it. To edit an existing formula, a student still needs:

  1. A way to identify which part of the formula they want to change
  2. A way to target that specific part without disturbing the rest
  3. A way to confirm the change was made correctly

With LaTeX source editing, step 1 requires navigating a raw character string. With a GUI math editor, step 2 requires mouse-level precision. Neither is accessible by keyboard alone for complex expressions.

MathVoice adds an editing layer on top of MathML. By storing formulas as Abstract Syntax Trees rather than strings, it can accept voice commands that target structural roles โ€” "the denominator", "the exponent", "the term inside the square root" โ€” and mutate only that node. The aria-live region then announces the change to the screen reader.

8. FERPA and voice processing

FERPA (Family Educational Rights and Privacy Act) governs the handling of student educational records. For voice-based tools, the key question is: is voice audio transmitted to a third party?

Under MathVoice's default configuration using the Web Speech API:

  • Voice audio is processed entirely within the browser
  • No audio is transmitted to MathVoice servers
  • Only the JSON IntentResult is sent to the API: {"type":"REPLACE_VALUE","target":{"role":"denominator"},"value":{"raw":"n"}}
  • This JSON object contains no audio, no voice biometrics, and no student-identifiable information

This satisfies FERPA because no student education record is transmitted. A signed Data Processing Agreement (DPA) is available from MathVoice for institutional deployment.

Exception: Whisper ASR backend. When the Whisper provider is enabled, audio is transmitted to OpenAI's servers. Schools must obtain a signed DPA with OpenAI and must ensure this mode is not used for students under 18 without parental consent (COPPA). The Whisper backend is disabled by default.

9. Disability services checklist

For disability services offices evaluating a math accessibility deployment:

  • โ˜ Confirm KaTeX or MathJax is configured with htmlAndMathml output
  • โ˜ Test with NVDA + MathCAT in Chrome and Firefox
  • โ˜ Test with JAWS + MathPlayer in Firefox (for existing JAWS users)
  • โ˜ Test with VoiceOver in Safari (for Mac/iOS users)
  • โ˜ Verify colour contrast ratios meet WCAG 2.2 AA (โ‰ฅ4.5:1 for normal text)
  • โ˜ Confirm skip links and keyboard operability work without a mouse
  • โ˜ Obtain VPAT from the vendor (required for US university procurement)
  • โ˜ Obtain a signed DPA (required if any student audio is transmitted)
  • โ˜ Test undo functionality with a keyboard-only workflow
  • โ˜ Confirm FERPA compliance documentation is available

Request a VPAT and DPA

MathVoice provides a WCAG 2.2 AA VPAT and a signed DPA for institutional procurement. Contact us to start the process.

Contact [email protected] โ†’

Further reading: NVDA Math Formula Editing Guide ยท Voice LaTeX Editor Comparison 2026 ยท MathVoice VPAT (PDF)