BidiMirrored property and ancient scripts (Was Re: Plain text custom fraction input)

From: Frédéric Grosshans <>
Date: Thu, 23 Jul 2015 12:00:06 +0200

Le 23/07/2015 00:54, Richard Wordingham a écrit :
> Which means that Ancient Egyptian hieroglyphs are unencoded! Their
> default direction is right-to-left, but that's only the start of the
> trouble. The encoded hieroglyphs aren't Bidi-mirrored, so if I embed
> then in a right-to-left override, I should get retrograde characters.
The text of the standard say that they should be mirrored in this case.
The version 7.0.0. has the following comment on Egyptian hieroglyphs :
(p424, p9 of pdf) :

    “When left-to-right directionality is overridden to display Egyptian
    hieroglyphic text right to left, the glyphs should be mirrored from
    those shown in the code charts.”

Similar comments are present for other historic script (Italic, Runic),
but also Old North Arabian, which is encoded as RTL but “Glyphs may be
mirrored in lines whenthey have left-to-right directionality”. This kind
of implementation at the font level is perfectly possible and is indeed
done sometimes (see e.g. Andrew West’s anglo-saxon runic fonts

The BidiMirrored property is not adapted in this case because, it is for
a few “characters such as parentheses” (Unicode8.0.0, §4.7 p180=pf 23 of
ch04.pdf), and it is thought for a LTR default : it can in no way
consider the case of Old North Arabian.

Extending this property for whole scripts would be a lot of work, and
should be more than a Y/N property as currently, since it should account
for cases where the glyph are

 1. always mirrored (Egyptian, Italic, Runic. Greek ?),
 2. sometimes mirrored (I have examples of both cases in Latin. North
    Arabian seems to be in this case too),
 3. never mirrored (Han),
 4. not exactly mirrored ( like for U+2232 CLOCKWISE CONTOUR INTEGRAL
    and U+221B CUBE ROOT )
 5. And also when the behaviour under direction change is undefined (I
    have difficulties to guess what it means to have LTR Arabic or
    Syriac, or RTL Devanagari. Maybe there are some traditions for some
    complex scripts, but it makes no sense to invent a uniform behaviour
    for them)

Currently a BidiMirrorred=N can mean anything of the above, and
BidiMirrored=Y means (1. or 4.).

By the way, I think a comment should be added in the §4.7 of the
standard to clarify that the BidiMirrored property is not intended for
cases like hieroglyphs or italic.

Received on Thu Jul 23 2015 - 05:03:39 CDT

This archive was generated by hypermail 2.2.0 : Thu Jul 23 2015 - 05:03:39 CDT