Skip to content

MathML Support In Browsers

Frédéric Wang edited this page Apr 16, 2012 · 12 revisions

MathML Support in Browsers and MathML output Jax

Introduction

This page describes MathML support in browsers and how well they display the code generated by MathJax. Compared to MathJax the browser's MathML rendering engines are generally faster but of lower quality.

It is intended to serve as a help for people who have plan to use mathematical formulas in their applications or Web content and are trying to find the best solution between a MathML output or other output formats provided by MathJax. It is also a way for the MathJax team to decide on which browser the MathML output processor should be enabled by default and for the users to determine which rendering mode to choose. This document may eventually encourage browser vendors to improve their MathML layout engines by suggesting them to focus on MathJax's needs.

General remarks

Internet Explorer

Internet Explorer does not support MathML and there are no apparent plans to add such support, although others of their products like Microsoft Word have long been able to handle this language.

To remedy this situation, Design Science provides the MathPlayer plug-in which gives a good MathML support to Internet Explorer. The Design Science and MathJax teams collaborate to ensure that MathPlayer works well with MathJax and keep MathPlayer's layout engine the default renderer for Internet Explorer.

MathJax works with MathPlayer to make math accessible to screen readers, to screen magnifiers, and to learning disability software. See Accessible Pages with MathJax for details.

Firefox

Firefox has a good MathML support and should work well with the code generated by MathJax in most situation provided you install mathematical fonts. However because of some rendering issues, the MathJax team decided to disable Firefox's native MathML by default. In particular we do not recommend to use this rendering if you plan to make heavy use of equation labelling or formula linebreaking.

Webkit

Webkit has an experimental MathML implementation which is enabled in Safari but the support is still limited and the rendering quality not very high. This implementation has not passed Google's security review and so is not integrated yet in Chrome.

Opera

Opera has a support for a subset of MathML implemented using a CSS stylesheet. This choice of implementation design implies several issues, including a bad quality. This may be acceptable for elementary mathematical notations but is not recommended for complex formulas or in cases where the rendering quality is an essential point.

Supported input commands and MathML elements

We give tables indicating support for various MathJax input commands provided by the TeX and AsciiMath processors and mention potential issues. In theory, one can use the MathML input processor to enter arbitrary input allowed by the MathML 3 recommendation. We give a general overview for elements, attributes or general MathML features supported by MathJax. For details, please read the browser vendors documentation.

TeX input processor

Command Test MathPlayer Firefox Webkit Opera
Accents (\acute, \grave, \bar, \overline, \underline, \vec, \dot, \ddot, \dddot, \ddddot, \tilde, \widetilde, \check, \hat, \widehat, \mathring, \breve) LaTeXToMathML/above-below/accents-1.html ? Yes ? ?
\skew LaTeXToMathML/above-below/accents-2.html ? Bug 656429 ? ?
\sqrt LaTeXToMathML/roots/sqrt-1.html, LaTeXToMathML/roots/sqrt-2.html ? Yes ? ?

AsciiMath input processor

Command MathPlayer Firefox Webkit Opera
sqrt ? ? ? ?

MathML input processor

Element MathPlayer Firefox Webkit Opera
<msqrt> Yes Yes Yes Yes
Feature MathPlayer Firefox Webkit Opera
Operator Stretching Yes Yes Partial No
Embellished Operators Yes Yes No No
Clone this wiki locally