Back to news
"Improving the Web commons"

Igalia is always looking for ways to fund our work on important commons infrastructure. We’ve been part of the Interop project since the beginning, and each year it helps browser vendors prioritize long-standing interoperability gaps. But the web platform is huge, and some important work never quite makes the cut, so it lingers.

Last year, Igalia submitted a proposal to the Sovereign Tech Fund with a collection of things that lacked interoperability but which, for whatever reason, always fell into this black hole. Thankfully, they accepted the proposal and contracted us, and here is an (incomplete, for brevity’s sake) account of some of the things that we were able to accomplish thanks to that investment.

MathML-Core

While our work to bring MathML to Chromium involved the definition of MathML-Core in order to align MathML with the rest of Platform, it meant that those alignments with, for example, CSS were not uniform in other browsers.

Thanks to the Sovereign Tech Fund investment, we were able to bring missing support where it was needed: font-family: math, math-shift, math-depth, scriptlevel and font-size: math are also now supported across all three browsers, greatly improving math readability. All are also now animatable.

We were also able to land extensive support for different types of RTL mirroring, allowing for correctly rendered formulas written using Arabic mathematical notation. Both character and glyph mirroring are available in all three browsers now.

Further still, we modified the existing legacy implementations to match the new specification in several ways, and significantly increased the number of tests that we have for MathML and their quality, adding ~400 new subtests and improving pass rates across engines. Code coverage for MathML is also very high, at 99% for Chromium and 91% for Firefox. The browser compatibility data in MDN was also updated with new MathML Core improvements, and all browsers show good improvement.

CSS Typed OM

Firefox was the only browser to not implement CSS Typed OM. With this investment, it’s not only shipping by default, and passing close to 92% of relevant web platform tests, but the work largely exists in the shared Rust Stylo codebase - so Servo can gain from it as well.

Besides implementing the CSS OM API, significant effort was put into expanding Web Platform Test coverage, investigating differences between browser engines, fixing tests, and participating in specification discussions. When the specification, tests and existing implementations didn’t agree, resolving the intended behavior often required looking at all three together before implementing. As a result, the project improved not only Firefox’s implementation, but also the interoperability tests and the specification itself.

The Close Watcher API

When the project began, only Chromium had finished implementing this API, but Firefox shipped part-way through, leaving Safari as the only mainstream browser without an implementation.

Thanks to the Sovereign Tech Fund, the project not only finished the implementation of the main Close Watcher API but also its integration with HTML’s popover attribute and <dialog> element. This involved a number of specification alignments within the existing close watcher infrastructure, as well as fixes to the dialog element. As the close watcher infrastructure integrated into popover and dialogs is such a core building block, this work has enabled WebKit to behave interoperably in a number of scenarios, especially those involving more than one dialog and popover element.

Many thanks to the Sovereign Tech Fund for contracting this work.