Skip

Making math a first class citizen on the Web

Facilitator: Neil Soiffer

Speakers: Brian Kardell

The MathML Refresh CG is forming a WG and we would like to discuss our proposed charter with interested parties. The group has coordinated with the CSS WG, WhatWG, and TAG over some issues and there are many remaining open questions involving Shadow DOM, Houdini, Links, the accessibility tree, search and other parts of the Web platform.

Slides

Minutes (including discussions that were not audio-recorded)

Previous: MDN Developer Need Assessments: results and next steps - TPAC 2020 breakout All breakouts Next: Voice Agents

Skip

Skip

Transcript

Okay, so I just wanna give people a sense of what we'll here to do.

Brian will talk about the status of MathML.

Then I'll talk about what's in what we call math MathML Core, and what's not in.

Talk about the charter that we're gonna propose in a few weeks and then we're gonna open it up for discussion.

So Brian, go ahead and take it away.

Okay, you can see my slides?

Yeah.

Okay, all right.

So yeah, Welcome, we wanted to start with some history on where things are for people who might not know.

So all the way back when the web was created there were two things that were obvious needs that the web didn't have yet.

There were math and graphics.

So when the W3C was started these were two things that were taken up immediately.

And two of the first specs that we got were MathML and SVG and math was the markup standard for displaying all the maths.

That's the idea.

It was integrated into the HTML parser, these two they're very special.

Even if your browser doesn't render things they do parse them correctly.

And for one brief shining instant we had four of the five major implementations that had some implementation of MathML support that it's not to say they were all good.

Some of them were pretty bad.

And in fact, there were lots of questions and open challenges that people had.

We're changing the way that we think about specs, the way that we do specs trying to increase interoperability.

And so when Blink split from WebKit, MathML was removed and this began this long period of limbo for math on the web.

And this question of where does this leave MathML?

Is it a standard?

Is it not a standard?

Is it going to eventually get done?

Is it not?

Are we starting over?

This is a shame because MathML has this amazing ecosystem outside of browser implementations.

And it has lots of content like millions of MathML on Wikipedia alone and two of three remaining browser engines support it.

And it's one of the most starred bugs on Chromium.

But since we didn't have it if you were to pull something up, say two years ago in your Chromium browser, it would render like this which is gibberish because it should look like this.

And as you see, without that we lose the content that's really important.

And so that's obviously not acceptable.

And so we rely on trickery, we turn it into images or we use JavaScript to convert a tree into a tree that draws those things for you manually.

But that's silly for text math is text, the ability to render and share research and texts is not controversial.

It's kind of the point of the web.

And math is an important part of every writing system.

And in fact, our entire society is built on things that rely on us being able to share and understand text and make it accessible.

This is especially important, if, for example, hypothetically, we were in the middle of a pandemic and wanted to share research about COVID.

This is I think necessary or if our children are being educated from home and they need to learn math, I think you can see why these are societally important issues.

So how do we resolve this is the question and the MathML Refresh Community Group got together to solve this problem.

And one of the things that we did is to split what was the old MathML specification into a thing called Core and then a thing called Core that extends I think called Full that extends Core and Core is focused on the things that are the intersection is the things are supported by at least some browsers, in some sense things that are supported by tools things that have a lot of existing content.

And so we created the MathML Core draft and this aims to resolve a lot of mismatches from the past.

It specifies all of those things that were unspecified in previous areas, how it integrates with HTML and CSS and SVG and the DOM even things like this that seemed really, really basic did not work in any browser a couple of years ago.

And today they do thanks to this work.

There's lots of things about CSS integration and some new CSS resolutions to make this all work well.

And this allows us to approach it the way that we approach modern standards and create tests that we agree that these are the tests that work and they are according to the spec.

So my company Agalia also led the charge to provide an implementation.

We spent last year developing a prototype downstream so that we could answer many of the hard questions and have a good proposal.

And with those web platform tests in hand, you can see that this is the implementation report that we have.

There was about 2,400 tests and various browsers passing various numbers of them.

Now you might ask why would these ones that already had MathML be less?

And that's because there were no actual answers or interoperability to a lot of these questions.

So everybody is kind of answering parts of these questions for the first time.

And that's what these tests indicate.

But just to show that this is not like somebody pushing, these have actually gone up by hundreds in the past year and even last year this is what that level of interoperability look like.

So this is a very high bar that we're setting now actually.

I think that even last year, this is very good and this year it has only gotten better by hundreds.

So we're hoping to finish up our Level 1 implementation in Chromium by the end of 2020, we recently had a tag review complete.

And we think that that was really, really good.

And we believe that we have good foundations in Level 1.

Neil's gonna tell you more about what is, and isn't in Level 1 and why we think it's really well integrated with the platform.

And we're looking forward to discussing our proposed charter and moving math on the web forward as a first-class citizen because what we wanna do is resolve this problem where there is no question that MathML is part of the web that is just as much a part of the web as headings and tables and paragraphs.

So thank you.

Please lend your support in any way that you can.

Support the charter, join the working group once it's established during the community group in the meantime file bugs or come talk to us about how we can help.

Thanks.

So yeah.

So thanks Brian.

So what's in Core, a lot of stuff's in Core.

So scripts, subscripts and superscripts, limits and accents, fractions, roots, large operators the stretchy characters, tables so that you can do matrices and determinants and a proper math typography which is really about specifying a lot of the low level details of math layout.

