MathML is the web standard for markup about mathematical content. Just as HTML’s <table>
element provides a standard for expressing and working with text containing tabular relationships, the <math>
element does this for text containing mathematical expressions.
Rendering, styling, and managing the display of either of these textual elements is natively handled by the browser implementation, efficiently and seamlessly, allowing authors to create markup which will produce the appearance and layout they expect without the need to know the many complex things necessary to achieve the same result without these standards.
Because MathML is a standard, it lends itself to machine processing. Tools exist to create, share, understand, and transform content between MathML and other popular formats like LaTeX and ASCII Math.
You can read more about why we think a native implementation is important.
There are many tools which make it possible to create, edit, convert, process, and present MathML content. They include, but are not limited to, the following as of mid-2022:
Handwriting and OCR related:
Efforts like arXMLiv also study the use of Math on the web and its tooling.
All Gecko-based browsers like Firefox, and all Webkit-based browsers like Safari and Epiphany, render MathML natively. In addition, MathML also has a vibrant ecosystem of tools that help create and consume it in interesting ways.
At the present time, Chromium-based browsers (such as Chrome and Edge) do not support MathML rendering. Igalia is actively working on the development of this support. Successful completion of this work means landing support in all remaining browsers and browser-based renderers.
Because the development of MathML support requires code reviews and related discussions before it can be integrated, it is impossible to provide a concrete date at this time. We have, however, set what we believe is a very achievable and safe target goal based on discussions with Google engineers. That goal is to get MathML support fully upstreamed in Chrome by the middle of 2023.
Once support for MathML Core is working as we expect, we will to continue to test, answer questions, and make the refinements necessary for inclusion into Chrome.
With an implementation, all of the tools and integrations fit together nicely and allow the creation, sharing, and consumption of mathematical text.
However, lacking a single browser implementation for rendering leaves a large number of difficult problems and complexity. The fact that the one browser which fails to support MathML happens to be Chromium (Chrome alone had the most market share as of late 2021) further complicates things.
As an end user, you might need to switch browsers whenever you want to view a document containing mathemtical text. As an organization producing documents with mathematical content, or working with mathemtical content, you would be forced to understand and make a selection from a potentially complex series of tradeoffs. Whichever specific tradeoffs you choose, there are costs. The closer you try to approximate what native solutions provide, the higher the costs. Each of those choices guarantees that you will spend more time troubleshooting and will encounter problems with interoperability, performance, and maintenance.
There are a few ways that you can help, and we appreciate all contributions.
Testing is always helpful, and open to anyone using a Chromium browser such as Chrome or Edge. Enable experimental web platform features using one of the methods described in this Google support page, and then try out MathML test pages and markup for yourself!
If you are familiar with Web Platform Tests, you can also contribute to Web Platform Tests for MathML.
The easiest way that you can help is by funding our work. Developing and maintaining a feature such as this is a big investment. The better that work is funded, the more time our developers can dedicate to completing it and maintaining it going forward. We believe that stakeholders are in the best position to support work such as this, which is extremely important to them, but not necessarily to web users in general. Browser vendors have to prioritize what the majority of their users require, but in our experience they welcome contributions from the community. Making such contributions is one of the things that Igalia does. A lot of popular features (CSS Grid, for example) have been implemented by us.