At the recent unveiling of OSX Mavericks Apple also announced Safari 7, with greatly improved web standards support. It was left a little unclear as to which versions of OSX it would run on, but browsing through their developer area this week I found a downloadable pre-release of Safari 6.1, which I think clears that up: it seems Safari 7 will be exclusive to Mavericks, while 6.1 will run on Lion and Mountain Lion, with all of the web standards support of Safari 7, but only a limited set of new features.
As both versions are a major update for the browser, bringing almost a year’s worth of WebKit updates, I thought it would be useful to take a look through the new and updated features in each, as well as trying to identify where they differ.
There is a famous Portuguese-English phrasebook, published in the 19th Century, with the title “English As She Is Spoke“. It contains many unintentionally hilarious translations of words and expressions, including such familiar phrases as “that are the dishes whose you must be and to abstain”, and “I not make what to coughand spit”. The author, Pedro Carolino, had the best of intentions in producing this book, but suffered from one major drawback: he didn’t speak English. The book was apparently translated from an earlier Portuguese-French phrasebook, using a French-English dictionary.
The reason I bring this up is that I think this is a fairly common problem in coding. Many people know how to write code in order to get a result, but they don’t know the language at hand in enough depth to realise that the result doesn’t always make sense.
As you’re probably aware, the search is underway for a new responsive images syntax. Matt Wilcox wrote an excellent article looking at each of the proposals and assessing their strengths and weaknesses. Reading this article made me consider the problem, and I’ve put together a notional syntax based on the positives and negatives of all of the proposals. I’m going to submit it to the Responsive Images Community Group, but first I’d like to ask you to kick the tyres a little.
As I’m sure you’re aware, Opera recently released a preview build of their
browser Mobile Emulator which is notable largely because they’ve aliased a group of
-webkit- prefixed properties, effectively supporting another vendors supposedly proprietary code in their own.
On Tuesday I wrote a post for Ubelly.com on vendor prefixes; what they are, what they are for, their perceived successes and failures. This turned out to be incredibly timely as a few hours later the minutes of the latest CSS Working Group were released, showing that the misuse of vendor prefixes – especially -webkit-, and especially on mobile – has now become so serious that Microsoft, Mozilla, and Opera are all considering implementing -webkit- prefixed properties in their own browsers just to ensure that their users aren’t excluded from the web.
What a state we’re in.
This morning Daniel Glazman, chair of the CSSWG, issued an open call for urgent action by developers to stop this situation from deteriorating any further, and hopefully to improve it: Call for Action: The open web needs you *now*. I urge you to read this, and to act on it to the best of your abilities. If browsers support other browsers’ prefixes, the whole thing collapses. As Daniel Glazman says:
Vendor prefixes have not failed. They are a bit suboptimal but they also very clearly preserved Web Authors from chaos. We can certainly make vendor prefixes work better but we can only do that if vendor prefixes remain VENDOR prefixes.
Please read his post in full, and do what you can to turn this situation around. We made the mess, we need to clean it up.
Henri Sivonen has written a fantastically well-considered post called Vendor Prefixes Are Hurting The Web which I urge you to read in full, as I’m about to discuss it. I think some of his points are absolutely right, but I disagree on the final conclusion. The points that I think he nails are:
However, I still think using prefixed properties is the right approach. If we do as Henri suggests and leave experimental features in experimental builds (an eminently sensible suggestion, I might add), the pace of progress will be much slower. I believe that having these features out there and getting people using them encourages competition (and collaboration) between browser makers, and the benefits of that competition are given to us, the developers, and passed on to the audiences of the sites we build.
That doesn’t mean that the current situation is ideal; far from it. But improving things will involve more effort from us, the developers and writers, the community in general. Chief responsibilities will be:
As an author and writer I’m guilty of some of the faults that are pointed out in his article, and I promise to do better in the future.
In closing, I want to congratulate Henri on writing this thought-provoking post. I was ready to dismiss it as one of the lazy articles criticising prefixes that occur regularly, but the argument was very well thought and well made, and made me change my mind a few times while I was writing this post.