changed 'key identifer' to 'key value' throughout for concept clarity, added section for changes between drafts
authorschepers
Fri, 30 Oct 2009 15:03:14 +0900
changeset 220 30833747df23
parent 219 381ff5e68bd6
child 221 b9950a53ae2b
changed 'key identifer' to 'key value' throughout for concept clarity, added section for changes between drafts
html/DOM3-Events.html
--- a/html/DOM3-Events.html	Fri Oct 30 12:19:25 2009 +0900
+++ b/html/DOM3-Events.html	Fri Oct 30 15:03:14 2009 +0900
@@ -147,15 +147,15 @@
 
 
 
-      /*style for keyIdentifiers keyCode charCode table*/
-      table#tbl-keyIdentifiers-keyCode-charCode  { border: 1px solid black;  border-spacing: 0px; padding: 2px; }
-      #tbl-keyIdentifiers-keyCode-charCode td { border: 1px solid #d3d3d3 }
-      #tbl-keyIdentifiers-keyCode-charCode th { border: 1px solid black }
-
-      #tbl-keyIdentifiers-keyCode-charCode th { text-align: center; font-weight: bold }
-
-      #tbl-keyIdentifiers-keyCode-charCode th { vertical-align: middle; font-size: 0.85em; }
-      #tbl-keyIdentifiers-keyCode-charCode td { vertical-align: middle; text-align: center;  }
+      /*style for keyValues keyCode charCode table*/
+      table#tbl-keyValues-keyCode-charCode  { border: 1px solid black;  border-spacing: 0px; padding: 2px; }
+      #tbl-keyValues-keyCode-charCode td { border: 1px solid #d3d3d3 }
+      #tbl-keyValues-keyCode-charCode th { border: 1px solid black }
+
+      #tbl-keyValues-keyCode-charCode th { text-align: center; font-weight: bold }
+
+      #tbl-keyValues-keyCode-charCode th { vertical-align: middle; font-size: 0.85em; }
+      #tbl-keyValues-keyCode-charCode td { vertical-align: middle; text-align: center;  }
 
       .smallRow1 th { 
         font-size: 0.75em;
@@ -172,23 +172,23 @@
         height:auto;
       }
 
-      #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td,
-      #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td,
-      #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
-      #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td
+      #tbl-keyValues-keyCode-charCode td:first-child + td + td + td + td,
+      #tbl-keyValues-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td,
+      #tbl-keyValues-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
+      #tbl-keyValues-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td
       {
         border-left: 1px solid black;
       }
 
 
-      #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td,
-      #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td,
-      #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td,
-      #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
-      #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
-      #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
-      #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
-      #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td
+      #tbl-keyValues-keyCode-charCode td:first-child + td + td + td + td + td + td,
+      #tbl-keyValues-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td,
+      #tbl-keyValues-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td,
+      #tbl-keyValues-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
+      #tbl-keyValues-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
+      #tbl-keyValues-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
+      #tbl-keyValues-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
+      #tbl-keyValues-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td
       {
         border-left: 1px solid gray;
       }
@@ -204,11 +204,11 @@
       </p>
       <h1 id="Overview-title">Document Object Model (DOM) Level 3 Events Specification</h1>
 <!-- @@@ -->
-      <h2 id="Overview-W3C-doctype">W3C Editor's Draft <span class="date">29 October 2009</span></h2>
+      <h2 id="Overview-W3C-doctype">W3C Editor's Draft <span class="date">30 October 2009</span></h2>
       <dl>
         <dt>This version:</dt>
         <dd>
-          <a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.104">http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.104</a>
+          <a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.105">http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.105</a>
         </dd>
         <dt>Latest stable version:</dt>
         <dd>
@@ -216,7 +216,7 @@
         </dd>
         <dt>Previous version:</dt>
         <dd>
-          <a href="http://dev.w3.org/cvsweb/~checkout~/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.103">http://dev.w3.org/cvsweb/~checkout~/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.103</a>
+          <a href="http://dev.w3.org/cvsweb/~checkout~/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.104">http://dev.w3.org/cvsweb/~checkout~/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.104</a>
         </dd>
         <dt>Editor's Draft:</dt>
         <dd>
@@ -254,7 +254,7 @@
         knowledge of a patent which the individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential
         Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
         6 of the W3C Patent Policy</a>.</p>
-      <p id="working-draft">This is the <span class="date">29 October 2009</span> Editor's Draft version of the "Document Object Model (DOM) Level 3 Events" specification.  This document was previously published as a W3C Note, pending further feedback from implementers, and is now being revised to reflect the current state of implementation.  It is expected that this specification will progress to Recommendation status.</p>
+      <p id="working-draft">This is the <span class="date">30 October 2009</span> Editor's Draft version of the "Document Object Model (DOM) Level 3 Events" specification.  This document was previously published as a W3C Note, pending further feedback from implementers, and is now being revised to reflect the current state of implementation.  It is expected that this specification will progress to Recommendation status.</p>
       <p id="this-document-is-produced-by-the-web-app">This document is produced
         by the <a href="http://www.w3.org/2008/webapps/">Web Applications WG</a>,
         part of the <a href="http://www.w3.org/2006/rwc/Activity">Rich Web
@@ -461,7 +461,7 @@
         </ul>
       </li>
       <li>
-        <a href="#keyset">6. Keyboard events and key identifiers</a>
+        <a href="#keyset">6. Keyboard events and key values</a>
         <ul class="toc">
           <li>
             <a href="#keyboard-input">6.1 Keyboard Input</a>
@@ -483,10 +483,10 @@
             </ul>
           </li>
           <li>
-            <a href="#keyset-keyidentifiers">6.2 Key Identifiers</a>
+            <a href="#keyset-keyvalues">6.2 Key Values</a>
             <ul class="toc">
               <li>
-                <a href="#keyset-unicode">6.2.1 Key Identifiers and Unicode</a>
+                <a href="#keyset-unicode">6.2.1 Key Values and Unicode</a>
               </li>
               <li>
                 <a href="#keyset-Modifiers">6.2.2 Modifier keys</a>
@@ -506,13 +506,13 @@
                 <a href="#keyset-cancelable_keys">6.2.5 Default actions and cancelable keyboard events</a>
               </li>
               <li>
-                <a href="#keyset-Guide">6.2.6 Guidelines for selecting and defining key identifiers</a>
+                <a href="#keyset-Guide">6.2.6 Guidelines for selecting and defining key values</a>
               </li>
               <li>
-                <a href="#keyset-key-identifiers">6.2.7 Key Identifiers Set</a>
+                <a href="#keyset-key-values">6.2.7 Key Values Set</a>
               </li>
               <li>
-                <a href="#keyset-keyCode-charCode">6.2.8 Key identifiers, keyCode, and charCode</a>
+                <a href="#keyset-keyCode-charCode">6.2.8 Key values, keyCode, and charCode</a>
               </li>
             </ul>
           </li>
@@ -552,6 +552,9 @@
               </li>
             </ul>
           </li>
+          <li>
+            <a href="#changes-drafts">C.2 Changes between different drafts of DOM Level 3 Events</a>
+          </li>
         </ul>
       </li>
       <li>
@@ -607,7 +610,7 @@
           <dl>
             <dt id="conf-interactive-ua">Web browsers and other dynamic or interactive <a class="def" href="#glossary-user-agent">user agents</a></dt>
             <dd>
-              <p>A dynamic or interactive <a class="def" href="#glossary-user-agent">user agent</a>, referred to here as a "browser" (be it a Web browser or other similar program), conforms to DOM Level 3 Events if it supports the Core module defined in [<cite><a class="noxref normative" href="#references-DOMCore">DOM Level 3 Core</a></cite>], the <a href="#event-flow">Event dispatch and DOM event flow</a> mechanism, all the interfaces and events with their associated methods, attributes, and semantics defined in this specification which are not marked as <a class="def" href="#glossary-deprecated">deprecated</a><!--  or <a class="def" href="#glossary-obsolete">obsolete</a> -->, and the complete set of <a class="def" href="#glossary-character-value">character values</a> and <a class="def" href="#glossary-key-name">key names</a> in the <a href="#keyset-key-identifiers">Key Identifiers Set</a>, as well as all other normative requirements defined in this specification.  A conforming browser must <a class="def" href="#glossary-dispatch">dispatch</a> events appropriate to the given <a href="#events-Events-EventTarget">EventTarget</a> when the conditions defined for that <a class="def" href="#glossary-event-type">event type</a> have been met.</p>
+              <p>A dynamic or interactive <a class="def" href="#glossary-user-agent">user agent</a>, referred to here as a "browser" (be it a Web browser or other similar program), conforms to DOM Level 3 Events if it supports the Core module defined in [<cite><a class="noxref normative" href="#references-DOMCore">DOM Level 3 Core</a></cite>], the <a href="#event-flow">Event dispatch and DOM event flow</a> mechanism, all the interfaces and events with their associated methods, attributes, and semantics defined in this specification which are not marked as <a class="def" href="#glossary-deprecated">deprecated</a><!--  or <a class="def" href="#glossary-obsolete">obsolete</a> -->, and the complete set of <a class="def" href="#glossary-character-value">character values</a> and <a class="def" href="#glossary-key-name">key names</a> in the <a href="#keyset-key-values">Key Values Set</a>, as well as all other normative requirements defined in this specification.  A conforming browser must <a class="def" href="#glossary-dispatch">dispatch</a> events appropriate to the given <a href="#events-Events-EventTarget">EventTarget</a> when the conditions defined for that <a class="def" href="#glossary-event-type">event type</a> have been met.</p>
               
               <p><span id="conform-arch">A browser conforms specifically to the DOM Level 3 Events Architecture if it implements the <a href="#dom-event-architecture">DOM Event Architecture</a> and <a href="#event-interfaces">Basic Event Interfaces</a>, regardless of its support for any other event interfaces or <a class="def" href="#glossary-event-type">event types</a> defined in this specification.</span>  <span id="conform-module">A browser conforms specifically to the DOM Level 3 Events Module if it implements the interfaces and its related <a class="def" href="#glossary-event-type">event types</a> specified in the <a href="#events-module">Events Module</a>, and to each event interface if it implements that interface and its related <a class="def" href="#glossary-event-type">event types</a>.</span></p>
               
@@ -709,7 +712,7 @@
           <dd>The process by which an <a class="def" href="#glossary-event">event</a> can be handled by one of the target ancestors before being handled by the <a class="def" href="#glossary-proximal-event-target">proximal event target</a>.</dd>
 
           <dt id="glossary-character-value">character value</dt>
