Re: CSS 2.1 WD and non-CSS presentational hints

[Mon, 26 Aug 2002 15:08:57 -0400] Boris Zbarsky:
>>      A "non-CSS presentational hint" is information which is derived
>>      from the document and is translated into CSS properties by
>>      the user agent through some mechanism other than CSS style rules.
>> 
>> Note that "CSS style rules" includes the user agent default style sheet.
>
>This definition is, unfortunately, not acceptable in my mind.  To use
>your own example, <p align="left"> could be implemented by putting
>
>p[align="left"] { text-align: left }
>
>in the UA stylesheet _if_ the UA supports attribute selectors.  It must
>be implemented in some other way if the UA does not support these
>selectors (eg IE/Win at present).  Does that mean that 'align="left"' on
>a <p> is sometimes a "non-CSS presentational hint" and sometimes not,
>depending on the UA?

That is exactly what I mean.

We should note --- before becoming panicked --- that the distinction
between "non-CSS presentational hints" and presentation expressed in the
user agent default style sheet is irrelevant in the proposed CSS 2.1 and
CSS 3 standards; in CSS 2 the difference is limited to changing the impact
of user style sheets.  In no existing or proposed CSS standard does this
distinction affect the presentation of documents in the absence of a user
style sheet.

One common assertion is that <B> should be classified as a non-CSS
presentational hint, but <STRONG> should not.  What is the difference?
In  "A sample style sheet for HTML 4.0" found here:
     http://www.w3.org/TR/REC-CSS2/sample.html
we see:
     H1, H2, H3, H4, H5, H6, B, STRONG  { font-weight: bolder }
     @media speech {
       STRONG  { pitch: medium; pitch-range: 60; stress: 90; richness: 90 }
       B       { pitch: medium; pitch-range: 60; stress: 90; richness: 90 }
     }
and nothing else about <B> and <STRONG>.  To distinguish between the two,
we have to get into the semantics of the document language (HTML).  It
seems to me undesirable that CSS should concern itself with document
language semantics.

In any case, if "B {font-weight: bolder}" appears in the user agent default
style sheet, how can it also be a non-CSS presentational hint?  This would
give the same specification two separate priorities in the cascade.  It
makes no sense to call something a non-CSS presentational hint if it
appears in the user agent default style sheet.

It is --- in my opinion --- a separate question whether the CSS standards
should include guidelines describing which document language features
should be specified in user agent default style sheets and which should be
implemented as non-CSS presentational hints.  But it seems to me that at
least two things are clear:
     * What is in the user agent default style sheet can't be "non-CSS."
     * What affects CSS properties but can't be coded as a CSS declaration
       (and thus cannot be in the user agent default style sheet) *must* be
       a non-CSS presentational hint (else it would have no place in the
       cascade, and we wouldn't know how to weight it against CSS sources).
Dividing up the rest strikes me as best handled through recommendation,
not definition.  The definition I propose avoids ambiguity; it leaves the
question of guidelines to a separate statement, should that be desired.

An advantage of this is that it forces whatever the user agent can't
express in CSS to be classified as a non-CSS presentational hint.
Following the CSS 2 model (changed, I believe for the worse, in the
proposed CSS 2.1 and CSS 3 models), this assures that a user style sheet
can always define a default presentation in such a way that explicit
specifications in the document can override it.


>> CSS is a means of specifying various details regarding presentation, so it
>> makes sense that "presentational hints" would be things that affect CSS
>> properties.
>
>So as new CSS properties are added (in CSS3, eg) things would suddenly
>stop being "non-CSS presentational hints"?

No... things would *start* being non-CSS presentational hints ---
if they're not implemented through the user agent default style sheet.

The point of that clause in my suggested definition is to avoid the need
to define, in some "deep" way, what "presentation" is.  If a document
language feature doesn't affect any CSS properties, then (for the purposes
of CSS), it isn't "presentational."

If a particular feature of the document language doesn't affect any CSS
properties, then it has no interaction with CSS --- so I simply exclude it.
If a new version of CSS includes new properties, then document language
features that were formerly outside the scope of CSS might have to be
considered: if they are specified through the user agent default style
sheet, they're just ordinary CSS properties assigned according to the
cascade; if they aren't (and perhaps can't) be specified through the user
agent default style sheet, but still affect CSS properties in some way,
then they're non-CSS presentational hints.
-- 
Randall Joseph Fellmy aka Randy@Coises.com

Received on Monday, 26 August 2002 23:58:02 UTC