Accessible Pages with MathJax

MathJax was design with accessibility in mind and has several powerful features to make math easier to see and read, both for ordinary users as well as those with print and learning disabilities. Two accessibility features, the ability to scale all math in a page or zoom in on a particular equation, are built in to MathJax. In addition, MathJax works with MathPlayer to make math accessible to screen readers, to screen magnifiers, and to learning disability software.

Built in Accessibility Features

Because math notation is hierarchical and 2-dimensional, deeply nested subexpressions are often hard to see clearly, especially at screen sizes and resolutions. To help with this problem, MathJax provides two features for enlarging math expressions. The first is the ability to scale all equations in a page by a constant factor, for example, making them display at 150% of their normal size. This can be handy on pages with a small default font size, but it is also a bit jarring. So MathJax also provides the ability to zoom in on a single equation on demand.

As with many MathJax capabilities, page authors can add MathJax configuration code to a page to set a default equation scaling factor for all readers, or individual readers can set a scale factor for a single site by using the right-button context menu. The following picture illustrates how to change to scale of all equations in a page using the context menu. The configuration code an author would add to a page to make a larger scale the default is described in the MathJax documentation.

right context menu for scaling all equations

To zoom individual equations, readers must choose a mechanism to trigger the zoom. For example, one might want to zoom an equation by merely hovering the mouse pointer over it. Another choice might be to zoom when holding down SHIFT and clicking, and so on. By default, no zoom trigger is set, so to turn on zooming, bring up the context menu by right-clicking (if you are using Windows) or control-clicking (if you are using MacOS) on a MathJax equation, and then choosing the Settings | Zoom Trigger menu, and selecting the options you prefer. Note that the Settings | Zoom Factor menu also allows you to change how much an equation zooms.

right context menu for zoom trigger

Instructions for authors wishing to configure MathJax to have a zoom trigger by default are described in the MathJax documentation (see the menuSettings option).

Using MathJax with MathPlayer for Greater Accessibility

MathPlayer is an add-on to Internet Explorer that provides native rendering of math notation encoded in MathML format in web pages when it is installed. MathPlayer can convert math to speech and can also highlight the math as it is spoken, and works with other assistive technology software such as screen readers, screen magnifiers, and learning disability software. The result is industry-leading math accessibility for individuals with print and learning disabilities. A list of Assistive Technology (AT) software that works with MathPlayer and other math accessibility information be found at the Design Science accessibility web site.

Since MathJax can convert TeX to MathML, the combination of MathJax and MathPlayer can make many more web pages, blogs, and wikis accessible. The example shown below is written in TeX and is accessible if you are reading this using IE+MathPlayer:

\[ x=\frac{-b \pm \sqrt {b^2-4ac}}{2a} \]

To Make a Page Accessible with MathJax and MathPlayer

To make a page accessible, MathPlayer needs to be responsible for rendering math in the page. By default, MathJax attempts to render MathML markup itself, and thus, in order to work together with MathPlayer, MathJax needs to know to pass MathML markup on to MathPlayer for accessible rendering. There are two ways that this can be done.

The author of a page can add markup to a page to configure MathJax, so that MathML is passed on to the browser whenever that is possible by default. In this mode, MathJax will detect when MathPlayer is installed in IE (or when a reader is using another MathML-capable browser) and in these cases, pass the MathML on for processing. The other option is that an individual reader can use the MathJax context menu to tell MathJax to use the MathML renderer if it isn’t already. With this method, an individual user can ensure MathJax and MathPlayer will work together, regardless of the default behavior determined by the page author.

For use with MathPlayer, set MathJax to use “MathML” as the renderer as shown below:

right context menu for selecting MathPlayer as the renderer

MathJax will remember these setting for a web site, but you will need to do this again when you visit another site.

If you are an author of a web page, you can ensure MathPlayer will make math accessible when available by configuring MathJax so that it uses a native MathML renderer when one is present and in other cases falls back on MathJax doing the rendering otherwise. To do this, you need to use the MMLorHTML configuration file to prefer native MathML in IE (and Firefox) as described in the MathJax documentation.

