[CSS] vendor specific extensions, what is the idea?

Consider that some user agent 'foo' supports feature that is defined by 
attribute(s) with the name(s) starting from -foo-bar***.

As an example consider something like -moz-radius-right (whatever it means).

Say I am designing page that has to have rounded corners, like [3].
I can use -moz-radius attribute as it is published by the vendor and is 
made available in public builds.

If particular user has UA that is not supporting -moz-radius-right then 
I would like to use fall back and to use say border-image. But only if 
UA is not capable to render rounded corners natively as that border 
image is expensive.

And if all above will fail I would like to use some background image as 
a last resort.

So is the question: what is the point to have vendor specific anything 
if there is no mechanism that allows to use that treasure? There is 
simply no way to make graceful callback if UA A does not support 
attributes of UA B.

There is no mechanism that allows to detect if some feature (defined by 
*set* of attributes) is supported and to substitute it by another *set* 
of attributes. So why bother about vendor specific attributes at all? No 
one can use them anyway on the Web.

At the end some lucky user will get super-UA that supports by default 
rounded corners, border images and that super-multi-image-backgrounds 
then how for the CSS sake I will define rule that will draw just rounded 
corners without downloading border-images and background-images?

That is the question.

Say someone will implement animations in CSS how then someone can use 
it? That removes any motivation for UA vendors to improve things...

And yet...

I think that chapter "4.1.2.1 Vendor-specific extensions" [1] shall be 
renamed to "Vendor-specific attributes" or "Vendor-specific keywords" 
because current CSS simply has no mechanisms for vendor-specific 
extensions per se. E.g. it is not possible [2] to add vendor-specific 
length units - syntax and grammar rules prohibit this.

[1] http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords
[2] http://www.w3.org/TR/CSS21/grammar.html#scanner
[3] http://www.idest.com/csshacks/pages/chapter_07/moz-radius.htm

-- 
Andrew Fedoniouk.
http://terrainformatica.com

Received on Tuesday, 27 November 2007 04:22:54 UTC