I’ve recently become the owner of an Android tablet (Galaxy Tab 8.9) and having spent some time browsing the web with it I’ve identified a couple of areas where work by us, as developers, can make a real difference.
The first is the easiest: use appropriate HTML5 input elements. It’s quite frustrating typing an email address into a text input field when the
@ symbol is on a different interface view to the
_ symbol, or when predictive text is enabled, and there’s really no need for it when HTML5 input types are well supported and — crucially — fully backwards compatible. So if you’re asking the user to input an email address, use:
The same goes for other form fields.
The second area for improvement is slightly more complex: stop browser sniffing if you can, or stop making presumptions if you can’t. On a number of sites I get redirected to a mobile-optimised view, as I’m guessing that the browser detection script finds ‘Android’ in the UA string and presumes it’s a phone.
By far the worst culprit is Yahoo, whose UA sniffing either misidentifies or fails to identify the browser on my tablet, and serves me the most basic mobile interface. I’m using a brand new tablet with a very capable browser over a solid Wifi connection, and I’m served what is essentially a WAP site.
To add to the frustration, no link to an alternative or full site is provided, so I have no choice at all. If use about:debug and change my browser’s UA string to ‘iPad’, there’s a tablet-optimised version of Yahoo Mail that works (almost) perfectly with my device; but otherwise the UA sniffing is actively working against me.
Capability detection should always be preferable to browser UA sniffing, but if you must use UA sniffing at least keep it updated, don’t make presumptions, and provide an opt-out link to the desktop site as a basic option.
That’s it: two changes, making a much nicer experience for everyone.