I'm living in Japan. And time to time, I'm confronted with issues on the Japanese market when using Firefox on Mobile (Firefox OS and Firefox for Android). There's a situation in Japan which has similarities with the Chinese Market. For example, many sites have been designed with old WebKit CSS properties only, such as flexbox. The sites have not been updated to the new set of properties.
We started our testing with a list of around 100 Japanese Web sites. This list needs to be refined and improved. After a first batch of testing one year ago, we ended up with a list of about 50 sites having some issues. Most of them have been tested against a Firefox OS User Agent aka something like
User-Agent: Mozilla/5.0 (Mobile; rv:40.0) Gecko/40.0 Firefox/40.0 (the version number is irrelevant).
Here I'm making a summary of the issues to help us
- refine our future testing
- have a better understanding of the issues at stake
Type Of Issues
- HTTP Redirection to a mobile domain based on
navigator.userAgenton the client side through
- Content customization based on
- Display of a banner to switch to a mobile version of the site based on
navigator.userAgent. Example: Asahi Web site
- Receiving a mobile site with outdated WebKit CSS only properties
Todo List For Better Testing
- Most of these are only the surface as we have tested most of the time, only the home page. We need to try to test a couple of subpages
- The sites need to be tested again with screenshots for:
- Firefox OS User Agent (
User-Agent: Mozilla/5.0 (Mobile; rv:40.0) Gecko/40.0 Firefox/40.0).
- Firefox for Android User Agent (
User-Agent: Mozilla/5.0 (Android; Mobile; rv:40.0) Gecko/40.0 Firefox/40.0).
- Firefox for Android Modified User Agent (
User-Agent: Mozilla/5.0 (Android 5.0; Mobile; rv:40.0) Gecko/40.0 Firefox/40.0) (this is a fake Firefox for Android UA, but some sites keep sending different versions or no version at all based on the following detection
match(/Android\s+(\d\.\d)/i. DO NOT DO THIS AT HOME at least not without a sensible fallback)
- A recent Android Chrome User Agent
- A recent iOS Safari User Agent
Some Ideas and Things We Can Do Together
There are a couple of things which can be done and where you can help.
- Translating this article in Japanese.
- Advocacy around you.
- Publish an article about Web Compatibility and Recipes in Japanese Press (Web Designing, Web Creators, etc.). I can help. Or maybe we could propose a monthly column in Web Designing on "let's fix this it" where we would go through a known site issues and how to solve them.
- Contact Web sites directly and pointing them to the bugs.
- Share with us if you know a person or a friend of a friend working on these sites/companies. Talk about it around you! A CTO, a Web developer, someone who can help us negociate a change on the site.
- Report sites which are broken on webcompat.com. It helps.
Old WebKit CSS, Flexbox Nightmare
Maybe in all these efforts in contacting Web sites, the flexbox story is the most frustrating one. I talked a couple of times about it: Fix Your Flexbox Web site and Flexbox old syntax to new syntax converter. The frustration comes from two things:
- It's very easy to fix.
- The sites are using outdated 1st version of Flexbox which was developed for WebKit only.
Swicthing to the new standard syntax would actually improve their customers reach and make them compatible with the future. It must also be frustrating for Apple and Co, because it means they can't really retire the old code from their rendering engine without breaking sites. Chicken and egg situation. If you remove the support, you break sites but push sites to update. If you keep the support, sites don't fix, but users using other browsers can't go to these sites. If they don't go to these sites, the browser doesn't show up in the stats, and so the site owners say: "We do not have to support this browser, nobody is using it on our site." Yes… you know. Running into circles.
In the end it forces other browser vendors to do dirty things for making it usable for everyone.
Fixing Your CSS - Easy!
Hallvord Steen has developped a quick tool to help you fix your CSS. It's not perfect, but it will remove a big part of the hard work on figuring out how to convert this WebKit only flexbox or gradient to a standard one supported everywhere.
If we get the flexbox/gradient right and the User Agent sniffing, we will have solved probably 80% of the issues of Web Compatibility issues in Japan.