TPAC Breakout: Making Math a First Class Citizen on the Web
MathML Status
-
MathML 1.0 — 1998; Currently at V3, 2nd Edition (2014)
-
Support in Firefox and Safari, but some incompatibilities around the edges
-
Lots of stuff under specified, unusual qualities in those implementations (DOM APIs), how CSS should/shouldn't work for those
-
Parsed, but not rendered/otherwise supported in Chrome, Edge
-
Very well supported by AT (JAWS, NVDA, Safari, ORCA)
-
MathJaX JS library is main way of displaying math
-
MathML Refresh CG
(2019)
-
Core
(explainer)
-
Polyfills
-
Improved accessibility by allowing authors to specify intent.
As an example, one proposal is that the binomial
could be marked up as:
<mrow intent="binomial(@1,@2)">
<mo>(</mo>
<mfrac linethickness="0pt">
<mi arg="1">n</mi>
<mi arg="2">m</mi>
</mfrac>
<mo>)</mo>
</mrow>
-
Work by Igalia
(Chrome/Edge under experimental flag: chrome://flags/#enable-experimental-web-platform-features)
-
Bringing other implementations closer together
-
Have thousands of WPT
What is in core and what is not
- In:
- scripts — \(x^2\), \(y_1\)
- limits/accents — \(\displaystyle\lim_{x→0} \frac{x}{\sin x}\), \(\hat{y}\)
- fractions — \(\frac{x+y}{x-y}\)
- roots — \(\sqrt{x}\), \(\root{3} \of x\)
- large operators — \(\displaystyle\sum x_i\)
- stretchy chars — \(\displaystyle\big(\sum x_i\big)\cdot\big(\sum y_i\big)\), \(\overbrace{x+y}\)
- tables —
- proper math typography — spacing, size changes, script positioning...
- Out (for now):
- linebreaking & indentation
- bevelled fractions—
- left/center/right alignment in fractions & limits
- elementary math —
-
menclose
—
- most
mstyle
attrs
- labeled rows in tables
- most attributes for tables/rows
- links (MathML 3 allows links on all elements)
- little-used attrs
- obscure and mostly unimplemented tags for alignment
-
Scope
-
Development of recs and test suites
-
Clarifications to the current use of Web Platform technologies, such as supported JavaScript APIs and CSS modules.
-
Integration of new and existing Web Platform technologies, including, but not limited to hyperlinks, DOM APIs,
Shadow DOM and Custom Elements, CSS
-
Identification of normative requirements needed to ensure accessibility
-
Removing elements and attributes from MathML that have had minimal adoption
-
Out of Scope
-
Adding new elements for use exclusively outside the platform
-
Changes that would cause legacy MathML that has significant usage to stop working on the Web Platform or elsewhere.
-
Changes to Content MathML. These will be considered at a later time after gaining experience and feedback from proposed additions to enhance accessibility and searchability in Presentation MathML.
-
Normative Deliverables
-
Core Level 1
-
Core Level 2
-
MathML Full
-
Non-normative Deliverables
-
Test suites and implementation reports for the specification
-
MathML Accessibility Techniques
-
At least one TeX-to-MathML converter that incorporates accessibility/searchability annotations in its MathML output.
-
Code to convert Content MathML to Presentation MathML with accessibility and searchability annotations.
-
Sample code for conversion of annotated Presentation MathML to an external form such as speech and/or Content MathML
Discussion Topics
-
Charter feedback
-
Polyfilling or extending MathML
-
shadow DOM
-
custom elements
-
CSS layout API or other Houdini APIs
-
Fonts
-
Linking
-
Accessibility mappings of elements and attributes.
-
Search for math
-
Who’s doing the work?
-
Igalia -- needs a long term funding solution
-
Vendor support?
-
Other implementations
-
Håkon Wium Lie (Prince formatting engine)
-
TeX to HTML/MathML translators (target core, include author intent)
-
NVDA’s MathML support to make use of author intent