Archive for August 18th, 2006

How user agents should have been

One major pain in the rear for web developers –especially mobile ones– is finding the capabilities of a device. For cellphones there is WURFL, however this solution has its own problems and it’s slow. For other types of devices, like desktop browsers, embedded systems ones or gaming devices, there is no way to detect what they can do and what they can’t. Here is how user agents should have been required to be:

A cellphone example (sorry for the bad formatting):
Nokia:Cellphone; java:MIDP-2.0; platform:Series40-3.01; model:7260; browser:UP.Browser-7.2.6; res:176×220; abilities:CSS-2,XHTML-MP-1,WML-1.3.1,HTML-4.01,ssl.js-1.1; media:svg,jpg,png,gif,mobile-flash-1.0; language:en; other:[up to 64 characters where the device can clarify more if required];

A desktop example:
Apple:PC; java:jre-5.0.4; browser:Firefox-2.01; model:Macintosh; platform:MacOSX-10.4.9; res:1024×768; abilities:CSS-2,XHTML-1,HTML-4.01,ssl,js-1.3; media:svg,jpg,png,gif,bmp,mid,wav; language:el; other:flash-9,quicktime-7;

An embedded example:
Nokia:Embedded; java:none; browser:Opera-9.0.2; model:770; platform:Linux-,Maemo-2.2; res:800×480; abilities:CSS-3,XHTML-1,HTML-4.01,ssl,js-1.2; media:jpg,png,gif,mid,wav; language:fr; other:none;

There is no reason to actually require listing of external plugins (e.g. quicktime or flash), only what the browser itself can do by default. The above information is enough to get your content optimized for each reader, and it’s super important information for mobile web developers. Sure, you don’t get info if a specific attribute or CSS property is supported, but you get a good idea about how to layout or direct your content to.

On a related note, today we celebrate the first time in history where a Nintendo Wii Opera browser hit the mobile version OSNews. (update: oops, I meant the DS) :)