-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
MathML Support In Browsers
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.
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 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.
See also the MathML-in-MathJax tracking bug.
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.
See also the MathML-in-MathJax tracking bug.
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.
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.
Command | MathPlayer | Firefox | Webkit | Opera |
---|---|---|---|---|
sqrt | ? | ? | ? | ? |
Elements (basic support) | MathPlayer | Firefox | Webkit | Opera |
---|---|---|---|---|
<mi>, <mn>, <mo>, <mtext>, <ms> | Yes | Yes | ? | ? |
<mrow> | Yes | Yes | ? | ? |
<mfrac> | Yes | Yes | ? | ? |
<msqrt> | Yes | Yes | ? | ? |
<mroot> | Yes | Yes | ? | ? |
<mstyle> | Yes | Yes | ? | ? |
<merror> | Yes | Yes | ? | ? |
<mpadded> | Yes | Yes | ? | ? |
<mphantom> | Yes | Yes | ? | ? |
<mfenced> | Yes | Yes | ? | ? |
<menclose> | Yes | Yes | ? | ? |
<msub>, <msup>, <msubsup> | Yes | Yes | ? | ? |
<munder>, <mover>, <munderover> | Yes | Yes | ? | ? |
<mmultiscripts> | Yes | Yes | ? | Limited |
<mtable> | Yes | Yes | ? | ? |
<mtr> | Yes | Yes | ? | ? |
<mtd> | Yes | Yes | ? | ? |
<maligngroup> | ? | No | ? | ? |
<malignmark> | ? | No | ? | ? |
<mstack> | ? | No | ? | ? |
<mlongdiv> | ? | No | ? | ? |
<msgroup> | ? | No | ? | ? |
<msrow> | ? | No | ? | ? |
<mscarries> | ? | No | ? | ? |
<mscarry> | ? | No | ? | ? |
<msline> | ? | No | ? | ? |
<mglyph> | ? | No | ? | ? |
<maction> | ? | Yes | ? | ? |
<semantics> | ? | Partial | ? | ? |
Feature | MathPlayer | Firefox | Webkit | Opera |
---|---|---|---|---|
Operator Stretching | Yes | Yes | Partial | No |
Embellished Operators | Yes | Yes | No | No |