- From: Peter Moulder <peter.moulder@monash.edu>
- Date: Sat, 05 Mar 2011 02:55:16 +1100
- To: www-style list <www-style@w3.org>
On Thu, Mar 03, 2011 at 12:02:05AM -0800, Peter Linss wrote:
> The entire spec needs to move forward. Identifying areas to focus on
> would only help if we were going to break CSS2.1 into modules that
> could advance individually, and we're not going to do that.
We will in some sense: deferring things to CSS3 amounts to much the same
thing. If we want to defer as many issues as possible, then it would be
good to know in advance what things we can or can't defer. If anyone's
aware of something depending on CSS2.1 for its definition of run-in, or
list-item numbering or whatever, then we want to know about it. If
there's a difficult-looking issue with a feature in CSS2.1 that isn't
blocking anything else, then it would be good to know that so that we
know we have the option of simply deferring it and moving on to other
things, and getting CSS2.1 out the door quicker.
In the course of making these lists, I've also found that another value
of them is that it helps us know what things we should be careful about
changing. For example, if other modules are depending on CSS21 for the
definition of "element", then that impacts on our freedom to change that
term to mean something other than elements in the source document.
(For those who haven't been following, there were some steps taken late
in the CR period to have "element" include at least :before/:after
pseudo-elements and possibly also :first-letter/line pseudo-elements,
and possibly also certain anonymous text nodes (see 9.2.2.1 first para);
and to exclude display:none source elements and possibly also
display:table-column and display:table-column-group source elements
(see 17.2) and/or certain of their children (see 17.2.1).)
So far I've only looked through the following modules:
css3-color
css3-namespace
css3-selectors
mathml-for-css
In the following, "explicit normative reference" means a reference
accompanied by the string "[CSS21]" (or whatever label is used in the
Normative References section for CSS 2.1).
(Whereas the phrase "Noted in prose of css3-xxx" means anything written
without an explicit [CSS21] marker.)
Here is the summary of the dependencies I've found in those documents,
sorted by section number in CSS2.1. It's followed by a module-by-module
list, just for the convenience of people here who edit those modules.
Summary of references to CSS2.1, sorted by CSS2.1 section number:
3.1: conform.html#defs:
Explicit normative references from css3-selectors and css3-color.
css3-selectors wants "element" to exclude :first-letter and
:first-line for purposes of "*" (consider cumulative property values
like bolder) or :first-child or :nth-child;
but its use of "element" when describing comma assumes that "element"
includes pseudo-elements. (It would be safest if this text in
css3-selectors were to mention pseudo-elements explicitly.)
Some pseudo-classes like :hover probably change meaning depending
on whether "element" includes pseudo-elements like :before and
:first-line.
As usual, it is unclear what "Applies to: all elements" means.
Of particular concern is the 'opacity' property in css3-color,
which affects stacking order, whereas CSS2.1 doesn't require
'z-index' to apply to :first-line or :first-letter pseudo-elements.
I haven't found any uses of "preceding element" or "following element"
in these modules.
[I mention "preceding element" and "following element" because the
only use of these terms in CSS2.1 wants a different meaning than
that given in conform.html.]
3.1: conform.html#style-sheet
Hyperlinks from css3-namespace and css3-text.
3.1: conform.html#valid-style-sheet
Hyperlink from css3-namespace.
3.1: conform.html#ignore
Hyperlinks from css3-namespace and css3-text.
3.1: conform.html#user-agent
Hyperlink from css3-namespace.
4.1.1: "the generic CSS grammar":
Mentioned in css3-text prose (without hyperlink or other form of
reference).
4.1.3: syndata.html#characters (escaping rules):
Explicit normative reference in css3-selectors
4.1.3: syndata.html#value-def-identifier
Explicit normative reference in css3-selectors
4.1.5: syndata.html#at-rules
Hyperlinks from css3-namespace and css3-text.
4.1.7: That rule sets with an invalid selector are completely ignored.
Explicit normative reference in css3-namespace.
4.2: Treatment of unrecognized property values
[i.e. syndata.html#illegalvalues]:
Explicit normative reference from css3-color.
4.2: syndata.html#parsing-errors (informative note describing
ignoring of unrecognized at-rules):
Hyperlink from css3-namespace.
4.3.2: syndata.html#value-def-length
Hyperlink from css3-text.
4.3.3: syndata.html#value-def-percentage
Hyperlink from css3-text.
4.3.5: syndata.html#counter (case-sensitiveness):
Hyperlink from css3-namespace.
4.3.7: syndata.html#strings
Explicit normative reference in css3-selectors
4.3.7: syndata.html#value-def-string
Hyperlink from css3-text.
5: set of selectors available:
Various non-normative references from css3-selectors
(see css3-selectors below for more detail).
5: That CSS2.1 selectors cannot select based on element content.
Noted in prose of mathml-for-css.
5.12.1: selector.html#first-line-pseudo
Hyperlink from css3-text (though only for the definition of
"first formatted line")
6.4.3: specificity of style attrs
Explicit normative reference in css3-selectors
7.3.1: media.html#interactive-media-group
Hyperlink from css3-selectors [currently pointing to within REC-CSS2]
8.5.1: box.html#border-width-properties
Hyperlink from css3-text (not really a dependency, just an idea for
how an issue might be resolved).
8.5.2: That border-color in CSS2.1 can have value 'transparent':
Noted in prose of css3-color.
8.5.2: That the initial value of border-color properties is in effect
currentColor, but that CSS2.1 has no currentColor value:
Noted in prose of css3-color.
9.1.1: visuren.html#viewport
Hyperlink from css3-text.
9.2.4: visuren.html#display-prop
Hyperlink from css3-text (a dependency on the existence of
'inline-block' and 'inline-table' values, though doesn't depend
on the exact behaviour of either value)
9.4.2: visuren.html#line-box
Hyperlink from css3-text.
9.9, E: Behaviour of 'z-index' property and description of stacking
contexts (for purposes of defining interaction with 'opacity'):
Explicit normative reference from css3-color.
9.9: visuren.html#layers (description of "parent stacking context"
and stacking contexts generally):
Hyperlink from css3-color.
12.1: "[::before and ::after pseudo-elements] are explained in CSS 2.1."
Explicit normative reference in css3-selectors
16.4: 'letter-spacing' and 'word-spacing'
Explicit normative reference from css3-text (for purposes of
describing interaction with 'text-autospace').
17: That mlabeledtr "does not fit in the CSS table model".
Noted in prose of mathml-for-css.
17.2.1: Possible dependency from mathml-for-css, see below.
18.2: ui.html#system-colors (existence of system colors):
Hyperlink from css3-color.
18.2: That CSS2 allows system color values:
Noted in prose of css3-color (though the accompanying hyperlink is to
within REC-CSS2).
[Css3-color also refers to them as "CSS2 UI colors"; though that term
appears not to appear anywhere in the current CSS2.1 working draft.]
E: zindex.html (stacking contexts, for purposes of explaining
'opacity' behaviour):
Hyperlink from css3-color.
G.1, G.2: grammar.html (tokens, EBNF notation, implicit comments but
explicit S):
Explicit normative reference in css3-namespace.
[Though there may be a mistake in the grammar regarding comments
or S; I've just sent a message to www-style about this.]
Possible others:
mathml-for-css includes a suggested default stylesheet for MathML.
Together with the claim in its introduction that MathML in the
specified profile "should render well with currently implemented
CSS up to CSS 2.1", this somewhat implies dependencies on CSS2.1
features. I haven't checked methodically what features the
stylesheet uses, but it doesn't use :first-line, :first-letter or
any list-related things; while it does use table-related display
values (so might depend on 17.2.1, though I haven't tried to
determine this).
Module-by-Module references & dependencies
------------------------------------------
css3-selectors:
Explicit normative references:
3.1: conform.html#defs (terminology definitions generally).
It wants "element" to exclude :first-letter and :first-line for
purposes of "*" (consider cumulative property values like bolder)
or :first-child or :nth-child; but its use of "element" when
describing comma assumes that "element" includes pseudo-elements.
(It would be safest if this text in css3-selectors were to mention
pseudo-elements explicitly.)
Some pseudo-classes like :hover probably change meaning depending
on whether "element" includes pseudo-elements like :before and
:first-line.
It doesn't use "preceding element" or "following element".
4.1.3: syndata.html#characters (escaping rules)
4.1.3: syndata.html#value-def-identifier
4.3.7: syndata.html#strings
6.4.3: specificity of style attrs
12.1: "[::before and ::after pseudo-elements] are explained in CSS 2.1."
Hyperlinks:
7.3.1: media.html#interactive-media-group
[currently pointing to within REC-CSS2]
Other references:
5: A non-normative "Changes from CSS2" section,
and a non-normative statement of what selectors in css3-selectors
are also part of CSS 2.1,
and a non-normative example CSS level 2 selectors profile.
5.8.1: Description of CSS2 attribute selectors [att], [att=val],
[att~=val], [att|=val].
css3-namespace:
Explicit normative references:
G.1, G.2: grammar.html (tokens, EBNF notation, implicit comments but
explicit S)
[Though there may be a mistake in the grammar regarding comments
or S; I've just sent a message to www-style about this.]
4.1.7: That rule sets with an invalid selector are completely ignored.
Hyperlinks:
3.1: conform.html#ignore
3.1: conform.html#valid-style-sheet
3.1: conform.html#style-sheet
3.1: conform.html#user-agent
4.1.5: syndata.html#at-rules
4.2: syndata.html#parsing-errors (informative note describing
ignoring of unrecognized at-rules)
4.3.5: syndata.html#counter (case-sensitiveness)
css3-color:
Explicit normative references:
3.1: conform.html#defs (terminology generally)
As usual, it is unclear what "Applies to: all elements" means.
Of particular concern is the 'opacity' property, which affects
stacking order, whereas CSS2.1 doesn't require 'z-index' to apply
to :first-line or :first-letter pseudo-elements.
9.9, E: Behaviour of 'z-index' property and description of stacking
contexts (for purposes of defining interaction with 'opacity').
4.2: Treatment of unrecognized property values
[i.e. syndata.html#illegalvalues].
Hyperlinks:
9.9: visuren.html#layers (description of "parent stacking context"
and stacking contexts generally)
18.2: ui.html#system-colors (describes existence of system colors)
E: zindex.html (stacking contexts, for purposes of explaining
'opacity' behaviour)
Other references:
8.5.2: That border-color in CSS2.1 can have value 'transparent'.
8.5.2: That the initial value of border-color properties is in effect
currentColor, but that CSS2.1 has no currentColor value.
[Actually the css3-color text uses the questionable wording of
referring to the "initial value" of 'border-color' as if it were a
real property.]
18.2: That CSS2 (hyperlink to within REC-CSS2) allows system color values.
[Also refers to them as "CSS2 UI colors"; though that term appears
not to appear anywhere in the current CSS2.1 working draft.]
mathml-for-css:
Explicit normative references:
Essentially none. (One historical note only.)
Hyperlinks:
None other than http://www.w3.org/TR/CSS21/ in the References section.
Other references:
5: That CSS2.1 selectors cannot select based on element content.
17: That mlabeledtr "does not fit in the CSS table model".
There is a suggested default stylesheet for MathML. Together with
the claim in the introduction that MathML in the specified profile
"should render well with currently implemented CSS up to CSS 2.1",
this somewhat implies dependencies on CSS2.1 features. I haven't
checked methodically what features the stylesheet uses, but it
doesn't use :first-line, :first-letter or any list-related things;
while it does use table-related display values (so might depend
on 17.2.1, though I haven't tried to determine this).
css3-text:
Explicit normative reference(s):
16.4: 'letter-spacing' and 'word-spacing' (for purposes of describing
interaction with 'text-autospace')
Hyperlinks:
3.1: conform.html#ignore
3.1: conform.html#style-sheet
4.1.5: syndata.html#at-rules
4.3.2: syndata.html#value-def-length
4.3.3: syndata.html#value-def-percentage
4.3.7: syndata.html#value-def-string
5.12.1: selector.html#first-line-pseudo (but only for the definition
of "first formatted line")
8.5.1: box.html#border-width-properties (not a dependency, just an
idea for how an issue might be resolved)
9.1.1: visuren.html#viewport
9.2.4: visuren.html#display-prop (existence of 'inline-block' and
'inline-table' values, though doesn't depend on the exact behaviour
of either value)
9.4.2: visuren.html#line-box
Other references:
4.1.1: The prose mentions "the generic CSS grammar" (without
hyperlink or other form of reference).
pjrm.
Received on Friday, 4 March 2011 15:55:46 UTC