Skip to content

Commit 35681ac

Browse files
committed
[css-pseudo][cssom] Link the two competing pseudo element interface proposals to each other.
This issue was raised in https://lists.w3.org/Archives/Public/www-style/2014Nov/0035.html
1 parent 70f3640 commit 35681ac

3 files changed

Lines changed: 87 additions & 77 deletions

File tree

css-pseudo/Overview.bs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -775,6 +775,9 @@ Additions to the CSS Object Model</h2>
775775
Implementations, at this point, are not,
776776
as we are not yet sure of our approach.
777777

778+
Issue: This needs to be merged with the alternative
779+
{{PseudoElement}} and <code class="idl">pseudo</code> proposal.
780+
778781
<h3 id="CSSPseudoElement-interface">
779782
Interface CSSPseudoElement</h3>
780783

css-pseudo/Overview.html

Lines changed: 82 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<head>
33
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
44
<title>CSS Pseudo-Elements Module Level 4</title>
5+
<meta content="width=device-width, initial-scale=1" name="viewport">
56
<meta content="exploring" name="csswg-work-status">
67
<meta content="ED" name="w3c-status">
78
<link href="../default.css" rel="stylesheet" type="text/css">
@@ -55,7 +56,7 @@
5556
<div class="head">
5657
<p data-fill-with="logo"><a class="logo" href="http://www.w3.org/"> <img alt="W3C" height="48" src="https://www.w3.org/Icons/w3c_home" width="72"> </a> </p>
5758
<h1 class="p-name no-ref" id="title">CSS Pseudo-Elements Module Level 4</h1>
58-
<h2 class="no-num no-toc no-ref heading settled" id="subtitle"><span class="content">Editor’s Draft, <time class="dt-updated" datetime="2015-10-26">26 October 2015</time></span></h2>
59+
<h2 class="no-num no-toc no-ref heading settled" id="subtitle"><span class="content">Editor’s Draft, <time class="dt-updated" datetime="2015-12-11">11 December 2015</time></span></h2>
5960
<div data-fill-with="spec-metadata">
6061
<dl>
6162
<dt>This version:
@@ -65,7 +66,7 @@ <h2 class="no-num no-toc no-ref heading settled" id="subtitle"><span class="cont
6566
<dt>Previous Versions:
6667
<dd><a href="http://www.w3.org/TR/2015/WD-css-pseudo-4-20150115/" rel="previous">http://www.w3.org/TR/2015/WD-css-pseudo-4-20150115/</a>
6768
<dt>Feedback:
68-
<dd><span><a href="mailto:www-style@w3.org?subject=%5Bcss-pseudo%5D%20YOUR%20TOPIC%20HERE">www-style@w3.org</a> with subject line “<kbd>[css-pseudo] <i>… message topic …</i></kbd>” (<a href="http://lists.w3.org/Archives/Public/www-style/" rel="discussion">archives</a>)</span>
69+
<dd><span><a href="mailto:www-style@w3.org?subject=%5Bcss-pseudo%5D%20YOUR%20TOPIC%20HERE">www-style@w3.org</a> with subject line “<kbd>[css-pseudo] <i data-lt="">… message topic …</i></kbd>” (<a href="http://lists.w3.org/Archives/Public/www-style/" rel="discussion">archives</a>)</span>
6970
<dt>Test Suite:
7071
<dd><a href="http://test.csswg.org/suites/css-pseudo-4_dev/nightly-unstable/">http://test.csswg.org/suites/css-pseudo-4_dev/nightly-unstable/</a>
7172
<dt>Issue Tracking:
@@ -161,11 +162,15 @@ <h2 class="no-num no-toc no-ref heading settled" id="contents"><span class="cont
161162
<li>
162163
<a href="#conformance"><span class="secno"></span> <span class="content"> Conformance</span></a>
163164
<ul class="toc">
164-
<li><a href="#conventions"><span class="secno"></span> <span class="content"> Document conventions</span></a>
165-
<li><a href="#conformance-classes"><span class="secno"></span> <span class="content"> Conformance classes</span></a>
166-
<li><a href="#partial"><span class="secno"></span> <span class="content"> Partial implementations</span></a>
167-
<li><a href="#experimental"><span class="secno"></span> <span class="content"> Experimental implementations</span></a>
168-
<li><a href="#testing"><span class="secno"></span> <span class="content"> Non-experimental implementations</span></a>
165+
<li><a href="#document-conventions"><span class="secno"></span> <span class="content"> Document conventions</span></a>
166+
<li><a href="#conform-classes"><span class="secno"></span> <span class="content"> Conformance classes</span></a>
167+
<li>
168+
<a href="#conform-responsible"><span class="secno"></span> <span class="content"> Requirements for Responsible Implementation of CSS</span></a>
169+
<ul class="toc">
170+
<li><a href="#conform-partial"><span class="secno"></span> <span class="content"> Partial Implementations</span></a>
171+
<li><a href="#conform-future-proofing"><span class="secno"></span> <span class="content"> Implementations of Unstable and Proprietary Features</span></a>
172+
<li><a href="#conform-testing"><span class="secno"></span> <span class="content"> Implementations of CR-level Features</span></a>
173+
</ul>
169174
</ul>
170175
<li>
171176
<a href="#index"><span class="secno"></span> <span class="content">Index</span></a>
@@ -707,6 +712,7 @@ <h2 class="heading settled" data-level="6" id="cssom"><span class="secno">6. </s
707712
Feedback is welcome.
708713
Implementations, at this point, are not,
709714
as we are not yet sure of our approach.</p>
715+
<p class="issue" id="issue-126afe59"><a class="self-link" href="#issue-126afe59"></a> This needs to be merged with the alternative <code class="idl"><a data-link-type="idl" href="https://drafts.csswg.org/cssom-1/#pseudoelement">PseudoElement</a></code> and <code class="idl">pseudo</code> proposal.</p>
710716
<h3 class="heading settled" data-level="6.1" id="CSSPseudoElement-interface"><span class="secno">6.1. </span><span class="content"> Interface CSSPseudoElement</span><a class="self-link" href="#CSSPseudoElement-interface"></a></h3>
711717
<p>The <code>CSSPseudoElement</code> interface
712718
allows pseudo-elements to be styleable from script
@@ -794,94 +800,91 @@ <h2 class="no-num heading settled" id="acknowledgements"><span class="content">
794800
Vincent Hardy.</p>
795801
</main>
796802
<h2 class="no-ref no-num heading settled" id="conformance"><span class="content"> Conformance</span><a class="self-link" href="#conformance"></a></h2>
797-
<h3 class="no-ref heading settled" id="conventions"><span class="content"> Document conventions</span><a class="self-link" href="#conventions"></a></h3>
803+
<h3 class="heading settled" id="document-conventions"><span class="content"> Document conventions</span><a class="self-link" href="#document-conventions"></a></h3>
798804
<p>Conformance requirements are expressed with a combination of
799-
descriptive assertions and RFC 2119 terminology. The key words "MUST",
800-
"MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT",
801-
"RECOMMENDED", "MAY", and "OPTIONAL" in the normative parts of this
802-
document are to be interpreted as described in RFC 2119.
803-
However, for readability, these words do not appear in all uppercase
804-
letters in this specification. </p>
805+
descriptive assertions and RFC 2119 terminology. The key words "MUST",
806+
"MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT",
807+
"RECOMMENDED", "MAY", and "OPTIONAL" in the normative parts of this
808+
document are to be interpreted as described in RFC 2119.
809+
However, for readability, these words do not appear in all uppercase
810+
letters in this specification. </p>
805811
<p>All of the text of this specification is normative except sections
806-
explicitly marked as non-normative, examples, and notes. <a data-link-type="biblio" href="#biblio-rfc2119">[RFC2119]</a></p>
812+
explicitly marked as non-normative, examples, and notes. <a data-link-type="biblio" href="#biblio-rfc2119">[RFC2119]</a> </p>
807813
<p>Examples in this specification are introduced with the words "for example"
808-
or are set apart from the normative text with <code>class="example"</code>,
809-
like this: </p>
810-
<div class="example" id="example-f839f6c8">
811-
<a class="self-link" href="#example-f839f6c8"></a>
812-
<p>This is an example of an informative example.</p>
814+
or are set apart from the normative text with <code>class="example"</code>,
815+
like this: </p>
816+
<div class="example" id="example-52448c84">
817+
<a class="self-link" href="#example-52448c84"></a>
818+
<p>This is an example of an informative example. </p>
813819
</div>
814820
<p>Informative notes begin with the word "Note" and are set apart from the
815-
normative text with <code>class="note"</code>, like this: </p>
816-
<p class="note" role="note">Note, this is an informative note.</p>
821+
normative text with <code>class="note"</code>, like this: </p>
822+
<p class="note" role="note">Note, this is an informative note. </p>
817823
<p>Advisements are normative sections styled to evoke special attention and are
818-
set apart from other normative text with <code>&lt;strong class="advisement"></code>, like
819-
this: <strong class="advisement"> UAs MUST provide an accessible alternative. </strong> </p>
820-
<h3 class="no-ref heading settled" id="conformance-classes"><span class="content"> Conformance classes</span><a class="self-link" href="#conformance-classes"></a></h3>
824+
set apart from other normative text with <code>&lt;strong class="advisement"></code>, like
825+
this: <strong class="advisement"> UAs MUST provide an accessible alternative. </strong> </p>
826+
<h3 class="heading settled" id="conform-classes"><span class="content"> Conformance classes</span><a class="self-link" href="#conform-classes"></a></h3>
821827
<p>Conformance to this specification
822-
is defined for three conformance classes: </p>
828+
is defined for three conformance classes: </p>
823829
<dl>
824830
<dt>style sheet
825-
<dd>A <a href="http://www.w3.org/TR/CSS21/conform.html#style-sheet">CSS
826-
style sheet</a>.
831+
<dd>A <a href="http://www.w3.org/TR/CSS2/conform.html#style-sheet">CSS
832+
style sheet</a>.
827833
<dt>renderer
828-
<dd>A <a href="http://www.w3.org/TR/CSS21/conform.html#user-agent">UA</a> that interprets the semantics of a style sheet and renders
829-
documents that use them.
834+
<dd>A <a href="http://www.w3.org/TR/CSS2/conform.html#user-agent">UA</a> that interprets the semantics of a style sheet and renders
835+
documents that use them.
830836
<dt>authoring tool
831-
<dd>A <a href="http://www.w3.org/TR/CSS21/conform.html#user-agent">UA</a> that writes a style sheet.
837+
<dd>A <a href="http://www.w3.org/TR/CSS2/conform.html#user-agent">UA</a> that writes a style sheet.
832838
</dl>
833839
<p>A style sheet is conformant to this specification
834-
if all of its statements that use syntax defined in this module are valid
835-
according to the generic CSS grammar and the individual grammars of each
836-
feature defined in this module. </p>
840+
if all of its statements that use syntax defined in this module are valid
841+
according to the generic CSS grammar and the individual grammars of each
842+
feature defined in this module. </p>
837843
<p>A renderer is conformant to this specification
838-
if, in addition to interpreting the style sheet as defined by the
839-
appropriate specifications, it supports all the features defined
840-
by this specification by parsing them correctly
841-
and rendering the document accordingly. However, the inability of a
842-
UA to correctly render a document due to limitations of the device
843-
does not make the UA non-conformant. (For example, a UA is not
844-
required to render color on a monochrome monitor.) </p>
844+
if, in addition to interpreting the style sheet as defined by the
845+
appropriate specifications, it supports all the features defined
846+
by this specification by parsing them correctly
847+
and rendering the document accordingly. However, the inability of a
848+
UA to correctly render a document due to limitations of the device
849+
does not make the UA non-conformant. (For example, a UA is not
850+
required to render color on a monochrome monitor.) </p>
845851
<p>An authoring tool is conformant to this specification
846-
if it writes style sheets that are syntactically correct according to the
847-
generic CSS grammar and the individual grammars of each feature in
848-
this module, and meet all other conformance requirements of style sheets
849-
as described in this module. </p>
850-
<h3 class="no-ref heading settled" id="partial"><span class="content"> Partial implementations</span><a class="self-link" href="#partial"></a></h3>
851-
<p>So that authors can exploit the forward-compatible parsing rules to
852-
assign fallback values, CSS renderers <strong>must</strong> treat as invalid (and <a href="http://www.w3.org/TR/CSS21/conform.html#ignore">ignore
853-
as appropriate</a>) any at-rules, properties, property values, keywords,
854-
and other syntactic constructs for which they have no usable level of
855-
support. In particular, user agents <strong>must not</strong> selectively
856-
ignore unsupported component values and honor supported values in a single
857-
multi-value property declaration: if any value is considered invalid
858-
(as unsupported values must be), CSS requires that the entire declaration
859-
be ignored.</p>
860-
<h3 class="no-ref heading settled" id="experimental"><span class="content"> Experimental implementations</span><a class="self-link" href="#experimental"></a></h3>
861-
<p>To avoid clashes with future CSS features, the CSS2.1 specification
862-
reserves a <a href="http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords">prefixed
863-
syntax</a> for proprietary and experimental extensions to CSS. </p>
864-
<p>Prior to a specification reaching the Candidate Recommendation stage
865-
in the W3C process, all implementations of a CSS feature are considered
866-
experimental. The CSS Working Group recommends that implementations
867-
use a vendor-prefixed syntax for such features, including those in
868-
W3C Working Drafts. This avoids incompatibilities with future changes
869-
in the draft. </p>
870-
<h3 class="no-ref heading settled" id="testing"><span class="content"> Non-experimental implementations</span><a class="self-link" href="#testing"></a></h3>
852+
if it writes style sheets that are syntactically correct according to the
853+
generic CSS grammar and the individual grammars of each feature in
854+
this module, and meet all other conformance requirements of style sheets
855+
as described in this module. </p>
856+
<h3 class="heading settled" id="conform-responsible"><span class="content"> Requirements for Responsible Implementation of CSS</span><a class="self-link" href="#conform-responsible"></a></h3>
857+
<p>The following sections define several conformance requirements
858+
for implementing CSS responsibly,
859+
in a way that promotes interoperability in the present and future. </p>
860+
<h4 class="heading settled" id="conform-partial"><span class="content"> Partial Implementations</span><a class="self-link" href="#conform-partial"></a></h4>
861+
<p>So that authors can exploit the forward-compatible parsing rules to assign fallback values, <strong>CSS renderers <em>must</em> treat as invalid
862+
(and <a href="http://www.w3.org/TR/CSS2/conform.html#ignore">ignore as appropriate</a>)
863+
any at-rules, properties, property values, keywords, and other syntactic constructs
864+
for which they have no usable level of support</strong>.
865+
In particular, user agents <em>must not</em> selectively ignore
866+
unsupported property values and honor supported values in a single multi-value property declaration:
867+
if any value is considered invalid (as unsupported values must be),
868+
CSS requires that the entire declaration be ignored. </p>
869+
<h4 class="heading settled" id="conform-future-proofing"><span class="content"> Implementations of Unstable and Proprietary Features</span><a class="self-link" href="#conform-future-proofing"></a></h4>
870+
<p>To avoid clashes with future stable CSS features,
871+
the CSSWG recommends <a href="http://www.w3.org/TR/CSS/#future-profing">following best practices</a> for the implementation of <a href="http://www.w3.org/TR/CSS/#unstable">unstable</a> features and <a href="http://www.w3.org/TR/CSS/#proprietary-extension">proprietary extensions</a> to CSS. </p>
872+
<h4 class="heading settled" id="conform-testing"><span class="content"> Implementations of CR-level Features</span><a class="self-link" href="#conform-testing"></a></h4>
871873
<p>Once a specification reaches the Candidate Recommendation stage,
872-
non-experimental implementations are possible, and implementors should
873-
release an unprefixed implementation of any CR-level feature they
874-
can demonstrate to be correctly implemented according to spec. </p>
874+
implementers should release an <a data-link-type="dfn" href="#vendor-prefix">unprefixed</a> implementation
875+
of any CR-level feature they can demonstrate
876+
to be correctly implemented according to spec,
877+
and should avoid exposing a prefixed variant of that feature. </p>
875878
<p>To establish and maintain the interoperability of CSS across
876-
implementations, the CSS Working Group requests that non-experimental
877-
CSS renderers submit an implementation report (and, if necessary, the
878-
testcases used for that implementation report) to the W3C before
879-
releasing an unprefixed implementation of any CSS features. Testcases
880-
submitted to W3C are subject to review and correction by the CSS
881-
Working Group. </p>
879+
implementations, the CSS Working Group requests that non-experimental
880+
CSS renderers submit an implementation report (and, if necessary, the
881+
testcases used for that implementation report) to the W3C before
882+
releasing an unprefixed implementation of any CSS features. Testcases
883+
submitted to W3C are subject to review and correction by the CSS
884+
Working Group. </p>
882885
<p>Further information on submitting testcases and implementation reports
883-
can be found from on the CSS Working Group’s website at <a href="http://www.w3.org/Style/CSS/Test/">http://www.w3.org/Style/CSS/Test/</a>.
884-
Questions should be directed to the <a href="http://lists.w3.org/Archives/Public/public-css-testsuite">public-css-testsuite@w3.org</a> mailing list. </p>
886+
can be found from on the CSS Working Group’s website at <a href="http://www.w3.org/Style/CSS/Test/">http://www.w3.org/Style/CSS/Test/</a>.
887+
Questions should be directed to the <a href="http://lists.w3.org/Archives/Public/public-css-testsuite">public-css-testsuite@w3.org</a> mailing list. </p>
885888
<h2 class="no-num heading settled" id="index"><span class="content">Index</span><a class="self-link" href="#index"></a></h2>
886889
<h3 class="no-num heading settled" id="index-defined-here"><span class="content">Terms defined by this specification</span><a class="self-link" href="#index-defined-here"></a></h3>
887890
<ul class="indexlist">
@@ -1008,6 +1011,7 @@ <h3 class="no-num heading settled" id="index-defined-elsewhere"><span class="con
10081011
<a data-link-type="biblio" href="#biblio-cssom-1">[cssom]</a> defines the following terms:
10091012
<ul>
10101013
<li><a href="https://drafts.csswg.org/cssom-1/#cssstyledeclaration">CSSStyleDeclaration</a>
1014+
<li><a href="https://drafts.csswg.org/cssom-1/#pseudoelement">PseudoElement</a>
10111015
</ul>
10121016
<li>
10131017
<a data-link-type="biblio" href="#biblio-dom-ls">[dom-ls]</a> defines the following terms:
@@ -1136,6 +1140,7 @@ <h2 class="no-num heading settled" id="issues-index"><span class="content">Issue
11361140
Feedback is welcome.
11371141
Implementations, at this point, are not,
11381142
as we are not yet sure of our approach.<a href="#issue-116a9e33"></a></div>
1143+
<div class="issue"> This needs to be merged with the alternative <code class="idl"><a data-link-type="idl" href="https://drafts.csswg.org/cssom-1/#pseudoelement">PseudoElement</a></code> and <code class="idl">pseudo</code> proposal.<a href="#issue-126afe59"></a></div>
11391144
<div class="issue"> The approach in this draft
11401145
is to start with a bare minimum
11411146
for the CSSPseudoElement interface

cssom/Overview.bs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3059,6 +3059,8 @@ The {{PseudoElement}} Interface {#the-pseudoelement-interface}
30593059
<p class=atrisk>The {{PseudoElement}} interface is used for representing CSS pseudo-elements. A {{PseudoElement}} object is associated with an
30603060
<code>Element</code> object.
30613061

3062+
Issue: This should be merged with the {{CSSPseudoElement}} proposal.
3063+
30623064
<pre class=idl>
30633065
interface PseudoElement {
30643066
<!-- XXX

0 commit comments

Comments
 (0)