There is no WebKit on Mobile

Last week I spent a lot of time on WebKit in order to produce a comprehensive comparison of all WebKits. My purpose was to prove there is no “WebKit on Mobile,” and to gain some more insight in the complicated relations between the various WebKits.

Therefore I now present the Great WebKit Comparison Table. In it I compare 19 different WebKits on 27 tests.

Senior web thinkers from Alex Russell to Tim Bray have envisioned a bright new future for the mobile web based on the argument that “WebKit on Mobile” is taking over, and that, with browser incompatibilities out of the way, developers can concentrate on building compelling web applications.

Much as I hate to disagree with them, I feel honour-bound to point out that there is no “WebKit on Mobile.” There’s iPhone WebKit, Android WebKit, S60 WebKit (at least two versions each), Bolt, Iris, Ozone, and Palm Pre, and I don’t doubt that I’ve overlooked a few minor WebKits along the way.

All 10 mobile WebKits I’ve identified so far are subtly or wildly different.

Media queries, especially, which are the most important single technique for creating consistent interfaces across inconsistent devices, have wildly differing support levels.

And Acid 3 scores range from a complete fail to 100 out of 100.

This is not consistency; it’s thinly veiled chaos.

Therefore, testing all your mobile web applications and sites in several WebKits will remain mandatory for the time being.

The tests

Most of the tests in the new table are taken from my existing compatibility tables. It contains golden oldies, such as the dynamic problems in the + selector and :first-child, cutting-edge JavaScript methods such as querySelectorAll() , and a few new HTML5 functionalities such as geolocation and localStorage.

My main criterion for test inclusion was that a certain method, property, or declaration must be supported by at least two WebKits, but not by all. I made an exception for geolocation, since it’s so totally crucial for the mobile platform. (Geolocation is currently supported only by iPhone 3.1)

I tested three Safari versions, three Chrome versions, one Konqueror version (with a newer one hopefully coming up), the 10 mobile WebKits I mentioned above, and at the request of Vodafone I added the JIL Emulator (it's an Android G2 except that it supports media queries).

Emulators are not allowed (except for the JIL one, which doesn’t claim to emulate any existing browser). Few mobile browser vendors will take the trouble to port their browser to Windows or Mac. Instead they’ll opt for an already-existing WebKit on those platforms; probably Safari. However, as the tests show, Safari is wildly different from all mobile WebKits. Therefore emulators are not to be trusted.

Note that I only test for compatibility. Other factors, notably user interface and performance, are left out of the equation — and that may have to be corrected in the future, seeing that S60v3 WebKit, which is by far the worst-scoring one, at least has a workable user interface, something that much-higher scoring WebKits such as Iris don’t.

I devised a scoring system. I’m not 100% certain that this is a good idea, but I desperately needed an automated method to judge WebKits. Details are on the page.

With the scoring system in place I created a script that does a bit of basic data mining in trying to establish the number of differences between WebKits as well as an exact list of those differences. The results were surprising:

Out of 19 tested WebKits, no two are exactly the same.

The best WebKit available is Safari 4; the worst is S60v3.

The Android G1 and G2 WebKits score rather badly; it’s the worst mobile WebKit except for S60.

Regressions are fairly common: iPhone 3.1, Android G2, and S60v5 all (partially) dropped support for something their predecessors did support.

The closest relation of a desktop WebKit to a mobile WebKit is between Safari 3.0 and S60v5. I’m now fairly certain S60v5 is actually based on Safari 3.0. Unfortunately this is the single example of such a close relation.

All in all I hope that this research shows that there are many flavours of WebKit, and that “WebKit taking over the mobile space” does not equate “there are no more browser differences.” (Besides, let’s not forget Opera, shall we?)

Update: Most Palm Pre results added thanks to a reader.

Comments are closed.