Also note:
https://www.w3.org/International/questions/qa-bidi-controls.en
BiDi may be done at higher level. So, maybe for simplicity sake, we
should leave all but simple case to a different layer.
giacomo
On 2025-04-08 16:34, NeatNit via Unicode wrote:
Hi, I hope this is the right place to bring this up. I could not find any
discussions on this other than the document I quote.
Quick intro: characters with the property Bidi_Mirrored=Yes will be visually mirrored
within RTL text, such as Hebrew or Arabic. An easy example is the Greater Than
symbol: A>B and א>ב.
Arrow characters do not have this property: A→B but א→ב.
I've found this discrepancy mentioned in this document:
https://www.unicode.org/L2/L2022/22026r-non-bidi-mirroring.pdf
In particular, arrow and arrow-like characters
each often has a mirror character. One could
argue that they should have had the
Bidi_Mirrored=Yes property value, but they
don’t, and cannot now get that.
Even if it weren't for Unicode's stability policies, there are two distinct
usages of arrow symbols:
To indicate directions, e.g. "Turn left (←) and then right (→)" - in this case the arrow
refers to the physical direction and should not be mirrored in RTL. The existing arrow characters
serve this purpose well: "פנה שמאלה (←) ואז ימינה (→)"
As an operator: "Convert A->B and assign C<-D" - in this case the arrow direction should be mirrored if it
appears in RTL text. Currently this can only be emulated with ASCII "->" as I've just demonstrated. Result:
"המר א->ב וקבע ג<-ד".
Therefore I think there should be new characters, "Forward Arrow" and "Backward
Arrow", to serve the latter case. They would use the same glyphs as existing arrows, but have
the Bidi_Mirrored=Yes property.
Please let me know if this is likely to happen, and what I would have to do to
make a proper proposal. And if any of you are convinced enough that you would
like to make a proposal on my behalf, you are welcome to do so!
The same reasoning can be applied to many other characters besides these basic
arrows. At minimum, all arrow and arrow-like characters should be included. I
haven't made a thorough search to find all affected characters, at least not
yet.
Note that some software, such as the Discourse forum software, convert "->" to
"→" in user content, obviously unaware of this issue. These proposed bidi-mirrored arrow
characters would be an appropriate replacement in such cases. Today, that simple search-and-replace
must be replaced with parsing the text using the full Unicode Bidi algorithm to select the correct
arrow, and even then some cases would be impossible to determine without knowing the base direction or
more context which is not always available.
Awaiting your comments.
Thanks,
Nitai