-          <dd>In the context of key identifiers, a character value is a string representing a single Unicode character, such as a letter or symbol, as a UTF-16 character escape (e.g. <code class="value">'\u0041'</code> for the Latin Capital Letter A key, <code class="value charval">A</code>.). <span class="issue">@@ this may not be the best way to represent a character value, see notes in key identifiers.  Also, is "character value" the best term?</span></dd>
+          <dd>In the context of key values, a character value is a string representing a single Unicode character, such as a letter or symbol, as a UTF-16 character escape (e.g. <code class="value">'\u0041'</code> for the Latin Capital Letter A key, <code class="value charval">A</code>.). <span class="issue">@@ this may not be the best way to represent a character value, see notes in key values.  Also, is "character value" the best term?</span></dd>
 
           <dt id="glossary-dead-key">dead key</dt>
           <dd>A dead key is a key or combination of key that produces no character by itself, but which in combination or sequence with another key produces a modified character, such as a character with diacritical marks (e.g. <code>&#xF6;</code>, <code>&#xE9;</code>, <code>&#xE2;</code>).</dd>
@@ -762,7 +765,7 @@
           <dd>An <em>input method editor</em> (IME), also known as a <em>front end processor</em>, is an application that performs the conversion between keystrokes and ideographs or other characters, usually by user-guided dictionary lookup, often used in East Asian languages (e.g. Chinese, Japanese, Korean).  An <a class="def" href="#glossary-ime">IME</a> may also be used for dictionary-based word completion, such as on mobile devices.  See <a href="#keyset-IME">Input Method Editors</a> for treatment of IMEs in this specification.  See also <a class="def" href="#glossary-text-composition-system">text composition system</a>.</dd>
 
           <dt id="glossary-key-name">key name</dt>
-          <dd>In the context of key identifiers, a key name is a multi-character string (such as <code class="value">'Enter'</code>, <code class="value">'Tab'</code>, or <code class="value">'MediaNextTrack'</code>) which indicates a key.  Control keys, function keys, modifier keys, <a class="def" href="#glossary-dead-key">dead keys</a>, and others may only have a key name, without an equivalent <a class="def" href="#glossary-character-value">character value</a>.
+          <dd>In the context of key values, a key name is a multi-character string (such as <code class="value">'Enter'</code>, <code class="value">'Tab'</code>, or <code class="value">'MediaNextTrack'</code>) which indicates a key.  Control keys, function keys, modifier keys, <a class="def" href="#glossary-dead-key">dead keys</a>, and others may only have a key name, without an equivalent <a class="def" href="#glossary-character-value">character value</a>.
             
             such as <code class="value">'Enter'</code> or <code>tab</code>, for control or <a class="def" href="#glossary-character-value">character value</a>, or certain symbols).</dd>
           
@@ -814,7 +817,7 @@
           <dd>The Unicode character categories, a subset of the complete Unicode general categories, comprise the categories <abbr title="Letter, Lowercase">Ll</abbr>, <abbr title="Letter, Modifier">Lm</abbr>, <abbr title="Letter, Other">Lo</abbr>, <abbr title="Letter, Titlecase">Lt</abbr>, <abbr title="Letter, Uppercase">Lu</abbr>, <abbr title="Number, Decimal Digit">Nd</abbr>, <abbr title="Number, Letter">Nl</abbr>, <abbr title="Number, Other">No</abbr>, <abbr title="Punctuation, Connector">Pc</abbr>, <abbr title="Punctuation, Dash">Pd</abbr>, <abbr title="Punctuation, Close">Pe</abbr>, <abbr title="Punctuation, Final quote">Pf</abbr>, <abbr title="Punctuation, Initial quote">Pi</abbr>, <abbr title="Punctuation, Other">Po</abbr>, <abbr title="Punctuation, Open">Ps</abbr>, <abbr title="Symbol, Currency">Sc</abbr>, <abbr title="Symbol, Modifier">Sk</abbr>, <abbr title="Symbol, Math">Sm</abbr>, and <abbr title="Symbol, Other">So</abbr>.</dd>
           
           <dt id="glossary-unicode-code-point">Unicode code point</dt>
-          <dd>A Unicode code point is a unique hexadecimal number signifying a character by its index in the Unicode codespace (or library of characters).  In the context of key identifiers, a Unicode code point is expressed as a string in the format "\u" followed by a hexadecimal character index in the range <code>0000</code> to <code>10FFFF</code>, using at least four digits.  See also <a class="def charval" href="#glossary-character-value">character value</a>.</dd>
+          <dd>A Unicode code point is a unique hexadecimal number signifying a character by its index in the Unicode codespace (or library of characters).  In the context of key values, a Unicode code point is expressed as a string in the format "\u" followed by a hexadecimal character index in the range <code>0000</code> to <code>10FFFF</code>, using at least four digits.  See also <a class="def charval" href="#glossary-character-value">character value</a>.</dd>
 
           <dt id="glossary-user-agent">user agent</dt>
           <dd>A program, such as a browser or authoring tool, normally running on a client machine, which acts on a user's behalf in retrieving, interpreting, executing, presenting, or creating content conforming to a specification.  Users may act on the content using different user agents at different times, for different purposes.</dd>
@@ -1396,7 +1399,7 @@
 interface <a class="noxref" href="#events-Events-DocumentEvent">DocumentEvent</a> {
 
   // Introduced in DOM Level 3:
-  // KeyIdentifierFormatCode
+  // KeyValueFormatCode
   const unsigned long       <a class="noxref" href="#events-DOM_KEY_FORMAT_CHARACTER">DOM_KEY_FORMAT_CHARACTER</a>      = 0x00;
   const unsigned long       <a class="noxref" href="#events-DOM_KEY_FORMAT_NAME">DOM_KEY_FORMAT_NAME</a>           = 0x01;
   const unsigned long       <a class="noxref" href="#events-DOM_KEY_FORMAT_UNICODE">DOM_KEY_FORMAT_UNICODE</a>        = 0x02;
@@ -1406,8 +1409,8 @@
                                         raises(DOMException);
 <div class="proposal">
   // Introduced in DOM Level 3:
-  DOMString            <a class="noxref" href="#events-Events-DocumentEvent-convertKeyIdentifier">convertKeyIdentifier</a>(in DOMString keyArg,
-                                 in unsigned long KeyIdentifierFormatArg);
+  DOMString            <a class="noxref" href="#events-Events-DocumentEvent-convertKeyValue">convertKeyValue</a>(in DOMString keyArg,
+                                 in unsigned long KeyValueFormatArg);
 </div>
 };
 </pre>
@@ -1416,10 +1419,10 @@
                 </dd>
                 
                 <dt>
-                  <strong>Definition group <em><a id="events-Events-DocumentEvent-KeyIdentifierFormatCode">KeyIdentifierFormatCode</a></em></strong>
+                  <strong>Definition group <em><a id="events-Events-DocumentEvent-KeyValueFormatCode">KeyValueFormatCode</a></em></strong>
                 </dt>
                 <dd>
-                  <p>This set of constants shall be used to indicate the format to which the key identifier must be converted.</p>
+                  <p>This set of constants shall be used to indicate the format to which the key value must be converted.</p>
                   <dl>
                     <dt>
                       <strong>Defined Constants</strong>
@@ -1431,25 +1434,25 @@
                             <code class="constant-name">DOM_KEY_FORMAT_CHARACTER</code>
                           </a>
                         </dt>
-                        <dd>The format to which the key identifier must be converted is a <a class="def" href="#glossary-character-value">character value</a>.</dd>
+                        <dd>The format to which the key value must be converted is a <a class="def" href="#glossary-character-value">character value</a>.</dd>
                         <dt>
                           <a id="events-DOM_KEY_FORMAT_NAME">
                             <code class="constant-name">DOM_KEY_FORMAT_NAME</code>
                           </a>
                         </dt>
-                        <dd>The format to which the key identifier must be converted is a key name (as from the <a href="#keyset-key-identifiers">Key Identifiers Set</a>).</dd>
+                        <dd>The format to which the key value must be converted is a key name (as from the <a href="#keyset-key-values">Key Values Set</a>).</dd>
                         <dt>
                           <a id="events-DOM_KEY_FORMAT_UNICODE">
                             <code class="constant-name">DOM_KEY_FORMAT_UNICODE</code>
                           </a>
                         </dt>
-                        <dd>The format to which the key identifier must be converted is a bare <a class="def" href="#glossary-unicode-code-point">Unicode code point</a>.</dd>
+                        <dd>The format to which the key value must be converted is a bare <a class="def" href="#glossary-unicode-code-point">Unicode code point</a>.</dd>
                         <dt>
                           <a id="events-DOM_KEY_FORMAT_ENTITY">
                             <code class="constant-name">DOM_KEY_FORMAT_ENTITY</code>
                           </a>
                         </dt>
-                        <dd>The format to which the key identifier must be converted is a numberic entity reference representing the <a class="def" href="#glossary-unicode-code-point">Unicode code point</a> for that character.  For example, the <a class="def" href="#glossary-character-value">character value</a> <code class="value">'é'</code> must be converted to the entity string <code class="value">'&amp;#xE9;'</code>.</dd>                        
+                        <dd>The format to which the key value must be converted is a numberic entity reference representing the <a class="def" href="#glossary-unicode-code-point">Unicode code point</a> for that character.  For example, the <a class="def" href="#glossary-character-value">character value</a> <code class="value">'é'</code> must be converted to the entity string <code class="value">'&amp;#xE9;'</code>.</dd>                        
                       </dl>
                     </dd>
                   </dl>
@@ -1491,27 +1494,27 @@
 
                     <dt class="proposal">
                       <code class="method-name">
-                        <a id="events-Events-DocumentEvent-convertKeyIdentifier">convertKeyIdentifier</a>
+                        <a id="events-Events-DocumentEvent-convertKeyValue">convertKeyValue</a>
                       </code>
                     </dt>
                     <dd class="proposal">
                       <div class="method">
-                        Given a key identifier and the desired format, this method returns the equivalent key identifier in the specified format, if the key identifier exists in that format.
+                        Given a key value and the desired format, this method returns the equivalent key value in the specified format, if the key value exists in that format.
                         
-                        <p class="issue">@@ some disagreement on including this (see <a href="http://lists.w3.org/Archives/Public/www-dom/2009JulSep/0412.html">Re: convertKeyIdentifier from Anne van Kesteren on 2009-09-22</a>)</p>
+                        <p class="issue">@@ some disagreement on including this (see <a href="http://lists.w3.org/Archives/Public/www-dom/2009JulSep/0412.html">Re: convertKeyValue from Anne van Kesteren on 2009-09-22</a>)</p>
                         <div class="parameters"><strong>Parameters</strong>
                           <div class="paramtable">
                             <dl>
                               <dt><code class="parameter-name">key</code> of type <code>DOMString</code></dt>
                               <dd>
-                                <p>The <code>key</code> parameter specifies the string to be converted, as a key identifier.   This parameter must be one of the following formats: a single character, or a key name (as from the <a href="#keyset-key-identifiers">Key Identifiers Set</a>).</p>
-                                <p>The key identifier need not be represent a value capable of being produced by the system keyboard  in order to be converted.  For example, this method may be used to find the raw <a class="def" href="#glossary-unicode-code-point">Unicode code point</a> of a Chinese ideographic glyph on a computer with only a <a class="def" href="#glossary-qwerty">QWERTY</a> keyboard and no <a class="def" href="#glossary-ime">IME</a> software.
+                                <p>The <code>key</code> parameter specifies the string to be converted, as a key value.   This parameter must be one of the following formats: a single character, or a key name (as from the <a href="#keyset-key-values">Key Values Set</a>).</p>
+                                <p>The key value need not be represent a value capable of being produced by the system keyboard  in order to be converted.  For example, this method may be used to find the raw <a class="def" href="#glossary-unicode-code-point">Unicode code point</a> of a Chinese ideographic glyph on a computer with only a <a class="def" href="#glossary-qwerty">QWERTY</a> keyboard and no <a class="def" href="#glossary-ime">IME</a> software.
                                   <br />
                                 </p>
                               </dd>
-                              <dt><code class="parameter-name">KeyIdentifierFormat</code> of type <code>unsigned long</code></dt>
+                              <dt><code class="parameter-name">KeyValueFormat</code> of type <code>unsigned long</code></dt>
                               <dd>
-                                <p>The <code>KeyIdentifierFormat</code> parameter specifies the format to which the key identifier must be converted.
+                                <p>The <code>KeyValueFormat</code> parameter specifies the format to which the key value must be converted.
                                   <br />
                                 </p>
                               </dd>
@@ -1525,7 +1528,7 @@
                             <table summary="Layout table: the first cell contains the type of the return value, the second contains a short description" border="0">
                               <tr>
                                 <td><p><a href="#events-Events-Event"><code>DOMString</code></a></p></td>
-                                <td><p>The key identifier in the converted format, or the empty string if no equivalent of the key identifier exists in the format indicated.</p></td>
+                                <td><p>The key value in the converted format, or the empty string if no equivalent of the key value exists in the format indicated.</p></td>
                               </tr>
                             </table>
                           </div>
