- From: Bert Bos <bert@w3.org>
- Date: Wed, 9 Jul 2008 17:59:04 +0200
- To: "www-style@w3.org" <www-style@w3.org>
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. Bert -- Bert Bos ( W 3 C ) http://www.w3.org/ http://www.w3.org/people/bos W3C/ERCIM bert@w3.org 2004 Rt des Lucioles / BP 93 +33 (0)4 92 38 76 92 06902 Sophia Antipolis Cedex, France
Received on Wednesday, 9 July 2008 15:59:42 UTC