← All reviews

Browser-Independent Accessible Math

Neil Soiffer · 2015 · Proceedings of the 12th International Web for All Conference (W4A) · doi:10.1145/2745555.2746678

Summary

This paper describes the re-architecture of MathPlayer (version 4) from Design Science, transforming it from an Internet Explorer-only plugin into a standalone library that any assistive technology can use to make mathematical notation accessible in any browser or application. MathPlayer has been the most widely used math accessibility solution, with tens of millions of expressions read through it, working with screen readers (JAWS, NVDA, Supernova), magnifiers (ZoomText, MAGic), and learning disability tools (Kurzweil 3000, Read&Write Gold). The previous version was limited to IE and lacked meaningful navigation capabilities. MathPlayer 4 was extracted from IE and repackaged as a COM library callable from any application, with integrations already built for TextHELP (Chrome and Firefox via MathJax), Window-Eyes (Word), and NVDA (Firefox, IE, Word, PowerPoint, and tagged PDFs). The system uses approximately 1,100 rules to match math and chemistry notations to speech templates, with translations for 15 languages that handle not just vocabulary but word order, gender, and quantity differences — for example, speaking fractions as "x over y" in English but "y under x" in Japanese.

Key findings

The most significant new feature is "auto-zoom" navigation, which differs fundamentally from previous tree-based navigation approaches. Rather than forcing users to manually zoom in and out of expression tree levels, auto-zoom fluidly moves users into and out of structures. For example, when navigating past an exponent, the user hears "out of exponent, times" and can continue rightward — other systems require explicitly zooming out (hearing the entire subexpression) before moving. Auto-zoom also eliminates extraneous information like parentheses during semantic navigation, more than halving the words spoken in some cases. Three navigation modes are supported: Enhanced (semantic operator/operand movement), Simple (character-by-character except for 2D structures), and Character (character movement with auto-zoom for 2D). Additional features include expression descriptions/overviews, 10 placemarkers for tasks like fraction cancellation, and "Where Am I" context information. A study with 16 blind students compared the new semantic-based ClearSpeak speech style against the older SimpleSpeech and structure-based MathSpeak styles, finding ClearSpeak performed statistically significantly better in both perceived clarity and student success at identifying expressions. Braille math code output (Nemeth code) is supported via the open-source LibLouis library for refreshable braille displays.

Relevance

Mathematical notation remains one of the most challenging content types for web accessibility. Unlike text, math is inherently two-dimensional and hierarchical, making it impossible to convey through simple alternative text. MathPlayer's evolution illustrates the broader challenge of STEM accessibility: solutions must work across browsers, document formats (web, PDF, Word, PowerPoint), and assistive technologies without requiring users to switch tools. The auto-zoom navigation model offers a design principle applicable beyond math — for any hierarchically structured content, automatically adjusting the level of detail as users navigate reduces cognitive load and verbosity. The ClearSpeak findings demonstrate that how math is spoken matters as much as whether it is spoken; semantic speech that mirrors how teachers actually say expressions aloud outperforms both simplified and structure-based approaches. For web developers publishing mathematical content, MathPlayer's integration with MathJax means that using MathML or LaTeX source (rather than images of equations) enables accessibility across platforms.

Tags: MathML · STEM accessibility · screen readers · speech generation · braille · navigation · assistive technology · mathematics accessibility

Standards referenced: MathML