- From: L. David Baron <dbaron@dbaron.org>
- Date: Wed, 22 May 2013 13:07:01 +0800
- To: www-style@w3.org
On Tuesday 2013-02-05 20:00 -0700, L. David Baron wrote:
> Currently the value space of CSS variables is the "value" production
> in the CSS 2.1 grammar, as specified here:
> http://dev.w3.org/csswg/css-variables/#defining-variables
> and defined here:
> http://www.w3.org/TR/CSS21/syndata.html#tokenization
>
> One detail that bothers me is that this production allows the CDO
> and CDC tokens *inside* of (), [], or {}, but does not allow them at
> the top level of the value.
>
> I think we should change this, and change the value space of
> variables from:
> value
> to
> [ value | CDO S* | CDC S* ]+
In a discussion with Simon Sapin, I realized my analysis above was
slightly wrong. There's one other case that's not permitted but
that I believe should be permitted -- though I believe it's probably
a bug in the CSS 2.1 general grammar.
In particular, this production:
block : '{' S* [ any | block | ATKEYWORD S* | ';' S* ]* '}' S*;
in http://www.w3.org/TR/CSS21/syndata.html#tokenization does not
allow CDO and CDC to be directly inside of a {} pair (like they can
be inside of a () or [] pair, as part of the unused production).
I think variables should, for simplicity of parsing, allow CDO and
CDC directly inside any {} pair. And in general I still believe in
my general description of what should be allowed that I gave in
http://lists.w3.org/Archives/Public/www-style/2012May/1104.html
(as modified by the correction to the spec that resulted from the
message quoted above, i.e.,
http://lists.w3.org/Archives/Public/www-style/2013Feb/0196.html ).
-David
--
𝄞 L. David Baron http://dbaron.org/ 𝄂
𝄢 Mozilla http://www.mozilla.org/ 𝄂
Received on Wednesday, 22 May 2013 05:07:26 UTC