25 Responses to Accessible Pages with MathJax

  1. Great job! We will definitely look into this technology for delivering accessible textbooks. As an alternative to MathPlayer, have you found any open source libraries for converting MathML to natural language (English for starters) that can be fed to a TTS (text-to-speech) engine?

  2. tito drago says:

    este trabajo es extraordinario , gracias a todos ustedes
    exitos

  3. Keegan Berry says:

    Gerardo, I have been looking around a lot for the same thing you are wanting and I haven’t found anything yet. MathPlayer doesn’t seem to speak everything perfectly (some of my variables were read incorrectly and it skipped over some fundamental elements of an equation), so I hope we can eventually find or create something.

  4. Paul Topping says:

    Keegan, please send details of any math speech problems in MathPlayer to support@dessci.com. We think it has the best math-to-speech capability around and we are interested in fixing problems or in hearing any feedback you might have.

  5. Neil Soiffer says:

    I want to second what Paul Topping said: software only improves if you report the problems you found with it. We are working on a new release of MathPlayer for the spring. If you send us your bugs, they can get fixed in that new version. The new version will work even better with MathJax and supports over a dozen languages.

    MathPlayer is by far and away the most used math accessibility solution around. In the fall of 2010, over five million expressions were spoken with MathPlayer via screen readers and other assistive technology. See http://accessiblemath.dessci.com/2011/01/mathplayer-usage-takes-off.html for more details. I don’t think you will a better solution.

  6. Keegan Berry says:

    Paul, I’ll try to compile some specific information and contact you. I agree that reporting bugs helps software; I didn’t realize MathPlayer was still being developed/updated.

  7. Simone Sca says:

    I’m using MathJax for first time, and I think it’s great!!

  8. Rainmay says:

    MathJax is the right thing I need for typing $\LaTeX{}$ in to HTML.

  9. Alejandro Rodriguez-Ascaso says:

    Thank you for this page, which I found to be really interesting. One comment I have regarding MathPlayer is that it is only available in English, as far as I know. For those using Jaws in Spanish it represents a problem. One possible solution is using Jaws dictionary to replace English terms with their translations to Spanish. We have tried this, and checked that it fails now and then as some terms seem not to be replaced, and as a consequence Jaws will read them in English. Anyhow, translation through Jaws does not seem to be the way to go. Are there any plans to offer Mathplayer in Spanish?

  10. markus says:

    Great!

    Very useful. You should make Mathjax more popular.

    I found it accidentally when I read a blog post of someone who wrote about programming languages. And I then wondered how he made those nice little mathematical images … and right now I try to get Mathjax to run :D

  11. Robert Miner says:

    We would love to make MathJax more popular! We are trying. Help us out by spreading the word if you can, just like the blog where you found out about us.

  12. Phi says:

    Interesting stuff. Works fine in Firefox 5.

    Is there a simple way to transform the Formulas to images (eg. *.PNG) in case the client has JavaScript turned off?
    Something like: Show the Image per default, but iff JavaScript is enabled, hide the image and use “MathJax”?

  13. Pingback: Presenting Scientific Information On The Web | Matthew Spivey

  14. Davide Cervone says:

    @Phi:

    MathJax does not have a way or producing image files for you. You would need to do some preprocessing on the server side to make this work. In that case, you could produce the png images using TeX and dvinpg, for example, and then include the images in noscript tags. In order to prevent the TeX code from showing when Javascript is not enabled, you would need to enclose the TeX in the MathJax script tags (as described in the documentation) rather than using TeX delimiters within the page. Since the page has to be preprocessed anyway, it should not be too hard.

    Davide

  15. Patrick Luedke says:

    I am currently using MathPlayer to ‘speak’ mathematical expressions. However, despite following the instructions above, “For use with MathPlayer, set MathJax to use “MathML” as the renderer as shown below”, I cannot get the quadratic equation audibly rendered as I can when using MathPlayer by itself via its right-click context menu item “Speak Expression”.

  16. Peter Krautzberger says:

    Patrick, there are a lot of improvements in the upcoming v2.0. See for example, this discussion on the MathJax-user mailing list. Maybe you could describe your issues in detail on the mailing list? It would make it easier for us to help you.

  17. Elahe says:

    I’ like to join you and solve many problems in Math.

  18. Elahe says:

    also I study Math. in Iran now and I am accepting for studing this in PHD’s level.

  19. Peter Krautzberger says:

    Hi Elahe, the best way to start contributing is to visit our MathJax User Groups and help people who report problems with using MathJax.

  20. Kevin Remisoski says:

    As far as I now MathJax is a JavaScript application, so that doesn’t seem likely….

  21. This is how the mathjax can work, I haven’t used this before, but recently my friends introduced to me about this. quite good with. javascript.

  22. I have joined the group. Will post on if I find some errors. Thanks.

  23. Deborah says:

    I’m putting together a LiveBinders for Teachers
    for the Visually Impaired and will include MathJax in the Resource section.

  24. mathjax says:

    Be sure to let us know when it’s ready!

  25. Eduniche says:

    Math is
    unique subject , one can get 100% marks in this. This leads to overall
    percent in total marks .

Comments are closed.