As of today (2025-10-14), I intend to turn support for mirroring RTL MathML stretchy operators using the |rtlm| feature on by default. It has been developed behind the |mathml.rtl_operator_mirroring.enabled| preference.

*Summary*: 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. Firefox previous implementation mirrored the original glyph using a reflection on a vertical axis, but this may change the meaning for asymmetrical characters, such as the clockwise contour integral.

Correct mirroring when writing RTL math is important for Arabic mathematical notation <https://en.wikipedia.org/wiki/Modern_Arabic_mathematical_notation>.

See the following explainer by Frédéric Wang for an overview of the different cases: https://people.igalia.com/fwang/mathml-operator-mirroring-explainer.html

*Bug*: https://bugzilla.mozilla.org/show_bug.cgi?id=945183

*Bug to turn on by default*: https://bugzilla.mozilla.org/show_bug.cgi?id=1994172

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

*Standards Body*: W3C.

*Platform coverage*: All platforms.

*Preference*: |mathml.rtl_operator_mirroring.enabled|

*Other browsers*:

 * Blink: shipped in version 140 under the experimental
   |MathMLOperatorRTLMirroringEnabled| flag, planning an intent to ship
   as well.
 * WebKit: work in progress.

*web-platform-tests*:

 * New tests to check both types of mirroring:
     o |/mathml/presentation-markup/operators/character-level-mirroring.html|
       
<https://github.com/web-platform-tests/wpt/blob/master/mathml/presentation-markup/operators/character-level-mirroring.html>
     o |/mathml/presentation-markup/radicals/glyph-level-mirroring.html|
       
<https://github.com/web-platform-tests/wpt/blob/master/mathml/presentation-markup/radicals/glyph-level-mirroring.html>

--
You received this message because you are subscribed to the Google Groups 
"[email protected]" 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/mozilla.org/d/msgid/dev-platform/7e7fabe9-6aea-4c0e-863a-bece17f27732%40igalia.com.

Reply via email to