“What is the price of Experience? Do men buy it for a song?
Or wisdom for a dance in the street?” – William Blake
Back in high-school, I was exposed to glimpses of English literature. The literature in a foreign language is tough, but still a few things stuck in my mind. Among those, William Blake’s dichotomy between Innocence and Experience, a concept that kept recurring in the years to come, more often than not in different, unrelated and often totally disconnected contexts.
The Blakeian dichotomy paid me a visit the other day, when I noticed that someone had left this headers in our logs:
HTTP_USER_AGENT: Mozilla/5.0 (Android; Mobile; rv:10.0.4) Gecko/10.0.4 Firefox/10.0.4 Fennec/10.0.4
HTTP_ACCEPT_ENCODING: gzip, deflate
HTTP_CONTENT_TYPE: application/x-www-form-urlencoded
HTTP_ACCEPT_LANGUAGE: en-us,en;q=0.5
HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
That’s the Firefox browser running on an Android device. Which device? we don’t know. Nobody on this side of HTTP can tell. Which OS version? Ditto.
Our API did the best it could and matched this as generic_android_ver2_0_fennec. Obviously this is far from optimal. For example, developers will be unable to size their pictures and their UI elements correctly. Chances are that users of mobile Firefox are presented a UI with the typical ‘stamp effect’ or that UI elements are out of whack.
In reality, most of the times, developers will adopt a more practical solution and simply direct Firefox user to the one-size-fits all, XHTML-MP user-experience that they reserve for second-class mobile clients. It certainly works, but hardly a very exciting UX.
Browsing around the web, I noticed that the Firefox team is painfully aware of the problem. But at the end of the day, they value the privacy of their users more than the requirement of providing the coolest UX possible on the different mobile sites. Apparently, complex UA strings that reveal the device, the OS version and a few build numbers allow fingerprinting companies to track users and this is what Firefox wants to avoid by unconditionally taking the side of their very privacy-aware users.
Personally, I find this choice totally legitimate. I installed Firefox mobile on my phone too.
Of course, the side effect of this choice is that a generic UI is all that Firefox users can hope for.
Wanting that level of privacy and the user-experience reserved for devices that let themselves be recognized is a textbook example of what Italians call ‘wanting a barrel full of wine and a drunk wife too’ (In english-speaking countries, the dilemma is about a cake, but the point remains).
If you want great UX, you need to let developers know what your device can and cannot do. It’s that simple. This is a clear example of (User) Innocence vs. (User) Experience.