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.