Incorporate feedback from Liam R E Quin.
authorDirk Schulze <dschulze@adobe.com>
Sun, 10 Mar 2013 19:35:27 -0700
changeset 73459236286d848
parent 733 accb0bc6eb98
child 735 7534c5a53885
Incorporate feedback from Liam R E Quin.
masking/ChangeLog
masking/Masking.src.html
masking/index.html
     1.1 --- a/masking/ChangeLog	Sat Mar 09 21:21:02 2013 -0800
     1.2 +++ b/masking/ChangeLog	Sun Mar 10 19:35:27 2013 -0700
     1.3 @@ -1,3 +1,7 @@
     1.4 +2013-03-11  Dirk Schulze  <dschulze@adobe.com>
     1.5 +	Incorporate feedback from Liam R E Quin.
     1.6 +	http://lists.w3.org/Archives/Public/www-style/2013Mar/0198.html
     1.7 +
     1.8  2013-03-10  Dirk Schulze  <dschulze@adobe.com>
     1.9  	Incorporate feedback from Björn Höhrmann.
    1.10  	http://lists.w3.org/Archives/Public/www-style/2013Mar/0190.html
     2.1 --- a/masking/Masking.src.html	Sat Mar 09 21:21:02 2013 -0800
     2.2 +++ b/masking/Masking.src.html	Sun Mar 10 19:35:27 2013 -0700
     2.3 @@ -185,9 +185,9 @@
     2.4  
     2.5  <p>
     2.6    Some property and element definitions in this specification require an SVG 1.1 implementation [[!SVG11]]. UAs without
     2.7 -  support for SVG must not implement the 'mask-type' and 'clip-rule' properties as well as the <a>'mask element'</a>
     2.8 -  and <a>'clipPath element'</a> elements. Furthermore, the 'mask' and 'clip-path' properties must not support references to
     2.9 -  <a>'mask element'</a> and <a>'clipPath element'</a> elements.
    2.10 +  support for SVG must not implement any of the following properties and elements: 'mask-type', 'clip-rule', <a>'clipPath element'</a> element, <a>'mask element'</a> element. For UAs without
    2.11 +  support for SVG, the 'mask' and 'clip-path' properties must neither support references to
    2.12 +  <a>'mask element'</a> elements nor to <a>'clipPath element'</a> elements.
    2.13  </p>
    2.14  
    2.15  <h2 id="values">Values</h2>
    2.16 @@ -214,7 +214,7 @@
    2.17  <dd>
    2.18    <p>
    2.19      The union of all border boxes for the element that has an associated CSS layout box and is not
    2.20 -    in the <code>http://www.w3.org/2000/svg</code> namespace and it's descendant elements. Or the
    2.21 +    in the <code>http://www.w3.org/2000/svg</code> namespace and its descendant elements. Or the
    2.22      object bounding box [[!SVG11]], if the element does not have
    2.23      an associated CSS layout box and is in the <code>http://www.w3.org/2000/svg</code> namespace
    2.24      (See <a href="http://www.w3.org/TR/cssom-view/#dom-element-getboundingclientrect">getBoundingClientRect</a>
    2.25 @@ -244,7 +244,7 @@
    2.26  </dd>
    2.27  <dt id="TermUserCoordinateSystem"><dfn>user coordinate system</dfn></dt>
    2.28  <dd>
    2.29 -  See definition of <span class="term">local coordinate system</span>.
    2.30 +  The term <var>user coordinate system</var> is equivalent to the term <var>local coordinate system</var>.
    2.31  </dd>
    2.32  <dt id="TermObjectBoundingBoxUnits"><dfn>object bounding box units</dfn></dt>
    2.33  <dd>
    2.34 @@ -278,12 +278,12 @@
    2.35  
    2.36  <p>
    2.37    The application of the 'clip-path', 'mask' or 'mask-image' properties to an element formatted with the CSS box model
    2.38 -  establishes a stacking context the same way that CSS 'opacity' does, and all the element's descendants are rendered
    2.39 +  establishes a stacking context in the same way that CSS 'opacity' does, and all the element's descendants are rendered
    2.40    together as a group with the masking applied to the group as a whole.
    2.41  </p>
    2.42  
    2.43  <p>
    2.44 -  The 'mask' and 'mask-image' properties have no effect on the geometry of the target element's CSS boxes.
    2.45 +  The 'mask' and 'mask-image' properties have no effect on the geometry of any element's CSS boxes.
    2.46  </p>
    2.47  
    2.48  <p>
    2.49 @@ -1096,7 +1096,7 @@
    2.50          yes.</span></dd>
    2.51        </dl>
    2.52      </div>
    2.53 -<p class="note">Note that if at least one of the attributes <a>'mask/x'</a>,
    2.54 +<p>If at least one of the attributes <a>'mask/x'</a>,
    2.55  <a>'mask/y'</a>, <a>'mask/width'</a> or <a>'mask/height'</a> are specified,
    2.56  the given object and the rectangle defined by
    2.57  <a>'mask/x'</a>, <a>'mask/y'</a>, <a>'mask/width'</a> and <a>'mask/height'</a>
    2.58 @@ -1769,8 +1769,7 @@
    2.59  elements
    2.60  which establish a new viewport. (See [[SVG11]])</p>
    2.61  
    2.62 -<div class="note">
    2.63 -<p>A couple of notes:</p>
    2.64 +<p>A couple of additions:</p>
    2.65  
    2.66  <ul>
    2.67    <li>The <a>'clipPath'</a> element itself and its child elements do
    2.68 @@ -1790,7 +1789,6 @@
    2.69    <li>An empty clipping path will completely clip away the element that had the
    2.70    'clip-path' property applied.</li>
    2.71  </ul>
    2.72 -</div>
    2.73  
    2.74  <h3 id="clipPath-geometry">Clipping paths, geometry, and pointer events</h3>
    2.75  
    2.76 @@ -1947,6 +1945,126 @@
    2.77  </dd>
    2.78  </dl>
    2.79  
    2.80 +<h2 id="conformance">
    2.81 +Conformance</h2>
    2.82 +
    2.83 +<h3 id="conventions">
    2.84 +Document conventions</h3>
    2.85 +
    2.86 +  <p>Conformance requirements are expressed with a combination of
    2.87 +  descriptive assertions and RFC 2119 terminology. The key words “MUST”,
    2.88 +  “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”,
    2.89 +  “RECOMMENDED”, “MAY”, and “OPTIONAL” in the normative parts of this
    2.90 +  document are to be interpreted as described in RFC 2119.
    2.91 +  However, for readability, these words do not appear in all uppercase
    2.92 +  letters in this specification.
    2.93 +  
    2.94 +  <p>All of the text of this specification is normative except sections
    2.95 +  explicitly marked as non-normative, examples, and notes. [[!RFC2119]]</p>
    2.96 +  
    2.97 +  <p>Examples in this specification are introduced with the words “for example”
    2.98 +  or are set apart from the normative text with <code>class="example"</code>,
    2.99 +  like this:
   2.100 +  
   2.101 +  <div class="example">
   2.102 +    <p>This is an example of an informative example.</p>
   2.103 +  </div>
   2.104 +  
   2.105 +  <p>Informative notes begin with the word “Note” and are set apart from the
   2.106 +  normative text with <code>class="note"</code>, like this:
   2.107 +  
   2.108 +  <p class="note">Note, this is an informative note.</p>
   2.109 +
   2.110 +<h3 id="conformance-classes">
   2.111 +Conformance classes</h3>
   2.112 +
   2.113 +  <p>Conformance to CSS Masking
   2.114 +  is defined for three conformance classes:
   2.115 +  <dl>
   2.116 +    <dt><dfn title="style sheet!!as conformance class">style sheet</dfn>
   2.117 +      <dd>A <a href="http://www.w3.org/TR/CSS21/conform.html#style-sheet">CSS
   2.118 +      style sheet</a>.
   2.119 +    <dt><dfn>renderer</dfn></dt>
   2.120 +      <dd>A <a href="http://www.w3.org/TR/CSS21/conform.html#user-agent">UA</a>
   2.121 +      that interprets the semantics of a style sheet and renders
   2.122 +      documents that use them.
   2.123 +    <dt><dfn id="authoring-tool">authoring tool</dfn></dt>
   2.124 +      <dd>A <a href="http://www.w3.org/TR/CSS21/conform.html#user-agent">UA</a>
   2.125 +      that writes a style sheet.
   2.126 +  </dl>
   2.127 +  
   2.128 +  <p>A style sheet is conformant to CSS Masking
   2.129 +  if all of its statements that use syntax defined in this module are valid
   2.130 +  according to the generic CSS grammar and the individual grammars of each
   2.131 +  feature defined in this module.
   2.132 +  
   2.133 +  <p>A renderer is conformant to CSS Masking
   2.134 +  if, in addition to interpreting the style sheet as defined by the
   2.135 +  appropriate specifications, it supports all the features defined
   2.136 +  by CSS Masking by parsing them correctly
   2.137 +  and rendering the document accordingly. However, the inability of a
   2.138 +  UA to correctly render a document due to limitations of the device
   2.139 +  does not make the UA non-conformant. (For example, a UA is not
   2.140 +  required to render color on a monochrome monitor.)
   2.141 +  
   2.142 +  <p>An authoring tool is conformant to CSS Masking
   2.143 +  if it writes style sheets that are syntactically correct according to the
   2.144 +  generic CSS grammar and the individual grammars of each feature in
   2.145 +  this module, and meet all other conformance requirements of style sheets
   2.146 +  as described in this module.
   2.147 +
   2.148 +<h3 id="partial">
   2.149 +Partial implementations</h3>
   2.150 +
   2.151 +  <p>So that authors can exploit the forward-compatible parsing rules to
   2.152 +  assign fallback values, CSS renderers <strong>must</strong>
   2.153 +  treat as invalid (and <a href="http://www.w3.org/TR/CSS21/conform.html#ignore">ignore
   2.154 +  as appropriate</a>) any at-rules, properties, property values, keywords,
   2.155 +  and other syntactic constructs for which they have no usable level of
   2.156 +  support. In particular, user agents <strong>must not</strong> selectively
   2.157 +  ignore unsupported component values and honor supported values in a single
   2.158 +  multi-value property declaration: if any value is considered invalid
   2.159 +  (as unsupported values must be), CSS requires that the entire declaration
   2.160 +  be ignored.</p>
   2.161 +  
   2.162 +<h3 id="experimental">
   2.163 +Experimental implementations</h3>
   2.164 +
   2.165 +  <p>To avoid clashes with future CSS features, the CSS2.1 specification
   2.166 +  reserves a <a href="http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords">prefixed
   2.167 +  syntax</a> for proprietary and experimental extensions to CSS.
   2.168 +  
   2.169 +  <p>Prior to a specification reaching the Candidate Recommendation stage
   2.170 +  in the W3C process, all implementations of a CSS feature are considered
   2.171 +  experimental. The CSS Working Group recommends that implementations
   2.172 +  use a vendor-prefixed syntax for such features, including those in
   2.173 +  W3C Working Drafts. This avoids incompatibilities with future changes
   2.174 +  in the draft.
   2.175 +  </p>
   2.176 + 
   2.177 +<h3 id="testing">
   2.178 +Non-experimental implementations</h3>
   2.179 +
   2.180 +  <p>Once a specification reaches the Candidate Recommendation stage,
   2.181 +  non-experimental implementations are possible, and implementors should
   2.182 +  release an unprefixed implementation of any CR-level feature they
   2.183 +  can demonstrate to be correctly implemented according to spec.
   2.184 +  
   2.185 +  <p>To establish and maintain the interoperability of CSS across
   2.186 +  implementations, the CSS Working Group requests that non-experimental
   2.187 +  CSS renderers submit an implementation report (and, if necessary, the
   2.188 +  testcases used for that implementation report) to the W3C before
   2.189 +  releasing an unprefixed implementation of any CSS features. Testcases
   2.190 +  submitted to W3C are subject to review and correction by the CSS
   2.191 +  Working Group.
   2.192 +  
   2.193 +  <p>Further information on submitting testcases and implementation reports
   2.194 +  can be found from on the CSS Working Group's website at
   2.195 +  <a href="http://www.w3.org/Style/CSS/Test/">http://www.w3.org/Style/CSS/Test/</a>.
   2.196 +  Questions should be directed to the
   2.197 +  <a href="http://lists.w3.org/Archives/Public/public-css-testsuite">public-css-testsuite@w3.org</a>
   2.198 +  mailing list.
   2.199 +
   2.200  <h2 class=no-num id="references">
   2.201  References</h2>
   2.202  
     3.1 --- a/masking/index.html	Sat Mar 09 21:21:02 2013 -0800
     3.2 +++ b/masking/index.html	Sun Mar 10 19:35:27 2013 -0700
     3.3 @@ -11,7 +11,7 @@
     3.4     rel=dcterms.rights>
     3.5    <meta content="CSS Masking" name=dcterms.title>
     3.6    <meta content=text name=dcterms.type>
     3.7 -  <meta content=2013-03-10 name=dcterms.issued>
     3.8 +  <meta content=2013-03-11 name=dcterms.issued>
     3.9    <meta
    3.10     content="http://dvcs.w3.org/hg/FXTF/raw-file/default/masking/index.html"
    3.11     name=dcterms.creator>
    3.12 @@ -34,14 +34,14 @@
    3.13  
    3.14     <h1>CSS Masking</h1>
    3.15  
    3.16 -   <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 10 March 2013</h2>
    3.17 +   <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 11 March 2013</h2>
    3.18  
    3.19     <dl>
    3.20      <dt>This version:
    3.21  
    3.22      <dd><a
    3.23       href="http://dvcs.w3.org/hg/FXTF/raw-file/default/masking/index.html">http://dvcs.w3.org/hg/FXTF/raw-file/default/masking/index.html</a>
    3.24 -     <!--http://www.w3.org/TR/2013/WD-css-masking-20130310/-->
    3.25 +     <!--http://www.w3.org/TR/2013/WD-css-masking-20130311/-->
    3.26  
    3.27      <dt>Latest version:
    3.28  
    3.29 @@ -264,6 +264,24 @@
    3.30        </span>Interface SVGMaskElement</a>
    3.31      </ul>
    3.32  
    3.33 +   <li><a href="#conformance"><span class=secno>11. </span> Conformance</a>
    3.34 +    <ul class=toc>
    3.35 +     <li><a href="#conventions"><span class=secno>11.1. </span> Document
    3.36 +      conventions</a>
    3.37 +
    3.38 +     <li><a href="#conformance-classes"><span class=secno>11.2. </span>
    3.39 +      Conformance classes</a>
    3.40 +
    3.41 +     <li><a href="#partial"><span class=secno>11.3. </span> Partial
    3.42 +      implementations</a>
    3.43 +
    3.44 +     <li><a href="#experimental"><span class=secno>11.4. </span> Experimental
    3.45 +      implementations</a>
    3.46 +
    3.47 +     <li><a href="#testing"><span class=secno>11.5. </span> Non-experimental
    3.48 +      implementations</a>
    3.49 +    </ul>
    3.50 +
    3.51     <li class=no-num><a href="#references"> References</a>
    3.52      <ul class=toc>
    3.53       <li class=no-num><a href="#normative-references"> Normative
    3.54 @@ -388,17 +406,17 @@
    3.55    <p> Some property and element definitions in this specification require an
    3.56     SVG 1.1 implementation <a href="#SVG11"
    3.57     rel=biblioentry>[SVG11]<!--{{!SVG11}}--></a>. UAs without support for SVG
    3.58 -   must not implement the ‘<a href="#mask-type"><code
    3.59 -   class=property>mask-type</code></a>’ and ‘<a href="#clip-rule"><code
    3.60 -   class=property>clip-rule</code></a>’ properties as well as the <a
    3.61 -   class=element-name href="#MaskElement">‘<code
    3.62 -   class=property>mask</code>’</a> and <a class=element-name
    3.63 -   href="#ClipPathElement">‘<code class=property>clipPath</code>’</a>
    3.64 -   elements. Furthermore, the ‘<a href="#mask"><code
    3.65 +   must not implement any of the following properties and elements: ‘<a
    3.66 +   href="#mask-type"><code class=property>mask-type</code></a>’, ‘<a
    3.67 +   href="#clip-rule"><code class=property>clip-rule</code></a>’, <a
    3.68 +   class=element-name href="#ClipPathElement">‘<code
    3.69 +   class=property>clipPath</code>’</a> element, <a class=element-name
    3.70 +   href="#MaskElement">‘<code class=property>mask</code>’</a> element.
    3.71 +   For UAs without support for SVG, the ‘<a href="#mask"><code
    3.72     class=property>mask</code></a>’ and ‘<a href="#clip-path"><code
    3.73 -   class=property>clip-path</code></a>’ properties must not support
    3.74 +   class=property>clip-path</code></a>’ properties must neither support
    3.75     references to <a class=element-name href="#MaskElement">‘<code
    3.76 -   class=property>mask</code>’</a> and <a class=element-name
    3.77 +   class=property>mask</code>’</a> elements nor to <a class=element-name
    3.78     href="#ClipPathElement">‘<code class=property>clipPath</code>’</a>
    3.79     elements.
    3.80  
    3.81 @@ -430,7 +448,7 @@
    3.82     <dd>
    3.83      <p> The union of all border boxes for the element that has an associated
    3.84       CSS layout box and is not in the <code>http://www.w3.org/2000/svg</code>
    3.85 -     namespace and it's descendant elements. Or the object bounding box <a
    3.86 +     namespace and its descendant elements. Or the object bounding box <a
    3.87       href="#SVG11" rel=biblioentry>[SVG11]<!--{{!SVG11}}--></a>, if the
    3.88       element does not have an associated CSS layout box and is in the
    3.89       <code>http://www.w3.org/2000/svg</code> namespace (See <a
    3.90 @@ -464,8 +482,9 @@
    3.91     <dt id=TermUserCoordinateSystem><dfn id=user-coordinate-system>user
    3.92      coordinate system</dfn>
    3.93  
    3.94 -   <dd> See definition of <a class=term href="#local-coordinate-system">local
    3.95 -    coordinate system</a>.
    3.96 +   <dd> The term <a href="#user-coordinate-system"><var>user coordinate
    3.97 +    system</var></a> is equivalent to the term <a
    3.98 +    href="#local-coordinate-system"><var>local coordinate system</var></a>.
    3.99  
   3.100     <dt id=TermObjectBoundingBoxUnits><dfn id=object-bounding-box-units>object
   3.101      bounding box units</dfn>
   3.102 @@ -511,15 +530,14 @@
   3.103     class=property>clip-path</code></a>’, ‘<a href="#mask"><code
   3.104     class=property>mask</code></a>’ or ‘<a href="#mask-image"><code
   3.105     class=property>mask-image</code></a>’ properties to an element formatted
   3.106 -   with the CSS box model establishes a stacking context the same way that
   3.107 +   with the CSS box model establishes a stacking context in the same way that
   3.108     CSS ‘<code class=property>opacity</code>’ does, and all the element's
   3.109     descendants are rendered together as a group with the masking applied to
   3.110     the group as a whole.
   3.111  
   3.112    <p> The ‘<a href="#mask"><code class=property>mask</code></a>’ and
   3.113     ‘<a href="#mask-image"><code class=property>mask-image</code></a>’
   3.114 -   properties have no effect on the geometry of the target element's CSS
   3.115 -   boxes.
   3.116 +   properties have no effect on the geometry of any element's CSS boxes.
   3.117  
   3.118    <p> The compositing model follows the SVG compositing model <a
   3.119     href="#SVG11" rel=biblioentry>[SVG11]<!--{{!SVG11}}--></a>: first any
   3.120 @@ -2084,11 +2102,11 @@
   3.121     </dl>
   3.122    </div>
   3.123  
   3.124 -  <p class=note>Note that if at least one of the attributes <a
   3.125 -   class=attr-name href="#MaskElementXAttribute">‘<code
   3.126 -   class=property>x</code>’</a>, <a class=attr-name
   3.127 -   href="#MaskElementYAttribute">‘<code class=property>y</code>’</a>, <a
   3.128 -   class=attr-name href="#MaskElementWidthAttribute">‘<code
   3.129 +  <p>If at least one of the attributes <a class=attr-name
   3.130 +   href="#MaskElementXAttribute">‘<code class=property>x</code>’</a>, <a
   3.131 +   class=attr-name href="#MaskElementYAttribute">‘<code
   3.132 +   class=property>y</code>’</a>, <a class=attr-name
   3.133 +   href="#MaskElementWidthAttribute">‘<code
   3.134     class=property>width</code>’</a> or <a class=attr-name
   3.135     href="#MaskElementHeightAttribute">‘<code
   3.136     class=property>height</code>’</a> are specified, the given object and
   3.137 @@ -3367,40 +3385,38 @@
   3.138     property on the elements which establish a new viewport. (See <a
   3.139     href="#SVG11" rel=biblioentry>[SVG11]<!--{{SVG11}}--></a>)
   3.140  
   3.141 -  <div class=note>
   3.142 -   <p>A couple of notes:
   3.143 -
   3.144 -   <ul>
   3.145 -    <li>The <a class=element-name href="#ClipPathElement">‘<code
   3.146 -     class=property>clipPath</code>’</a> element itself and its child
   3.147 -     elements do <em>not</em> inherit clipping paths from the ancestors of
   3.148 -     the <a class=element-name href="#ClipPathElement">‘<code
   3.149 -     class=property>clipPath</code>’</a> element.
   3.150 -
   3.151 -    <li>The <a class=element-name href="#ClipPathElement">‘<code
   3.152 -     class=property>clipPath</code>’</a> element or any of its children can
   3.153 -     specify property ‘<a href="#clip-path"><code
   3.154 -     class=property>clip-path</code></a>’.<br>
   3.155 -     If a valid ‘<a href="#clip-path"><code
   3.156 -     class=property>clip-path</code></a>’ reference is placed on a <a
   3.157 -     class=element-name href="#ClipPathElement">‘<code
   3.158 -     class=property>clipPath</code>’</a> element, the resulting clipping
   3.159 -     path is the intersection of the contents of the <a class=element-name
   3.160 -     href="#ClipPathElement">‘<code class=property>clipPath</code>’</a>
   3.161 -     element with the referenced clipping path.<br>
   3.162 -     If a valid ‘<a href="#clip-path"><code
   3.163 -     class=property>clip-path</code></a>’ reference is placed on one of the
   3.164 -     children of a <a class=element-name href="#ClipPathElement">‘<code
   3.165 -     class=property>clipPath</code>’</a> element, then the given child
   3.166 -     element is clipped by the referenced clipping path before OR'ing the
   3.167 -     silhouette of the child element with the silhouettes of the other child
   3.168 -     elements.
   3.169 -
   3.170 -    <li>An empty clipping path will completely clip away the element that had
   3.171 -     the ‘<a href="#clip-path"><code class=property>clip-path</code></a>’
   3.172 -     property applied.
   3.173 -   </ul>
   3.174 -  </div>
   3.175 +  <p>A couple of additions:
   3.176 +
   3.177 +  <ul>
   3.178 +   <li>The <a class=element-name href="#ClipPathElement">‘<code
   3.179 +    class=property>clipPath</code>’</a> element itself and its child
   3.180 +    elements do <em>not</em> inherit clipping paths from the ancestors of the
   3.181 +    <a class=element-name href="#ClipPathElement">‘<code
   3.182 +    class=property>clipPath</code>’</a> element.
   3.183 +
   3.184 +   <li>The <a class=element-name href="#ClipPathElement">‘<code
   3.185 +    class=property>clipPath</code>’</a> element or any of its children can
   3.186 +    specify property ‘<a href="#clip-path"><code
   3.187 +    class=property>clip-path</code></a>’.<br>
   3.188 +    If a valid ‘<a href="#clip-path"><code
   3.189 +    class=property>clip-path</code></a>’ reference is placed on a <a
   3.190 +    class=element-name href="#ClipPathElement">‘<code
   3.191 +    class=property>clipPath</code>’</a> element, the resulting clipping
   3.192 +    path is the intersection of the contents of the <a class=element-name
   3.193 +    href="#ClipPathElement">‘<code class=property>clipPath</code>’</a>
   3.194 +    element with the referenced clipping path.<br>
   3.195 +    If a valid ‘<a href="#clip-path"><code
   3.196 +    class=property>clip-path</code></a>’ reference is placed on one of the
   3.197 +    children of a <a class=element-name href="#ClipPathElement">‘<code
   3.198 +    class=property>clipPath</code>’</a> element, then the given child
   3.199 +    element is clipped by the referenced clipping path before OR'ing the
   3.200 +    silhouette of the child element with the silhouettes of the other child
   3.201 +    elements.
   3.202 +
   3.203 +   <li>An empty clipping path will completely clip away the element that had
   3.204 +    the ‘<a href="#clip-path"><code class=property>clip-path</code></a>’
   3.205 +    property applied.
   3.206 +  </ul>
   3.207  
   3.208    <h3 id=clipPath-geometry><span class=secno>8.5. </span>Clipping paths,
   3.209     geometry, and pointer events</h3>
   3.210 @@ -3620,6 +3636,127 @@
   3.211      </dl>
   3.212    </dl>
   3.213  
   3.214 +  <h2 id=conformance><span class=secno>11. </span> Conformance</h2>
   3.215 +
   3.216 +  <h3 id=conventions><span class=secno>11.1. </span> Document conventions</h3>
   3.217 +
   3.218 +  <p>Conformance requirements are expressed with a combination of descriptive
   3.219 +   assertions and RFC 2119 terminology. The key words “MUST”, “MUST
   3.220 +   NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”,
   3.221 +   “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in the
   3.222 +   normative parts of this document are to be interpreted as described in RFC
   3.223 +   2119. However, for readability, these words do not appear in all uppercase
   3.224 +   letters in this specification.
   3.225 +
   3.226 +  <p>All of the text of this specification is normative except sections
   3.227 +   explicitly marked as non-normative, examples, and notes. <a
   3.228 +   href="#RFC2119" rel=biblioentry>[RFC2119]<!--{{!RFC2119}}--></a>
   3.229 +
   3.230 +  <p>Examples in this specification are introduced with the words “for
   3.231 +   example” or are set apart from the normative text with
   3.232 +   <code>class="example"</code>, like this:
   3.233 +
   3.234 +  <div class=example>
   3.235 +   <p>This is an example of an informative example.
   3.236 +  </div>
   3.237 +
   3.238 +  <p>Informative notes begin with the word “Note” and are set apart from
   3.239 +   the normative text with <code>class="note"</code>, like this:
   3.240 +
   3.241 +  <p class=note>Note, this is an informative note.
   3.242 +
   3.243 +  <h3 id=conformance-classes><span class=secno>11.2. </span> Conformance
   3.244 +   classes</h3>
   3.245 +
   3.246 +  <p>Conformance to CSS Masking is defined for three conformance classes:
   3.247 +
   3.248 +  <dl>
   3.249 +   <dt><dfn id=style-sheet title="style sheet!!as conformance class">style
   3.250 +    sheet</dfn>
   3.251 +
   3.252 +   <dd>A <a href="http://www.w3.org/TR/CSS21/conform.html#style-sheet">CSS
   3.253 +    style sheet</a>.
   3.254 +
   3.255 +   <dt><dfn id=renderer>renderer</dfn>
   3.256 +
   3.257 +   <dd>A <a href="http://www.w3.org/TR/CSS21/conform.html#user-agent">UA</a>
   3.258 +    that interprets the semantics of a style sheet and renders documents that
   3.259 +    use them.
   3.260 +
   3.261 +   <dt><dfn id=authoring-tool>authoring tool</dfn>
   3.262 +
   3.263 +   <dd>A <a href="http://www.w3.org/TR/CSS21/conform.html#user-agent">UA</a>
   3.264 +    that writes a style sheet.
   3.265 +  </dl>
   3.266 +
   3.267 +  <p>A style sheet is conformant to CSS Masking if all of its statements that
   3.268 +   use syntax defined in this module are valid according to the generic CSS
   3.269 +   grammar and the individual grammars of each feature defined in this
   3.270 +   module.
   3.271 +
   3.272 +  <p>A renderer is conformant to CSS Masking if, in addition to interpreting
   3.273 +   the style sheet as defined by the appropriate specifications, it supports
   3.274 +   all the features defined by CSS Masking by parsing them correctly and
   3.275 +   rendering the document accordingly. However, the inability of a UA to
   3.276 +   correctly render a document due to limitations of the device does not make
   3.277 +   the UA non-conformant. (For example, a UA is not required to render color
   3.278 +   on a monochrome monitor.)
   3.279 +
   3.280 +  <p>An authoring tool is conformant to CSS Masking if it writes style sheets
   3.281 +   that are syntactically correct according to the generic CSS grammar and
   3.282 +   the individual grammars of each feature in this module, and meet all other
   3.283 +   conformance requirements of style sheets as described in this module.
   3.284 +
   3.285 +  <h3 id=partial><span class=secno>11.3. </span> Partial implementations</h3>
   3.286 +
   3.287 +  <p>So that authors can exploit the forward-compatible parsing rules to
   3.288 +   assign fallback values, CSS renderers <strong>must</strong> treat as
   3.289 +   invalid (and <a
   3.290 +   href="http://www.w3.org/TR/CSS21/conform.html#ignore">ignore as
   3.291 +   appropriate</a>) any at-rules, properties, property values, keywords, and
   3.292 +   other syntactic constructs for which they have no usable level of support.
   3.293 +   In particular, user agents <strong>must not</strong> selectively ignore
   3.294 +   unsupported component values and honor supported values in a single
   3.295 +   multi-value property declaration: if any value is considered invalid (as
   3.296 +   unsupported values must be), CSS requires that the entire declaration be
   3.297 +   ignored.
   3.298 +
   3.299 +  <h3 id=experimental><span class=secno>11.4. </span> Experimental
   3.300 +   implementations</h3>
   3.301 +
   3.302 +  <p>To avoid clashes with future CSS features, the CSS2.1 specification
   3.303 +   reserves a <a
   3.304 +   href="http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords">prefixed
   3.305 +   syntax</a> for proprietary and experimental extensions to CSS.
   3.306 +
   3.307 +  <p>Prior to a specification reaching the Candidate Recommendation stage in
   3.308 +   the W3C process, all implementations of a CSS feature are considered
   3.309 +   experimental. The CSS Working Group recommends that implementations use a
   3.310 +   vendor-prefixed syntax for such features, including those in W3C Working
   3.311 +   Drafts. This avoids incompatibilities with future changes in the draft.
   3.312 +
   3.313 +  <h3 id=testing><span class=secno>11.5. </span> Non-experimental
   3.314 +   implementations</h3>
   3.315 +
   3.316 +  <p>Once a specification reaches the Candidate Recommendation stage,
   3.317 +   non-experimental implementations are possible, and implementors should
   3.318 +   release an unprefixed implementation of any CR-level feature they can
   3.319 +   demonstrate to be correctly implemented according to spec.
   3.320 +
   3.321 +  <p>To establish and maintain the interoperability of CSS across
   3.322 +   implementations, the CSS Working Group requests that non-experimental CSS
   3.323 +   renderers submit an implementation report (and, if necessary, the
   3.324 +   testcases used for that implementation report) to the W3C before releasing
   3.325 +   an unprefixed implementation of any CSS features. Testcases submitted to
   3.326 +   W3C are subject to review and correction by the CSS Working Group.
   3.327 +
   3.328 +  <p>Further information on submitting testcases and implementation reports
   3.329 +   can be found from on the CSS Working Group's website at <a
   3.330 +   href="http://www.w3.org/Style/CSS/Test/">http://www.w3.org/Style/CSS/Test/</a>.
   3.331 +   Questions should be directed to the <a
   3.332 +   href="http://lists.w3.org/Archives/Public/public-css-testsuite">public-css-testsuite@w3.org</a>
   3.333 +   mailing list.
   3.334 +
   3.335    <h2 class=no-num id=references> References</h2>
   3.336  
   3.337    <h3 class=no-num id=normative-references> Normative references</h3>
   3.338 @@ -3699,6 +3836,15 @@
   3.339     </dd>
   3.340     <!---->
   3.341  
   3.342 +   <dt id=RFC2119>[RFC2119]
   3.343 +
   3.344 +   <dd>S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key
   3.345 +    words for use in RFCs to Indicate Requirement Levels.</cite></a> Internet
   3.346 +    RFC 2119. URL: <a
   3.347 +    href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a>
   3.348 +   </dd>
   3.349 +   <!---->
   3.350 +
   3.351     <dt id=SELECTORS4>[SELECTORS4]
   3.352  
   3.353     <dd>Elika J. Etemad. <a
   3.354 @@ -3768,6 +3914,9 @@
   3.355     <li>‘<a href="#alpha"><code class=css>alpha</code></a>’, <a
   3.356      href="#alpha" title="section 6.2."><strong>6.2.</strong></a>
   3.357  
   3.358 +   <li>authoring tool, <a href="#authoring-tool"
   3.359 +    title="section 11.2."><strong>11.2.</strong></a>
   3.360 +
   3.361     <li>‘<a href="#auto"><code class=css>auto</code></a>’, <a href="#auto"
   3.362      title="section 6.2."><strong>6.2.</strong></a>
   3.363  
   3.364 @@ -3954,6 +4103,9 @@
   3.365     <li><a href="#ltpositiongt"><var>&lt;position&gt;</var></a>, <a
   3.366      href="#ltpositiongt" title="section 6.4."><strong>6.4.</strong></a>
   3.367  
   3.368 +   <li>renderer, <a href="#renderer"
   3.369 +    title="section 11.2."><strong>11.2.</strong></a>
   3.370 +
   3.371     <li><a href="#ltrepeat-stylegt"><var>&lt;repeat-style&gt;</var></a>, <a
   3.372      href="#ltrepeat-stylegt" title="section 6.3."><strong>6.3.</strong></a>
   3.373  
   3.374 @@ -3966,6 +4118,12 @@
   3.375     <li><a href="#ltsource-typegt"><var>&lt;source-type&gt;</var></a>, <a
   3.376      href="#ltsource-typegt" title="section 6.2."><strong>6.2.</strong></a>
   3.377  
   3.378 +   <li>style sheet
   3.379 +    <ul>
   3.380 +     <li>as conformance class, <a href="#style-sheet"
   3.381 +      title="section 11.2."><strong>11.2.</strong></a>
   3.382 +    </ul>
   3.383 +
   3.384     <li>&lt;top&gt;, <a href="#lttopgt"
   3.385      title="section 8.3."><strong>8.3.</strong></a>
   3.386