[cssom] Assume that all properties are case-insensitive. https://www.w3.org/Bugs/Public/show_bug.cgi?id=22508

Fri, 28 Jun 2013 10:53:31 +0200

author
Simon Pieters <simonp@opera.com>
date
Fri, 28 Jun 2013 10:53:31 +0200
changeset 8592
d0edbc72da76
parent 8591
6b8adcb5246b
child 8593
df4fb91af917

[cssom] Assume that all properties are case-insensitive. https://www.w3.org/Bugs/Public/show_bug.cgi?id=22508

cssom/Overview.html file | annotate | diff | comparison | revisions
cssom/Overview.src.html file | annotate | diff | comparison | revisions
     1.1 --- a/cssom/Overview.html	Thu Jun 27 16:21:08 2013 -0700
     1.2 +++ b/cssom/Overview.html	Fri Jun 28 10:53:31 2013 +0200
     1.3 @@ -16,7 +16,7 @@
     1.4   <h1>CSS Object Model (CSSOM)</h1>
     1.5  
     1.6  
     1.7 - <h2 class="no-num no-toc" id="w3c-doctype">Editor's Draft 27 June 2013</h2>
     1.8 + <h2 class="no-num no-toc" id="w3c-doctype">Editor's Draft 28 June 2013</h2>
     1.9  
    1.10   <dl>
    1.11  
    1.12 @@ -90,7 +90,7 @@
    1.13  can be found in the
    1.14  <a href="http://www.w3.org/TR/">W3C technical reports index at http://www.w3.org/TR/.</a></em>
    1.15  
    1.16 -<p class="dontpublish">This is the 27 June 2013 Editor's Draft of CSSOM. Please send comments to
    1.17 +<p class="dontpublish">This is the 28 June 2013 Editor's Draft of CSSOM. Please send comments to
    1.18  <a href="mailto:www-style@w3.org?subject=%5Bcssom%5D%20">www-style@w3.org</a>
    1.19  (<a href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
    1.20  with <samp>[cssom]</samp> at the start of the subject line.
    1.21 @@ -287,6 +287,12 @@
    1.22  
    1.23  <p class="note">If another styling language becomes supported in user agents, this specification is expected to be updated as necessary.
    1.24  
    1.25 +<p>The term <dfn id="supported-css-property">supported CSS property</dfn> refers to a CSS property that the user agent implements, and that is defined to be a case-insensitive property in
    1.26 +the CSS specification. A <a href="#supported-css-property">supported CSS property</a> must be in its lowercase form for the purpose of comparisons this specification.
    1.27 +
    1.28 +<p class="note">CSS properties that are case-sensitive such as CSS Variables are author-defined and are represented with dedicated interfaces, and do not
    1.29 +participate in the base CSSOM API. <a class="informative" href="#refsCSSVARIABLES">[CSSVARIABLES]</a>
    1.30 +
    1.31  <p>The terms <dfn id="::before-pseudo-element">::before pseudo-element</dfn> and <dfn id="::after-pseudo-element">::after pseudo-element</dfn> refer to the :before and :after pseudo-elements in CSS, except in this
    1.32  specification the pseudo-elements are assumed to exist for all elements even if no box is generated for them. <a href="#refsCSS">[CSS]</a>
    1.33  
    1.34 @@ -2204,16 +2210,10 @@
    1.35  <p>The <dfn id="dom-cssstyledeclaration-getpropertyvalue" title="dom-CSSStyleDeclaration-getPropertyValue"><code>getPropertyValue(<var>property</var>)</code></dfn> method must run these steps:</p>
    1.36  <ol>
    1.37   <!-- XXX handle shorthands better -->
    1.38 - <li><p>If <var>property</var> is an <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#ascii-case-insensitive">ASCII
    1.39 - case-insensitive</a> match for a property of a declaration in the
    1.40 - <a href="#concept-css-declaration-block-declarations" title="concept-css-declaration-block-declarations">declarations</a>, and that declaration's property
    1.41 - is defined to be case-insensitive, return the
    1.42 - <a href="#serialize-a-css-value" title="serialize a CSS value">serialization</a> of that declaration's
    1.43 - value.
    1.44 + <li><p>Let <var>property</var> be <var>property</var> <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#converted-to-ascii-lowercase">converted to ASCII lowercase</a>.
    1.45   <li><p>If <var>property</var> is a <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#case-sensitive">case-sensitive</a>
    1.46   match for a property of a declaration in the
    1.47 - <a href="#concept-css-declaration-block-declarations" title="concept-css-declaration-block-declarations">declarations</a>, and that declaration's property
    1.48 - is defined to be case-sensitive, return the
    1.49 + <a href="#concept-css-declaration-block-declarations" title="concept-css-declaration-block-declarations">declarations</a>, return the
    1.50   <a href="#serialize-a-css-value" title="serialize a CSS value">serialization</a> of that declaration's
    1.51   value.
    1.52   <li><p>Return the empty string.
    1.53 @@ -2221,6 +2221,7 @@
    1.54  
    1.55  <p>The <dfn id="dom-cssstyledeclaration-getpropertypriority" title="dom-CSSStyleDeclaration-getPropertyPriority"><code>getPropertyPriority(<var>property</var>)</code></dfn> method must run these steps:
    1.56  <ol>
    1.57 + <li><p>Let <var>property</var> be <var>property</var> <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#converted-to-ascii-lowercase">converted to ASCII lowercase</a>.
    1.58   <li><p>If <var>property</var> is a shorthand property, follow these substeps:
    1.59    <ol>
    1.60     <li><p>Let <var>list</var> be a new array.
    1.61 @@ -2231,14 +2232,10 @@
    1.62    </ol>
    1.63   <li><p>Otherwise, follow these substeps:
    1.64    <ol>
    1.65 -   <li><p>If <var>property</var> is an <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#ascii-case-insensitive">ASCII
    1.66 -   case-insensitive</a> match for a property of a declaration in the <a href="#concept-css-declaration-block-declarations" title="concept-css-declaration-block-declarations">declarations</a> that has the
    1.67 -   <i>important</i> flag set, and that declaration's
    1.68 -   property is defined to be case-insensitive, return the string "<code title="">important</code>".</p>
    1.69     <li><p>If <var>property</var> is a
    1.70     <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#case-sensitive">case-sensitive</a> match for a property of a
    1.71     declaration in the <a href="#concept-css-declaration-block-declarations" title="concept-css-declaration-block-declarations">declarations</a> that has the
    1.72 -   <i>important</i> flag set, and that declaration's property is defined to be case-sensitive, return
    1.73 +   <i>important</i> flag set, return
    1.74     the string "<code title="">important</code>".</p>
    1.75    </ol>
    1.76   <li><p>Return the empty string.
    1.77 @@ -2252,15 +2249,15 @@
    1.78   <!-- XXX handle shorthands better -->
    1.79   <li><p>If the <a href="#concept-css-declaration-block-readonly-flag" title="concept-css-declaration-block-readonly-flag">readonly flag</a> is set, <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#concept-throw" title="concept-throw">throw</a>
    1.80   an <code class="external" data-anolis-spec="dom"><a href="http://dom.spec.whatwg.org/#nomodificationallowederror">NoModificationAllowedError</a></code> exception and terminate these steps.</li>
    1.81 - <li><p>If <var>property</var> is not an <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#ascii-case-insensitive">ASCII case-insensitive</a> match for a supported property that is defined to be
    1.82 - case-insensitive, or if <var>property</var> is not a <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#case-sensitive">case-sensitive</a> match for a supported property that is defined to
    1.83 - be case-sensitive, terminate this algorithm.</li>
    1.84 + <li><p>Let <var>property</var> be <var>property</var> <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#converted-to-ascii-lowercase">converted to ASCII lowercase</a>.
    1.85 + <li><p>If <var>property</var> is not a <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#case-sensitive">case-sensitive</a> match for a <a href="#supported-css-property">supported CSS property</a>, terminate this
    1.86 + algorithm.</li>
    1.87   <li><p>If <var>value</var> is the empty string, invoke <code title="dom-CSSStyleDeclaration-removeProperty"><a href="#dom-cssstyledeclaration-removeproperty">removeProperty()</a></code>
    1.88   with <var>property</var> as argument and terminate this algorithm.</li>
    1.89   <li><p>If <var>priority</var> is neither an <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">important</code>"
    1.90   nor the empty string terminate this algorithm.</li>
    1.91   <li>
    1.92 - <p>If <a href="#parse-a-css-value" title="parse a CSS value">parsing the <var>value</var></a> returns null terminate this algorithm.
    1.93 + <p>If <a href="#parse-a-css-value" title="parse a CSS value">parsing</a> <var>value</var> returns null terminate this algorithm.
    1.94   <p class="note"><var>value</var> can not include "<code title="">!important</code>".</p>
    1.95   </li>
    1.96   <li><p>Finally, set <var>property</var> to <var>value</var> with the <i>important</i> flag set if <var>priority</var> is not the empty
    1.97 @@ -2271,19 +2268,13 @@
    1.98  <ol>
    1.99   <li><p>If the <a href="#concept-css-declaration-block-readonly-flag" title="concept-css-declaration-block-readonly-flag">readonly flag</a> is set, <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#concept-throw" title="concept-throw">throw</a>
   1.100   a <code class="external" data-anolis-spec="dom"><a href="http://dom.spec.whatwg.org/#nomodificationallowederror">NoModificationAllowedError</a></code> exception and terminate these steps.</li>
   1.101 + <li><p>Let <var>property</var> be <var>property</var> <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#converted-to-ascii-lowercase">converted to ASCII lowercase</a>.
   1.102   <li><p>Let <var>value</var> be the return value of invoking <code title="dom-CSSStyleDeclaration-getPropertyValue"><a href="#dom-cssstyledeclaration-getpropertyvalue">getPropertyValue()</a></code>
   1.103   with <var>property</var> as argument.
   1.104   <li><p>If <var>property</var> is a shorthand property, for each longhand property <var>longhand</var> that <var>property</var> maps to, invoke
   1.105   <code title="dom-CSSStyleDeclaration-removeProperty"><a href="#dom-cssstyledeclaration-removeproperty">removeProperty()</a></code> with <var>longhand</var> as argument.
   1.106 - <li><p>Otherwise, run these substeps:
   1.107 -  <ol>
   1.108 -   <li><p>If <var>property</var> is an <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#ascii-case-insensitive">ASCII case-insensitive</a> match for a property of a declaration in the
   1.109 -   <a href="#concept-css-declaration-block-declarations" title="concept-css-declaration-block-declarations">declarations</a>, and that property is defined to be a case-insensitive property, remove the
   1.110 -   declaration.</li>
   1.111 -   <li><p>If <var>property</var> is a <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#case-sensitive">case-sensitive</a> match for a property of a declaration in the
   1.112 -   <a href="#concept-css-declaration-block-declarations" title="concept-css-declaration-block-declarations">declarations</a>, and that property is defined to be a case-sensitive property, remove the
   1.113 -   declaration.</li>
   1.114 -  </ol>
   1.115 + <li><p>Otherwise, if <var>property</var> is a <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#case-sensitive">case-sensitive</a> match for a property of a declaration in the
   1.116 + <a href="#concept-css-declaration-block-declarations" title="concept-css-declaration-block-declarations">declarations</a>, remove the declaration.
   1.117   <li><p>Return <var>value</var>.
   1.118  </ol>
   1.119  
   1.120 @@ -2298,7 +2289,7 @@
   1.121  <code title="">float</code> as first argument, as second argument the given value, and no third argument.
   1.122  Any exceptions thrown must be re-thrown.
   1.123  
   1.124 -<p>For each CSS property <var>property</var> that the user agent supports,
   1.125 +<p>For each CSS property <var>property</var> that is a <a href="#supported-css-property">supported CSS property</a>,
   1.126  the following partial interface applies where <var>camel-cased attribute</var>
   1.127  is obtained by running the <a href="#css-property-to-idl-attribute">CSS property to IDL attribute</a> algorithm for
   1.128  <var>property</var>.</p>
   1.129 @@ -2322,8 +2313,8 @@
   1.130  
   1.131  <!-- [GA] Remove spec text for so called "dashed-attribute" until consensus obtains on whether to include in spec.
   1.132  
   1.133 -<p>For each CSS property <var>property</var> that the user agent supports, except for properties that have no "<code title>-</code>" (U+002D) in the
   1.134 -property name, user agents must act as if there was a WebIDL <span data-anolis-spec=webidl>regular attribute</span> member as part of the
   1.135 +<p>For each CSS property <var>property</var> that is a <span>supported CSS property</span>, except for properties that have no "<code title>-</code>" (U+002D)
   1.136 +in the property name, user agents must act as if there was a WebIDL <span data-anolis-spec=webidl>regular attribute</span> member as part of the
   1.137  <code>CSSStyleDeclaration</code> interface with the type being <code title>DOMString</code> and the <span data-anolis-spec=webidl>identifier</span> being
   1.138  <var>property</var>, and let <var>dashed attribute</var> be <var>property</var>.
   1.139  
   1.140 @@ -2400,9 +2391,7 @@
   1.141  
   1.142  <ol>
   1.143   <li><p>Let <var>list</var> be the value returned by invoking <a class="external" data-anolis-spec="csssyntax" href="http://dev.w3.org/csswg/css-syntax/#parse-a-list-of-component-values0">parse a list of component values</a> from <var>value</var>.
   1.144 - <li><p>Match <var>list</var> against the grammar for the property that is an <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#ascii-case-insensitive">ASCII case-insensitive</a> match for
   1.145 - <var>property</var> in the CSS specification, if <var>property</var> is defined to be case-insensitive, or otherwise that is a
   1.146 - <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#case-sensitive">case-sensitive</a> match for <var>property</var> in the CSS specification.
   1.147 + <li><p>Match <var>list</var> against the grammar for the property <var>property</var> in the CSS specification.
   1.148   <li><p>If the above step failed, return null.
   1.149   <li><p>Return <var>list</var>.
   1.150  </ol>
   1.151 @@ -2747,7 +2736,7 @@
   1.152    <p>Return a <a href="#css-declaration-block">CSS declaration block</a> with the
   1.153    <a href="#concept-css-declaration-block-readonly-flag" title="concept-css-declaration-block-readonly-flag">readonly flag</a> set and the
   1.154    <a href="#concept-css-declaration-block-declarations" title="concept-css-declaration-block-declarations">declarations</a> set to all longhand properties
   1.155 -  the user agent supports with the value being the <a href="#resolved-value">resolved value</a>
   1.156 +  that are <a href="#supported-css-property" title="supported CSS property">supported CSS properties</a> with the value being the <a href="#resolved-value">resolved value</a>
   1.157    computed for <var>obj</var> using the style rules associated
   1.158    with <var>doc</var>.</p>
   1.159    <p class="note">This means that even if <var>obj</var> is in a
   1.160 @@ -2782,13 +2771,14 @@
   1.161  <p class="atrisk">The <dfn id="dom-getstyleutils-specifiedstyle" title="dom-GetStyleUtils-specifiedStyle"><code>specifiedStyle</code></dfn> attribute must return a <a href="#css-declaration-block">CSS declaration block</a>
   1.162  with the <a href="#concept-css-declaration-block-readonly-flag" title="concept-css-declaration-block-readonly-flag">readonly flag</a> set and the
   1.163  <a href="#concept-css-declaration-block-declarations" title="concept-css-declaration-block-declarations">declarations</a> set to all longhand properties
   1.164 -the user agent supports with the value being the <a href="#specified-value">specified value</a>
   1.165 +that are <a href="#supported-css-property" title="supported CSS property">supported CSS properties</a> with the value being the <a href="#specified-value">specified value</a>
   1.166  computed for the <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#context-object">context object</a> using the style rules associated
   1.167  with the <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#context-object">context object</a>'s <a href="#associated-document">associated document</a>.</p>
   1.168  
   1.169  <p class="atrisk">The <dfn id="dom-getstyleutils-defaultstyle" title="dom-GetStyleUtils-defaultStyle"><code>defaultStyle</code></dfn> attribute must return a <a href="#css-declaration-block">CSS declaration block</a> with
   1.170  the <a href="#concept-css-declaration-block-readonly-flag" title="concept-css-declaration-block-readonly-flag">readonly flag</a> set and the
   1.171 -<a href="#concept-css-declaration-block-declarations" title="concept-css-declaration-block-declarations">declarations</a> set to all longhand properties the user agent supports with the value being the
   1.172 +<a href="#concept-css-declaration-block-declarations" title="concept-css-declaration-block-declarations">declarations</a> set to all longhand properties that are
   1.173 +<a href="#supported-css-property" title="supported CSS property">supported CSS properties</a> with the value being the
   1.174  <a href="#computed-value">computed value</a> computed for the <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#context-object">context object</a> using the user-agent-level style rules and user-level style rules
   1.175  associated with the <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#context-object">context object</a>'s <a href="#associated-document">associated document</a>, ignoring transitions, animations, author-level style
   1.176  rules, author-level presentational hints and override-level style rules.</p>
   1.177 @@ -2796,14 +2786,14 @@
   1.178  <p class="atrisk">The <dfn id="dom-getstyleutils-computedstyle" title="dom-GetStyleUtils-computedStyle"><code>computedStyle</code></dfn> attribute must return a <a href="#css-declaration-block">CSS declaration block</a> with
   1.179  the <a href="#concept-css-declaration-block-readonly-flag" title="concept-css-declaration-block-readonly-flag">readonly flag</a> set and the
   1.180  <a href="#concept-css-declaration-block-declarations" title="concept-css-declaration-block-declarations">declarations</a> set to all longhand properties
   1.181 -the user agent supports with the value being the <a href="#computed-value">computed value</a>
   1.182 +that are <a href="#supported-css-property" title="supported CSS property">supported CSS properties</a> with the value being the <a href="#computed-value">computed value</a>
   1.183  computed for the <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#context-object">context object</a> using the style rules associated
   1.184  with the <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#context-object">context object</a>'s <a href="#associated-document">associated document</a>.</p>
   1.185  
   1.186  <p class="atrisk">The <dfn id="dom-getstyleutils-usedstyle" title="dom-GetStyleUtils-usedStyle"><code>usedStyle</code></dfn> attribute must return a <a href="#css-declaration-block">CSS declaration block</a> with the
   1.187  <a href="#concept-css-declaration-block-readonly-flag" title="concept-css-declaration-block-readonly-flag">readonly flag</a> set and the
   1.188  <a href="#concept-css-declaration-block-declarations" title="concept-css-declaration-block-declarations">declarations</a> set to all longhand properties
   1.189 -the user agent supports with the value being the <a href="#used-value">used value</a>
   1.190 +that are <a href="#supported-css-property" title="supported CSS property">supported CSS properties</a> with the value being the <a href="#used-value">used value</a>
   1.191  computed for the <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#context-object">context object</a> using the style rules associated
   1.192  with the <a class="external" data-anolis-spec="dom" href="http://dom.spec.whatwg.org/#context-object">context object</a>'s <a href="#associated-document">associated document</a>.</p>
   1.193  
   1.194 @@ -2960,7 +2950,10 @@
   1.195  <dd><cite><a href="http://dev.w3.org/csswg/css-page/">CSS Paged Media Module</a></cite>, Melinda Grant, Håkon Wium Lie, Elika J. Etemad et al.. W3C.
   1.196  
   1.197  <dt id="refsCSSSYNTAX">[CSSSYNTAX]
   1.198 -<dd><cite><a href="http://dev.w3.org/csswg/css-syntax/">CSS Syntax Module Level 3</a></cite>, Tab Atkins Jr. W3C.
   1.199 +<dd><cite><a href="http://dev.w3.org/csswg/css-syntax/">CSS Syntax Module</a></cite>, Tab Atkins Jr.. W3C.
   1.200 +
   1.201 +<dt id="refsCSSVARIABLES">[CSSVARIABLES]
   1.202 +<dd>(Non-normative) <cite><a href="http://dev.w3.org/csswg/css-variables/">CSS Custom Properties for Cascading Variables Module</a></cite>, Tab Atkins Jr.. W3C.
   1.203  
   1.204  <dt id="refsDOM">[DOM]
   1.205  <dd><cite><a href="http://dom.spec.whatwg.org/">DOM</a></cite>, Anne van Kesteren, Aryeh Gregor and Ms2ger. WHATWG.
   1.206 @@ -2978,7 +2971,7 @@
   1.207  <dd><cite><a href="http://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a></cite>, Scott Bradner. IETF.
   1.208  
   1.209  <dt id="refsSELECTORS">[SELECTORS]
   1.210 -<dd><cite><a href="http://dev.w3.org/csswg/selectors4/">Selectors Level 4</a></cite>, Elika J. Etemad. W3C.
   1.211 +<dd><cite><a href="http://dev.w3.org/csswg/selectors4/">Selectors</a></cite>, Elika J. Etemad. W3C.
   1.212  
   1.213  <dt id="refsSVG">[SVG]
   1.214  <dd>(Non-normative) <cite><a href="http://www.w3.org/TR/SVG/">Scalable Vector Graphics (SVG)</a></cite>, O. Andersson, R. Berjon, E. Dahlström et al.. W3C.
     2.1 --- a/cssom/Overview.src.html	Thu Jun 27 16:21:08 2013 -0700
     2.2 +++ b/cssom/Overview.src.html	Fri Jun 28 10:53:31 2013 +0200
     2.3 @@ -209,6 +209,12 @@
     2.4  
     2.5  <p class=note>If another styling language becomes supported in user agents, this specification is expected to be updated as necessary.
     2.6  
     2.7 +<p>The term <dfn>supported CSS property</dfn> refers to a CSS property that the user agent implements, and that is defined to be a case-insensitive property in
     2.8 +the CSS specification. A <span>supported CSS property</span> must be in its lowercase form for the purpose of comparisons this specification.
     2.9 +
    2.10 +<p class=note>CSS properties that are case-sensitive such as CSS Variables are author-defined and are represented with dedicated interfaces, and do not
    2.11 +participate in the base CSSOM API. <span data-anolis-ref class=informative>CSSVARIABLES</span>
    2.12 +
    2.13  <p>The terms <dfn>::before pseudo-element</dfn> and <dfn>::after pseudo-element</dfn> refer to the :before and :after pseudo-elements in CSS, except in this
    2.14  specification the pseudo-elements are assumed to exist for all elements even if no box is generated for them. <span data-anolis-ref>CSS</span>
    2.15  
    2.16 @@ -2126,16 +2132,10 @@
    2.17  <p>The <dfn title=dom-CSSStyleDeclaration-getPropertyValue><code>getPropertyValue(<var>property</var>)</code></dfn> method must run these steps:</p>
    2.18  <ol>
    2.19   <!-- XXX handle shorthands better -->
    2.20 - <li><p>If <var>property</var> is an <span data-anolis-spec=dom>ASCII
    2.21 - case-insensitive</span> match for a property of a declaration in the
    2.22 - <span title=concept-css-declaration-block-declarations>declarations</span>, and that declaration's property
    2.23 - is defined to be case-insensitive, return the
    2.24 - <span title='serialize a CSS value'>serialization</span> of that declaration's
    2.25 - value.
    2.26 + <li><p>Let <var>property</var> be <var>property</var> <span data-anolis-spec=dom>converted to ASCII lowercase</span>.
    2.27   <li><p>If <var>property</var> is a <span data-anolis-spec=dom>case-sensitive</span>
    2.28   match for a property of a declaration in the
    2.29 - <span title=concept-css-declaration-block-declarations>declarations</span>, and that declaration's property
    2.30 - is defined to be case-sensitive, return the
    2.31 + <span title=concept-css-declaration-block-declarations>declarations</span>, return the
    2.32   <span title='serialize a CSS value'>serialization</span> of that declaration's
    2.33   value.
    2.34   <li><p>Return the empty string.
    2.35 @@ -2143,6 +2143,7 @@
    2.36  
    2.37  <p>The <dfn title=dom-CSSStyleDeclaration-getPropertyPriority><code>getPropertyPriority(<var>property</var>)</code></dfn> method must run these steps:
    2.38  <ol>
    2.39 + <li><p>Let <var>property</var> be <var>property</var> <span data-anolis-spec=dom>converted to ASCII lowercase</span>.
    2.40   <li><p>If <var>property</var> is a shorthand property, follow these substeps:
    2.41    <ol>
    2.42     <li><p>Let <var>list</var> be a new array.
    2.43 @@ -2153,14 +2154,10 @@
    2.44    </ol>
    2.45   <li><p>Otherwise, follow these substeps:
    2.46    <ol>
    2.47 -   <li><p>If <var>property</var> is an <span data-anolis-spec=dom>ASCII
    2.48 -   case-insensitive</span> match for a property of a declaration in the <span title=concept-css-declaration-block-declarations>declarations</span> that has the
    2.49 -   <i>important</i> flag set, and that declaration's
    2.50 -   property is defined to be case-insensitive, return the string "<code title>important</code>".</p>
    2.51     <li><p>If <var>property</var> is a
    2.52     <span data-anolis-spec=dom>case-sensitive</span> match for a property of a
    2.53     declaration in the <span title=concept-css-declaration-block-declarations>declarations</span> that has the
    2.54 -   <i>important</i> flag set, and that declaration's property is defined to be case-sensitive, return
    2.55 +   <i>important</i> flag set, return
    2.56     the string "<code title>important</code>".</p>
    2.57    </ol>
    2.58   <li><p>Return the empty string.
    2.59 @@ -2174,15 +2171,15 @@
    2.60   <!-- XXX handle shorthands better -->
    2.61   <li><p>If the <span title=concept-css-declaration-block-readonly-flag>readonly flag</span> is set, <span data-anolis-spec=dom title=concept-throw>throw</span>
    2.62   an <code data-anolis-spec=dom>NoModificationAllowedError</code> exception and terminate these steps.</li>
    2.63 - <li><p>If <var>property</var> is not an <span data-anolis-spec=dom>ASCII case-insensitive</span> match for a supported property that is defined to be
    2.64 - case-insensitive, or if <var>property</var> is not a <span data-anolis-spec=dom>case-sensitive</span> match for a supported property that is defined to
    2.65 - be case-sensitive, terminate this algorithm.</p></li>
    2.66 + <li><p>Let <var>property</var> be <var>property</var> <span data-anolis-spec=dom>converted to ASCII lowercase</span>.
    2.67 + <li><p>If <var>property</var> is not a <span data-anolis-spec=dom>case-sensitive</span> match for a <span>supported CSS property</span>, terminate this
    2.68 + algorithm.</p></li>
    2.69   <li><p>If <var>value</var> is the empty string, invoke <code title='dom-CSSStyleDeclaration-removeProperty'>removeProperty()</code>
    2.70   with <var>property</var> as argument and terminate this algorithm.</p></li>
    2.71   <li><p>If <var>priority</var> is neither an <span data-anolis-spec=dom>ASCII case-insensitive</span> match for the string "<code title>important</code>"
    2.72   nor the empty string terminate this algorithm.</p></li>
    2.73   <li>
    2.74 - <p>If <span title='parse a CSS value'>parsing the <var>value</var></span> returns null terminate this algorithm.
    2.75 + <p>If <span title='parse a CSS value'>parsing</span> <var>value</var> returns null terminate this algorithm.
    2.76   <p class='note'><var>value</var> can not include "<code title>!important</code>".</p>
    2.77   </li>
    2.78   <li><p>Finally, set <var>property</var> to <var>value</var> with the <i>important</i> flag set if <var>priority</var> is not the empty
    2.79 @@ -2193,19 +2190,13 @@
    2.80  <ol>
    2.81   <li><p>If the <span title=concept-css-declaration-block-readonly-flag>readonly flag</span> is set, <span data-anolis-spec=dom title=concept-throw>throw</span>
    2.82   a <code data-anolis-spec=dom>NoModificationAllowedError</code> exception and terminate these steps.</li>
    2.83 + <li><p>Let <var>property</var> be <var>property</var> <span data-anolis-spec=dom>converted to ASCII lowercase</span>.
    2.84   <li><p>Let <var>value</var> be the return value of invoking <code title='dom-CSSStyleDeclaration-getPropertyValue'>getPropertyValue()</code>
    2.85   with <var>property</var> as argument.
    2.86   <li><p>If <var>property</var> is a shorthand property, for each longhand property <var>longhand</var> that <var>property</var> maps to, invoke
    2.87   <code title=dom-CSSStyleDeclaration-removeProperty>removeProperty()</code> with <var>longhand</var> as argument.
    2.88 - <li><p>Otherwise, run these substeps:
    2.89 -  <ol>
    2.90 -   <li><p>If <var>property</var> is an <span data-anolis-spec=dom>ASCII case-insensitive</span> match for a property of a declaration in the
    2.91 -   <span title=concept-css-declaration-block-declarations>declarations</span>, and that property is defined to be a case-insensitive property, remove the
    2.92 -   declaration.</p></li>
    2.93 -   <li><p>If <var>property</var> is a <span data-anolis-spec=dom>case-sensitive</span> match for a property of a declaration in the
    2.94 -   <span title=concept-css-declaration-block-declarations>declarations</span>, and that property is defined to be a case-sensitive property, remove the
    2.95 -   declaration.</p></li>
    2.96 -  </ol>
    2.97 + <li><p>Otherwise, if <var>property</var> is a <span data-anolis-spec=dom>case-sensitive</span> match for a property of a declaration in the
    2.98 + <span title=concept-css-declaration-block-declarations>declarations</span>, remove the declaration.
    2.99   <li><p>Return <var>value</var>.
   2.100  </ol>
   2.101  
   2.102 @@ -2220,7 +2211,7 @@
   2.103  <code title>float</code> as first argument, as second argument the given value, and no third argument.
   2.104  Any exceptions thrown must be re-thrown.
   2.105  
   2.106 -<p>For each CSS property <var>property</var> that the user agent supports,
   2.107 +<p>For each CSS property <var>property</var> that is a <span>supported CSS property</span>,
   2.108  the following partial interface applies where <var>camel-cased attribute</var>
   2.109  is obtained by running the <span>CSS property to IDL attribute</span> algorithm for
   2.110  <var>property</var>.</p>
   2.111 @@ -2244,8 +2235,8 @@
   2.112  
   2.113  <!-- [GA] Remove spec text for so called "dashed-attribute" until consensus obtains on whether to include in spec.
   2.114  
   2.115 -<p>For each CSS property <var>property</var> that the user agent supports, except for properties that have no "<code title>-</code>" (U+002D) in the
   2.116 -property name, user agents must act as if there was a WebIDL <span data-anolis-spec=webidl>regular attribute</span> member as part of the
   2.117 +<p>For each CSS property <var>property</var> that is a <span>supported CSS property</span>, except for properties that have no "<code title>-</code>" (U+002D)
   2.118 +in the property name, user agents must act as if there was a WebIDL <span data-anolis-spec=webidl>regular attribute</span> member as part of the
   2.119  <code>CSSStyleDeclaration</code> interface with the type being <code title>DOMString</code> and the <span data-anolis-spec=webidl>identifier</span> being
   2.120  <var>property</var>, and let <var>dashed attribute</var> be <var>property</var>.
   2.121  
   2.122 @@ -2322,9 +2313,7 @@
   2.123  
   2.124  <ol>
   2.125   <li><p>Let <var>list</var> be the value returned by invoking <span data-anolis-spec=csssyntax>parse a list of component values</span> from <var>value</var>.
   2.126 - <li><p>Match <var>list</var> against the grammar for the property that is an <span data-anolis-spec=dom>ASCII case-insensitive</span> match for
   2.127 - <var>property</var> in the CSS specification, if <var>property</var> is defined to be case-insensitive, or otherwise that is a
   2.128 - <span data-anolis-spec=dom>case-sensitive</span> match for <var>property</var> in the CSS specification.
   2.129 + <li><p>Match <var>list</var> against the grammar for the property <var>property</var> in the CSS specification.
   2.130   <li><p>If the above step failed, return null.
   2.131   <li><p>Return <var>list</var>.
   2.132  </ol>
   2.133 @@ -2669,7 +2658,7 @@
   2.134    <p>Return a <span>CSS declaration block</span> with the
   2.135    <span title=concept-css-declaration-block-readonly-flag>readonly flag</span> set and the
   2.136    <span title=concept-css-declaration-block-declarations>declarations</span> set to all longhand properties
   2.137 -  the user agent supports with the value being the <span>resolved value</span>
   2.138 +  that are <span title="supported CSS property">supported CSS properties</span> with the value being the <span>resolved value</span>
   2.139    computed for <var>obj</var> using the style rules associated
   2.140    with <var>doc</var>.</p>
   2.141    <p class='note'>This means that even if <var>obj</var> is in a
   2.142 @@ -2704,13 +2693,14 @@
   2.143  <p class=atrisk>The <dfn title=dom-GetStyleUtils-specifiedStyle><code>specifiedStyle</code></dfn> attribute must return a <span>CSS declaration block</span>
   2.144  with the <span title=concept-css-declaration-block-readonly-flag>readonly flag</span> set and the
   2.145  <span title=concept-css-declaration-block-declarations>declarations</span> set to all longhand properties
   2.146 -the user agent supports with the value being the <span>specified value</span>
   2.147 +that are <span title="supported CSS property">supported CSS properties</span> with the value being the <span>specified value</span>
   2.148  computed for the <span data-anolis-spec=dom>context object</span> using the style rules associated
   2.149  with the <span data-anolis-spec=dom>context object</span>'s <span>associated document</span>.</p>
   2.150  
   2.151  <p class=atrisk>The <dfn title=dom-GetStyleUtils-defaultStyle><code>defaultStyle</code></dfn> attribute must return a <span>CSS declaration block</span> with
   2.152  the <span title=concept-css-declaration-block-readonly-flag>readonly flag</span> set and the
   2.153 -<span title=concept-css-declaration-block-declarations>declarations</span> set to all longhand properties the user agent supports with the value being the
   2.154 +<span title=concept-css-declaration-block-declarations>declarations</span> set to all longhand properties that are
   2.155 +<span title="supported CSS property">supported CSS properties</span> with the value being the
   2.156  <span>computed value</span> computed for the <span data-anolis-spec=dom>context object</span> using the user-agent-level style rules and user-level style rules
   2.157  associated with the <span data-anolis-spec=dom>context object</span>'s <span>associated document</span>, ignoring transitions, animations, author-level style
   2.158  rules, author-level presentational hints and override-level style rules.</p>
   2.159 @@ -2718,14 +2708,14 @@
   2.160  <p class=atrisk>The <dfn title=dom-GetStyleUtils-computedStyle><code>computedStyle</code></dfn> attribute must return a <span>CSS declaration block</span> with
   2.161  the <span title=concept-css-declaration-block-readonly-flag>readonly flag</span> set and the
   2.162  <span title=concept-css-declaration-block-declarations>declarations</span> set to all longhand properties
   2.163 -the user agent supports with the value being the <span>computed value</span>
   2.164 +that are <span title="supported CSS property">supported CSS properties</span> with the value being the <span>computed value</span>
   2.165  computed for the <span data-anolis-spec=dom>context object</span> using the style rules associated
   2.166  with the <span data-anolis-spec=dom>context object</span>'s <span>associated document</span>.</p>
   2.167  
   2.168  <p class=atrisk>The <dfn title=dom-GetStyleUtils-usedStyle><code>usedStyle</code></dfn> attribute must return a <span>CSS declaration block</span> with the
   2.169  <span title=concept-css-declaration-block-readonly-flag>readonly flag</span> set and the
   2.170  <span title=concept-css-declaration-block-declarations>declarations</span> set to all longhand properties
   2.171 -the user agent supports with the value being the <span>used value</span>
   2.172 +that are <span title="supported CSS property">supported CSS properties</span> with the value being the <span>used value</span>
   2.173  computed for the <span data-anolis-spec=dom>context object</span> using the style rules associated
   2.174  with the <span data-anolis-spec=dom>context object</span>'s <span>associated document</span>.</p>
   2.175  

mercurial