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, [email protected], 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
[email protected]
https://mail.mozilla.org/listinfo/mobile-firefox-dev