On the EPUB 3 W3C Community Group, there was recently a new discussion about the support of MathML by EPUB readers. Such discussions often mix the situation in e-readers and the one in reading apps using browser engines.
Most e-readers develop their own rendering engine and choose their battles carefully; MathML support is so complex that many don’t spend time on it. On the contrary, reading apps based on browser engines (like Readium toolkits) support what the underlying rendering engine does, and most can can alternatively integrate the open source MathJax library.
MathJax is supported by Readium JS (web reader) and will soon be supported as well in the new Thorium Reader (Windows, MacOS, Linux).
MathML support by browsers was discussed (again) last week at the W3C TPAC in Japan: This post is a quick summary of what I learnt there:
Any reading application that is based on the Webkit rendering engine or supports the Mathjax library is able to display MathML. This is the case for Readium JS (the well known web reader) and . And EDRLab will soon have MathML support in its new Thorium Reader (Windows, MacOS, Linux) thanks to MathJax.
To have an up to date overview of the support of MathML in browsers, you can read “MathML and Browsers
” by Igalia. You’ll see here that MathML is already well supported in Webkit (Apple) and Gecko (Mozilla). The consequence is that the Readium Mobile iOS
toolkit (based on Webkit) has a native support for MathML and that Readium Web will have immediate support of MathML if used in Safari or Firefox, but not Chrome or Edge.
Igalia (a Spanish company specialized in developing code for the big browsers) is developing MathML in Chromium
(-> Google Chrome
+ the new Edge
). You can even help financially
. With such support we can expect next year good support on MathML on the Android and Windows platform. It means that Readium Mobile Android
and Readium Web on Window
s will gain a native support of MathML in 2020 and that we should be able to replace MathJax in Thorium
by a native support of MathML via an update of its Chromium engine.
MathML is a complex beast with two variants, presentation MathML and content MathML. From what Igalia engineers told us last week, their work is mostly on presentation MathML. Or more precisely MathML Core (https://mathml-refresh.github.io/mathml-core/
), which certainly is what publishers should embed in EPUB from now on, even if it’s currently a draft.
Note: avoid rendering math equation as images only: this is an accessibility killer.