Why RTL Support is So Hard

Detours in Abstraction

Aaron Greenwald

Introduction
sinistrodextral
dextrosinistral
boustrophedon
sinistrodextral
dextrosinistral
RTL
boustrophedon
How many languages are RTL languages?
Scripts != Languages
Arabic Arabic, Persian, Kurdish, Pashto, Punjabi, (Azeri), (Kashmiri), (...)
Hebrew Hebrew, Yiddish, (Ladino)
Urdu Urdu
Syriac Syriac, Aramaic
... ... ... ...
500 million
Accessibility
i18n
Culture
Language
Layout
A Change in Perspective...
...With Some Western Hegemony

        

        

        

Are you feeling lucky?
Bidirectional Text
למה?
למה?
? ל מ ה
4 1 2 3
ל מ ה ?
1 2 3 4
למה?
למה?
WHY????
Text Input
Controlling the Chaos
dir="rtl|ltr|auto"
<table/>
flex | flex-start | flex-end
                    
1 2 3
1 2 3
                    
1 2 3
1 2 3
                
1
2
3
1
2
3
                
1
2
3
1
2
3
position:absolute
float:right|left
Unicode Bidi Algorithm
www.unicode.org/reports/tr9/
< 20k Words
Input Streams
Run Levels
So What?
Decide whether you care
Don't throw away a free lunch
Test, review, consult
boustrophedon
Thank You