So in this particular example which is the standard deviation example you'll see that the fraction has a large capital end but you'll see the smaller end sitting on top of the summation sign.

You'll see different spacing around the equal signs in the outside Sigma equals and the summation sign equals one.

And there's even a little different spacings for the equals and the minus.

So that's all proper math typography.

So that's all part of Core.

And so you may be saying, well, that looks like pretty much all a math and it is a lot of math.

It's not quite everything.

So what's not in Core, right now we're gonna have a Core Level 2 and that'll incorporate some more things.

So one thing is line breaking and indentation.

So if you have a larger expression needs to break and then it needs to figure out how to indent.

Often the indentation wants to come back to say an equal sign or something.

And so you align equal signs and that equation, when it breaks.

Bevelled fractions which is used for inline math sometimes.

Elementary math that's been very poorly supported both on the web and outside the web tools don't do that well, it's a little bit different than other kinds of math because it represents a process, but we hope to there is a polyfill now for that and perhaps someday that'll join Core.

There's a thing called menclose close which is a useful for strikeouts, as in the example there and have some other uses most mstyle attributes labeling rows in a table.

So often you say this is equation number 3.1 and you want it to align with the rest of the equation.

So that's not in there now.

Links, MathML 3 said links belong on all elements, but links are problematic.

So that's not in Core at the moment.

Number of little used L attributes that were part of MathML 3 are not in Core.

And also there was some obscure and mostly unimplemented tags for alignment.

So now I wanna move on quickly to the charter and just cover what's in the charter.

And so the scope is we're obviously gonna develop some racks and Test suites.

We really wanna clarify as Brian has talked about the current use of web technologies, like JavaScript APIs and CSS integration, we want to identify some requirements normative requirements that for accessibility to make sure that there's some minimal levels of accessibility associated with MathML.

It's actually quite good now better than display but it's all kind of ad hoc at the moment.

And so we want to try and push that forward and make it official.

And we're also looking at removing some elements and attributes from MathML that really have had minimal adoption and usage.

What's out of scope is we're not gonna add some new elements that are for use outside of the platform.

MathML is used widely outside of the web, but we don't for this group.

We're not planning to add anything new there.

We wanna try and stabilize it in that sense.

We don't want to remove things from MathML that has significant usage.

So the goal here is to make sure that all the current MathML continues to work, that's being used widely.

As I said, there are a few things that are obscure that people have not really taken up.

And so that we may drop.

We are not gonna remove Content MathML. The MathML spec really has two parts.

One is about display and one was about semantics.

This semantics part, hasn't had wide adoption.

And we're looking at adding some more ways of allowing authors to specify author intent in MathML presentation, and perhaps in the future that will be powerful enough to eliminate the need for content MathML, but that's not part of this goal for this round of the charter.

So the deliverables as Brian mentioned is Core Level 1 which is what we discussed there and that's, what's specified.

And I seem to have lost my links there.

I guess maybe I didn't put them in there, Core Level 1 which we have a reasonable start at us back on.

We also want to deliver a Core Level 2 which, to which the idea is we wanna talk about the things that we plan to do next and that we know should be in Core at some point, but it's too much to do as the first bite and then MathML Full.

So that wants to realign itself pointing off to Core hopefully shrinking this back significantly when we do that but still describing the Full MathML that's used outside of the web also.

So all the things that were in MathML 3 that are used would be in part of Core.

And then we have some non-normative deliverables.

So obviously there's some Test suites and implementation reports for the spec.

We wanna describe accessibility techniques how people can make math more accessible especially with the new ideas about offering intent.

We hope to have at least one TeX-to-MathML converter that incorporates the accessibility and sociability annotations in the MathML output.

Again, Code to convert Content MathML to presentation with accessibility and search annotations.

Again, to see about the equivalence of the ideas that we have for enhancing presentations so that it's more accessible and I've committed and hopefully we'll get some other people to commit that we'll be able to have some code that converts presentation MathML in to speech or Content MathML that takes advantage of these new author intents so that you don't end up with a speech that's not proper for the thing.

So at this point, I wanna open this up real soon to the discussion, just briefly, some of the ideas like to get some charter feedback, especially around polyfilling and extending MathML shadow DOM especially for those elements of MathML that aren't in Core it'd be nice to be able to have the polyfills cleaner.

So shadowings maybe some of the non-core MathML elements adding some more new elements that people might do.

Again, that I'm talking about layouts for CSS and Houdini, Fonts, Linking.

One of the issues is there's a initial beginning for accessibility mappings for MathML.

So that's definitely a topic to discuss.

Search is something we haven't really talked about today but searching for math would be an interesting topic to talk about and lastly, as Brian likes to say, the elephant in the room is who's gonna do all the work.

Agalia has spent a long time in the last two years probably Brian, where they've been doing this they did the first part that was funded by some outside sources but they've mostly been funding it recently with their own internal resources.

There hasn't been a lot of vendor support from MathML.

It's not that they don't like MathML as far as I know, but the actual commitment to spend dollars on it, hasn't really been there.

And then there's some other implementations that people have sort of committed to.

So that's great.

They're gonna do some work I've listed a few here.

So with that, let's stop the recording and let's open it up for discussion.

Skip

Sponsors

Platinum sponsor

Coil Technologies,

Media sponsor

Legible

For further details, contact sponsorship@w3.org