I’ve been filing bugs for areas of the app where we currently do not correctly 
support Right-To-Left languages. This is all very interesting. It is not just 
about text flowing from right to left, but also how for example pages are 
swiped, how grid layouts flow and how the UI in general looks like. Mostly 
things are mirrored.

    
https://bugzilla.mozilla.org/showdependencytree.cgi?id=1160759&hide_resolved=0

This is not all there is to do, but it is  pretty good start I think. I have 
tried to break down a bunch of things into smaller parts where possible.

The RTL team has attaches a great review to that bug too, be sure to check it 
out. Although it seems a lot of the issues they reported have been resolved 
without us doing any work. Possibly recent iOS updates have improved the 
situation greatly.

Some obervations:

Many of these bugs are very low hanging fruit and easy to fix. Some, like the 
URL Bar, are more difficult. Many of these are great contributor or starter 
bugs.

In many cases where we go wrong, it is just a matter of changing AutoLayout 
rules to stop using left/right and start using leading/trailing. The 
leading/trailing attributes are flipped on RTL, so if you layout a UI relative 
to those, things usually ‘just work’.

Some things seem to work with fixed position (in points) of UI items. If that 
was not for a good reason then we should convert that code to use AutoLayout.

Apple has made a huge effort to let standard UIKit components behave correctly. 
For example a UIPageControl (the ‘dots’ control) just works correctly. Even a 
UICollectionView for the tabs tray aligns correctly without work needed.

Things go mostly wrong where we deviate and do not use standard controls. For 
example Top Sites has its own UICollectionViewLayout. (Can we kill it, i don’t 
think we need it anymore) Or the history and bookmarks browsers render their 
own navigation top bar with a back button.

Fortunately most of these are easy to fix, but I think it shows how important 
it is to always prefer standard controls where possible. This probably also 
wins us better accessibility support.

Testing RTL is pretty easy. In the Scheme settings you can set the application 
language to “Right To Left Pseudolanguage”. This renders the app in English, 
but with RTL layout rules applied. This is something we must do by default when 
testing every new UI change.

There is a mailing list, dev-...@mozilla.org, where discussions are happening.

I would love to move this forward enough so that we can start including the 
locales, Arabic and Persion, that have been ready for some time but have not 
shipped because the app does not work correctly.

With the ‘RTL Pseudolanguage’ option, anyone can work on RTL bugs. You don’t 
need to be a native speaker.

 S.

_______________________________________________
mobile-firefox-dev mailing list
mobile-firefox-dev@mozilla.org
https://mail.mozilla.org/listinfo/mobile-firefox-dev

Reply via email to