Blurring the lines between device categories
With the release of Windows 8 there has been an increased focus on the blurring of the definitions of what constitutes a tablet and a laptop. The lesson we should be taking from this is not that building websites for specific device classes is getting harder but rather that we have an opportunity to move away from this approach entirely and build websites that can exploit any environment in which they find themselves.
What's the issue here?
With the iPad dominating the tablet mind share - especially the mind share of web developers - and also the market share it is all too easy to class a tablet as 1024x758px with a touch screen as the input method. Similarly, a laptop will be using a desktop browser (Chrome, Firefox, IE, Safari, Opera) with a corresponding user agent and will have a keyboard and mouse.
Whilst the release of Windows 8 has brought a wide variety of form factors with it this is not a new phenomenon. The ASUS Transformer series has been around for some time and - speaking as an owner of one of these - a significant number of websites direct this device to their mobile website, presumably after matching 'Android' in the user agent. Frequently seeing a 320px fixed width site with cut down "mobile" functionality in the middle of a 1024x768px landscape screen above a keyboard really puts one off user agent sniffing to serve separate sites1.
We are now just starting to see devices being announced that further blur any one-to-one mapping between a device and a categorisation. The ASUS Padfone is a phone that docks into a tablet screen which in turn docks into a keyboard. I don't have details of the user agent but I'm pretty confident in my assumption that it doesn't change from phone to tablet to laptop depending on how it's being used. Since the release of the mini, the iPad is similar in that there is now one user agent for two devices but - as the devices are so similar - it's less of an issue.
The flip side of the single user agent-multi device is the single device that has multiple user agents. Admittedly we already face this with alternative mobile browsers but this is somewhat mitigated by the low uptake. With a device like the PengPod we face a different issue - one device that runs two operating systems: Android and Linux. Again, I don't have details on the user agents for this but, again, I'm pretty confident in assuming that this will be one device that will have two very different user agents and, on the Linux side, it's going to be hard - if not impossible - to identify this device specifically.
How do we deal with this?
We need to stop thinking in terms of devices and classes, we need to build our sites so that they work in the lowest common denominator and progressively enhance based on what we find we can do above and beyond this. I'm not saying that the user agent is worthless but it should only be treated as an additional signal rather than the single deterministic factor.
1. When I started using a 10" Android tablet - a first generation Samsung Galaxy Tab - I was finding that a number of sites were serving a very odd version of their mobile website that featured downgraded graphics and some odd zoom behaviour. I eventually traced this to a mis-categorisation of the user agent within the WURFL database.