@@ -2688,7 +2691,7 @@
               <dl>
                 <dt><code class="method-name"><a id="events-Events-MouseEvent-getModifierState">getModifierState</a></code> introduced in <strong class="since">DOM Level 3</strong></dt>
                 <dd>
-                  <div class="method">Queries the state of a modifier using a key identifier. See also <a href="#keyset-Modifiers">Modifier keys</a>.
+                  <div class="method">Queries the state of a modifier using a key value. See also <a href="#keyset-Modifiers">Modifier keys</a>.
   <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">keyArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-Events-KeyboardEvent-getModifierState"><code>KeyboardEvent.getModifierState()</code></a> method for a description of this parameter.<br /></dd></dl></div></div>
                     <!-- parameters -->
                     <div class="return"><strong>Return Value</strong><div class="returntable"><table summary="Layout table: the first cell contains the type of the return value, the second contains a short description" border="0"><tr class="assert must"><td><p><code>boolean</code></p></td><td><p><code>true</code> if it is a modifier key and the modifier is activated, <code>false</code> otherwise.</p></td></tr></table></div></div>
@@ -3115,7 +3118,7 @@
       <div class="div3">
         <h3 class="div3"><a id="events-textevents" href="#events-textevents">5.2.6 Text Events Types</a></h3>
         <p>This module defines the feature TextEvents 3.0 and depends on the feature UIEvents 3.0.</p>
-        <p>The text event module originates from the [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] <code>onkeypress</code> attribute. Unlike this attribute, the event type <a class="eventtype" href="#event-type-textInput"><code>textInput</code></a> applies only to characters and is designed for use with any text input devices, not just keyboards. Refer to <a href="#keyset">Keyboard events and key identifiers</a> for examples on how text events are used in combination with keyboard events.</p>
+        <p>The text event module originates from the [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] <code>onkeypress</code> attribute. Unlike this attribute, the event type <a class="eventtype" href="#event-type-textInput"><code>textInput</code></a> applies only to characters and is designed for use with any text input devices, not just keyboards. Refer to <a href="#keyset">Keyboard events and key values</a> for examples on how text events are used in combination with keyboard events.</p>
         <dl>
           <dt><strong>Interface <em><a id="events-Events-TextEvent">TextEvent</a></em></strong> (introduced in <strong class="since">DOM Level 3</strong>)</dt>
           <dd>
@@ -3286,11 +3289,11 @@
       <div class="div3">
         <h3 class="div3"><a id="events-keyboardevents" href="#events-keyboardevents">5.2.7 Keyboard Event Types</a></h3>
         <p>This module defines the feature KeyboardEvents 3.0 and depends on the feature UIEvents 3.0.</p>
-        <p>Keyboard events are device dependent, i.e. they rely on the capabilities of the input devices and how they are mapped in the operating systems. It is therefore highly recommended to rely on <a href="#events-Events-TextEvent">Text events types</a> when dealing with character input.  Refer to <a href="#keyset">Keyboard events and key identifiers</a> for more details, including examples on how Keyboard Events are used in combination with Composition Events.</p>
+        <p>Keyboard events are device dependent, i.e. they rely on the capabilities of the input devices and how they are mapped in the operating systems. It is therefore highly recommended to rely on <a href="#events-Events-TextEvent">Text events types</a> when dealing with character input.  Refer to <a href="#keyset">Keyboard events and key values</a> for more details, including examples on how Keyboard Events are used in combination with Composition Events.</p>
         <dl>
           <dt><strong>Interface <em><a id="events-Events-KeyboardEvent">KeyboardEvent</a></em></strong> (introduced in <strong class="since">DOM Level 3</strong>)</dt>
           <dd>
-            <p>The <code>KeyboardEvent</code> interface provides specific contextual information associated with keyboard devices. Each keyboard event references a key using an identifier. Keyboard events are commonly directed at the element that has the focus.</p>
+            <p>The <code>KeyboardEvent</code> interface provides specific contextual information associated with keyboard devices. Each keyboard event references a key using an value. Keyboard events are commonly directed at the element that has the focus.</p>
             <p>The <code>KeyboardEvent</code> interface provides convenient attributes for some common modifiers keys: <a href="#events-Events-KeyboardEvent-ctrlKey"><code>KeyboardEvent.ctrlKey</code></a>, <a href="#events-Events-KeyboardEvent-shiftKey"><code>KeyboardEvent.shiftKey</code></a>, <a href="#events-Events-KeyboardEvent-altKey"><code>KeyboardEvent.altKey</code></a>, <a href="#events-Events-KeyboardEvent-metaKey"><code>KeyboardEvent.metaKey</code></a>. These attributes are equivalent to using the method <a href="#events-Events-KeyboardEvent-getModifierState"><code>KeyboardEvent.getModifierState(keyArg)</code></a> with <code class="value">'Control'</code>, <code class="value">'Shift'</code>, <code class="value">'Alt'</code>, or <code class="value">'Meta'</code> respectively.</p>
             <p>To create an instance of the <code>KeyboardEvent</code> interface, use the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("KeyboardEvent")</code></a> method call.</p>
             <dl>
@@ -3398,7 +3401,7 @@
                   <dt><code class="attribute-name"><a id="events-Events-KeyboardEvent-ctrlKey">ctrlKey</a></code> of type <code>boolean</code>, readonly</dt>
                   <dd><code>true</code> if the control (Ctrl) key modifier is activated.<br /></dd>
                   <dt><code class="attribute-name"><a id="events-Events-KeyboardEvent-key">key</a></code> of type <code>DOMString</code>, readonly</dt>
-                  <dd><code>key</code> holds the identifier of the key. The key identifiers are defined in <a href="#keyset-keyidentifiers">Key identifiers set</a>. Implementations that are unable to identify a key must use the key identifier <code class="value">'Unidentified'</code>.<br /></dd>
+                  <dd><code>key</code> holds the key value of the key pressed. The key values are defined in <a href="#keyset-keyvalues">Key values set</a>. Implementations that are unable to identify a key must use the key value <code class="value">'Unidentified'</code>.<br /></dd>
                   <dt><code class="attribute-name"><a id="events-Events-KeyboardEvent-location">location</a></code> of type <code>unsigned long</code>, readonly</dt>
                   <dd>The <code>location</code> attribute contains an indication of the location of the key on the device, as described in <a href="#events-ID-KeyboardEvent-KeyLocationCode">Keyboard event types</a>.<br /></dd>
                   <dt><code class="attribute-name"><a id="events-Events-KeyboardEvent-metaKey">metaKey</a></code> of type <code>boolean</code>, readonly</dt>
@@ -3421,8 +3424,8 @@
                     </code>
                   </dt>
                   <dd>
-                    <div class="method">Queries the state of a modifier using a key identifier. See also <a href="#keyset-Modifiers">Modifier keys</a>.
-  <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">keyArg</code> of type <code>DOMString</code></dt><dd>A modifier key identifier. Common modifier keys are <code class="value">'Alt'</code>, <code class="value">'AltGraph'</code>, <code class="value">'CapsLock'</code>, <code class="value">'Control'</code>, <code class="value">'Meta'</code>, <code class="value">'NumLock'</code>, <code class="value">'Scroll'</code>, or <code class="value">'Shift'</code>.
+                    <div class="method">Queries the state of a modifier using a key value. See also <a href="#keyset-Modifiers">Modifier keys</a>.
+  <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">keyArg</code> of type <code>DOMString</code></dt><dd>A modifier key value. Common modifier keys are <code class="value">'Alt'</code>, <code class="value">'AltGraph'</code>, <code class="value">'CapsLock'</code>, <code class="value">'Control'</code>, <code class="value">'Meta'</code>, <code class="value">'NumLock'</code>, <code class="value">'Scroll'</code>, or <code class="value">'Shift'</code>.
   <p class="note"><strong>Note:</strong> If an application wishes to distinguish between right and left modifiers, this information could be deduced using keyboard events and <a href="#events-Events-KeyboardEvent-location"><code>KeyboardEvent.location</code></a>.</p>
                             </dd></dl></div></div>
                       <!-- parameters -->
@@ -3440,7 +3443,7 @@
                   </dt>
                   <dd>
                     <div class="method">Initializes attributes of a <code>KeyboardEvent</code> object. This method has the same behavior as <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a>. The value of <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> remains undefined.
-  <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">keyArg</code> of type <code>DOMString</code></dt><dd>Specifies <a href="#events-Events-KeyboardEvent-key"><code>KeyboardEvent.key</code></a>.<br /></dd><dt><code class="parameter-name">locationArg</code> of type <code>unsigned long</code></dt><dd>Specifies <a href="#events-Events-KeyboardEvent-location"><code>KeyboardEvent.location</code></a>.<br /></dd><dt><code class="parameter-name">modifiersListArg</code> of type <code>DOMString</code></dt><dd>A <a class="normative" href="http://www.w3.org/TR/2004/REC-xml-20040204/#NT-S"><em>white space</em></a> separated list of modifier key identifiers to be activated on this object. As an example, <code>"Control Alt"</code> must mark the control and alt modifiers as activated.<br /></dd></dl></div></div>
+  <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">keyArg</code> of type <code>DOMString</code></dt><dd>Specifies <a href="#events-Events-KeyboardEvent-key"><code>KeyboardEvent.key</code></a>.<br /></dd><dt><code class="parameter-name">locationArg</code> of type <code>unsigned long</code></dt><dd>Specifies <a href="#events-Events-KeyboardEvent-location"><code>KeyboardEvent.location</code></a>.<br /></dd><dt><code class="parameter-name">modifiersListArg</code> of type <code>DOMString</code></dt><dd>A <a class="normative" href="http://www.w3.org/TR/2004/REC-xml-20040204/#NT-S"><em>white space</em></a> separated list of modifier key values to be activated on this object. As an example, <code>"Control Alt"</code> must mark the control and alt modifiers as activated.<br /></dd></dl></div></div>
                       <!-- parameters -->
                       <div><strong>No Return Value</strong></div>
                       <div><strong>No Exceptions</strong></div>
@@ -3453,7 +3456,7 @@
           </dd>
         </dl>
         
-        <p class="warning" id="keycode-charcode"><strong>Warning:</strong>  Legacy keyboard event implementations may include two additional attributes, <code>keyCode</code> and <code>charCode</code>.  The <code>keyCode</code> attribute indicates a numeric value associated with a particular key on a computer keyboard, while the <code>charCode</code> attribute indicates the <acronym title="American Standard Code for Information Interchange">ASCII</acronym> value of the character associated with that key (which may or may not be the same as the <code>keyCode</code> value) and is applicable only to keys that produce a <a class="def" href="#glossary-character-value">character value</a>.  In practice, <code>keyCode</code> and <code>charCode</code> are inconsistent across platforms and even the same implementation on different operating systems or using different localizations.  DOM Level 3 Events  does not define behavior for either <code>keyCode</code> or <code>charCode</code>; authors should use <a href="#events-Events-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> instead, in conforming DOM Level 3 Events implementations.  <em>For more information, see the informative table in <a href="#keyset-keyCode-charCode">Key identifiers, keyCode, and charCode</a>.</em></p>
+        <p class="warning" id="keycode-charcode"><strong>Warning:</strong>  Legacy keyboard event implementations may include two additional attributes, <code>keyCode</code> and <code>charCode</code>.  The <code>keyCode</code> attribute indicates a numeric value associated with a particular key on a computer keyboard, while the <code>charCode</code> attribute indicates the <acronym title="American Standard Code for Information Interchange">ASCII</acronym> value of the character associated with that key (which may or may not be the same as the <code>keyCode</code> value) and is applicable only to keys that produce a <a class="def" href="#glossary-character-value">character value</a>.  In practice, <code>keyCode</code> and <code>charCode</code> are inconsistent across platforms and even the same implementation on different operating systems or using different localizations.  DOM Level 3 Events  does not define behavior for either <code>keyCode</code> or <code>charCode</code>; authors should use <a href="#events-Events-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> instead, in conforming DOM Level 3 Events implementations.  <em>For more information, see the informative table in <a href="#keyset-keyCode-charCode">Key values, keyCode, and charCode</a>.</em></p>
                 
         <p>Depending on the character generation device, keyboard events may or may not be generated.</p>
         <p>The keyboard event types are listed below.</p>
