v140 · miscellaneous

Mirroring of RTL MathML operators

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.

concepts

  1. RTL Math

    MathML operators mirror in right-to-left contexts. Brings Chrome in line with how RTL math is rendered in print.

  2. Arabic Equations

    Both mirroring layers: parentheses get a different Unicode codepoint, the contour integral hooks the other way via the font's rtlm OpenType feature.

  3. Operator Glossary

    20+ MathML operators rendered LTR and RTL side-by-side, with the Bidi_Mirrored status spelled out for each.

  4. Equation Toggle

    Four real equations — Pythagoras, an inequality, a definite integral, an arrow chain — each rendered in LTR and RTL, with Arabic glyphs swapped in.

  5. Bidi Text Integration

    Arabic prose with inline MathML equations. Toggle LTR / RTL / Auto on the container — operators mirror in context. Three examples: algebraic inequality, physics integral, fraction with arrows. An operator mirror table shows which MathML operators do and don't mirror.

why it shipped

Arabic mathematical notations require rendering math operator in right-to-left mode, where operators need to be correctly mirrored.

references