REI‘s mobile site is guilty of doing what the XKCD comic described just a few days earlier. I was reading a message containing a link to an REI store product on my phone, and was redirected to their mobile site. My phone’s browser is quite capable of handling the full site, although mobile sites are usually optimized for the smaller screen size which is always welcome – when they actually work.
In this case, as predicted, it detected my browser and sent me to a redirect, which contained the product I was originally searching for. But, instead of taking me to that product, it dumped me back at the mobile home page. (I was later able to view the link on my desktop.) That’s not very useful but it could be improved with just a little bit of cooperation from phone OS developers and web developers. REI is far from the only site guilty of having this happen, I’m sure everyone with a smartphone has had this experience at one time or another.
Browsers always send a header similar to this at the beginning of every request that tells the web server what types of replies are acceptable and identifies the capabilities. It usually looks something like this, an example Android 1.0 header which was found on the first generation Google phone, the G1.
|http_accept_charset||utf-8, iso-8859-1, utf-16, *;q=0.7|
|http_user_agent||Mozilla/5.0 (Linux; U; Android 1.0; en-us; dream) AppleWebKit/525.10+
(KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.
These headers are already standard and aren’t fixed, they can be changed easily. Instead of spoofing the http_user_agent of a desktop browser, it would be more compatible to add a flag to be honored by the server specifying whether it should serve a mobile version of the page if available, or always send the standard page. A header in the received page could trigger a prompt asking if the user would like to view this page in mobile or full versions. Some web sites already offer that functionality, but it really should be standardized and left to the user, not to the designer.
Comic by xkcd.