<div style="font-family: 'verdana'; font-size: 12px; color: #000;">I'm afraid, that this would open Pandora's box for more homograph attacks. ∃ (U+2203) is already a confusable for E in a BiDi context. But this would add more characters like ꟼ (U+A7FC), ⅃ (U+2143) or ↋ (U+218B) to the list.</div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"> </div>
<div id="sub-body-container" style="margin: 10px 5px 5px 10px; padding: 10px 0px 10px 10px; border-left: 2px solid rgb(195, 217, 229);">
<div style="margin: 0px 0px 10px;">
<div><strong>Gesendet: </strong>Donnerstag, 10. April 2025 um 00:02</div>
<div><strong>Von: </strong>"Nitai Sasson via Unicode" <unicode@corp.unicode.org></div>
<div><strong>An: </strong>unicode@corp.unicode.org</div>
<div><strong>Betreff: </strong>Re: Proposing new arrow characters with Bidi_Mirrored=Yes</div>
</div>
Okay, this tangent about ligatures is totally off-topic. There are other cases where arrows are used as operators or relations within text, so mirroring arrows are still needed even if they aren't the best solution for the specific issue of showing "->" as an arrow. Eli, we can continue in private emails if you want, I don't want to spam this thread with it.<br><br>I am absolutely devastated because I just spent hours writing this email and Proton Mail just made it disappear. So until I can recover that draft, please make do with this condensed rewritten version:<br><br>Firstly, you guys should know that Unicode BiDi is FANTASTIC. It makes everything work. It makes everything easy. Developers are happy to fix bidi bugs within a day because it's so easy. This is an absolute win for everyone.<br><br>Have some examples:<br><a href="https://github.com/pachli/pachli-android/pull/906" target="_blank" rel="noopener noreferrer">https://github.com/pachli/pachli-android/pull/906</a> - fixes linked issue, see how minor the code change is and how great the benefit!<br><a href="https://github.com/OSMCha/osmcha-frontend/pull/766" target="_blank" rel="noopener noreferrer">https://github.com/OSMCha/osmcha-frontend/pull/766</a> - this previously-linked issue was similarly easy<br><a href="https://github.com/openstreetmap/openstreetmap-website/pull/5835" target="_blank" rel="noopener noreferrer">https://github.com/openstreetmap/openstreetmap-website/pull/5835</a> - as was this (though it took me a while to find the right option), in the end it was just one line change for a HUGE improvement for all BiDi users<br><br>You're wondering if it was a good move to make characters mirror at all? YES IT WAS. Templates like "%s (%s) %s" work universally. Imagine what would be required to make that template work if parentheses didn't mirror in RTL! How many developers would agree to make the effort to do that, and introduce that complexity into their codebase? Nearly none, and RTL users would be left in the dirt. Unicode's BiDi is a godsend.<br><br>Arrows are the only exception. They are the one thing that Unicode does not give developers an easy BiDi solution for. And they are what I want to fix.<br><br><br><br>The Proposal Idea<br>=================<br><br>(with credit to Mark E. Shoulson)<br><br>Define a new combining character:<br><br><BDM> Bi-Directional Mirror (working title)<br><br>Binds to the preceding character, and effectively gives it the property Bidi_Mirrored=Yes.<br>Only has an effect on characters with Neutral directionality. Does nothing to characters with strong or weak LTR or RTL directionality.<br><br>Examples:<br>Within RTL text:<br>U+05D0 א HEBREW LETTER ALEF<br>U+2192 → RIGHTWARDS ARROW<br><BDM> Bi-Directional Mirror<br>U+05D1 ב HEBREW LETTER BET<br><br>Renders as: א←ב<br>(Without <BDM>: א→ב)<br>Arrow direction is flipped because it's resolved RTL<br><br>Within LTR text:<br>U+0041 A LATIN CAPITAL LETTER A<br>U+2192 → RIGHTWARDS ARROW<br><BDM> Bi-Directional Mirror<br>U+0042 B LATIN CAPITAL LETTER B<br><br>Renders as: A→B<br>(Without <BDM>: A→B)<br>Arrow direction is maintained because it's resolved LTR<br><br><br>That's it. I honestly cannot think of any issue or potential pitfall with this solution. The only substantial negative feedback I've seen is that control characters haven't always turned out well in the past. That's a reason to be cautious, not to reject the idea outright.<br><br><br></div>