- 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