Skip

MathML Core

Presenter: Brian Kardell
Duration: 5 min

MathML-Core is a new specification which carefully defines a subset of MathML 3 which is implemented in browsers and describes its platform integration with HTML, CSS, JavaScript and SVG.

All demos

Skip

Video

All right, let's talk about math on the web.

The need to render mathematical texts to communicate ideas that math helps with has been obvious since the very beginning.

HTML+ even had an element that for this.

So when W3C came along, it's no surprise that MathML was one of the first thing that was taken up, reach recommendation in 1998.

When HTML5 came along, SVG and MathML were integrated right into HTML5, you could intersperse them.

And the only trouble with this is that math is about text.

And it's a text that requires layout.

Without support, it just falls apart.

And with support, it looks nice, and you communicate your ideas about math, these complex ideas.

So as we were gaining implementations, when Blink was created, it removed the MathML implementation that was in there.

And so this has been the case, we've been kind of stuck on how to move this forward, what to do.

Until recently, when we found a way forward and we recharted the math working group.

And in here, you can see announcements and you can talk about MathML 4 and MathML Core.

MathML 4 is revisiting what it means to be interoperable and looking at the realities and implementations.

And it is importantly basing itself on MathML Core, which is strictly about what is implemented in browsers and how that's supposed to work and integrate with the platform.

So the reason for MathML Core is because the MathML 3 was full of things that no browser ever implemented.

In fact, there are things in there that no tool ever implemented.

So MathML Core is based on implementations and the uses that we see in the wild.

It tries to correct things about the co-evolutionary features of MathML.

And some of them, for example, predates CSS and they don't have strict definitions.

What does it even mean to be a math color.

So we, in MathML core, specify all these things as presentational hints, and we give solid units and how it's supposed to work.

We point to those in existing places in the platform.

And really, a lot of this is aligning with CSS and how we think about how you style and layout things with CSS.

But it also lacked common definitions in the DOM.

Everything was just an element, it didn't have standard things like the style property.

So we also went through and specified the IDL for things.

Now you can note that I mentioned that Chrome was a problem.

But here, you see Chrome passing these tests.

That's because my company Igalia has been working with financial support for many people, and including a large investment on our own.

And doing MathML Core, the first implementation specifically of MathML Core in Chromium.

And as part of this, we have defined tests, tests, tests, many tests.

All of the implementations, despite them not implementing, specifically MathML Core, are over 96% because MathML Core is based on implementation.

So what remains is the sum of the sort of integrations with other parts of the platform.

So what that means, though, in terms of actually rendering math, even complex math is that we have really nice and pretty good interoperability between all the engines now.

We have good integration of HTML, SVG, MathML, Canvas, you can kind of mix these together and foreign objects, and it's really nice.

So in late July, Igalia sent and intend to ship and we hope that in a few months, we will be having native math on the web in every engine.

But there is much much left to do.

Once we ship this, we still have interop work for core level one in Safari and Firefox.

And those last miles are hard.

That's what standards are really good as those last miles.

But then even once that's done, we need a level two.

There are things that we left out of level one purposely that are important to integrate with the platform and get it links and ShadowDOM and also intent semantics, which was another talk that we'll be had about that.

So how we can help?

You can join the math working group, and attend.

There's two separate meanings, so you can join lists.

And you can also support the collective.

Your organization can help support it financially through this collective.

All right, thanks.

Skip

All demos

Skip

Sponsors

Support TPAC 2022 and get great benefits from our Sponsorship packages.
For further details, contact sponsorship@w3.org

Many thanks for sponsoring TPAC:

Silver sponsors

Gooroomee Coil Technologies,

Bronze sponsor

Igalia

Media sponsor

Legible