@@ -3544,7 +3547,7 @@
       <div class="div3">
         <h3 class="div3"><a id="events-compositionevents" href="#events-compositionevents">5.2.8 Composition Events Types</a></h3>
         <p>This module defines the feature CompositionEvents 3.0 and depends on the feature UIEvents 3.0.</p>
-        <p>Composition Events provide a means for inputing text in a supplementary or alternate manner than by Keyboard Events, in order to allow the use of characters that may not be commonly available on keyboard. For examples, Composition events may be used to add accents to characters despite their absence from standard US keyboards, to build up logograms of many Asian languages from their base components or categories, to select word choices from a combination of key presses on a mobile device keyboard, or to convert voice commands into text using a speech recognition processor.  Refer to <a href="#keyset">Keyboard events and key identifiers</a> for examples on how Composition Events are used in combination with keyboard events.</p>
+        <p>Composition Events provide a means for inputing text in a supplementary or alternate manner than by Keyboard Events, in order to allow the use of characters that may not be commonly available on keyboard. For examples, Composition events may be used to add accents to characters despite their absence from standard US keyboards, to build up logograms of many Asian languages from their base components or categories, to select word choices from a combination of key presses on a mobile device keyboard, or to convert voice commands into text using a speech recognition processor.  Refer to <a href="#keyset">Keyboard events and key values</a> for examples on how Composition Events are used in combination with keyboard events.</p>
         <p>Conceptually, a composition session consists of one <a class="eventtype" href="#event-type-compositionstart"><code>compositionstart</code></a> event, one or more <a class="eventtype" href="#event-type-compositionupdate"><code>compositionupdate</code></a> events, and one <a class="eventtype" href="#event-type-compositionend"><code>compositionend</code></a> event, with the value of the <a href="#events-Events-CompositionEvent-data">data</a> attribute persisting between each "stage" of this event chain during each session.  While a composition session is active, keyboard events should not be dispatched to the DOM (i.e., the <a class="def" href="#glossary-text-composition-system">text composition system</a> "swallows" the keyboard events), and only <a class="eventtype" href="#event-type-compositionupdate"><code>compositionupdate</code></a> events may be dispatched to indicate the composition process.</p>
         <p>Not all <a class="def" href="#glossary-ime">IME</a> systems or devices expose the necessary data to the DOM, so the active composition string (the "Reading Window" or "candidate selection menu option") may not be available through this interface, in which case the selection may be represented by the empty string.</p>
         <dl>
@@ -3999,13 +4002,13 @@
 
 
     <div class="div1">
-      <h2 class="adiv1"><a id="keyset" href="#keyset">6. Keyboard events and key identifiers</a></h2>
+      <h2 class="adiv1"><a id="keyset" href="#keyset">6. Keyboard events and key values</a></h2>
       <p>This section contains necessary information regarding keyboard events:</p>
       <ul>
-        <li>Explanation of keyboard layout, mapping, and key identifiers.</li>
+        <li>Explanation of keyboard layout, mapping, and key values.</li>
         <li>Relations between keys, such as <a class="def" href="#glossary-dead-key">dead keys</a> or modifiers keys.</li>
         <li>Relations between keyboard events, their default actions, and text events.</li>
-        <li>The set of key identifiers, and guidelines on how to extend this set.</li>
+        <li>The set of key values, and guidelines on how to extend this set.</li>
       </ul>
       <p class="note"><strong>Note:</strong> This section uses Serbian and Kanji characters which are not always available (or are misrepresented) in the alternative versions or printed versions of this specification.</p>
 
@@ -4019,10 +4022,10 @@
         <ul>
           <li><strong>Visual markings:</strong> the labels (or <em>legends</em>) that mark each key</li>
           <li><strong>Mechanical layout:</strong> the dimensions, size, and placement of the physical keys on the keyboard</li>
-          <li><strong>Functional mapping:</strong> the abstract key-identifier association of each key.</li>
+          <li><strong>Functional mapping:</strong> the abstract key-value association of each key.</li>
         </ul>
 
-        <p>This specification only defines the functional mapping, in terms of <a href="#keyset-keyidentifiers">key identifiers</a>, but briefly describes <a href="#key-legends">key legends</a> and <a href="#keyboard-layout">keyboard layout</a> for background.</p>
+        <p>This specification only defines the functional mapping, in terms of <a href="#keyset-keyvalues">key values</a>, but briefly describes <a href="#key-legends">key legends</a> and <a href="#keyboard-layout">keyboard layout</a> for background.</p>
 
         <h4 class="adiv2"><a id="key-legends" href="#key-legends">6.1.1 Key Legends</a></h4>
         <p><em>This section is informative</em></p>
@@ -4036,13 +4039,13 @@
         <h4 class="adiv2"><a id="keyboard-layout" href="#keyboard-layout">6.1.2 Keyboard Layout</a></h4>
         <p><em>This section is informative</em></p>
 
-        <p>As with the key labels, the physical layout of the keys on the keyboard does not not affect the digital identifier for any given key.  It is outside the scope of this specification to provide key identifiers based on keyboard layout, particularly since there are so many possible layouts for a keyboard, and since users can change the mapping of keys in their operating system, e.g. by selecting a Dvorak key mapping.</p>
+        <p>As with the key labels, the physical layout of the keys on the keyboard does not not affect the digital key value for any given key.  It is outside the scope of this specification to provide key values based on keyboard layout, particularly since there are so many possible layouts for a keyboard, and since users can change the mapping of keys in their operating system, e.g. by selecting a Dvorak key mapping.</p>
         
-        <p>To illustrate the concept of keyboard layout mappings and its relation with keyboard events and key identifiers, on the same keyboard (a PC/AT US keyboard), pressing the key labeled <code>Q</code> (with no modifier key activated) will produce different key identifiers based on the mapping.  With a typical US <a class="def" href="#glossary-qwerty">QWERTY</a> keyboard layout mapping, it will produce <code class="value">'q'</code> (<code class="value">'\u0071'</code>, Latin Small Letter Q).  If the keyboard layout mapping is switched to a French mapping, pressing the same key will produce <code class="value">'a'</code> (<code class="value">'\u0041'</code>, Latin Capital Letter A).  If the keyboard layout mapping is switched to a Serbian (Cyrillic) mapping, pressing the same key will produce <code class="value">'&#1113;'</code> (<code class="value">'\u0459'</code>, Cyrillic Small Letter LJE).</p>        
+        <p>To illustrate the concept of keyboard layout mappings and its relation with keyboard events and key values, on the same keyboard (a PC/AT US keyboard), pressing the key labeled <code>Q</code> (with no modifier key activated) will produce different key values based on the mapping.  With a typical US <a class="def" href="#glossary-qwerty">QWERTY</a> keyboard layout mapping, it will produce <code class="value">'q'</code> (<code class="value">'\u0071'</code>, Latin Small Letter Q).  If the keyboard layout mapping is switched to a French mapping, pressing the same key will produce <code class="value">'a'</code> (<code class="value">'\u0041'</code>, Latin Capital Letter A).  If the keyboard layout mapping is switched to a Serbian (Cyrillic) mapping, pressing the same key will produce <code class="value">'&#1113;'</code> (<code class="value">'\u0459'</code>, Cyrillic Small Letter LJE).</p>        
         
         <p>However, the physical layout of the keys may be of interest to authors developing games or other applications wherein the location of the keys has an ergonomic relationship as the desired user interface controls, with little or no attention paid to the representational value of the key itself.  For example, many games may use the keys <code class="value">'A'</code>, <code class="value">'S'</code>, <code class="value">'D'</code>, and <code class="value">'W'</code> for <code class="value">'left'</code>, <code class="value">'down'</code>, <code class="value">'right'</code>, and <code class="value">'up'</code> respectively.  Authors should provide a means for the user to assign such controller keys to a custom setting appropriate to their keyboard configurations.  Implementations may provide a means for the user to more comprehensively map the keyboard to their customized keyboard layout, but this is beyond the scope of this specification.</p>
         
-        <p class="note"><strong>Note:</strong> Key identifiers should not be confused with <em>scan codes</em>, which are the low-level hexadecimal signals produced for each key by the keyboard driver software, and which are mapped at the operating system to a <acronym title="Virtual Key">VK</acronym> ("virtual key"), which in turn may be mapped to the user-defined key configuration.  Key identifiers are a high-level abstraction of that final mapping.</p>
+        <p class="note"><strong>Note:</strong> Key values should not be confused with <em>scan codes</em>, which are the low-level hexadecimal signals produced for each key by the keyboard driver software, and which are mapped at the operating system to a <acronym title="Virtual Key">VK</acronym> ("virtual key"), which in turn may be mapped to the user-defined key configuration.  Key values are a high-level abstraction of that final mapping.</p>
 
         <h5 class="adiv2"><a id="keyboard-desktop" href="#keyboard-desktop">6.1.2.1 Desktop and Laptop Keyboards</a></h5>
         <p>In the case where an author wishes to rely on the mechanical layout of a desktop or laptop keyboard, this specification suggests the keyboard configuration specified in ISO/IEC 9995, parts 2 and 3 [<cite><a class="noxref informative" href="#references-ISO-9995-2-3">ISO-9995-2/3</a></cite>], which defines a common layout for primary, secondary, and auxiliary key mappings on a typical alphanumeric keyboard, as a common layout appropriate to some international uses.</p>
@@ -4071,38 +4074,35 @@
 
 
       <div class="div2">
-        <h3 class="adiv2"><a id="keyset-keyidentifiers" href="#keyset-keyidentifiers">6.2 Key Identifiers</a></h3>
-
-    		<p class="issue">@@ should we rename this section (and the list) "Key Values" and "Key Value Set", to disambiguate them from unique identifiers for keys?</p>
-
+        <h3 class="adiv2"><a id="keyset-keyvalues" href="#keyset-keyvalues">6.2 Key Values</a></h3>
         
-        <p>A key identifier is a <code>DOMString</code> that can be used to indicate any given key on a keyboard, regardless of position or state, by the value it produces.  These key identifiers may be used as return values for keyboard events generated by the implementation, or as input values by the author to specify desired input (such as for keyboard shortcuts).  This specification defines a set of common key identifiers (called the <a href="#keyset-key-identifiers">Key Identifiers Set</a>), and rules for production of new key identifiers.</p>
+        <p>A key value is a <code>DOMString</code> that can be used to indicate any given key on a keyboard, regardless of position or state, by the value it produces.  These key values may be used as return values for keyboard events generated by the implementation, or as input values by the author to specify desired input (such as for keyboard shortcuts).  This specification defines a set of common key values (called the <a href="#keyset-key-values">Key Values Set</a>), and rules for production of new key values.</p>
         
-        <p>Key identifiers can be used to detect the value of a key which has been pressed, using the <a href="#events-Events-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> attribute.  Authors can retrieve the <a class="def" href="#glossary-character-value">character value</a> of upper- or lower-case letters, number, symbols, or other character-producing keys, and also the <a class="def" href="#glossary-key-name">key name</a> of control keys, modifier keys, function keys, or other keys that do not generate characters; these values can be used for monitoring particular input strings, for detecting and acting on modifier key input in combination with other inputs (such as a mouse), for creating virtual keyboards, or for any number of other purposes.</p>  
+        <p>Key values can be used to detect the value of a key which has been pressed, using the <a href="#events-Events-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> attribute.  Authors can retrieve the <a class="def" href="#glossary-character-value">character value</a> of upper- or lower-case letters, number, symbols, or other character-producing keys, and also the <a class="def" href="#glossary-key-name">key name</a> of control keys, modifier keys, function keys, or other keys that do not generate characters; these values can be used for monitoring particular input strings, for detecting and acting on modifier key input in combination with other inputs (such as a mouse), for creating virtual keyboards, or for any number of other purposes.</p>  
         
