Ready for Developer Testing: Mirroring of RTL MathML operators

6 views
Skip to first unread message

Chromestatus

unread,
Oct 14, 2025, 9:53:10 AM (yesterday) Oct 14
to blin...@chromium.org, e...@igalia.com, fw...@igalia.com
Contact emails
e...@igalia.com, fw...@igalia.com

Specification
https://w3c.github.io/mathml-core/#layout-of-operators

Summary
Support for character-level and glyph-level mirroring when rendering MathML operators in right-to-left mode. When using RTL mode some operators can be mirrored by changing them to another code point (e.g. a right parentheses becomes a left parentheses). This is character-level mirroring, with equivalences defined by Unicode's `Bidi_Mirrored` property. There are operators that have no appropriate mirroring character. Glyph-level mirroring applies in this case, with the `rtlm` font feature, where another glyph can replace it in a mirrored context. Some existing implementations mirror the original glyph directly, but this may change the meaning for asymmetrical characters, such as the clockwise contour integral.

Blink component
Blink>MathML

Web Feature ID
mathml

TAG review
None

TAG review status
Not applicable

Risks


Interoperability and Compatibility
None

Gecko: Shipped/Shipping (https://bugzilla.mozilla.org/show_bug.cgi?id=945183) Working implementation shipping under the `mathml.rtl_operator_mirroring.enabled` feature. Planning to send an intent to ship.

WebKit: In development Already has character-level mirroring. rtlm support is being worked on for the harfbuzz ports.

Web developers: No signals

Other signals:

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

None


Goals for experimentation


Ongoing technical constraints
None

Debuggability
None

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
Yes

Is this feature fully tested by web-platform-tests?
Yes
New tests: - Character-level mirroring: checks that when switching text direction the codepoints of the characters change to the corresponding BidiMirrored equivalent (e.g. right to left parentheses) - Glyph-level mirroring: checks that the rtlm font feature is supported and that a specific glyph is used for certain characters when switching text direction.

Flag name on about://flags
None

Finch feature name
MathMLOperatorRTLMirroring

Requires code in //chrome?
False

Tracking bug
https://issues.chromium.org/issues/40120782

Estimated milestones
DevTrial on desktop140
DevTrial on Android140


Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/6317308531965952

Links to previous Intent discussions
Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/686d2758.170a0220.a35ba.00d7.GAE%40google.com


This intent message was generated by Chrome Platform Status.
Reply all
Reply to author
Forward
0 new messages