Hello,
My previous email was generated from the information of chromestatus.com
<http://chromestatus.com> ; I’d like to elaborate a bit more about the
situation of MathML in Chromium. In 2019, we published a roadmap [1]
which we basically implemented downstream the same year. As of today, we
consider this roadmap complete upstream, modulo imperfect math layout of
stretchy operators due to the limitation of the current LayoutNG
architecture (the rendering team is aware of that and consensus is that
it’s ok for a first implementation).
In addition, we have been receiving feedback from various people and
tried to adjust our initial roadmap accordingly:
1. Some concerns were shared by some browser vendors, TAG members or
some participants to the “Getting Math onto Web Pages CG” and are
summarized on the official TAG’s feedback [2]. During these recent
years, we’ve collaborated with the MathML and CSS working groups as
well as browser vendors to publish specifications & tests that
address these concerns. This also added many new tasks on the
roadmap (e.g. new CSS properties, MathMLElement IDL, mixing with
CSS/SVG, etc).
2. MathML supporters have also been asking a more complete support for
MathML3 features, raising concerns about backward compatibility.
Apple shares this concern about breaking content from their
applications (e.g. Apple Books) and is generally reluctant to remove
shipped features. Mozilla has been more positive about that and
several patches landed to unship legacy features with low usage. We
decided to solve that disagreement by publishing two specifications:
MathML Core (intended to be implemented in browsers) and a superset
called “MathML Full”. Polyfills for MathML features that are not
part of the core spec have also been written. Incidentally, the
layering/extensibility effort for (1) became instrumental to write
such polyfills.
3. We also received feedback about making MathML accessible, so we
added that in our plan. We implemented parity with Gecko/WebKit for
macOS/NSAccessibility and Linux/ATK. We’ve also been working on a
corresponding MathML AAM specification to standardize existing
support and we wrote (currently internal) tests for that. Other
platforms (Windows, ChromeOS, Android) don’t seem to have any
special way to expose MathML nodes to assistive technologies, so
instead we continue to rely on existing DOM-based approaches.
4. Finally, a lot of users have praised our work, tested existing
support by enabling web platform features, reported bugs and they
keep asking us when this is going to be officially shipped.
Hopefully this intent-to-ship will allow to address that last
feedback :-)
At that time, we believe the implementation is good enough for a first
release. To be fully transparent these are known issues:
* There are bugs to fix or more features users would like to see. We
expect the layering/extensibility approach will make possible to
work around current limitations.
* Not all operating systems come with a pre-installed OpenType MATH
font, which means poor math rendering on such systems by default.
However, Windows has Cambria Math pre-installed and things seem to
improve on the macOS & Android side [3]. The workaround for that is
to use web fonts (on pages or as a web extension).
* There are a few interactions with CSS properties (e.g. width/height,
out-of-flow, etc) that we would like to clarify in the spec and/or
the implementation and ensure we have interoperability tests for
that. These are likely edge cases for MathML authors but can be
important for polyfills.
That’s it, we are looking forward to hearing your feedback !
[1] https://mathml.igalia.com/project/
[2]
https://github.com/w3ctag/design-reviews/issues/313#issuecomment-460523527
[3] https://frederic-wang.fr/update-on-open-type-math-fonts.html
--
Frédéric Wang
--
You received this message because you are subscribed to the Google Groups
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/7af80b42-9838-d0cf-8e6c-aabf6a7fb2d5%40igalia.com.