-        <p>Key identifiers can also be used by authors in string comparisons, as values for markup attributes (such as the HTML <code>accesskey</code>) in conforming <a class="def" href="#glossary-host-language">host languages</a>, or for other related purposes.   A conforming <a class="def" href="#glossary-host-language">host language</a> should allow authors to use either of the two equivalent string values for a key identifier: the <a class="def" href="#glossary-character-value">character value</a>, or the <a class="def" href="#glossary-key-name">key name</a>.</p>
+        <p>Key values can also be used by authors in string comparisons, as values for markup attributes (such as the HTML <code>accesskey</code>) in conforming <a class="def" href="#glossary-host-language">host languages</a>, or for other related purposes.   A conforming <a class="def" href="#glossary-host-language">host language</a> should allow authors to use either of the two equivalent string values for a key value: the <a class="def" href="#glossary-character-value">character value</a>, or the <a class="def" href="#glossary-key-name">key name</a>.</p>
     		<p class="issue">@@ mention that author should use case-insensitive matching to capture both "t" and "T" for hotkeys, etc.?</p>
 
         
-        <p class="note"><strong>Note:</strong> While implementations are recommended to use the most relevant identifier for a key independently of the platform or keyboard layout mappings, authors should not make assumption on the ability of keyboard devices to generate them.  When using keyboard events and key idetifiers for shortcut-key combinations, authors should <q>consider using numbers and function keys (F4, F5, and so on) instead of letters</q> ([<cite><a class="noxref informative" href="#references-DWW95">DWW95</a></cite>]) given that most keyboard layouts will provide keys for those.</p>
+        <p class="note"><strong>Note:</strong> While implementations are recommended to use the most relevant value for a key independently of the platform or keyboard layout mappings, authors should not make assumption on the ability of keyboard devices to generate them.  When using keyboard events and key values for shortcut-key combinations, authors should <q>consider using numbers and function keys (F4, F5, and so on) instead of letters</q> ([<cite><a class="noxref informative" href="#references-DWW95">DWW95</a></cite>]) given that most keyboard layouts will provide keys for those.</p>
         <!-- , and where the key used should default to the most appropriate key for the function, language, operating system, device, and other environmental factors (such as <code>ctrl+c</code> for copy operations) -->
         
         
-        <p>It is important to note that a key identifier does not indicate a specific key on the physical keyboard, nor does it reflect the character printed on the key; a key identifier indicates the current value of the event with consideration to the current state of all active keys and key input modes (including shift modes and <a class="def" href="#glossary-dead-key">dead keys</a>), as reflected in the operating-system mapping of the keyboard and reported to the implementation.  In other words, the key identifier for the key marked <code>'O'</code> on a <a class="def" href="#glossary-qwerty">QWERTY</a> keyboard has the key identifier <code>'o'</code> in an unshifted state, <code>'O'</code> in a shifted state, <code>'ö'</code> in an unshifted state during a dead-key operation to add an umlaut diacritic, and <code>'Ö'</code> in a shifted state during a dead-key operation to add an umlaut diacritic.  Because a user may map their keyboard to an arbitrary custom configuration, the author should not assume that a relationship exists between the shifted and unshifted states of a key and the majuscule form (uppercase or capital letters) and minuscule form (lowercase or small letters) of a character representation, but should instead use the value of the <a href="#events-Events-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> attribute.  The keyboard depicted in Figure 3 illustrates one possible set of key mappings on one possible keyboard layout; many others exist, both standard and idiosyncratic.</p>
+        <p>It is important to note that a key value does not indicate a specific key on the physical keyboard, nor does it reflect the character printed on the key; a key value indicates the current value of the event with consideration to the current state of all active keys and key input modes (including shift modes and <a class="def" href="#glossary-dead-key">dead keys</a>), as reflected in the operating-system mapping of the keyboard and reported to the implementation.  In other words, the key value for the key marked <code>'O'</code> on a <a class="def" href="#glossary-qwerty">QWERTY</a> keyboard has the key value <code>'o'</code> in an unshifted state, <code>'O'</code> in a shifted state, <code>'ö'</code> in an unshifted state during a dead-key operation to add an umlaut diacritic, and <code>'Ö'</code> in a shifted state during a dead-key operation to add an umlaut diacritic.  Because a user may map their keyboard to an arbitrary custom configuration, the author should not assume that a relationship exists between the shifted and unshifted states of a key and the majuscule form (uppercase or capital letters) and minuscule form (lowercase or small letters) of a character representation, but should instead use the value of the <a href="#events-Events-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> attribute.  The keyboard depicted in Figure 3 illustrates one possible set of key mappings on one possible keyboard layout; many others exist, both standard and idiosyncratic.</p>
         
-        <p>It is also important to note that there is not a one-to-one relationship between key event states and key identifiers.  A particular key identifier may be associated with multiple keys; for example, many standard keyboards contain more than one key with the <code class="value">'Shift'</code> key identifier (normally distinguished by the <a href="#events-Events-KeyboardEvent-location"><code>KeyboardEvent.location</code></a> values <a href="#events-DOM_KEY_LOCATION_LEFT"><code class="constant-name">DOM_KEY_LOCATION_LEFT</code></a> and <a href="#events-DOM_KEY_LOCATION_RIGHT"><code class="constant-name">DOM_KEY_LOCATION_RIGHT</code></a>) or <code class="value">'8'</code> key identifier (normally distinguished by the <a href="#events-Events-KeyboardEvent-location"><code>KeyboardEvent.location</code></a> values <a href="#events-DOM_KEY_LOCATION_STANDARD"><code class="constant-name">DOM_KEY_LOCATION_STANDARD</code></a> and <a href="#events-DOM_KEY_LOCATION_NUMPAD"><code class="constant-name">DOM_KEY_LOCATION_NUMPAD</code></a>), and user-configured custom keyboard layouts may duplicate any key identifier in multiple key-state scenarios (note that <a href="#events-Events-KeyboardEvent-location"><code>KeyboardEvent.location</code></a> is intended for standard keyboard layouts, and cannot always indicate a meaningful distinction).</p>  
+        <p>It is also important to note that there is not a one-to-one relationship between key event states and key values.  A particular key value may be associated with multiple keys; for example, many standard keyboards contain more than one key with the <code class="value">'Shift'</code> key value (normally distinguished by the <a href="#events-Events-KeyboardEvent-location"><code>KeyboardEvent.location</code></a> values <a href="#events-DOM_KEY_LOCATION_LEFT"><code class="constant-name">DOM_KEY_LOCATION_LEFT</code></a> and <a href="#events-DOM_KEY_LOCATION_RIGHT"><code class="constant-name">DOM_KEY_LOCATION_RIGHT</code></a>) or <code class="value">'8'</code> key value (normally distinguished by the <a href="#events-Events-KeyboardEvent-location"><code>KeyboardEvent.location</code></a> values <a href="#events-DOM_KEY_LOCATION_STANDARD"><code class="constant-name">DOM_KEY_LOCATION_STANDARD</code></a> and <a href="#events-DOM_KEY_LOCATION_NUMPAD"><code class="constant-name">DOM_KEY_LOCATION_NUMPAD</code></a>), and user-configured custom keyboard layouts may duplicate any key value in multiple key-state scenarios (note that <a href="#events-Events-KeyboardEvent-location"><code>KeyboardEvent.location</code></a> is intended for standard keyboard layouts, and cannot always indicate a meaningful distinction).</p>  
         
-        <p>Similarly, a given key event state may have multiple key identifiers, some of which may represent a character in one of the <a class="def" href="#glossary-Unicode-character-categories">Unicode character categories</a>: a <a class="def" href="#glossary-character-value">character value</a>; and the <a class="def" href="#glossary-key-name">key name</a>.  For example, the question mark (<code>'?'</code>) key has the following key identifiers: <code>'\u003F'</code> (the Unicode code point as an escaped character value, which is in the range of <a class="def" href="#glossary-Unicode-character-categories">Unicode character categories</a>); and <code>'QuestionMark'</code> (the name), while the horizontal tabulation (tab) key has a name (<code class="value">'Tab'</code>) and a <a class="def" href="#glossary-character-value">character value</a> (<code class="value">'\u0009'</code>) but no character representation.   Note that not all keys will have both these identifiers; for example, the volume mute key has only a <a class="def" href="#glossary-key-name">key name</a>, <code class="value">'VolumeMute'</code>, and no <a class="def" href="#glossary-character-value">character value</a> or character representation, since it doesn't have a corresponding <a class="def" href="#glossary-unicode-code-point">Unicode code point</a>.</p>
-
-        <p>The value of the <a href="#events-Events-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> attribute of the <a href="#events-Events-KeyboardEvent">KeyboardEvent</a> interface event types (e.g. <a class="eventtype" href="#event-type-keydown"><code>keydown</code></a>, <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a>, and <a class="eventtype" href="#event-type-keyup"><code>keyup</code></a>) must default to the <a class="def" href="#glossary-character-value">character value</a> itself; if the key identifier does not have a character representation, the value of the <a href="#events-Events-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> attribute must be the <a class="def" href="#glossary-key-name">key name</a>.  The author may use the <a href="#events-Events-DocumentEvent-convertKeyIdentifier"><code>DocumentEvent.convertKeyIdentifier</code></a> method to find either the <a class="def" href="#glossary-character-value">character value</a>, the <a class="def" href="#glossary-key-name">key name</a>, or the raw <a class="def" href="#glossary-unicode-code-point">Unicode code point</a> of any given key identifier.</p>
+        <p>Similarly, a given key event state may have multiple key values, some of which may represent a character in one of the <a class="def" href="#glossary-Unicode-character-categories">Unicode character categories</a>: a <a class="def" href="#glossary-character-value">character value</a>; and the <a class="def" href="#glossary-key-name">key name</a>.  For example, the question mark (<code>'?'</code>) key has the following key values: <code>'\u003F'</code> (the Unicode code point as an escaped character value, which is in the range of <a class="def" href="#glossary-Unicode-character-categories">Unicode character categories</a>); and <code>'QuestionMark'</code> (the name), while the horizontal tabulation (tab) key has a name (<code class="value">'Tab'</code>) and a <a class="def" href="#glossary-character-value">character value</a> (<code class="value">'\u0009'</code>) but no character representation.   Note that not all keys will have both these values; for example, the volume mute key has only a <a class="def" href="#glossary-key-name">key name</a>, <code class="value">'VolumeMute'</code>, and no <a class="def" href="#glossary-character-value">character value</a> or character representation, since it doesn't have a corresponding <a class="def" href="#glossary-unicode-code-point">Unicode code point</a>.</p>
+
+        <p>The value of the <a href="#events-Events-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> attribute of the <a href="#events-Events-KeyboardEvent">KeyboardEvent</a> interface event types (e.g. <a class="eventtype" href="#event-type-keydown"><code>keydown</code></a>, <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a>, and <a class="eventtype" href="#event-type-keyup"><code>keyup</code></a>) must default to the <a class="def" href="#glossary-character-value">character value</a> itself; if the key value does not have a character representation, the value of the <a href="#events-Events-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> attribute must be the <a class="def" href="#glossary-key-name">key name</a>.  The author may use the <a href="#events-Events-DocumentEvent-convertKeyValue"><code>DocumentEvent.convertKeyValue</code></a> method to find either the <a class="def" href="#glossary-character-value">character value</a>, the <a class="def" href="#glossary-key-name">key name</a>, or the raw <a class="def" href="#glossary-unicode-code-point">Unicode code point</a> of any given key value.</p>
 
         <p>The meaning of any given character representation is context-dependent and complex.  For example, in some contexts, the asterisk (star) glyph (<code class="value">'*'</code>) represents a footnote or emphasis (when bracketing a passage of text); however, in some documents or executable programs it is equivalent to the mathematical multiplication operation, while in other documents or executable programs, that function is reserved for the multiplication symbol (<code class="value">'×'</code>, Unicode value <code class="value">'\u00D7'</code>) or the Latin small letter <code class="value">'x'</code> (due to the lack of a multiplication key on many keyboard and the superficial resemblance of the glyphs <code class="value">'×'</code> and <code class="value">'x'</code>).  Thus, the semantic meaning or function of character representations is outside the scope of this specification.</p>
 
 
         <div class="div3">
