Contact emails
[email protected], [email protected]

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 (eg 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


Motivation
Arabic mathematical notations require rendering math operator in right-to-left 
mode, where operators need to be correctly mirrored. Sometimes, a simple 
horizontal flip is not enough. In the case of asymmetrical glyphs like a 
clockwise contour integral doing so would change the meaning of the symbol. 
That's why both character-level mirroring and glyph-level mirroring is needed 
to produce a correct mathematical expression in RTL mode. The following 
explainer shows the different cases to consider when mirroring stretchy 
characters, as well as the proposed MathML Core spec amendments to support this 
use case: 
https://people.igalia.com/fwang/mathml-operator-mirroring-explainer.html


Initial public proposal
No information provided


TAG review
No information provided


TAG review status
Not applicable


Risks




Interoperability and Compatibility
No information provided

Gecko: Shipped/Shipping (https://bugzilla.mozilla.org/show_bug.cgi?id=945183) 
Shipped under the `mathml.rtl_operator_mirroring.enabled` flag. Will be enabled 
by default once Firefox 146 releases.

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?
No information provided



Debuggability
No information provided


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 (eg 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
No information provided


Finch feature name
MathMLOperatorRTLMirroring


Rollout plan
Will ship enabled for all users


Requires code in //chrome?
False


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


Availability expectation
Feature already available on Firefox and partially available on WebKit, with 
plans to make it fully available within the next months.


Adoption expectation
Feature is used for the case of rendering right to left math.


Adoption plan
It will ship enabled by default so users can start benefiting from it.


Non-OSS dependencies

Does the feature depend on any code or APIs outside the Chromium open source 
repository and its open-source dependencies to function?
No.


Estimated milestones


Shipping on desktop 144

DevTrial on desktop 140

Shipping on Android 144

DevTrial on Android 140

Shipping on WebView 144

Shipping on iOS 144




Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop 
issues. Please list open issues (eg links to known github issues in the project 
for the feature specification) whose resolution may introduce web 
compat/interop risk (eg, changing to naming or structure of the API in a 
non-backward-compatible way).
No.


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


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
Ready for Trial: 
https://groups.google.com/a/chromium.org/g/blink-dev/c/IpmWeJSPR0g



This intent message was generated by Chrome Platform Status.

-- 
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 visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/69048958.710a0220.23debc.007c.GAE%40google.com.

Reply via email to