Re: [bug] warning on valid selector

Le Sage wrote:

> span[hello="Cleveland"][goodbye="Columbus"] { color: blue; }
> source: http://www.w3.org/TR/CSS21/selector.html#matching-attrs

They have a rather childish example there, and misleading too, since the 
name "span" suggests that this relates to HTML, but the attributes 
aren't HTML attributes. But of course the example complies with the 
general syntax in the CSS 2.1 draft.

> but when I tried to validate it, I got this warning:
> [hello="Cleveland"] and [goodbye="Columbus"] are incompatible

It's very odd and apparently unjustified. There is no reason - 
especially from the CSS perspective - why two attribute selectors should 
be "compatible".

> Thought, this selector is working on IE7, FF, Opera, Safari & probably
> others.

It does not work on IE 7 in Quirks Mode, when applied to an "HTML" 
document (that is, a document mostly complying with HTML specifications 
but containing those non-HTML attributes). In Quirks Mode, IE 7 lacks 
much of the more advanced support, such as all support to attribute 
selectors. You can see this if you add the comment
<!-- -->
at the start of the HTML document.

> Did I find a bug in the validator?

I think you did.

The bogus warning does not appear if the selector is just
span[hello][goodbye]
or
span[hello="Cleveland"][goodbye]
or
span[hello="Cleveland"][goodbye="Cleveland"]

So apparently the W3C CSS Validator thinks that when a selector contains 
two attribute selectors, they should have the same attribute value. This 
makes no sense of course. Perhaps people who wrote this part of the code 
just forgot to include the condition "and the attribute names are the 
same".

Jukka K. Korpela ("Yucca")
http://www.cs.tut.fi/~jkorpela/ 

Received on Thursday, 28 February 2008 07:13:01 UTC