W3C home > Mailing lists > Public > public-html-commits@w3.org > February 2010

html5/spec Overview.html,1.3783,1.3784

From: Ian Hickson via cvs-syncmail <cvsmail@w3.org>
Date: Sun, 14 Feb 2010 12:01:50 +0000
To: public-html-commits@w3.org
Message-Id: <E1NgdAc-0002N8-AJ@lionel-hutz.w3.org>
Update of /sources/public/html5/spec
In directory hutz:/tmp/cvs-serv9049

Modified Files:
	Overview.html 
Log Message:
Make dataset camelCase hyphenated names. (whatwg r4737)

Index: Overview.html
===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.3783
retrieving revision 1.3784
diff -u -d -r1.3783 -r1.3784
--- Overview.html	14 Feb 2010 11:24:32 -0000	1.3783
+++ Overview.html	14 Feb 2010 12:01:46 -0000	1.3784
@@ -7209,7 +7209,11 @@
   any number of <a href="#custom-data-attribute" title="custom data attribute">custom data
   attributes</a> specified, with any value.<hr><dl class="domintro"><dt><var title="">element</var> . <code title="dom-dataset"><a href="#dom-dataset">dataset</a></code></dt>
    <dd>
+
     <p>Returns a <code><a href="#domstringmap">DOMStringMap</a></code> object for the element's <code title="attr-data-*"><a href="#attr-data">data-*</a></code> attributes.</p>
+
+    <p>Hyphenated names become camel-cased. For example, <code title="">data-foo-bar=""</code> becomes <code title="">element.dataset.fooBar</code>.</p>
+
    </dd>
 
   </dl><div class="impl">
@@ -7228,10 +7232,19 @@
      pairs.</li>
 
      <li>For each content attribute on the element whose first five
-     characters are the string "<code title="">data-</code>", add a
-     name-value pair to <var title="">list</var> whose name is the
-     attribute's name with the first five character removed and whose
-     value is the attribute's value.</li>
+     characters are the string "<code title="">data-</code>" and whose
+     remaining characters (if any) do not include any characters in
+     the range U+0041 to U+005A (LATIN CAPITAL LETTER A to LATIN
+     CAPITAL LETTER Z), add a name-value pair to <var title="">list</var> whose name is the attribute's name with the
+     first five character removed and whose value is the attribute's
+     value.</li>
+
+     <li>For each name on the list, for each U+002D HYPHEN-MINUS
+     character (-) in the name that is followed by a character in the
+     range U+0061 to U+007A (U+0061 LATIN SMALL LETTER A to U+007A
+     LATIN SMALL LETTER Z), remove the U+002D HYPHEN-MINUS character
+     (-) and replace the character that followed it by the same
+     character <a href="#converted-to-ascii-uppercase">converted to ASCII uppercase</a>.</li>
 
      <li>Return <var title="">list</var>.</li>
 
@@ -7240,13 +7253,26 @@
    <dt>The algorithm for setting names to certain values</dt>
 
    <dd>
-    <ol><li>Let <var title="">name</var> be the concatenation of the
-     string <code title="">data-</code> and the name passed to the
+    <ol><li>Let <var title="">name</var> be the name passed to the
      algorithm.</li>
 
      <li>Let <var title="">value</var> be the value passed to the
      algorithm.</li>
 
+     <li>If <var title="">name</var> contains a U+002D HYPHEN-MINUS
+     character (-) followed by a character in the range U+0061 to
+     U+007A (U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
+     Z), throw a <code><a href="#syntax_err">SYNTAX_ERR</a></code> exception and abort these
+     steps.</li>
+
+     <li>For each character in the range U+0041 to U+005A (U+0041
+     LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z) in <var title="">name</var>, insert a U+002D HYPHEN-MINUS character (-)
+     before the character and replace the character with the same
+     character <a href="#converted-to-ascii-lowercase">converted to ASCII lowercase</a>.</li>
+
+     <li>Insert the string <code title="">data-</code> at the front of
+     <var title="">name</var>.</li>
+
      <li>Set the value of the attribute with the name <var title="">name</var>, to the value <var title="">value</var>,
      replacing any previous value if the attribute already existed. If
      <code title="">setAttribute()</code> would have raised an
@@ -7258,10 +7284,23 @@
    <dt>The algorithm for deleting names</dt>
 
    <dd>
-    <ol><li>Let <var title="">name</var> be the concatenation of the
-     string <code title="">data-</code> and the name passed to the
+    <ol><li>Let <var title="">name</var> be the name passed to the
      algorithm.</li>
 
+     <li>If <var title="">name</var> contains a U+002D HYPHEN-MINUS
+     character (-) followed by a character in the range U+0061 to
+     U+007A (U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
+     Z), throw a <code><a href="#syntax_err">SYNTAX_ERR</a></code> exception and abort these
+     steps.</li>
+
+     <li>For each character in the range U+0041 to U+005A (U+0041
+     LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z) in <var title="">name</var>, insert a U+002D HYPHEN-MINUS character (-)
+     before the character and replace the character with the same
+     character <a href="#converted-to-ascii-lowercase">converted to ASCII lowercase</a>.</li>
+
+     <li>Insert the string <code title="">data-</code> at the front of
+     <var title="">name</var>.</li>
+
      <li>Remove the attribute with the name <var title="">name</var>,
      if such an attribute exists. Do nothing otherwise.</li>
 
@@ -7274,15 +7313,18 @@
    <p>If a Web page wanted an element to represent a space ship,
    e.g. as part of a game, it would have to use the <code title="attr-class"><a href="#classes">class</a></code> attribute along with <code title="attr-data-*"><a href="#attr-data">data-*</a></code> attributes:</p>
 
-   <pre>&lt;div class="spaceship" data-id="92432"
+   <pre>&lt;div class="spaceship" data-ship-id="92432"
      data-weapons="laser 2" data-shields="50%"
      data-x="30" data-y="10" data-z="90"&gt;
  &lt;button class="fire"
-         onclick="spaceships[this.parentNode.dataset.id].fire()"&gt;
+         onclick="spaceships[this.parentNode.dataset.shipId].fire()"&gt;
   Fire
  &lt;/button&gt;
 &lt;/div&gt;</pre>
 
+   <p>Notice how the hyphenated attribute name becomes capitalized in
+   the API.</p>
+
   </div><p>Authors should carefully design such extensions so that when the
   attributes are ignored and any associated CSS dropped, the page is
   still usable.<div class="impl">
@@ -67902,6 +67944,7 @@
   Corprew Reed,
   Craig Cockburn,
   Csaba Gabor,
+  Csaba Marton,
   Daniel Barclay,
   Daniel Bratell,
   Daniel Brooks,
Received on Sunday, 14 February 2010 12:01:51 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Sunday, 14 February 2010 12:01:51 GMT