W3C home > Mailing lists > Public > www-style@w3.org > January 2003

Re: XBL is (mostly) W3C redundant, and CSS is wrong W3C layer for semantic behavior *markup*

From: Shelby Moore <shelby@coolpage.com>
Date: Wed, 01 Jan 2003 16:36:36 -0600
Message-Id: <4.1.20030101162419.0387cd70(null)>
To: John Lewis <lewi0371@mrs.umn.edu>
Cc: www-style@w3.org

At 11:18 AM 1/1/2003 -0600, John Lewis wrote:
>>> >>>CSS selectors allows one to select elements of markup based on
>>> >>>attributes which are not related to *semantics*.
>>> >>
>>> >>As an editor of the W3C Selectors Specification, I assure you, that is
>>> >>most definitely not the intention of CSS selectors.
>>> >
>>> > Of course it is.
>>>
>>>No, it is *not*.
>
>> Er, what is a class selector?
>
>A class selector is a type of attribute selector; it selects an
>element whose class attribute is equal to some value.


[...]


>> The class attribute has several roles in HTML:
>>  * As a style sheet selector (when an author wishes to assign style
>>    information to a set of elements).
>>  * For general purpose processing by user agents.


[...]

>You seem to think it's something else entirely; what that is I'd like
>to know.


I agree with the specification of class selector as you quoted.

Note the *KEY* point that class selector is not __semantic___ markup.
There is not a one-to-one correspondence (no inverse) between classes and
semantics.  In other words, the only layers that understand what classes
___mean___ (i.e. understand semantics of class) are below the semantic
markup layer.

The class selector is a way to markup "style sheets" and for "general
purpose processing by UA".  According to HTML 4.01 spec quoted, those are
both layers that are below (and separable, e.g. orthogonal) to semantic
markup layer.  If you make the semantic binding combined with the class
selector layer, then you have merged semantic layer with a layer that it
supposed to be orthogonal and separable from semantics.

Look at it another way.  If CSS was bound to semantics, then it could not
modify some <P> tags but not all <P> tags.  Because doing so would change
the semantics of <P>.  But since CSS doesn't deal with semantics, then it
is free to modify any collection (a class) of elements.  CSS is thus
orthogonal to semantic markup.

I understand it is a very abstract and difficult conceptual thing to wrap
one's head around.  I did not learn it overnight.  But once you learn about
the importance of analyzing orthogonalities, then you designs will be much
more correct and easy.

Orthogonality also as nice effect, encourages KISS.  e = mc ^ 2 is a nice
orthogonal way to express a lot of detail in theory of relativity.  Binding
semantics before XHTML parsing, just makes everything a lot simpler.  You
don't have to be concerned about all the requirements to make DOM
intellient about any possible custom markup elements.  Keeps CSS pure and
focused on it's primary purposes.

-Shelby Moore
Received on Wednesday, 1 January 2003 17:35:38 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:54:18 GMT