[vendor-prefixes] The system needs to be opt-out, not opt-in

I think the main problem with vendor prefixes is being opt-in, rather 
than opt-out. Authors have to explicitly opt in to support a certain 
engine. The assumption being that implementations are usually different, 
so there is no special consideration for the case where they are the 
same. We just expect authors to copy and paste in the case of such 
…coincidence. However, that case is not rare at all, and nobody likes 
copying and pasting.

I think this misconception originates from the different kind of 
exposure that WG members and standards enthusiasts have over regular web 
developers. We are interested in edge cases or the interplay between 
different new features and that's where most implementation differences 
lie in. However, most authors just use the very basic case (e.g. 
border-radius: 10px) and hardly experience any differences. Heck, my 
experimental CSS usage is heavier and contains many more edge cases than 
the average developer's and I've only needed separate declarations 1-2% 
of the time!

It should be easier and quicker for authors to say "I want this to apply 
to ALL engines" than to say "I want this for Gecko, this for WebKit and 
this for Presto". We wouldn't have *any* of the problems we're 
discussing these days if vendor prefixes were designed with this simple 
principle in mind from the get go.

People are lazy. It's an established usability principle that you have 
to design around people's laziness, rather than try to change them. 
Good, usable UIs are the ones that allow users to indulge in their 
natural laziness. In CSS, the UI is the code and the users are the 
authors, but good usability still matters.

As for the syntax, no strong opinions. I think anything that follows the 
above principle is OK. I'd personally suggest a single prefix (-x-, to 
match the one commonly used in HTML) and vendor media queries for the 
cases where we want to restrict it to specific engines. It doesn't offer 
versioning, like some other suggestions, but neither does the current 
system and I've almost never seen issues with that.


-- 
Lea Verou (http://lea.verou.me | @LeaVerou)

Received on Friday, 10 February 2012 03:35:34 UTC