H2 2024 Updates
Published on July 2, 2025 by Igalia
Summary
This report covers the period from July 1 - December 13, 2024.
For this year, our general goal is to focus on improving interoperability of MathML Core in the different browsers by doing changes in WebKit and Firefox and increasing their [WPT score](https://wpt.fyi/results/mathml?label=experimental&label=master&aligned).
As usual, we continue to be engaged with the community, including participating to the MathML WG and reviewing of patches from developers and MDN contributors. For this semester, we would like to praise the work of David Carlisle and Neil Soiffer (spec editing), Harry Chen and Ahmad Saleem (browser implementation), Vadim Makeev (documentation) and Norbert Preining (math web fonts).
There has been a demand for better CSS support on MathML elements (namely padding, border, margin, width, height properties) that was our main goal for this year. In H2, we finish implementing this support in WebKit and Firefox.
Firefox
* [D219084](https://phabricator.services.mozilla.com/D219084) - Bug 1912870 - Disable mathml.stixgeneral_operator_stretching by default (note: this is about operator stretching via the obsolete STIX General font).
* [D207026](https://phabricator.services.mozilla.com/D207026) - Bug 1890531 - Remove automatic adjustment for "centered operators".
* [D219085](https://phabricator.services.mozilla.com/D219085) - Bug 1904220 - Fix MathML regression with HYPHEN-MINUS not rendered as MINUS SIGN.
* [D217437](https://phabricator.services.mozilla.com/D217437) - Bug 1907082 - Clamp radical kern degrees for mroot.
* [D216980](https://phabricator.services.mozilla.com/D216980) Bug 1908069 - Add border/padding/margin support to msqrt, mroot and menclose.
* [D216924](https://phabricator.services.mozilla.com/D216924) Bug 1908069 - Add border/padding/margin support to scripted elements.
* [D216855](https://phabricator.services.mozilla.com/D216855) Bug 1908069 - Add border/padding/margin support to MathML token elements.
* [D216686](https://phabricator.services.mozilla.com/D216686) Bug 1908069 - Add border/padding/margin support to mrow-like elements.
* [D216670](https://phabricator.services.mozilla.com/D216670) Bug 1908069 - Add border/padding/margin support to <mfrac>.
* [D216684](https://phabricator.services.mozilla.com/D216684) Bug 1908069 - Extend and tweak MathML padding/border/margin tests.
* [D216669](https://phabricator.services.mozilla.com/D216669) Bug 1908069 - Introduce PlaceFlags parameter to MathML layout methods.
* [D222614](https://phabricator.services.mozilla.com/D222614) Bug 1909417 - Position mprescripts at per MathML Core.
* [D218944](https://phabricator.services.mozilla.com/D218944) Bug 1912435 - Make MathML boolean attributes ASCII case-insensitive.
* [D221436](https://phabricator.services.mozilla.com/D221436) Bug 1916988 - Support CSS width/height properties on MathML elements.
* [D222456](https://phabricator.services.mozilla.com/D222456) Bug 1916988 - Set vertical offset of mfrac denominator from the baseline.
* [D221630](https://phabricator.services.mozilla.com/D221630) Bug 1917763 - Do not override MeasureForWidth/Reflow for mroot.
* [D221623](https://phabricator.services.mozilla.com/D221623) Bug 1917763 - Do not override MeasureForWidth/Reflow for mspace.
* [D221789](https://phabricator.services.mozilla.com/D221789) Bug 1917763 - Remove eCSSUnit_Number handling from nsMathMLFrame::ParseNumericValue.
* [D221613](https://phabricator.services.mozilla.com/D221613) Bug 1917763 - Do not override MeasureForWidth/Reflow for mpadded.
* [D221612](https://phabricator.services.mozilla.com/D221612) Bug 1917763 - Refactor parsing of mpadded attributes.
* [D221921](https://phabricator.services.mozilla.com/D221921) Bug 1917763 - More consistent handling of MathML's AttributeChanged().
* [D221611](https://phabricator.services.mozilla.com/D221611) Bug 1917763 - Remove PlaceInternal methods from MathML layout classes.
* [D221925](https://phabricator.services.mozilla.com/D221925) Bug 1918308 - Don't always force a reflow in nsMathMLContainerFrame::AttributeChanged.
* [D222080](https://phabricator.services.mozilla.com/D222080) Bug 1918308 - Add WPT test for dynamic change of the MathML href attribute.
* [D222074](https://phabricator.services.mozilla.com/D222074) Bug 1918308 - Add dynamic tests for mtable@align/frame/width attributes.
* [D221990](https://phabricator.services.mozilla.com/D221990) Bug 1918308 - Remove dead code for legacy MathML color/background attributes.
* [D222258](https://phabricator.services.mozilla.com/D222258) Bug 1918310 - Remove class nsMathMLmsqrtFrame.
* [D222123](https://phabricator.services.mozilla.com/D222123) Bug 1918310 - Make mroot and msqrt should share their implementation.
* [D222260](https://phabricator.services.mozilla.com/D222260) Bug 1918989 - Remove disabled SHOW_BOUNDING_BOX MathML code.
WebKit
* Support CSS width/height properties on MathML elements [#35031](https://github.com/WebKit/WebKit/pull/35031)
* Sync mathml/ from WPT upstream [#34921](https://github.com/WebKit/WebKit/pull/34921)
* Sync mathml/relations/css-styling from WPT upstream [#34828](https://github.com/WebKit/WebKit/pull/34828)
* Use RenderBoxModelObject::borderAndPadding*() functions in various places [#34351](https://github.com/WebKit/WebKit/pull/34351)
* Refactor MathML padding/border handling [#34159](https://github.com/WebKit/WebKit/pull/34159)
* Remove always disabled DEBUG_MATH_LAYOUT define [#34155](https://github.com/WebKit/WebKit/pull/34155)
* Remove legacy MathML pixel test roots.xhtml [#30895](https://github.com/WebKit/WebKit/pull/30895)
* MathML <mroot>: clamp RadicalKernBefore/AfterDegree [#30651](https://github.com/WebKit/WebKit/pull/30651)
* Support padding/border/margin on RenderMathMLToken [#30640](https://github.com/WebKit/WebKit/pull/30640)
* Support border/padding/margin on RenderMathMLOperator [#30635](https://github.com/WebKit/WebKit/pull/30635)
* margin and preferred width calculation for MathML elements [#30604](https://github.com/WebKit/WebKit/pull/30604)
* Remove legacy padding/margin rules from MathML UA stylesheet [#30599](https://github.com/WebKit/WebKit/pull/30599 )
* Support border/margin/padding on msub/msup/msubsup [#30565](https://github.com/WebKit/WebKit/pull/30565)
* Support border/margin/padding on munderover/munder/mover [#30560](https://github.com/WebKit/WebKit/pull/30560)
* Support border/padding/margin on RenderMathMLRow and subclasses [#30517](https://github.com/WebKit/WebKit/pull/30517)
* Support border/margin/padding on mfrac and mspace elements [#30485](https://github.com/WebKit/WebKit/pull/30485)
* Fix scriptlevel multipler (font-size) MathML [#34974](https://github.com/WebKit/WebKit/pull/34974)
* [Gardening] Amend test expectations for 2x imported/w3c/web-platform-tests/mathml/presentation-markup/operators/* WPT tests [#34769](https://github.com/WebKit/WebKit/pull/34769)
* Sync mathml/relations/html5-tree from WPT upstream MathML [#34695](https://github.com/WebKit/WebKit/pull/34695)
* Sync mathml/crashtests from WPT upstream MathML [#34447](https://github.com/WebKit/WebKit/pull/34447)
* REGRESSION (282319@main):[ wk1 and iOS] 3 tests in imported/w3c/web-platform-tests/mathml/presentation-markup are consistent failures. New Bugs [#33049](https://github.com/WebKit/WebKit/pull/33049)
* Make all elements in MathML namespace to be display: block and few other updates MathML [#32243](https://github.com/WebKit/WebKit/pull/32243)
* Import new mathml/presentation-markup WPT tests [#31762](https://github.com/WebKit/WebKit/pull/31762)
* Consistent handling of out-of-flow children in MathML layout functions MathML [#31676](https://github.com/WebKit/WebKit/pull/31676)
* Import new presentation-markup/mrow WPT tests MathML [#30954](https://github.com/WebKit/WebKit/pull/30954)
* [MathML] Layout invalid markup as an `<mrow>` MathML [#30705](https://github.com/WebKit/WebKit/pull/30705)
Chromium
* [5924353](https://chromium-review.googlesource.com/c/chromium/src/+/5924353): Account for spacing around `mo` in WPT test width-height-001.html
* [5941615](https://chromium-review.googlesource.com/c/chromium/src/+/5941615) Update legacy-mrow-like-elements-001.html to expect display `block math'
Misc
* Spec changes: https://github.com/w3c/mathml-core/commits?since=2024-07-01&until=2024-12-31
* Test changes: https://github.com/web-platform-tests/wpt/commits/master/mathml?since=2024-07-01&until=2024-12-31
* MDN changes: https://github.com/mdn/content/issues?q=label%3AContent%3AMathML+is%3Aclosed
* BCD changes: https://github.com/mdn/browser-compat-data/pulls?q=is%3Apr+label%3Adata%3Amathml+is%3Aclosed
* Math fonts: https://github.com/fred-wang/MathFonts/pulls?q=is%3Apr+is%3Aclosed