Daniel Glazman, co-chairman of the W3C CSS working group, has written a strongly-worded post describing how the “over-dominance” of the WebKit rendering engine threatens web standards.
Everyone loves the open source WebKit, so how is this so? The issue is a complex one. Those who make web browsers do not want to be tied only to those standards already ratified by the W3C as part of HTML or CSS. Therefore, they add features, sometimes in the hope that they will become standards, but use a vendor-specific prefix such as -webkit-
,-moz-
or -ms-.
If you use those features in your markup, you do so in the awareness that they will only work on that specific vendor’s browser. The idea is that the best vendor-specific extensions become standard, in which case the prefix is dropped; or are replaced by an equivalent standard, in which case the prefix is also dropped. This has become an accepted part of the way standards are formed.
The issue now is that WebKit dominates the mobile web to the extent that web authors can assume its use without losing many users. WebKit is used in Apple iOS, Google Android, RIM BlackBerry 6 and higher, as well as on the desktop in Apple Safari and Google Chrome. Amazon also uses WebKit in the Kindle and of course the Android-based Kindle Fire.
The consequence, says Glazman, is that:
technically, the mobile Web is full of works-only-in-WebKit web sites while other browsers and their users are crying.
The further consequence, and this is Glazman’s strongest point, is that other browsers will have to pretend to be WebKit and support its extensions in order to give users a good experience – even if they have their own vendor-specific extensions that support the same features:
All browser vendors let us officially know it WILL happen, and rather sooner than later because they have, I quote, "no other option".
Glazman says “all browser vendors” which suggests that even Microsoft will do this, though that would be a surprising development.
This would mean that the -webkit-
vendor-specific extensions were no longer vendor-specific. It would also meant that WebKit is in effect able to create web standards without the bother of going through the W3C:
It will turn a market share into a de facto standard, a single implementation into a world-wide monopoly. Again. It will kill our standardization process. That’s not a question of if, that’s a question of when.
says Glazman, suggesting that there is a risk of a return to the bad days when the dominance Microsoft’s IE6 prevented standards from evolving.
The parallel with IE6 is weak. IE6 was not an open source project, and the damage it did was in part because Microsoft deliberately chose not to invest in advancing HTML, preferring to drive users towards rich internet-connected Windows applications. It is difficult to see how that can happen to WebKit.
Nevertheless, the situation with WebKit is making it difficult for other mobile browsers to compete and does undermine the standards process. This is not really the fault of the WebKit team, though the W3C would like to see support for obsolete vendor-specific extensions dropped more quickly to discourage their use. Rather, it is a consequence of web authors seeing little value in adding support for other browsers that have little actual use on the mobile web.
It is worth observing that Glazman is a Mozilla guy, and his company Disruptive Innovations makes Mozilla extensions.
How can this be resolved? Glazman and others are right to raise awareness of the issue, but I doubt that many outside the standards community or browser vendors themselves will see this as a major problem.
The best fix would be for non-WebKit browsers to become more popular on the mobile web. Growing use of Windows Phone, for example, would give web authors more incentive to fix their markup. Another route to improving standards is via tools which do the right thing. Adobe’s strong support for CSS in Dreamweaver, for example, gave a significant boost to its use and helped to rescue us from font tags and the like.
Finally, it seems to me that the distinction between the “mobile” web and the “full” web is blurring, and rightly so. Users on mobile devices often tap the “full site” link where available since they have big enough screens to benefit. WebKit does not yet dominate the desktop Web.
“WebKit does not yet dominate the desktop Web.”
Not yet, but Chrome is WebKit-based and is becoming the browser of choice.
WebKit can’t be blamed for its success though, they pioneered and still pioneer many areas.
The other innovative competitor (FireFox) has been plagued with huge memory leaks for many versions, which explain its decline IMHO, and it’s a pity, because they’re pioneers too, they have a top-notch JavaScript engine and many other advantages. All let down by the memory issue.
I have three basic arguments about this.
1. The so-called web standards are less and less credible. Honestly, since W3C dropped WebSQL, I cannot be persuaded to give a flying f*ck for “standards”, long live de-facto best practices.
2. If I understand correctly, the vendor-specific prefixes were invented so that website creators can easily separate css settings for browsers which behave differently, without relying on hacks like in the glory days.
If other browsers start EMULATING webkit, then I guess adding support for the “webkit” prefixed rules is logical. It means “behaves exactly like webkit”. Webkit is the leader, and the others followers.
There is nothing inherently wrong here.
3. It fails to surprise me that this fit of hysterics originated with a Mozilla guy. Mozilla is the failure of the decade. Currently it is the absolute worst browser on the market, slower than IE, lagging behind Webkit and Opera on HTML5 adoption, huge and bloated.
Netscape has come full circle. It died off after becoming a hulking pile of slow and stupid bloatware, trying to be a “communicator” as opposed to a simple browser, destroyed by a quick, clever and simple IE6.
Firefox started off as a stripped-down version of the bloaty, unpopular Mozilla (aka Netscape 7), and now, having once again become a bloated failure, is now being killed off by the quick and clever Webkit.
Tough luck, Netscape. 🙂