W3C home > Mailing lists > Public > www-style@w3.org > September 2001

Re: Excluding declarations from the cascade

From: Jan Roland Eriksson <jrexon@newsguy.com>
Date: Sat, 01 Sep 2001 18:43:51 +0200
To: Ian Hickson <ianh@hixie.ch>
Cc: Manos Batsis <m.batsis@bsnet.gr>, Bjoern Hoehrmann <derhoermi@gmx.net>, www-style@w3.org
Message-ID: <pav1ptkle3j292gee5fghl0ud6umrhmng4@4ax.com>
On Wed, 29 Aug 2001 21:44:27 +0000 (GMT), you wrote:

>On Mon, 20 Aug 2001, Jan Roland Eriksson wrote:
[...]
>> CSS3 stinks, am I the only one to think in those terms?

>Do you have any explicltly constructive criticism?

I have already commented in general, you can have at least one specific
too.

>For example, look at the CSS3 Selectors last call document;
>do you have any specific complaints that haven't been raised?

It's too late to comment on it "officially" now, so you may look at this
as just a comment if you like; but I do find it distressing not to be
able to unambiguously understand what you mean with the words "document
tree".

They are used all over the LCD instance but there is no explicit
explanation, or link to such an explanation, for what "document tree" is
supposed to mean.

My take on it, for the rest of this post, is that "document tree" is
used to describe the generated output from a parser after it has parsed
a document instance (possibly including a declaration subset, since you
in sect. 6.3.4. actually refers to a concept of a DTD)

To me (and in this context), a stream of data that contains markup, is a
linear representation of a document structure. The parsers job is to
recreate the original data structure by generating output in the form of
a parse tree. Such a parse tree can with a bit of good will also be
called a "document tree".

A CSS based rendering engine "decorates" this resulting parse tree (and
_only_ that tree) by using selectors to select branches on the tree and
go on to apply values to properties of those branches. 

So for some more specifics on 6.3.4.
Strike it all together, it is redundant info at best.

Reasons?

1) If you have a parser that does not make use of a declaration
   subset at all, you _must_ explicitly include, in your markup,
   all attribute/value pairs that you want to make available for
   CSS selection since the parser will never know that there was
   a "default" value available for some attribute in the first place.

2) If you have a parser that is "DTD aware" and makes use of a
   declaration subset, such a parser is seriously broken if it
   does not automatically include the suggested "default" value
   for some attribute in its output parse tree, if no other value
   was explicitly given in the original markup.

So out of 6.3.4. it is _only_ the selectors...

  EXAMPLE[notation=decimal]  and  EXAMPLE[notation=octal]

...that are usable if you want to select some specific subset of
'EXAMPLE' elements. Saying that 'EXAMPLE' alone as a selector shall
default to select as if it was 'EXAMPLE[notation=decimal]' is wrong.

The 'EXAMPLE[notation=decimal]' branch will always be there in the parse
tree one way or another, if direct author input or the declaration
subset has any influence at all on the parsing process.

And how would you go about to select _all_ 'EXAMPLE' elements,
regardless of what attribute values they happen to carry along?

>We (the working group) can work with specific comments.

I suggest a move to strike 6.3.4. in full, how's that for a minimal
simplification of a future CSS3?

-- 
Rex
Received on Saturday, 1 September 2001 12:58:54 GMT

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