- From: Yves Lafon <ylafon@w3.org>
- Date: Fri, 16 Oct 2009 03:14:19 -0400 (EDT)
- To: Bert Bos <bert@w3.org>
- cc: www-style@w3.org
On Thu, 15 Oct 2009, Bert Bos wrote:
> On Thursday 15 October 2009, Yves Lafon wrote:
>> Hi,
>> I am looking at the media-queries CR document [1], form a CSS
>> Validator standpoint, and I am wondering why the syntax of expression
>> is '(' .. ')' instead of using a function name like 'feature(' ...
>> ')'.
>
> I think it was never considered. So the question would more properly be
> the opposite: why is a functional notation better?
>
> There is no absolute answer, but here are a couple of considerations:
>
> - Media Queries are used in CSS, but not only there. They also occur
> in HTML (in the LINK and STYLE elements) and in XML (in the
> xml-stylesheet PI). They are expressly designed to be used in yet
> other places that we don't know about. Parentheses are a common
> vocabulary that works almost anywhere.
>
> - You may think that "feature()" is more readable, I think it just
> adds redundancy and makes many expressions too long to fit nicely on
> one line. :-)
>
> - Parentheses are normal delimiters in CSS. They appear in the grammar
> alongside functional notations, and together with the similar square
> brackets. The grammar wasn't changed in any way to accommodate
> Media Queries.
No, they are not. And the grammar _was_ changed to accomodate media
queries...
http://www.w3.org/TR/2009/CR-css3-mediaqueries-20090915/#syntax
expression
: '(' S* media_feature S* [':' S* expr]? ')' S*
;
Trying to parse (foo) with a CSS21 aprser based on CSS21 syntax will fail.
>> handling in other part of the spec for errors like
>> color: rgb (1,2,3); (instead of rgb(1,2,3);)
>
> But the validator already handles that, as far as I know. "rgb(" is one
> token, while "rgb (" is a pair of tokens. You get an error message that
> rgb isn't a valid color and that the rest of the value cannot be
> parsed.
Well, if you change the grammar and add the possibility of having '(...)'
a valid construct, then the rest of the value _can_ be parsed, meaning
that all the error handling has to be changed.
> Or do you mean that you want to add specific heuristics so that the
> error message can say that there is probably a space too many?
Heuristics are in the todo list, but not the reason of this message :)
>>
>> plus 'feature(...)' seems more readable than '(..)' (but that's
>> subjective
>>
>> :) ).
>
> Indeed it is. :-)
I told you ;)
>
>>
>> [1] http://www.w3.org/TR/2009/CR-css3-mediaqueries-20090915/
>
>
>
> Bert
>
--
Baroula que barouleras, au tiéu toujou t'entourneras.
~~Yves
Received on Friday, 16 October 2009 07:14:21 UTC