-          <h4 class="adiv3"><a id="keyset-unicode" href="#keyset-unicode">6.2.1 Key Identifiers and Unicode</a></h4>
+          <h4 class="adiv3"><a id="keyset-unicode" href="#keyset-unicode">6.2.1 Key Values and Unicode</a></h4>
         
-          <p>The <a class="def" href="#glossary-character-value">character values</a> in the <a href="#keyset-keyidentifiers">key identifiers set</a> are derived from the popular Unicode standard [<a href="#references-Unicode">Unicode</a>], and as such, have certain advantages.</p>
+          <p>The <a class="def" href="#glossary-character-value">character values</a> in the <a href="#keyset-keyvalues">key values set</a> are derived from the popular Unicode standard [<a href="#references-Unicode">Unicode</a>], and as such, have certain advantages.</p>
           
           <p>The most obvious advantage is that it allows the author to use the full range of internationalized language functionality available in the implementation, regardless of the limitations of the text input devices on the system.  This opens up possibilities for virtual keyboards and Web-application-based <a class="def" href="#glossary-ime">input method editors</a>.</p>
           
@@ -4127,7 +4127,7 @@
   } 
 </code></pre>
 
-          <p>With key identifiers and regular expressions, however, authors can support selective and intuitive ranges for key-based input, in a cross-platform manner with advanced internationalization support, such as the following pseudocode:</p>
+          <p>With key values and regular expressions, however, authors can support selective and intuitive ranges for key-based input, in a cross-platform manner with advanced internationalization support, such as the following pseudocode:</p>
 
 <pre class="example"><code>
   if ( event.key == "-" || 
@@ -4163,7 +4163,7 @@
             <li><a class="eventtype" href="#event-type-keyup"><code>keyup</code></a>: <code class="value">'Shift'</code></li>
           </ol>
 
-          <p>The following example describes an alternate sequence of keys to the example above, where the <code class="value">'Shift'</code> key is released before the <code class="value">'Q'</code> key.  The key identifier for the key labeled <code class="value">'Q'</code> will revert to its unshifted value for the <a class="eventtype" href="#event-type-keyup"><code>keyup</code></a> event, after the production of the <a class="eventtype" href="#event-type-textInput"><code>textInput</code></a> event, thus:</p>
+          <p>The following example describes an alternate sequence of keys to the example above, where the <code class="value">'Shift'</code> key is released before the <code class="value">'Q'</code> key.  The key value for the key labeled <code class="value">'Q'</code> will revert to its unshifted value for the <a class="eventtype" href="#event-type-keyup"><code>keyup</code></a> event, after the production of the <a class="eventtype" href="#event-type-textInput"><code>textInput</code></a> event, thus:</p>
           <ol>
             <li><a class="eventtype" href="#event-type-keydown"><code>keydown</code></a>: <code class="value">'Shift'</code>, <code class="attribute-name"><a href="#events-Events-MouseEvent-shiftKey">shiftKey</a></code></li>
             <li><a class="eventtype" href="#event-type-keydown"><code>keydown</code></a>: <code class="value">'Q'</code> (<code class="value">'\u0051'</code>, Latin Capital Letter Q key), <code class="attribute-name"><a href="#events-Events-MouseEvent-shiftKey">shiftKey</a></code></li>
@@ -4179,7 +4179,7 @@
             <li><a class="eventtype" href="#event-type-keyup"><code>keyup</code></a>:  <code class="value">'v'</code> (<code class="value">'\u0076'</code>, Latin Small Letter V key), ctrlKey</li>
             <li><a class="eventtype" href="#event-type-keyup"><code>keyup</code></a>: <code class="value">'Control'</code></li>
           </ol>
-          <p>In some cases, modifier keys change the key identifier value for a key event.  For example, on some MacOS keyboards, the  key labeled <code class="value">'delete'</code> functions the same as the <code class="value">'Backspace'</code> key on the Windows OS when unmodified, but when modified by the <code class="value">'Fn'</code> key, acts as the <code class="value">'Del'</code> key, and the value of the key identifier must match the most appropriate function of the key in its current modified state.</p>
+          <p>In some cases, modifier keys change the key value value for a key event.  For example, on some MacOS keyboards, the  key labeled <code class="value">'delete'</code> functions the same as the <code class="value">'Backspace'</code> key on the Windows OS when unmodified, but when modified by the <code class="value">'Fn'</code> key, acts as the <code class="value">'Del'</code> key, and the value of the key value must match the most appropriate function of the key in its current modified state.</p>
         </div>
     <!-- div3 Modifiers -->
     
@@ -4188,7 +4188,7 @@
           
           <p>Some keyboard input uses <a class="def" href="#glossary-dead-key">dead keys</a> for the input of composed character sequences. Unlike the handwriting sequence, in which users enter the base character first, keyboard input requires to enter a special state when a <a class="def" href="#glossary-dead-key">dead key</a> is pressed and emit the character(s) only when one of a limited number of "legal" base character is entered.  (NOTE: the MacOS and Linux operating systems use input methods to process <a class="def" href="#glossary-dead-key">dead keys</a>.)
                           </p>
-          <p>The <a class="def" href="#glossary-dead-key">dead keys</a> are represented in the key identifiers set using combining diacritical marks. The sequence of keystrokes "\u0302" (Combining Circumflex Accent key) and "\u0065" (Latin Small Letter E key) will likely produce (on a PC/AT french keyboard using a french mapping and without any modifier activated) the Unicode character &#xEA; (Latin Small Letter E With Circumflex), as preferred by the Unicode Normalization Form <em>NFC</em>:</p>
+          <p>The <a class="def" href="#glossary-dead-key">dead keys</a> are represented in the key values set using combining diacritical marks. The sequence of keystrokes "\u0302" (Combining Circumflex Accent key) and "\u0065" (Latin Small Letter E key) will likely produce (on a PC/AT french keyboard using a french mapping and without any modifier activated) the Unicode character &#xEA; (Latin Small Letter E With Circumflex), as preferred by the Unicode Normalization Form <em>NFC</em>:</p>
           <ol>
             <li><a class="eventtype" href="#event-type-keydown"><code>keydown</code></a>: <code class="value">'\u0302'</code> (Combining Circumflex Accent key)</li>
             <li><a class="eventtype" href="#event-type-compositionstart"><code>compositionstart</code></a>: <code class="value">''</code></li>
@@ -4216,7 +4216,7 @@
         <div class="div3">
           <h4 class="adiv3"><a id="keyset-IME" href="#keyset-IME">6.2.4 Input Method Editors</a></h4>
           
-          <p>This specification includes a model for <a class="def" href="#glossary-ime">input method editors (IMEs)</a>, through the <a href="#events-compositionevents">CompositionEvent</a> interface and events.  However, composition events and keyboard events do not necessarily map as a one-to-one relationship.  As an example, receiving a <a class="eventtype" href="#event-type-keydown"><code>keydown</code></a> for the "Accept" key identifier does not necessarily imply that the text currently selected in the <a class="def" href="#glossary-ime">IME</a> is being accepted, but indicates only that a keystroke happened, disconnected from the <a class="def" href="#glossary-ime">IME</a> Accept functionality (which would normally result in a <a class="eventtype" href="#event-type-compositionend"><code>compositionend</code></a> event in most <a class="def" href="#glossary-ime">IME</a> systems).  Keyboard events cannot be used to determine the current state of the input method editor, which should be obtained through the <a href="#events-Events-CompositionEvent-data"><code>data</code></a> attribute of the <a href="#events-compositionevents">CompositionEvent</a> interface.  Additionally, <a class="def" href="#glossary-ime">IME</a> systems and devices vary in their functionality, and in which keys are used for activating that functionality, such that the <code class="value">'Convert'</code> and <code class="value">'Accept'</code> keys may be represented by other available keys.</p>
+          <p>This specification includes a model for <a class="def" href="#glossary-ime">input method editors (IMEs)</a>, through the <a href="#events-compositionevents">CompositionEvent</a> interface and events.  However, composition events and keyboard events do not necessarily map as a one-to-one relationship.  As an example, receiving a <a class="eventtype" href="#event-type-keydown"><code>keydown</code></a> for the "Accept" key value does not necessarily imply that the text currently selected in the <a class="def" href="#glossary-ime">IME</a> is being accepted, but indicates only that a keystroke happened, disconnected from the <a class="def" href="#glossary-ime">IME</a> Accept functionality (which would normally result in a <a class="eventtype" href="#event-type-compositionend"><code>compositionend</code></a> event in most <a class="def" href="#glossary-ime">IME</a> systems).  Keyboard events cannot be used to determine the current state of the input method editor, which should be obtained through the <a href="#events-Events-CompositionEvent-data"><code>data</code></a> attribute of the <a href="#events-compositionevents">CompositionEvent</a> interface.  Additionally, <a class="def" href="#glossary-ime">IME</a> systems and devices vary in their functionality, and in which keys are used for activating that functionality, such that the <code class="value">'Convert'</code> and <code class="value">'Accept'</code> keys may be represented by other available keys.</p>
           <p>Keyboard events correspond to the events generated by the input device after the keyboard layout mapping but before the processing of the input method editor.</p>
           <p>The following example describes a possible sequence of keys to generate the Unicode character &#x5E02; (Kanji character, part of CJK Unified Ideographs) using Japanese input methods. This example assumes that the input method editor is activated and in the Japanese-Romaji input mode. The keys <code class="value">'Convert'</code> and <code class="value">'Accept'</code> may be replaced by others depending on the input device in use and the configuration of the IME, e.g. it could be respectively <code class="value">'\u0020'</code> (Space key) and <code class="value">'Enter'</code>. <span class="note"><strong>Note:</strong> <code class="value">'&#x8A69;'</code> ("poem") and <code class="value">'&#x5E02;'</code> ("city") are homophones, both pronounced "shi", so the user must use the <code class="value">'Convert'</code> key to select the proper option.</span></p>
   		    </p>
@@ -4314,25 +4314,25 @@
     <!-- div3 cancelable_keys -->
     
         <div class="div3">
-          <h4 class="adiv3"><a id="keyset-Guide" href="#keyset-Guide">6.2.6 Guidelines for selecting and defining key identifiers</a></h4>
+          <h4 class="adiv3"><a id="keyset-Guide" href="#keyset-Guide">6.2.6 Guidelines for selecting and defining key values</a></h4>
 
   		    <p class="note"><strong>Note:</strong> This section is normative.</p>
-          <p>The list of key identifiers contained in this specification is not exhaustive and input devices may have to define their own key identifiers. Here is a algorithm to determine which key identifier to use:</p>  
+          <p>The list of key values contained in this specification is not exhaustive and input devices may have to define their own key values. Here is a algorithm to determine which key value to use:</p>  
           
           <ol>
-        		<li>Consider the current function of the key (i.e., with modifiers), taking into consideration the keyboard layout mapping in use, to determine if the key is represented by the set of defined key identifiers, if a corresponding Unicode character exists from which a key identifier may be derived, or if a new key identifier must be defined.  
+        		<li>Consider the current function of the key (i.e., with modifiers), taking into consideration the keyboard layout mapping in use, to determine if the key is represented by the set of defined key values, if a corresponding Unicode character exists from which a key value may be derived, or if a new key value must be defined.  
         			<ol>
         				<li>If the primary current function of the key is to generate a character, then:
         					<ol>
-        						<li>If there exists an appropriate key identifier in the <a href="#keyset-keyidentifiers">key identifiers set</a>, that the key identifier shall be a string consisting of just that character as a <a class="def" href="#glossary-character-value">character value</a>.</li>
-        						<li>If there is no appropriate key identifier in the <a href="#keyset-keyidentifiers">key identifiers set</a>, and there exists an appropriate <a class="def" href="#glossary-unicode-code-point">Unicode code point</a>, then the key identifier is a string beginning with "\u" and followed by the <a class="def" href="#glossary-unicode-code-point">Unicode code point</a> of the character in hexadecimal, using at least four digits. Leading zeroes must be omitted unless they are required to buffer the code point to a length of at least four digits.</li>
-        						<li>If there is no appropriate key identifier in the <a href="#keyset-keyidentifiers">key identifiers set</a>, and no appropriate <a class="def" href="#glossary-unicode-code-point">Unicode code point</a> exists, then... uh, are you sure this is meant to produce a character?</li>
+        						<li>If there exists an appropriate key value in the <a href="#keyset-keyvalues">key values set</a>, that the key value shall be a string consisting of just that character as a <a class="def" href="#glossary-character-value">character value</a>.</li>
+        						<li>If there is no appropriate key value in the <a href="#keyset-keyvalues">key values set</a>, and there exists an appropriate <a class="def" href="#glossary-unicode-code-point">Unicode code point</a>, then the key value is a string beginning with "\u" and followed by the <a class="def" href="#glossary-unicode-code-point">Unicode code point</a> of the character in hexadecimal, using at least four digits. Leading zeroes must be omitted unless they are required to buffer the code point to a length of at least four digits.</li>
+        						<li>If there is no appropriate key value in the <a href="#keyset-keyvalues">key values set</a>, and no appropriate <a class="def" href="#glossary-unicode-code-point">Unicode code point</a> exists, then... uh, are you sure this is meant to produce a character?</li>
         					</ol>
         				</li>
         				<li>If the primary current function of the key is to serve as a function key, then:
         					<ol>
-        						<li>If there exists an appropriate key identifier in the <a href="#keyset-keyidentifiers">key identifiers set</a>, that the key identifier shall be a string consisting of that key identifier as a <a class="def" href="#glossary-key-name">key name</a>.</li>
-        						<li>If there is no appropriate key identifier in the <a href="#keyset-keyidentifiers">key identifiers set</a>, then a key identifier must be devised.  The key identifier should be as human friendly as possible and must not contain whitespace characters.  The identifier must be composed only of characters in the ranges <abbr title="0-9">\u0030..\u0039</abbr>, <abbr title="A-Z">\u0041..\u005A</abbr>, or <abbr title="a-z">\u0061..\u007A</abbr>, and must begin with a character in the range <abbr title="A-Z">\u0041..\u005A</abbr>.  <br/><span class="issue">Why should we not allow names in other ranges (Chinese, for example)?</span></li>
+        						<li>If there exists an appropriate key value in the <a href="#keyset-keyvalues">key values set</a>, that the key value shall be a string consisting of that key value as a <a class="def" href="#glossary-key-name">key name</a>.</li>
+        						<li>If there is no appropriate key value in the <a href="#keyset-keyvalues">key values set</a>, then a key value must be devised.  The key value should be as human friendly as possible and must not contain whitespace characters.  The value must be composed only of characters in the ranges <abbr title="0-9">\u0030..\u0039</abbr>, <abbr title="A-Z">\u0041..\u005A</abbr>, or <abbr title="a-z">\u0061..\u007A</abbr>, and must begin with a character in the range <abbr title="A-Z">\u0041..\u005A</abbr>.  <br/><span class="issue">Why should we not allow names in other ranges (Chinese, for example)?</span></li>
         					</ol>
         				</li>
         			</ol>
@@ -4341,21 +4341,21 @@
 
         	<p>Examples:</p>
         	<ul>
-        		<li>On a PC/AT US keyboard with a two-handed Dvorak keyboard mapping, the key labeled <code class="value">'Q'</code> maps to the key identifiers <code class="value">'5'</code> (unmodified) and <code class="value">'%'</code> (shifted).  The primary function of this key is to generate the character <code class="value">'\u0035'</code>.  Since this character is in general category <abbr title="Number, Decimal Digit">Nd</abbr>, the key identifier for the unmodified key shall be <code class="value">'5'</code>.</li>
-        		<li>On a French PC keyboard with a standard French mapping, the primary function of the <code class="value">'^'</code> key is as a <a class="def" href="#glossary-dead-key">dead key</a> for the circumflex diacritical mark.  This corresponds to the combining Unicode character <code class="value">'\u0302'</code>.  Since this character is in general category <abbr title="Mark, Nonspacing">Mn</abbr>, the key identifier shall be <code class="value">'\u0302'</code>.</li>
-        		<li>On a Korean PC keyboard with a standard Korean mapping, the primary function of the <code class="value">'Ha/En'</code> key is to switch between Hangul and English input.  The predefined key identifier list has an appropriate entry for this key, <code class="value">'HangulMode'</code>, so this shall be the key identifier.</li>
-        		<li>On some models of mobile devices, the primary function of the key with a picture of a calendar on it is to launch the calendaring program. Since there is no Unicode character that corresponds to this function, and there is no appropriate entry in the predefined key identifier list, a new identifier may be devised, such as <code class="value">'Calendar'</code>.</li>
+        		<li>On a PC/AT US keyboard with a two-handed Dvorak keyboard mapping, the key labeled <code class="value">'Q'</code> maps to the key values <code class="value">'5'</code> (unmodified) and <code class="value">'%'</code> (shifted).  The primary function of this key is to generate the character <code class="value">'\u0035'</code>.  Since this character is in general category <abbr title="Number, Decimal Digit">Nd</abbr>, the key value for the unmodified key shall be <code class="value">'5'</code>.</li>
+        		<li>On a French PC keyboard with a standard French mapping, the primary function of the <code class="value">'^'</code> key is as a <a class="def" href="#glossary-dead-key">dead key</a> for the circumflex diacritical mark.  This corresponds to the combining Unicode character <code class="value">'\u0302'</code>.  Since this character is in general category <abbr title="Mark, Nonspacing">Mn</abbr>, the key value shall be <code class="value">'\u0302'</code>.</li>
+        		<li>On a Korean PC keyboard with a standard Korean mapping, the primary function of the <code class="value">'Ha/En'</code> key is to switch between Hangul and English input.  The predefined key value list has an appropriate entry for this key, <code class="value">'HangulMode'</code>, so this shall be the key value.</li>
+        		<li>On some models of mobile devices, the primary function of the key with a picture of a calendar on it is to launch the calendaring program. Since there is no Unicode character that corresponds to this function, and there is no appropriate entry in the predefined key value list, a new value may be devised, such as <code class="value">'Calendar'</code>.</li>
         	</ul>
     	  </div>
         	  
         <div>
-          <h4 class="adiv3"><a id="keyset-key-identifiers" href="#keyset-key-identifiers">6.2.7 Key Identifiers Set</a></h4>
+          <h4 class="adiv3"><a id="keyset-key-values" href="#keyset-key-values">6.2.7 Key Values Set</a></h4>
           
-          <p>This section defines a list of key identifiers which implementations must support, at a minimum; implementations may support additional key identifiers, in a manner conforming to the <a href="#keyset-Guide">guidelines for selecting and defining key identifiers</a>.  Each key identifier defines one or both of the following: a <a class="def" href="#glossary-character-value">character value</a> and a <a class="def" href="#glossary-key-name">key name</a>.  The <a href="#events-Events-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> attribute of an event must always be the most author-friendly of these available, in the following order: <a class="def charval" href="#glossary-character-value">character value</a>, or <a class="def keyname" href="#glossary-key-name">key name</a>.  Future versions of this specification may include key identifiers not included here, which have become common since the publication of this specification.</p>
+          <p>This section defines a list of key values which implementations must support, at a minimum; implementations may support additional key values, in a manner conforming to the <a href="#keyset-Guide">guidelines for selecting and defining key values</a>.  Each key value defines one or both of the following: a <a class="def" href="#glossary-character-value">character value</a> and a <a class="def" href="#glossary-key-name">key name</a>.  The <a href="#events-Events-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> attribute of an event must always be the most author-friendly of these available, in the following order: <a class="def charval" href="#glossary-character-value">character value</a>, or <a class="def keyname" href="#glossary-key-name">key name</a>.  Future versions of this specification may include key values not included here, which have become common since the publication of this specification.</p>
           
           <p>The <a class="def" href="#glossary-key-name">key names</a> defined in this specification are based on the sets of keycodes from the <code>java.awt.event.KeyEvent</code> interface of the Java Platform, Standard Edition 6 API Specification [<cite><a class="noxref informative" href="#references-KeyEvent">KeyEvent for Java</a></cite>], and the <code>System.Windows.Forms.Keys</code> key enumeration of the Microsoft .NET Framework 4.0 Class Library [<cite><a class="noxref informative" href="#references-Keys">Keys enumeration for .Net</a></cite>].  The <a class="def" href="#glossary-character-value">character values</a> defined in this specification are derived from the Unicode standard [<a id="references-Unicode">Unicode</a>].</p>
       	  
-          <p class="note"><strong>Note:</strong> The key names <code class="value">'NumPad0'</code>, <code class="value">'NumPad1'</code>, <code class="value">'NumPad2'</code>, <code class="value">'NumPad3'</code>, <code class="value">'NumPad4'</code>, <code class="value">'NumPad5'</code>, <code class="value">'NumPad6'</code>, <code class="value">'NumPad7'</code>, <code class="value">'NumPad8'</code>, and <code class="value">'NumPad9'</code>, found in some keyboard enumeration sets, are not distinguished from other numerical key identifiers in this set; an author may use the <a href="#events-Events-KeyboardEvent-location"><code>KeyboardEvent.location</code></a> attribute to discover if a key originated from the numeric keypad.</p>
+          <p class="note"><strong>Note:</strong> The key names <code class="value">'NumPad0'</code>, <code class="value">'NumPad1'</code>, <code class="value">'NumPad2'</code>, <code class="value">'NumPad3'</code>, <code class="value">'NumPad4'</code>, <code class="value">'NumPad5'</code>, <code class="value">'NumPad6'</code>, <code class="value">'NumPad7'</code>, <code class="value">'NumPad8'</code>, and <code class="value">'NumPad9'</code>, found in some keyboard enumeration sets, are not distinguished from other numerical key values in this set; an author may use the <a href="#events-Events-KeyboardEvent-location"><code>KeyboardEvent.location</code></a> attribute to discover if a key originated from the numeric keypad.</p>
           
           <p>Javascript escaped characters may have issues because they are based on UTF-16 encoding, in that it uses surrogate pairs for values outside the Basic Multilingual Plane</p>
       	  
@@ -4363,7 +4363,7 @@
           <div id="js-escape" class="issue">
           	<p>@@ Javascript escaped characters may have issues:</p>
           	<ul>
-          	  <li>may not be suitable for Java or C, which use different escaping mechanisms (could be solved with a normalizing methods such as <a href="#events-Events-DocumentEvent-convertKeyIdentifier"><code>DocumentEvent.convertKeyIdentifier</code></a>)</li>
+          	  <li>may not be suitable for Java or C, which use different escaping mechanisms (could be solved with a normalizing methods such as <a href="#events-Events-DocumentEvent-convertKeyValue"><code>DocumentEvent.convertKeyValue</code></a>)</li>
           	  <li>based on UTF-16 encoding, in that it uses surrogate pairs for values outside the Basic Multilingual Plane</li>
           	  <li>expressing characters using surrogate pairs makes it difficult for a human to look up the value, and requires unnecessary overhead for machine processing; can also cause problems with software written in the incorrect belief that Unicode is a 16-bit character set</li>
           	  <li>problematic for characters on supplementary planes (emoji, or Chinese characters on plane 2), some of which are keyable</li>
@@ -4475,7 +4475,7 @@
 
             <dt><a id="keyset-key-Enter"><code class="value keyname">'Enter'</code></a></dt>
             <dd>The Enter key.
-             <span class="note"><strong>Note:</strong> This key identifier shall be also used for the Return (Macintosh numpad) key.</span>
+             <span class="note"><strong>Note:</strong> This key value shall be also used for the Return (Macintosh numpad) key.</span>
             </dd>
 
             <dt><a id="keyset-key-EraseEof"><code class="value keyname">'EraseEof'</code></a></dt>
@@ -4756,7 +4756,7 @@
             <dt><a id="keyset-key-Backspace"><code class="value keyname">'Backspace'</code></a></dt>
             <dt><a id="keyset-key-U-0008"><code class="value codepoint">'\u0008'</code></a></dt>
             <dd>The Backspace (Back) key.
-             <span class="note"><strong>Note:</strong> This key identifier shall be also used for the key labeled <code class="value">'delete'</code> MacOS keyboards when not modified by the <code class="value">'Fn'</code> key.</span>
+             <span class="note"><strong>Note:</strong> This key value shall be also used for the key labeled <code class="value">'delete'</code> MacOS keyboards when not modified by the <code class="value">'Fn'</code> key.</span>
             </dd>
 
             <dt><a id="keyset-key-Tab"><code class="value keyname">'Tab'</code></a></dt>
@@ -5163,7 +5163,7 @@
             <dt><a id="keyset-key-Del"><code class="value keyname">'Del'</code></a></dt>
             <dt><a id="keyset-key-U-007F"><code class="value codepoint">'\u007F'</code></a></dt>
             <dd>The Delete (Del) Key.
-             <span class="note"><strong>Note:</strong> This key identifier shall be also used for the key labeled <code class="value">'delete'</code> MacOS keyboards when modified by the <code class="value">'Fn'</code> key.</span>
+             <span class="note"><strong>Note:</strong> This key value shall be also used for the key labeled <code class="value">'delete'</code> MacOS keyboards when modified by the <code class="value">'Fn'</code> key.</span>
             </dd>
 
             <dt><a id="keyset-key-DeadGrave"><code class="value keyname">'DeadGrave'</code></a></dt>
@@ -5234,13 +5234,13 @@
         <!-- div2 KeySet-Set -->
 
 <div>
-  <h4 class="adiv3"><a id="keyset-keyCode-charCode" href="#keyset-keyCode-charCode">6.2.8 Key identifiers, keyCode, and charCode</a></h4>
+  <h4 class="adiv3"><a id="keyset-keyCode-charCode" href="#keyset-keyCode-charCode">6.2.8 Key values, keyCode, and charCode</a></h4>
   <p class="note"><strong>Note:</strong> This section is non-normative.</p>
   
-  <p>Browser support for keyboards has traditionally relied on two ad-hoc attributes, <code class="attr-name">keyCode</code>, and <code class="attr-name">charCode</code>.  The values for these attributes, and the availability of the attribute, is inconsistent across platforms, keyboard languages and layouts, <a class="def" href="#glossary-user-agent">user agents</a>, versions, and even event types.  A significant amount of legacy content, including script libraries, relies upon detecting the <a class="def" href="#glossary-user-agent">user agent</a> and acting accordingly, and any changes to <code class="attr-name">keyCode</code>, or <code class="attr-name">charCode</code> risk breaking as much content as they fix or enable.  Additionally, these attributes are not suitable for international usage, or accessibility concerns.  Therefore, this specification does not normatively define the <code class="attr-name">keyCode</code>, and <code class="attr-name">charCode</code> attributes, relying instead only on the more robust key identifiers, which can be used safely and consistently in any <a class="def" href="#glossary-user-agent">user agent</a> which conforms to this specification.  However, for the purpose of documenting the current state of these attributes and their relation to equivalent key identifiers, this specification contains the following table, which is to be used as an informative reference only, and does not document the full range of values for <code class="attr-name">keyCode</code>, and <code class="attr-name">charCode</code>.</p>
+  <p>Browser support for keyboards has traditionally relied on two ad-hoc attributes, <code class="attr-name">keyCode</code>, and <code class="attr-name">charCode</code>.  The values for these attributes, and the availability of the attribute, is inconsistent across platforms, keyboard languages and layouts, <a class="def" href="#glossary-user-agent">user agents</a>, versions, and even event types.  A significant amount of legacy content, including script libraries, relies upon detecting the <a class="def" href="#glossary-user-agent">user agent</a> and acting accordingly, and any changes to <code class="attr-name">keyCode</code>, or <code class="attr-name">charCode</code> risk breaking as much content as they fix or enable.  Additionally, these attributes are not suitable for international usage, or accessibility concerns.  Therefore, this specification does not normatively define the <code class="attr-name">keyCode</code>, and <code class="attr-name">charCode</code> attributes, relying instead only on the more robust key values, which can be used safely and consistently in any <a class="def" href="#glossary-user-agent">user agent</a> which conforms to this specification.  However, for the purpose of documenting the current state of these attributes and their relation to equivalent key values, this specification contains the following table, which is to be used as an informative reference only, and does not document the full range of values for <code class="attr-name">keyCode</code>, and <code class="attr-name">charCode</code>.</p>
   
-  <table id="tbl-keyIdentifiers-keyCode-charCode">
-    <caption><strong>Key Identifiers Set with keyCode and charCode Equivalents for Major Browsers</strong><br/>(<code>keycode</code> labeled <em>key</em>, <code>charcode</code> labeled <em>char</em>)</caption>
+  <table id="tbl-keyValues-keyCode-charCode">
+    <caption><strong>Key Values Set with keyCode and charCode Equivalents for Major Browsers</strong><br/>(<code>keycode</code> labeled <em>key</em>, <code>charcode</code> labeled <em>char</em>)</caption>
     <tr>
       <th rowspan="3">Glyph</th>
       <th rowspan="3">Key Name</th>
@@ -5359,7 +5359,7 @@
       </td><td> </td><td>The End key.</td><td>35</td><td>-</td><td>-</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>-</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td></tr>
     <tr><td> </td><td>
         <code id="tbl-keyset-key-Enter" class="value">'Enter'</code>
-      </td><td> </td><td>The Enter key. <em><strong>Note:</strong> This key identifier shall be also used for the Return (Macintosh numpad) key.</em></td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>13</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td></tr>
+      </td><td> </td><td>The Enter key. <em><strong>Note:</strong> This key value shall be also used for the Return (Macintosh numpad) key.</em></td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>13</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td></tr>
     <tr><td> </td><td>
         <code id="tbl-keyset-key-EraseEof" class="value">'EraseEof'</code>
       </td><td> </td><td>The Erase EOF key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
@@ -6330,8 +6330,7 @@
       <div class="div2">
         <h2 class="adiv2"><a id="changes-DOMEvents2to3Changes" href="#changes-DOMEvents2to3Changes">C.1 Changes between DOM Level 2 Events and DOM Level 3 Events</a></h2>
         <p>Numerous clarifications to the interfaces and event types have been made. The <code>HTMLEvents</code> module is no longer defined in this document. The event types <code>focus</code> and <code>blur</code> have been added to the <a href="#events-Events-UIEvent"><code>UIEvents</code></a> module, the event type <code>dblclick</code> has been added to the <a href="#events-Events-MouseEvent"><code>MouseEvents</code></a> module. This new specification provides a better separation between the DOM event flow, the event types, and the DOM interfaces.</p>
-        <p>This specification has been reordered significantly from the earlier W3C Note form, and from the structure of DOM2 Events, in order to clarify the material.  New diagrams have been put in place to represent hierarchies and events flows more clearly.</p>
-        <p>The <code>change</code>, <code>submit</code>, and <code>reset</code> events were removed, since they were specific to HTML forms, and are specified in HTML5.</p>
+        
         <div class="div3">
           <h3 class="adiv3"><a id="changes-DOMEvents2to3Changes-flow" href="#changes-DOMEvents2to3Changes-flow">C.1.1 Changes to DOM Level 2 event flow</a></h3>
           <p>This new specification introduced the following new concepts in the event flow:</p>
@@ -6341,12 +6340,15 @@
           </ul>
         </div>
 <!-- div3 DOMEvents2to3Changes-flow -->
+
         <div class="div3">
           <h3 class="adiv3"><a id="changes-DOMEvents2to3Changes-event-types" href="#changes-DOMEvents2to3Changes-event-types">C.1.2 Changes to DOM Level 2 event types</a></h3>
           <p>Many clarifications have been made on the event types. The conformance is now explicitly defined against the event types, and not only in terms of interfaces required by the event types. Support the features <code>"BasicEvents"</code>, <code>"TextEvents"</code>, <code>"KeyboardEvents"</code>, and <code>"MutationNameEvents"</code> have been introduced.</p>
           <p>In the most recent drafts of this specification, <code>"MutationEvents"</code> and <code>"MutationNameEvents"</code> have been deprecated. Support for namespaced events, present in early drafts of this specification, has been removed.</p>
+          <li>The <code>resize</code> event type no longer bubbles, reflecting existing implementations.</li>
         </div>
 <!-- div3 DOMEvents2to3Changes-event-types -->
+
         <div class="div3">
           <h3 class="adiv3"><a id="changes-DOMLevel2to3Changes" href="#changes-DOMLevel2to3Changes">C.1.3 Changes to DOM Level 2 Events interfaces</a></h3>
           <dl>
@@ -6364,7 +6366,6 @@
             <dd>The <a href="#events-Events-MouseEvent"><code>MouseEvent</code></a> interface has one new methods <a href="#events-Events-MouseEvent-getModifierState"><code>MouseEvent.getModifierState()</code></a>.</dd>
             <dt>Exception <a href="#events-Events-EventException"><code>EventException</code></a></dt>
             <dd>The <a href="#events-DISPATCH_REQUEST_ERR"><code>DISPATCH_REQUEST_ERR</code></a> constant has been added.</dd>
-            <dd>The <code>resize</code> event type no longer bubbles, reflecting existing implementations.</dd>
           </dl>
         </div>
 <!-- div3 DOMLevel2to3Changes -->
@@ -6375,6 +6376,19 @@
 <!-- div3 DOMLevel3Addons -->
       </div>
 <!-- div2 DOMEvents2to3Changes -->
+
+    <div class="div2">
+      <h2 class="adiv2"><a id="changes-drafts" href="#changes-drafts">C.2 Changes between different drafts of DOM Level 3 Events</a></h2>
+      <p>The DOM Level 3 Events document was previously developed between 2000 and 2003, and and published as a W3C Note, pending further feedback and interest from implementers.  In 2006, it was picked up for revision and progress on the Recommendation Track, and is now being revised to reflect the current state of implementation and the needs of script authors.</p>
+      <p>Despite its status only as a W3C Note, rather than an official Recommendation, DOM 3 Events saw some implementation, and reference by other specifications, so care is being taken to cause minimal disruption, while still adapting the specification to the current environment.</p>
+      <p>This specification has been reordered significantly from the earlier W3C Note form, and from the structure of DOM2 Events, in order to clarify the material.  New diagrams have been put in place to represent hierarchies and events flows more clearly.  Here are some of the more important changes between drafts:</p>
+      <ul>
+        <li>The "key identifier" feature has been renamed "key value" to disambiguate them from unique identifiers for keys.</li>
+        <li>The <code>change</code>, <code>submit</code>, and <code>reset</code> events were removed, since they were specific to HTML forms, and are specified in HTML5.</li>
+        <li>Namespaced events have been removed.</li>
+      </ul>
+    </div>
+
     </div>
 <!-- div1 Changes -->