Power Your Software Testing with AI Agents and Cloud
The Native AI-Agentic Cloud Platform to Supercharge Quality Engineering. Test Intelligently and Ship Faster.
- TestMu AI (Formerly LambdaTest)
- /
- Learning Hub
- /
- MathML: Browser Support, Elements, Known Issues
MathML: Browser Support, Elements, Known Issues
MathML works in Firefox 4+, Safari 10+ on macOS, iOS Safari 5+, Chrome 109+, Edge 109+, Opera 95+, and Samsung Internet 21+. Learn the elements and known issues.
Published on:
MathML is a W3C XML-based markup language for describing mathematical notation in web pages and EPUB documents. It works in Firefox 4+, Safari 10+ on macOS, iOS Safari 5+, Chrome 109+, Edge 109+, Opera 95+, and Samsung Internet 21+, while Internet Explorer never added support.
This guide covers what MathML is, the browsers that support it, the key elements, the difference between Presentation MathML and Content MathML, the use cases, and the known issues.
What is MathML?
MathML is the Mathematical Markup Language, an XML-based standard from the W3C for describing mathematical notation. The browser-focused subset is MathML Core, which integrates with HTML, CSS, the DOM, and JavaScript. The current version is MathML 4, while MathML 3 remains a W3C Recommendation.
Which browsers does MathML support?
MathML works in every modern browser. Firefox, Safari, Chrome, Edge, Opera, and Samsung Internet ship MathML by default, while Internet Explorer and the legacy stock Android Browser never added support.
MathML compatibility in Chrome
Chrome supports MathML by default from Chrome 109 on Windows, macOS, Linux, ChromeOS, and Android. Chrome 97 to 108 had MathML disabled by default behind a feature flag, and Chrome 25 to 96 did not include support after an experimental Chrome 24 build was removed for stability.
MathML compatibility in Edge
Microsoft Edge supports MathML from Edge 109 on Windows, macOS, and Linux. Edge 97 to 108 hid MathML behind the same Chromium flag, and Edge 79 to 96 had no support. The legacy EdgeHTML-based Edge 12 to 18 never added MathML.
MathML compatibility in Firefox
Firefox supports MathML from Firefox 4 on Windows, macOS, Linux, and Android. Mozilla's Gecko engine ships the most complete Presentation MathML implementation of any browser, and Firefox for Android renders the same way as the desktop build.
MathML compatibility in Safari
Safari supports MathML from Safari 10 on macOS Sierra and later, and from Safari on iOS 5. Safari 3.1 to 9.1 had partial MathML rendering through an earlier WebKit code path. Modern Safari ships MathML Core through WebKit on both desktop and mobile.
MathML compatibility in Opera
Opera supports MathML from Opera 95 on Windows, macOS, and Linux. Opera 83 to 94 had MathML disabled by default, and Opera 15 to 82 had no support after the engine moved from Presto to Blink. The Presto-based Opera 9.5 to 12.1 had partial MathML.
MathML compatibility in Samsung Internet
Samsung Internet supports MathML from Samsung Internet 21 on Galaxy phones and tablets. Earlier Samsung Internet 4 to 20 had no MathML because they shipped Chromium builds before MathML Core was upstreamed.
MathML compatibility in Android Browser
Chrome for Android supports MathML from Chrome 109 on Android 7.0 and later. The legacy stock Android Browser on Android 2.1 to 4.4.4 never added MathML. Modern Android phones should rely on Chrome for Android, Firefox for Android, or Samsung Internet for full support.
MathML compatibility in Internet Explorer
Internet Explorer never added MathML. IE 5.5 to 11 do not parse the math element at all, so equations render as plain text or empty space. Sites that still need IE coverage should load MathJax to render MathML through JavaScript in every unsupported browser.
Note: MathML rendering breaks across older Chrome, legacy Edge, and Internet Explorer. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
What are the key elements of MathML?
MathML defines 32 core elements. The MDN reference groups them by purpose: math container, tokens, layout, scripts, tables, and semantics. Pages mix these tags inside a single math block to render any equation.
- math: The root element. Every MathML expression sits inside a math block, with display set through the display attribute.
- mi, mn, mo, ms, mtext: Token elements that wrap an identifier, number, operator, string literal, or text run.
- mrow: A grouping element that renders its children on the same row, similar to a span in HTML.
- mfrac: Renders a fraction with a numerator on top of a denominator separated by a horizontal bar.
- msqrt and mroot: Render a square root or an n-th root with a radical sign.
- msub, msup, msubsup: Render subscripts, superscripts, or both on a base expression.
- mover, munder, munderover: Place an accent or limit above, below, or both around a base expression.
- mtable, mtr, mtd: Render a math table for matrices and aligned equations, similar to HTML table markup.
- semantics, annotation, annotation-xml: Attach Content MathML, LaTeX, or other annotations to a Presentation MathML expression.
What is the difference between Presentation MathML and Content MathML?
Presentation MathML describes how an equation looks. Content MathML describes what an equation means. Browsers only render Presentation MathML, while Content MathML feeds computer algebra systems, semantic search, and accessibility tools.
| Dimension | Presentation MathML | Content MathML |
|---|---|---|
| Purpose | Visual layout of an equation | Mathematical meaning of the expression |
| Core elements | mi, mn, mo, mfrac, msqrt, msup, mtable | apply, ci, cn, plus, eq, integrate |
| Browser rendering | Rendered natively by Chrome 109+, Edge 109+, Firefox 4+, Safari 10+ | Not rendered by any browser; ignored or fed through a polyfill |
| Used by | Web pages, EPUB readers, screen readers | Computer algebra systems, semantic search, voice synthesis |
| MathML Core support | Full support in MathML Core | Out of scope for MathML Core; only the parent MathML 4 spec covers it |
| Typical pairing | Wrapped in a semantics block with a Content MathML annotation | Embedded as an annotation-xml sibling of Presentation MathML |
What are the use cases of MathML?
MathML is used wherever mathematical notation needs to render reliably and stay accessible. Schools, journals, e-readers, and documentation sites are the biggest adopters.
- EPUB and digital textbooks: EPUB 3 mandates MathML for math content, so every modern e-reader on iOS, Android, and Kindle ships a MathML renderer.
- Scientific journals and arXiv: Publishers convert LaTeX to MathML so equations render in HTML alongside the article body, with no image fallback.
- Online assessment platforms: Math testing tools like Wiris and Desmos embed MathML in question stems so the equations stay searchable, copyable, and screen-reader friendly.
- Accessibility for blind and low-vision readers: Screen readers like NVDA, JAWS, and VoiceOver speak MathML expressions in natural language, while plain images of equations stay silent.
- Wikipedia and encyclopedic sites: Wikipedia ships MathML alongside SVG and PNG fallbacks so articles render in every modern browser without external scripts.
- Library and framework documentation: SciPy, NumPy, and TensorFlow docs use MathML to render formulas in API references so developers can copy them straight into Python or LaTeX.
What are the known issues with MathML?
MathML works well in Firefox and Safari, but Chromium-based browsers and older mobile builds still trip up production sites. The biggest hits are stale Chrome installs, Internet Explorer, and font fallback gaps.
- Chrome 25 to 96 dropped MathML completely: After the experimental Chrome 24 build was removed for stability, Chrome had no MathML for nearly a decade. Sites that needed Chrome support during that window had to load MathJax.
- Chrome 97 to 108 hide MathML behind a flag: The MathMLCore flag at chrome://flags#enable-experimental-web-platform-features had to be on, otherwise math elements rendered as raw text.
- Internet Explorer never added it: IE 5.5 to 11 do not parse the math element. The MathPlayer plug-in used to fill the gap, but Microsoft removed it from active distribution.
- Font fallback varies across operating systems: MathML uses OpenType Math fonts, and Linux distributions without Latin Modern Math or STIX Two Math render some symbols as empty boxes. Ship a self-hosted Math font with a CSS @font-face block to avoid this.
- Content MathML is not rendered by browsers: Browsers only render Presentation MathML. A page that ships pure Content MathML inside apply tags shows nothing visible, so wrap it in a semantics block with a Presentation MathML annotation.
- Older Android Browser falls through to plain text: The stock Android Browser on Android 2.1 to 4.4.4 had no MathML renderer, so cleanup logic for legacy traffic still needs MathJax as a fallback.
- Screen reader voicing still varies: NVDA on Windows reads MathML well, but VoiceOver on iOS and macOS can stumble on long matrices and align environments. Test every equation with a real screen reader before shipping.
In my experience, the MathML font fallback is the trap that bites teams the most. A page reviewed on macOS looks perfect, but a Linux Firefox tester sees half the equation rendered as small empty rectangles, and the team spends an afternoon hunting before realizing the host operating system never installed Latin Modern Math.
Citations
All MathML version numbers and platform notes in this guide come from these primary sources:
- MDN Web Docs - MathML: developer.mozilla.org/en-US/docs/Web/MathML
- W3C - Mathematical Markup Language (MathML) Version 4.0: w3.org/TR/mathml4
- W3C - MathML Core specification: w3c.github.io/mathml-core
- W3C - What is MathML?: w3.org/Math/whatIsMathML.html
- Wikipedia - MathML: en.wikipedia.org/wiki/MathML
- Igalia - MathML in Chromium FAQ: mathml.igalia.com/faq
- Igalia - MathML in Web Browsers: mathml.igalia.com
- Chrome for Developers - MathML Core in Chrome 109: developer.chrome.com/blog/new-in-chrome-109
- WebKit blog: webkit.org/blog
- Mozilla Hacks - Firefox release notes: hacks.mozilla.org/category/firefox
- MathJax - MathML Support documentation: docs.mathjax.org/en/latest/input/mathml.html
- University of Washington AccessComputing - What is MathML?
Author
Prince Dewani is a Community Contributor at TestMu AI specializing in AI agents, software testing, QA, and SEO. He is certified in Selenium, Cypress, Playwright, Appium, Automation Testing, and KaneAI, and presented academic research on AI agents at PBCON-01. At TestMu AI, he has also carried out extensive cross-browser research on the support of modern web technologies such as WebGPU, WebAssembly, WebXR, WebGL2 and other web technologies, validating their compatibility and feature parity across major browsers and rendering engines through rigorous hands-on testing. Prince has hands-on experience building AI agent workflows using Anthropic Claude, Google Antigravity, n8n, LangChain, and other agentic frameworks, and works regularly with MCP and A2A protocols. He shares his work with 5,500+ QA engineers, developers, DevOps experts, tech leaders, and AI agent practitioners on LinkedIn.
Frequently asked questions
Did you find this page helpful?
More Related Blogs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance
- Advanced access controls
- Advanced data retention rules
- Advanced Local Testing
- Premium Support options
- Early access to beta features
- Private Slack Channel
- Unlimited Manual Accessibility DevTools Tests





