Vendor Prefixing: Standing Up for Developers
Today I came across Bruce Lawson's article regarding vendor prefixes and the possibility that Opera, Mozilla and Microsoft will begin to implement -webkit CSS properties within their own browsers.
Their argument in my opinion is justifiable; too many developers are only targeting WebKit browsers, often leaving anything other than WebKit either with a lesser experience, or worse, completely neglected and broken. By parsing -webkit CSS properties, non WebKit browsers will be able to bridge the gaps left behind by developers that haven't done their job as well as they should/could.
In the articles I have read regarding this, the blame seems to be resting entirely on the shoulders of developers which I think is unfair. Shouldn't we question why developers haven't taken the time to develop cross browser features?
In response to Bruce Lawson's article, Mat "Wilto" Marquis tweets:
Don’t say I didn’t warn you, makers of “iPhone websites” the world over.
Whilst I don't deny there is a side-blinders culture of developing for WebKit only, there are legitimate and realistic reasons for not considering other browser prefixes, of which, in some cases, the browser vendors themselves should take their fair share of blame.
For as long as I have been educated in the matter of cross browser compatibility, I have made every effort to make whatever I am devloping work in all browsers. I say this with a tear of frustration in my eye and a bead of sweat on my frow: cross browser compatibility is difficult!
Co-chairman of the W3X CSS Working Group, Daniel Glazman, writes in a call for action:
I am asking all the Web Authors community to stop designing web sites for WebKit only, in particular when adding support for other browsers is only a matter of adding a few extra prefixed CSS properties.
Unfortunately, in many instances, Daniel Glazman's statement just isn't true. In a personal project I am currently working on, I spent two days developing a workaround for Opera because I wasn't able to get the value of any of its vendor prefixed properties via JavaScript. If it were a client project, my schedule would have been knocked off by two days and I'd be left with the decision of charging the client extra or taking the hit myself for a bug that was unforseen. I spent these extra two days developing a workaround because I believe in cross browser compatibility. Would all clients be so concerned about cross browser compatibility in a browser that doesn't have the biggest market share?
I'm not just pointing a finger at Opera here and I don't agree with ignoring a browser because it's market share is smaller (but unfortunately clients often do), it's merely a recent experience I had that demonstrates the difficulties developers have to face when dealing with multiple browsers.
Are browser vendors truly aware of their responsibility too? One bug in a browser turns into x number of bugs across x number of websites.
As developers we are being asked to develop cross browser compatible websites with technology that is not cross browser itself. In my experience, WebKit has the most accurate implementation of the specifications I use to build for the web. It is to be expected that a specification still in draft is not perfectly implemented across all browsers but it too should be expected that developers (and in particular their clients) cannot spend extra time and money developing different implementations of the same outcome.
I am not just passing the blame back to browser vendors. It is true that a lot of developers are ignorant towards browsers beyond WebKit powered ones but there are a lot of developers trying to do the right thing too, no matter how hard their job can be.
As far as a solution is concerned, I think Daniel Glazman is on the right track:
The rule should be this one: if the CSS parser encounters a prefixed property for another browser, honour that property as if it were prefixed for us UNLESS an unprefixed or prefixed for us valid declaration for that property was already set. That would drastically reduce the problems on the Web.
This coupled with the automatic update of all browsers makes sense to me.
Ian Lunn is a Front-end Developer with 12 years commercial experience, author of CSS3 Foundations, and graduate of Internet Technology. He creates successful websites that are fast, easy to use, and built with best practices.