- From: Christof Hoeke <csad7@t-online.de>
- Date: Wed, 09 Jul 2008 18:59:59 +0200
- To: Bert Bos <bert@w3.org>
- CC: "www-style@w3.org" <www-style@w3.org>
Bert Bos wrote: > On Wednesday 09 July 2008 17:06, Boris Zbarsky wrote: >> see wrote: >>> just checked the CSS grammar again, the tokenizer is defined here >>> as: >>> >>> @{M}{E}{D}{I}{A} {return MEDIA_SYM;} >>> >>> Safari seems to be working right here then? >> If you cannot create @-rules whose name starts with "media", that >> seems like a bug in the grammar to me. >> >> So either there is a bug in webkit here, or a bug in the grammar, but >> in either case I would not expect "@mediall { ... }" to act like >> "@media all { ... }". > > There are two grammars in the CSS 2.1 spec: the generic CSS grammar and > a grammar that describes just CSS 2.1. To tokenize a CSS file, only the > first one is correct. > > The second one is only useful on a file that you already know to be > nothing but CSS 2.1. It will not parse CSS3 features, such as > @namespace or [foo^=bar] correctly, even though a CSS 2.1 > implementation is required to parse (and ignore) them. > > Both "@media" and "@mediaall" are ATKEYWORDs in CSS. The former has a > defined meaning in level 2 and higher, the latter is not yet defined in > CSS. All implementations must therefore skip it, together with the > block that follows. If WebKit doesn't do that, it has a bug. I guess it is a bug. I have not checked other @rules like e.g. @namespaceprefix"uri"; which should at least be @namespace prefix"uri"; anyway, thanks for clarification. I guess the spec should change as @{M}{E}{D}{I}{A} {return MEDIA_SYM;} does not really help implementors... thanks chris
Received on Wednesday, 9 July 2008 17:00:44 UTC