masking/index.html

changeset 734
59236286d848
parent 731
fd09b94a3a4d
child 741
cd0593275768
     1.1 --- a/masking/index.html	Sat Mar 09 21:21:02 2013 -0800
     1.2 +++ b/masking/index.html	Sun Mar 10 19:35:27 2013 -0700
     1.3 @@ -11,7 +11,7 @@
     1.4     rel=dcterms.rights>
     1.5    <meta content="CSS Masking" name=dcterms.title>
     1.6    <meta content=text name=dcterms.type>
     1.7 -  <meta content=2013-03-10 name=dcterms.issued>
     1.8 +  <meta content=2013-03-11 name=dcterms.issued>
     1.9    <meta
    1.10     content="http://dvcs.w3.org/hg/FXTF/raw-file/default/masking/index.html"
    1.11     name=dcterms.creator>
    1.12 @@ -34,14 +34,14 @@
    1.13  
    1.14     <h1>CSS Masking</h1>
    1.15  
    1.16 -   <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 10 March 2013</h2>
    1.17 +   <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 11 March 2013</h2>
    1.18  
    1.19     <dl>
    1.20      <dt>This version:
    1.21  
    1.22      <dd><a
    1.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>
    1.24 -     <!--http://www.w3.org/TR/2013/WD-css-masking-20130310/-->
    1.25 +     <!--http://www.w3.org/TR/2013/WD-css-masking-20130311/-->
    1.26  
    1.27      <dt>Latest version:
    1.28  
    1.29 @@ -264,6 +264,24 @@
    1.30        </span>Interface SVGMaskElement</a>
    1.31      </ul>
    1.32  
    1.33 +   <li><a href="#conformance"><span class=secno>11. </span> Conformance</a>
    1.34 +    <ul class=toc>
    1.35 +     <li><a href="#conventions"><span class=secno>11.1. </span> Document
    1.36 +      conventions</a>
    1.37 +
    1.38 +     <li><a href="#conformance-classes"><span class=secno>11.2. </span>
    1.39 +      Conformance classes</a>
    1.40 +
    1.41 +     <li><a href="#partial"><span class=secno>11.3. </span> Partial
    1.42 +      implementations</a>
    1.43 +
    1.44 +     <li><a href="#experimental"><span class=secno>11.4. </span> Experimental
    1.45 +      implementations</a>
    1.46 +
    1.47 +     <li><a href="#testing"><span class=secno>11.5. </span> Non-experimental
    1.48 +      implementations</a>
    1.49 +    </ul>
    1.50 +
    1.51     <li class=no-num><a href="#references"> References</a>
    1.52      <ul class=toc>
    1.53       <li class=no-num><a href="#normative-references"> Normative
    1.54 @@ -388,17 +406,17 @@
    1.55    <p> Some property and element definitions in this specification require an
    1.56     SVG 1.1 implementation <a href="#SVG11"
    1.57     rel=biblioentry>[SVG11]<!--{{!SVG11}}--></a>. UAs without support for SVG
    1.58 -   must not implement the ‘<a href="#mask-type"><code
    1.59 -   class=property>mask-type</code></a>’ and ‘<a href="#clip-rule"><code
    1.60 -   class=property>clip-rule</code></a>’ properties as well as the <a
    1.61 -   class=element-name href="#MaskElement">‘<code
    1.62 -   class=property>mask</code>’</a> and <a class=element-name
    1.63 -   href="#ClipPathElement">‘<code class=property>clipPath</code>’</a>
    1.64 -   elements. Furthermore, the ‘<a href="#mask"><code
    1.65 +   must not implement any of the following properties and elements: ‘<a
    1.66 +   href="#mask-type"><code class=property>mask-type</code></a>’, ‘<a
    1.67 +   href="#clip-rule"><code class=property>clip-rule</code></a>’, <a
    1.68 +   class=element-name href="#ClipPathElement">‘<code
    1.69 +   class=property>clipPath</code>’</a> element, <a class=element-name
    1.70 +   href="#MaskElement">‘<code class=property>mask</code>’</a> element.
    1.71 +   For UAs without support for SVG, the ‘<a href="#mask"><code
    1.72     class=property>mask</code></a>’ and ‘<a href="#clip-path"><code
    1.73 -   class=property>clip-path</code></a>’ properties must not support
    1.74 +   class=property>clip-path</code></a>’ properties must neither support
    1.75     references to <a class=element-name href="#MaskElement">‘<code
    1.76 -   class=property>mask</code>’</a> and <a class=element-name
    1.77 +   class=property>mask</code>’</a> elements nor to <a class=element-name
    1.78     href="#ClipPathElement">‘<code class=property>clipPath</code>’</a>
    1.79     elements.
    1.80  
    1.81 @@ -430,7 +448,7 @@
    1.82     <dd>
    1.83      <p> The union of all border boxes for the element that has an associated
    1.84       CSS layout box and is not in the <code>http://www.w3.org/2000/svg</code>
    1.85 -     namespace and it's descendant elements. Or the object bounding box <a
    1.86 +     namespace and its descendant elements. Or the object bounding box <a
    1.87       href="#SVG11" rel=biblioentry>[SVG11]<!--{{!SVG11}}--></a>, if the
    1.88       element does not have an associated CSS layout box and is in the
    1.89       <code>http://www.w3.org/2000/svg</code> namespace (See <a
    1.90 @@ -464,8 +482,9 @@
    1.91     <dt id=TermUserCoordinateSystem><dfn id=user-coordinate-system>user
    1.92      coordinate system</dfn>
    1.93  
    1.94 -   <dd> See definition of <a class=term href="#local-coordinate-system">local
    1.95 -    coordinate system</a>.
    1.96 +   <dd> The term <a href="#user-coordinate-system"><var>user coordinate
    1.97 +    system</var></a> is equivalent to the term <a
    1.98 +    href="#local-coordinate-system"><var>local coordinate system</var></a>.
    1.99  
   1.100     <dt id=TermObjectBoundingBoxUnits><dfn id=object-bounding-box-units>object
   1.101      bounding box units</dfn>
   1.102 @@ -511,15 +530,14 @@
   1.103     class=property>clip-path</code></a>’, ‘<a href="#mask"><code
   1.104     class=property>mask</code></a>’ or ‘<a href="#mask-image"><code
   1.105     class=property>mask-image</code></a>’ properties to an element formatted
   1.106 -   with the CSS box model establishes a stacking context the same way that
   1.107 +   with the CSS box model establishes a stacking context in the same way that
   1.108     CSS ‘<code class=property>opacity</code>’ does, and all the element's
   1.109     descendants are rendered together as a group with the masking applied to
   1.110     the group as a whole.
   1.111  
   1.112    <p> The ‘<a href="#mask"><code class=property>mask</code></a>’ and
   1.113     ‘<a href="#mask-image"><code class=property>mask-image</code></a>’
   1.114 -   properties have no effect on the geometry of the target element's CSS
   1.115 -   boxes.
   1.116 +   properties have no effect on the geometry of any element's CSS boxes.
   1.117  
   1.118    <p> The compositing model follows the SVG compositing model <a
   1.119     href="#SVG11" rel=biblioentry>[SVG11]<!--{{!SVG11}}--></a>: first any
   1.120 @@ -2084,11 +2102,11 @@
   1.121     </dl>
   1.122    </div>
   1.123  
   1.124 -  <p class=note>Note that if at least one of the attributes <a
   1.125 -   class=attr-name href="#MaskElementXAttribute">‘<code
   1.126 -   class=property>x</code>’</a>, <a class=attr-name
   1.127 -   href="#MaskElementYAttribute">‘<code class=property>y</code>’</a>, <a
   1.128 -   class=attr-name href="#MaskElementWidthAttribute">‘<code
   1.129 +  <p>If at least one of the attributes <a class=attr-name
   1.130 +   href="#MaskElementXAttribute">‘<code class=property>x</code>’</a>, <a
   1.131 +   class=attr-name href="#MaskElementYAttribute">‘<code
   1.132 +   class=property>y</code>’</a>, <a class=attr-name
   1.133 +   href="#MaskElementWidthAttribute">‘<code
   1.134     class=property>width</code>’</a> or <a class=attr-name
   1.135     href="#MaskElementHeightAttribute">‘<code
   1.136     class=property>height</code>’</a> are specified, the given object and
   1.137 @@ -3367,40 +3385,38 @@
   1.138     property on the elements which establish a new viewport. (See <a
   1.139     href="#SVG11" rel=biblioentry>[SVG11]<!--{{SVG11}}--></a>)
   1.140  
   1.141 -  <div class=note>
   1.142 -   <p>A couple of notes:
   1.143 -
   1.144 -   <ul>
   1.145 -    <li>The <a class=element-name href="#ClipPathElement">‘<code
   1.146 -     class=property>clipPath</code>’</a> element itself and its child
   1.147 -     elements do <em>not</em> inherit clipping paths from the ancestors of
   1.148 -     the <a class=element-name href="#ClipPathElement">‘<code
   1.149 -     class=property>clipPath</code>’</a> element.
   1.150 -
   1.151 -    <li>The <a class=element-name href="#ClipPathElement">‘<code
   1.152 -     class=property>clipPath</code>’</a> element or any of its children can
   1.153 -     specify property ‘<a href="#clip-path"><code
   1.154 -     class=property>clip-path</code></a>’.<br>
   1.155 -     If a valid ‘<a href="#clip-path"><code
   1.156 -     class=property>clip-path</code></a>’ reference is placed on a <a
   1.157 -     class=element-name href="#ClipPathElement">‘<code
   1.158 -     class=property>clipPath</code>’</a> element, the resulting clipping
   1.159 -     path is the intersection of the contents of the <a class=element-name
   1.160 -     href="#ClipPathElement">‘<code class=property>clipPath</code>’</a>
   1.161 -     element with the referenced clipping path.<br>
   1.162 -     If a valid ‘<a href="#clip-path"><code
   1.163 -     class=property>clip-path</code></a>’ reference is placed on one of the
   1.164 -     children of a <a class=element-name href="#ClipPathElement">‘<code
   1.165 -     class=property>clipPath</code>’</a> element, then the given child
   1.166 -     element is clipped by the referenced clipping path before OR'ing the
   1.167 -     silhouette of the child element with the silhouettes of the other child
   1.168 -     elements.
   1.169 -
   1.170 -    <li>An empty clipping path will completely clip away the element that had
   1.171 -     the ‘<a href="#clip-path"><code class=property>clip-path</code></a>’
   1.172 -     property applied.
   1.173 -   </ul>
   1.174 -  </div>
   1.175 +  <p>A couple of additions:
   1.176 +
   1.177 +  <ul>
   1.178 +   <li>The <a class=element-name href="#ClipPathElement">‘<code
   1.179 +    class=property>clipPath</code>’</a> element itself and its child
   1.180 +    elements do <em>not</em> inherit clipping paths from the ancestors of the
   1.181 +    <a class=element-name href="#ClipPathElement">‘<code
   1.182 +    class=property>clipPath</code>’</a> element.
   1.183 +
   1.184 +   <li>The <a class=element-name href="#ClipPathElement">‘<code
   1.185 +    class=property>clipPath</code>’</a> element or any of its children can
   1.186 +    specify property ‘<a href="#clip-path"><code
   1.187 +    class=property>clip-path</code></a>’.<br>
   1.188 +    If a valid ‘<a href="#clip-path"><code
   1.189 +    class=property>clip-path</code></a>’ reference is placed on a <a
   1.190 +    class=element-name href="#ClipPathElement">‘<code
   1.191 +    class=property>clipPath</code>’</a> element, the resulting clipping
   1.192 +    path is the intersection of the contents of the <a class=element-name
   1.193 +    href="#ClipPathElement">‘<code class=property>clipPath</code>’</a>
   1.194 +    element with the referenced clipping path.<br>
   1.195 +    If a valid ‘<a href="#clip-path"><code
   1.196 +    class=property>clip-path</code></a>’ reference is placed on one of the
   1.197 +    children of a <a class=element-name href="#ClipPathElement">‘<code
   1.198 +    class=property>clipPath</code>’</a> element, then the given child
   1.199 +    element is clipped by the referenced clipping path before OR'ing the
   1.200 +    silhouette of the child element with the silhouettes of the other child
   1.201 +    elements.
   1.202 +
   1.203 +   <li>An empty clipping path will completely clip away the element that had
   1.204 +    the ‘<a href="#clip-path"><code class=property>clip-path</code></a>’
   1.205 +    property applied.
   1.206 +  </ul>
   1.207  
   1.208    <h3 id=clipPath-geometry><span class=secno>8.5. </span>Clipping paths,
   1.209     geometry, and pointer events</h3>
   1.210 @@ -3620,6 +3636,127 @@
   1.211      </dl>
   1.212    </dl>
   1.213  
   1.214 +  <h2 id=conformance><span class=secno>11. </span> Conformance</h2>
   1.215 +
   1.216 +  <h3 id=conventions><span class=secno>11.1. </span> Document conventions</h3>
   1.217 +
   1.218 +  <p>Conformance requirements are expressed with a combination of descriptive
   1.219 +   assertions and RFC 2119 terminology. The key words “MUST”, “MUST
   1.220 +   NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”,
   1.221 +   “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in the
   1.222 +   normative parts of this document are to be interpreted as described in RFC
   1.223 +   2119. However, for readability, these words do not appear in all uppercase
   1.224 +   letters in this specification.
   1.225 +
   1.226 +  <p>All of the text of this specification is normative except sections
   1.227 +   explicitly marked as non-normative, examples, and notes. <a
   1.228 +   href="#RFC2119" rel=biblioentry>[RFC2119]<!--{{!RFC2119}}--></a>
   1.229 +
   1.230 +  <p>Examples in this specification are introduced with the words “for
   1.231 +   example” or are set apart from the normative text with
   1.232 +   <code>class="example"</code>, like this:
   1.233 +
   1.234 +  <div class=example>
   1.235 +   <p>This is an example of an informative example.
   1.236 +  </div>
   1.237 +
   1.238 +  <p>Informative notes begin with the word “Note” and are set apart from
   1.239 +   the normative text with <code>class="note"</code>, like this:
   1.240 +
   1.241 +  <p class=note>Note, this is an informative note.
   1.242 +
   1.243 +  <h3 id=conformance-classes><span class=secno>11.2. </span> Conformance
   1.244 +   classes</h3>
   1.245 +
   1.246 +  <p>Conformance to CSS Masking is defined for three conformance classes:
   1.247 +
   1.248 +  <dl>
   1.249 +   <dt><dfn id=style-sheet title="style sheet!!as conformance class">style
   1.250 +    sheet</dfn>
   1.251 +
   1.252 +   <dd>A <a href="http://www.w3.org/TR/CSS21/conform.html#style-sheet">CSS
   1.253 +    style sheet</a>.
   1.254 +
   1.255 +   <dt><dfn id=renderer>renderer</dfn>
   1.256 +
   1.257 +   <dd>A <a href="http://www.w3.org/TR/CSS21/conform.html#user-agent">UA</a>
   1.258 +    that interprets the semantics of a style sheet and renders documents that
   1.259 +    use them.
   1.260 +
   1.261 +   <dt><dfn id=authoring-tool>authoring tool</dfn>
   1.262 +
   1.263 +   <dd>A <a href="http://www.w3.org/TR/CSS21/conform.html#user-agent">UA</a>
   1.264 +    that writes a style sheet.
   1.265 +  </dl>
   1.266 +
   1.267 +  <p>A style sheet is conformant to CSS Masking if all of its statements that
   1.268 +   use syntax defined in this module are valid according to the generic CSS
   1.269 +   grammar and the individual grammars of each feature defined in this
   1.270 +   module.
   1.271 +
   1.272 +  <p>A renderer is conformant to CSS Masking if, in addition to interpreting
   1.273 +   the style sheet as defined by the appropriate specifications, it supports
   1.274 +   all the features defined by CSS Masking by parsing them correctly and
   1.275 +   rendering the document accordingly. However, the inability of a UA to
   1.276 +   correctly render a document due to limitations of the device does not make
   1.277 +   the UA non-conformant. (For example, a UA is not required to render color
   1.278 +   on a monochrome monitor.)
   1.279 +
   1.280 +  <p>An authoring tool is conformant to CSS Masking if it writes style sheets
   1.281 +   that are syntactically correct according to the generic CSS grammar and
   1.282 +   the individual grammars of each feature in this module, and meet all other
   1.283 +   conformance requirements of style sheets as described in this module.
   1.284 +
   1.285 +  <h3 id=partial><span class=secno>11.3. </span> Partial implementations</h3>
   1.286 +
   1.287 +  <p>So that authors can exploit the forward-compatible parsing rules to
   1.288 +   assign fallback values, CSS renderers <strong>must</strong> treat as
   1.289 +   invalid (and <a
   1.290 +   href="http://www.w3.org/TR/CSS21/conform.html#ignore">ignore as
   1.291 +   appropriate</a>) any at-rules, properties, property values, keywords, and
   1.292 +   other syntactic constructs for which they have no usable level of support.
   1.293 +   In particular, user agents <strong>must not</strong> selectively ignore
   1.294 +   unsupported component values and honor supported values in a single
   1.295 +   multi-value property declaration: if any value is considered invalid (as
   1.296 +   unsupported values must be), CSS requires that the entire declaration be
   1.297 +   ignored.
   1.298 +
   1.299 +  <h3 id=experimental><span class=secno>11.4. </span> Experimental
   1.300 +   implementations</h3>
   1.301 +
   1.302 +  <p>To avoid clashes with future CSS features, the CSS2.1 specification
   1.303 +   reserves a <a
   1.304 +   href="http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords">prefixed
   1.305 +   syntax</a> for proprietary and experimental extensions to CSS.
   1.306 +
   1.307 +  <p>Prior to a specification reaching the Candidate Recommendation stage in
   1.308 +   the W3C process, all implementations of a CSS feature are considered
   1.309 +   experimental. The CSS Working Group recommends that implementations use a
   1.310 +   vendor-prefixed syntax for such features, including those in W3C Working
   1.311 +   Drafts. This avoids incompatibilities with future changes in the draft.
   1.312 +
   1.313 +  <h3 id=testing><span class=secno>11.5. </span> Non-experimental
   1.314 +   implementations</h3>
   1.315 +
   1.316 +  <p>Once a specification reaches the Candidate Recommendation stage,
   1.317 +   non-experimental implementations are possible, and implementors should
   1.318 +   release an unprefixed implementation of any CR-level feature they can
   1.319 +   demonstrate to be correctly implemented according to spec.
   1.320 +
   1.321 +  <p>To establish and maintain the interoperability of CSS across
   1.322 +   implementations, the CSS Working Group requests that non-experimental CSS
   1.323 +   renderers submit an implementation report (and, if necessary, the
   1.324 +   testcases used for that implementation report) to the W3C before releasing
   1.325 +   an unprefixed implementation of any CSS features. Testcases submitted to
   1.326 +   W3C are subject to review and correction by the CSS Working Group.
   1.327 +
   1.328 +  <p>Further information on submitting testcases and implementation reports
   1.329 +   can be found from on the CSS Working Group's website at <a
   1.330 +   href="http://www.w3.org/Style/CSS/Test/">http://www.w3.org/Style/CSS/Test/</a>.
   1.331 +   Questions should be directed to the <a
   1.332 +   href="http://lists.w3.org/Archives/Public/public-css-testsuite">public-css-testsuite@w3.org</a>
   1.333 +   mailing list.
   1.334 +
   1.335    <h2 class=no-num id=references> References</h2>
   1.336  
   1.337    <h3 class=no-num id=normative-references> Normative references</h3>
   1.338 @@ -3699,6 +3836,15 @@
   1.339     </dd>
   1.340     <!---->
   1.341  
   1.342 +   <dt id=RFC2119>[RFC2119]
   1.343 +
   1.344 +   <dd>S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key
   1.345 +    words for use in RFCs to Indicate Requirement Levels.</cite></a> Internet
   1.346 +    RFC 2119. URL: <a
   1.347 +    href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a>
   1.348 +   </dd>
   1.349 +   <!---->
   1.350 +
   1.351     <dt id=SELECTORS4>[SELECTORS4]
   1.352  
   1.353     <dd>Elika J. Etemad. <a
   1.354 @@ -3768,6 +3914,9 @@
   1.355     <li>‘<a href="#alpha"><code class=css>alpha</code></a>’, <a
   1.356      href="#alpha" title="section 6.2."><strong>6.2.</strong></a>
   1.357  
   1.358 +   <li>authoring tool, <a href="#authoring-tool"
   1.359 +    title="section 11.2."><strong>11.2.</strong></a>
   1.360 +
   1.361     <li>‘<a href="#auto"><code class=css>auto</code></a>’, <a href="#auto"
   1.362      title="section 6.2."><strong>6.2.</strong></a>
   1.363  
   1.364 @@ -3954,6 +4103,9 @@
   1.365     <li><a href="#ltpositiongt"><var>&lt;position&gt;</var></a>, <a
   1.366      href="#ltpositiongt" title="section 6.4."><strong>6.4.</strong></a>
   1.367  
   1.368 +   <li>renderer, <a href="#renderer"
   1.369 +    title="section 11.2."><strong>11.2.</strong></a>
   1.370 +
   1.371     <li><a href="#ltrepeat-stylegt"><var>&lt;repeat-style&gt;</var></a>, <a
   1.372      href="#ltrepeat-stylegt" title="section 6.3."><strong>6.3.</strong></a>
   1.373  
   1.374 @@ -3966,6 +4118,12 @@
   1.375     <li><a href="#ltsource-typegt"><var>&lt;source-type&gt;</var></a>, <a
   1.376      href="#ltsource-typegt" title="section 6.2."><strong>6.2.</strong></a>
   1.377  
   1.378 +   <li>style sheet
   1.379 +    <ul>
   1.380 +     <li>as conformance class, <a href="#style-sheet"
   1.381 +      title="section 11.2."><strong>11.2.</strong></a>
   1.382 +    </ul>
   1.383 +
   1.384     <li>&lt;top&gt;, <a href="#lttopgt"
   1.385      title="section 8.3."><strong>8.3.</strong></a>
   1.386  

mercurial