Re: [css3-namespace] Last call comments from XHTML2 WG

Hi Anne,

The XHTML2 WG discussed this issue yesterday.

On Thu, 13 Mar 2008 09:29:37 +0100, Anne van Kesteren <annevk@opera.com>  
wrote:
> On Wed, 05 Mar 2008 16:42:07 +0100, Steven Pemberton  
> <steven.pemberton@cwi.nl> wrote:
>> In the context of the following
>>
>> 	@namespace "http://example.org/ns"
>> 	
>> 	foo {color: green}
>>
>> with a non-namespaced CSS processor all elements named foo will be  
>> green,
>> while with a namespaced processor, only elements in the namespace named
>> will be green.
>>
>> This seems to break an axiom of CSS versioning that later versions of  
>> CSS
>> should not change the processing of earlier versions; it will therefore
>> make it hard to make a stylesheet that works regardless of the presence  
>> of namespace processing.
>>
>> It would seem better if unqualified names continue to behave in the same
>> way as non-namespaced processors, and that to select a particular
>> namespaced version of an element, you should always use a qualified  
>> name.
>
> We discussed this and since @namespace has been around for a long time  
> it would probably break more if we removed the ability to do default  
> namespaces in CSS. In its almost nine years of existence this hasn't  
> been a problem really and we expect it to be not much of a hassle going  
> forward. Please let us know if you disagree with this response.

There was a fairly strong opinion that we disagree with this. A last call  
is a last call, and if it has been broken for 9 years, then it still  
really ought to be fixed.

As far as we are aware there is no other case where the semantics of a  
selector changes depending on which level of CSS is implemented, and that  
CSS's principle of upwards and downwards compatibility is a good one, that  
this breaks for the first time, making it harder to write interoperable  
cascading style sheets.

However, if you unfortunately think that this principle can be broken in  
this case, then we think that the specification should draw attention to  
it, deprecate default namespaces, and give help on how to avoid the  
problems, principally by not using default namespaces, but always using  
namespaced selectors:

Don't use:

	a {color: red; text-decoration: underline}
         @namespace "http://www.w3.org/1999/xhtml"
	a {color: blue}

but use:

	a {color: red; text-decoration: underline}
         @namespace html "http://www.w3.org/1999/xhtml"
	html|a {color: blue}

Best wishes,

Steven Pemberton
For the XHTML2 WG

Received on Thursday, 20 March 2008 13:15:33 UTC