Igalia Brings MathML Back to Chromium
Since the beginning of the Web itself, there has been interest in making it possible to create beautiful math on the Web. An early specification was MathML, which was supported in Mozilla and WebKit, with that support migrating into the Blink engine when it forked off from WebKit.
But then, for various reasons, MathML was removed from Blink in 2013 and didn’t return — until today. Thanks to the tireless work of Igalia’s Frédéric Wang and other team members, standardization groups, and more, an implementation of the MathML Core specification is in the release of Chrome 109 stable, meaning support for MathML is now enabled by default for all users.
MathML Core is “a core subset of Mathematical Markup Language… that is suitable for browser implementation”. It was essentially created by looking at the MathML 3 specification, pulling out the parts that felt implementable, and writing detailed rendering rules and automated support tests for those parts. This work included defining how CSS and MathML interoperate.
“This is the first example I know of that a major, major feature is really coming to the Web despite there not really being a business case for the business that normally advance the Web,” said Rick Byers of the Chrome team at Google. That was all made possible thanks to a threefold approach: the workers at Igalia collectively committing to making the necessary long-term investment in specification writing and coding; monetary support from the National Information Standards Organization (NISO) via a grant from the Alfred P. Sloan Foundation, Pearson, and APS Physics; and community support via the MathML-Core Open Prioritization collective.
“The integration with the CSS engine leads to some really cool use cases. You can put inputs and various textareas inside of MathML code,” points out Ian Kilpatrick of Google. “Things like backgrounds working consistently so you can highlight or style various parts of an equation.” This includes support for the following CSS features:
mathvalue for the
mathvalue for the
math-autovalue for the
In short, this release takes Chrome from last to first in terms of browser support for MathML Core and the features it defines. If you’d like to know more, please listen to our special episode of Igalia Chats, published today; watch the talk “Shipping MathML in Chrome 109” by Frédéric Wang; and see Google’s article about features in Chrome 109.
This is a significant milestone in support for MathML, but the work continues. If you want to help us do that work, please consider contributing to the MathML-Core Open Prioritization collective. Your contribution will allow us to more quickly advance the MathML Core specification and increase browser interoperability by working on MathML support in other engines.