L2/05-202

Public review issue #72: Stability of the Bidi Mirrored Property

In the Unicode Standard, bracket characters have explicit opening and closing semantics. As a result, in a bidirectional context, their images need to be oriented depending on the writing direction of the text in which they occur. The Bidi Mirrored property defines this behavior. During the development of the standard this property has not been applied fully consistently across all varieties of brackets, leaving a somewhat inconsistent model. For example, the ornate parentheses at U+FD3E and U+FD3F and the compatibility characters listed below are not covered by the mirrored property, which is inconsistent from their compatibility equivalents.

This situation has lead to requests for changes in the Bidi Mirrored property.

However, if the property is changed, any implementation will display the characters in question with their opposite representation in a right-to-left context. This would destabilize existing documents using these characters in such contexts. To prevent the possibility of future changes of the Bidi Mirrored property the Unicode Consortium is considering the adoption of a formal stability policy that would prevent changes in this property once assigned.

This Public Review Issue is intended to solicit input on the best approach to take. The alternatives are:

a) Make the Bidi Mirrored property immutable with current values.

b) Make the Bidi Mirrored property immutable after changing some of the values to make it more consistent.

c) Change some values to make the Bidi Mirrored property more consistent, and also continue to allow future changes.

d) Make no changes now, but leave the possibility for future changes.

Please communicate your preferred approach via the reporting form on the Unicode website and, where appropriate, give a brief rationale for your choice and tell us about length and type of experience with bidirectional text support (user, programmer, native speaker etc.).

If you support choice c or d, you may additionally indicate which characters you think should be added or removed from the Bidi Mirrored property, and give a rationale for your choice. The remainder of this document discusses some of the characters that have been recently suggested for and addition to the Bidi Mirrored property.

The following characters are not mirrored even though they are delimiters:

FE59 OP SMALL LEFT PARENTHESIS
FE5A CL SMALL RIGHT PARENTHESIS
FE5B OP SMALL LEFT CURLY BRACKET
FE5C CL SMALL RIGHT CURLY BRACKET
FE5D OP SMALL LEFT TORTOISE SHELL BRACKET
FE5E CL SMALL RIGHT TORTOISE SHELL BRACKET

The above small-form characters were added for compatibility with certain East Asian legacy character sets and are therefore unlikely to occur in right-to-left context. However, the same is the case for the following mirrored characters:

FF08 OP FULLWIDTH LEFT PARENTHESIS
FF09 CL FULLWIDTH RIGHT PARENTHESIS
FF3B OP FULLWIDTH LEFT SQUARE BRACKET
FF3D CL FULLWIDTH RIGHT SQUARE BRACKET
FF5B OP FULLWIDTH LEFT CURLY BRACKET
FF5D CL FULLWIDTH RIGHT CURLY BRACKET
FF5F OP FULLWIDTH LEFT WHITE PARENTHESIS
FF60 CL FULLWIDTH RIGHT WHITE PARENTHESIS
FF62 OP HALFWIDTH LEFT CORNER BRACKET
FF63 CL HALFWIDTH RIGHT CORNER BRACKET

While this is an apparent inconsistency, it may not matter in practice. On the other hand, for the same reason, making the change may not affect many users directly, but would make it possible to preserve the mirrored property on strings which have been normalized under NFKC or NFKD.

The following quotations marks, while not expected to be used in right-to-left context, are the sole quotation marks that are not mirrored:

301D OP REVERSED DOUBLE PRIME QUOTATION MARK
301E CL DOUBLE PRIME QUOTATION MARK
301F CL LOW DOUBLE PRIME QUOTATION MARK

There is another potential inconsistency among these character that all have general category Sm:

The following are currently not mirrored

007E TILDE
FF5E FULLWIDTH TILDE

00AC NOT SIGN
2310 REVERSED NOT SIGN
2319 TURNED NOT SIGN
FFE2 FULLWIDTH NOT SIGN

While these are mirrored

2AEC DOUBLE STROKE NOT SIGN
2AED REVERSED DOUBLE STROKE NOT SIGN

Changing the behavior of  007E and to a lesser extent 00AC can be expected to affect many more users than any of the other proposed changes.

The complete list of characters with the Bidi Mirrored property can be found in http://www.unicode.org/Public/4.1.0/ucd/BidiMirroring.txt. Note that the full list includes the characters listed in the comment at the end of the BidiMirroring.txt file).

Note: Some characters are consistently not mirrored, even though some uses show definite directionality. This includes all arrow characters. The main rationale is that the semantics of arrows are not unambiguous and for some uses, mirroring may be inappropriate. No change of their status is contemplated.