Skip to main content

Accessible Math

This page provides an overview of MathML and other technologlies for representing math in an accessible manner. 

MathML

MathML is a markup language used to display equations and other mathematical expressions on the web and in other formats such as ePub and NIMAS. MathML is important for accessibility because it allows equations to be stored as structured text rather than images. Unlike images, structured text can be enlarged with good resolution for low-vision users who need magnification. Learners who are blind can use screen readers that support MathML to navigate and review the parts of mathematical expressions in the correct order, which is important for understanding complex mathematical expressions.

 According to Accessibility at Penn State, the following browser/screen reader combinations support MathML:

  • Firefox: Supports MathML natively and with MathJax
  • Safari: Supports MathML natively and with MathJax
  • Google Chrome: Only with MathJax
  • Internet Explorer/JAWS: Use JAWS 16+ if possible
  • VoiceOver iOS – Can read limited MathML

Benetech’s Math Support Finder is another source of information about MathML support. According to Math Support Finder, the Firefox/NVDA combination supports MathML with MathPlayer 4  installed.

MathML3 is the most current version of the markup language. A  June 2012 letter from the Office of Special Education and Rehabilitative Services (OSERS) specifically encourages State Education Agencies (SEAs) and Local Education Agencies(LEAs) to "ask publishers to use the MathML3 Structure Guidelines recommended by the [NIMAS] Center when requesting NIMAS files." For more information about MathML in NIMAS, visit the following AEM Center resources:

MathJax

MathJax is set of open-source JavaScript libraries which enable correct display of MathML content across multiple browsers, including those like Google Chrome that do not natively support MathML. MathJax also has a number of accessibility benefits. For example, MathJax allows equations to scale up without a loss of resolution for low-vision users who require magnification. It also provides flexible navigation and exploration options, such as the ability to collapse parts of a complex equation. These features can aid understanding of mathematics for everyone.  

Getting started with MathJax is easy. All you need to do is include the following snippet of code to the HEAD section of an HTML document:

<script type="text/javascript"

src="http://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML">

</script>

Once you have added the call to MathJax in the HEAD section of your document, you can insert MathML code enclosed by the <math> and </math> tags. An optional attribute (display="block") can be used to place the expression on its own line. The default is for the MathML to be displayed in-line. It is also recommended that the <math> tag include a namespace attribute (xmlns="http://www.w3.org/1998/Math/MathML") as a best practice.

MathML Cloud

MathML Cloud is a cloud-based open source tool from Benetech. It was originally developed in response to the slow progress of MathML support, which resulted in many publishers providing math equations as images without text descriptions. With MathML Cloud, math content is exported as both MathML and images (in PNG and SVG formats) that include alternative text for accessibility with screen readers. Publishers with a large number of files can process them in an automated fashion using MathML Cloud’s API. 

Amazon Polly

Amazon Polly is a service for creating speech applications, including ones with an auditory presentation for math content. It provides many options for customizing the speech output by using Speech Synthesis Markup Language (SSML), a W3C standard for speech synthesis applications. SSML tags can be used to change phrasing, emphasis, intonation and more. A full list of supported SSML tags for Polly is available on the Amazon Polly website.