W3C home > Mailing lists > Public > www-style@w3.org > March 2004

Re: Proposal: useragent at-rule

From: Adam Kuehn <akuehn@nc.rr.com>
Date: Tue, 30 Mar 2004 13:05:56 -0500
Message-Id: <p06010208bc8f4d8171e7@[152.16.223.122]>
To: www-style@w3.org

Various folks wrote:
>>>I use server-side scripting to identify UAs and then modify the 
>>>CSS using PHP -
>>>not the prettiest solution, but it works.
>>
>>So UA strings, while not wonderful, *are* usable.
>
>Usable, yes, but not good to be part of a standard.

What fundamental purpose would @useragent serve in the spec?  The 
goal of the spec is to convince all UAs to achieve compliance so 
authoring becomes as easy as possible.  Thus it seems the spec has to 
be designed to try to render that rule entirely useless.  This seems 
like a patch applied to a future version to cure a current problem. 
As such, I have trouble envisioning it as a working solution, and if 
implemented it seems as though it would still make authoring just as 
difficult as it is right now.

On the other hand, I don't see that there would be any harm in 
implementing an @version rule, so that authors can declare which 
version of CSS they are supporting.  This follows the Javascript 
model, at least to some extent.  Such a declaration would allow the 
future development of the spec in a direction that is incompatible 
with current implementations, should that prove to be desirable at 
some point.  A version declaration might also give authors the option 
to specify that the user agent could use the rules in the version 
block as a supplement to other rules, or as an exclusive substitute 
for them.

After several CSS versions, I could imagine, e.g.:

/* current generation browsers see generic rule blocks here */
@version (3, exclusive) {
   /* rules aimed at CSS version 3 implementations */
   /* generic rule blocks would not be applied */
   @version (4, inclusive) {
     /* enhancements for CSS version 4 capable browsers */
     /* version 3 rules would also apply, but not */
     /* generic rule blocks, since the version 4 rule */
     /* is itself contained inside an exclusive block */
   }
}

I don't know if this would be too difficult to implement (certainly 
it would bring up progressive rendering issues in this form, at 
least), but I can certainly imagine it being useful to authors.  And 
it makes authoring easier, because it could be entirely ignored by 
authors if they didn't want to use advanced features.  It also 
partially addresses some of the issues @useragent is supposed to 
cover, but does it in a more consistent, spec-centric way, in my view.

-- 

-Adam Kuehn
Received on Tuesday, 30 March 2004 13:05:39 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:54:27 GMT