Mathematical Markup Language (MathML) Version 4.0

W3C Editor's Draft

More details about this document
This version:
https://w3c.github.io/mathml/
Latest published version:
https://www.w3.org/TR/mathml4/
Latest editor's draft:
https://w3c.github.io/mathml/
History:
https://www.w3.org/standards/history/mathml4/
Commit history
Editor:
David Carlisle (NAG)
Former editors:
Patrick Ion
Robert Miner (deceased)
Feedback:
GitHub w3c/mathml (pull requests, new issue, open issues)
Latest MathML Recommendation
https://www.w3.org/TR/MathML/

Abstract

This specification defines the Mathematical Markup Language, or MathML. MathML is a markup language for describing mathematical notation and capturing both its structure and content. The goal of MathML is to enable mathematics to be served, received, and processed on the World Wide Web, just as [HTML] has enabled this functionality for text.

This specification of the markup language MathML is intended primarily for a readership consisting of those who will be developing or implementing renderers or editors using it, or software that will communicate using MathML as a protocol for input or output. It is not a User's Guide but rather a reference document.

MathML can be used to encode both mathematical notation and mathematical content. About thirty-eight of the MathML tags describe abstract notational structures, while another about one hundred and seventy provide a way of unambiguously specifying the intended meaning of an expression. Additional chapters discuss how the MathML content and presentation elements interact, and how MathML renderers might be implemented and should interact with browsers. Finally, this document addresses the issue of special characters used for mathematics, their handling in MathML, their presence in Unicode, and their relation to fonts.

While MathML is human-readable, authors typically will use equation editors, conversion programs, and other specialized software tools to generate MathML. Several versions of such MathML tools exist, both freely available software and commercial products, and more are under development.

MathML was originally specified as an XML application and most of the examples in this specification assume that syntax. Other syntaxes are possible, most notably [HTML] specifies the syntax for MathML in HTML. Unless explicitly noted, the examples in this specification are also valid HTML syntax.

Status of This Document

This section describes the status of this document at the time of its publication. A list of current W3C publications and the latest revision of this technical report can be found in the W3C standards and drafts index.

Public discussion of MathML and issues of support takes place on the public mailing list of the Math Working Group (list archives). To subscribe, send an email to www-math-request@w3.org with the word subscribe in the subject line. Alternatively, report an issue at this specification's GitHub repository.

A fuller discussion of the document's evolution can be found in I. Changes.

Some sections are collapsed and may be expanded to reveal more details. The following button may be used to expand all such sections.

This document was published by the Math Working Group as an Editor's Draft.

Publication as an Editor's Draft does not imply endorsement by W3C and its Members.

This is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to cite this document as other than a work in progress.

This document was produced by a group operating under the W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent that the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

This document is governed by the 18 August 2025 W3C Process Document.

Issue summary