In February, we reported on a meeting of the W3C CSS working group, stating vendors were considering implementing WebKit prefixes, in order to combat a perceived WebKit monoculture that’s particularly noticeable in mobile.
At the time, developers and industry figures rallied against the plans, arguing it would negatively impact on the open web and interoperability. An industry source today told .net Opera will imminently implement WebKit prefixes, largely due to being “terrified of being outdone in the mobile marketplace” and the “large number of [mobile] websites designed exclusively for WebKit”.
The changes will first appear as an experimental build of the Opera Mobile Emulator, and the source stated Opera isn’t happy about the turn of events but said it “cannot reasonably choose to remain incompatible with a significant part of the web, when it's technically simple to enable the features that these websites are using”.
A new browser war
Technical details will soon be outlined in a blog post, but Opera stated it has essentially aliased properties and values that are frequently used with WebKit prefixes but without fall-backs and that Opera already supports them in some form. An experimental build of the Opera Mobile Emulator will soon be released on dev.opera.com that includes these changes. The prefixes will then be implemented in Opera Core, meaning they will affect both mobile and desktop versions of the browser.
Our source sympathised with Opera’s plight, but nonetheless told us of concern for the open web: “[Opera’s decision] sets an incredibly poor precedent, allowing any vendor to implement any vendor prefix any way that vendor wants. That's incredible fragmentation of the web.” However, we were told that blame should largely lie with WebKit, which “isn’t playing fairly in the collaborative and interoperability space”.
In terms of the perception of a WebKit monoculture, experts such as Peter-Paul Koch have in the past argued that the figures suggest otherwise: Opera usage is higher than WebKit on mobile, and developers are largely to blame for only testing mobile sites on iOS devices. However, although such usage stats are accurate on a worldwide basis, our source argued that “the proliferation of iOS, particularly in the US, UK, Australia and Canada, is a threat”, and with Firefox and Google also improving their mobile experiences, Opera is “threatened in the place it has never been threatened before – mobile near-ubiquity”. The net result could be a “new era of browser wars,” thought our source.
Opera blames author error
Opera web evangelist Bruce Lawson provided .net with the following statement, outlining the company’s reasoning:
"Opera, along with Microsoft and Mozilla, announced at a CSS Working Group meeting that we would support some WebKit prefixes. This is because too many authors of mobile sites only use the WebKit-prefixed version, and not even the standard, unprefixed one, when it is available. This leads to a reduced user experience on Opera, Mobile Firefox and Mobile IE, which don't receive the same shiny effects, such as transitions, gradients and the like, even if the browser supports those effects.
"One of the HTML5 design principles is: 'Error handling should be defined so that interoperable implementations can be achieved. Prefer graceful error recovery to hard failure, so that users are not exposed to authoring errors.'
"CSS is not HTML, of course, but the principle still holds. Using single-vendor code on the World Wide Web that results in non-interoperability is an authoring error. In the same way that the HTML5 parsing algorithm ‘rewrites’ HTML to make tags close correctly in the DOM, in order to ensure interoperability, Opera will react to certain WebKit-prefixed CSS properties as though they were -o- prefixes, in order that our users are not exposed to authoring errors.
"Note that we're only supporting those that are most widely used, and we will publish a full list soon. We do not plan to alias every WebKit prefix and, as far as we know, neither will Microsoft and Mozilla, and so it remains as important as ever to use all vendor prefixes and the unprefixed property to ensure interoperability."
UPDATE: A Microsoft spokesperson has provided a comment to .net on that company's position: "A passing comment made in a working group meeting has clearly been misinterpreted. Microsoft won't support –webkit prefixes in Internet Explorer."
What are your thoughts on Opera's plans? Are you in favour of other vendors implementing WebKit prefixes, or do you foresee problems ahead? Let us know in the comments.