added clarification that keyboard layout is orthogonal to key identifiers
authorschepers
Mon, 31 Aug 2009 22:43:48 +0900
changeset 165 5b212c2ec3ae
parent 164 b6483e4159f6
child 166 3f242e090613
added clarification that keyboard layout is orthogonal to key identifiers
html/DOM3-Events.html
--- a/html/DOM3-Events.html	Sat Aug 29 16:12:46 2009 +0900
+++ b/html/DOM3-Events.html	Mon Aug 31 22:43:48 2009 +0900
@@ -1948,6 +1948,7 @@
           </dd>
         </dl>
         <p>The User Interface event types are listed below.</p>
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-DOMActivate">
@@ -1958,6 +1959,7 @@
           </dl>
         </div>
 <!-- DOMFocusIn -->
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-DOMFocusIn">
@@ -1968,6 +1970,7 @@
           </dl>
         </div>
 <!-- DOMFocusOut -->
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-DOMFocusOut">
@@ -1978,6 +1981,7 @@
           </dl>
         </div>
 <!-- focus -->
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-focus">
@@ -1988,6 +1992,7 @@
           </dl>
         </div>
 <!-- focusin -->
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-focusin">
@@ -1998,6 +2003,7 @@
           </dl>
         </div>
 <!-- focusout -->
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-focusout">
@@ -2008,6 +2014,7 @@
           </dl>
         </div>
 <!-- blur -->
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-blur">
@@ -2018,10 +2025,14 @@
           </dl>
         </div>
       </div>
-<!-- div3 Events-eventgroupings-basicevents -->
+      
+      
+<!-- div3 events-basicevents -->
       <div class="div3">
         <h3 class="div3" id="events-basicevents">5.2.2 Basic Event Types</h3>
         <p>This event module contains basic event types associated with document manipulation. It defines the feature BasicEvents 3.0 and depends on the feature Events 3.0. The basic event types are listed below.</p>
+
+<!-- load -->
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-load">
@@ -2031,6 +2042,8 @@
       The DOM Implementation finishes loading the resource (such as the document) and any dependent resources (such as images, style sheets, or scripts). Dependent resources that fail to load must not prevent this event from firing if the resource that loaded them is still accessible via the DOM. If this event type is dispatched, implementations are required to dispatch this event at least on the <code>Document</code> node.</dd>
           </dl>
         </div>
+        
+<!-- unload -->
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-unload">
@@ -2040,6 +2053,8 @@
       The DOM implementation removes from the environment the resource (such as the document) or any dependent resources (such as images, style sheets, scripts). The document shall be unloaded after the dispatch of this event type. If this event type is dispatched, implementations are required to dispatch this event at least on the <code>Document</code> node.</dd>
           </dl>
         </div>
+        
+<!-- unload -->
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-abort">
@@ -2049,6 +2064,8 @@
       Loading of a resource has been aborted.</dd>
           </dl>
         </div>
+        
+<!-- error -->
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-error">
@@ -2058,6 +2075,8 @@
       A resource failed to load, or has been loaded but cannot be interpreted according to its semantics such as an invalid image, a script execution error, or non-well-formed XML.</dd>
           </dl>
         </div>
+        
+<!-- select -->
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-select">
@@ -2067,6 +2086,8 @@
       A user selects some text. DOM Level 3 Events does not provide contextual information to access the selected text. The selection occurred before the dispatch of this event type.</dd>
           </dl>
         </div>
+        
+<!-- change -->
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-change">
@@ -2076,6 +2097,8 @@
       A control loses the input focus and its value has been modified since gaining focus. This event type shall be dispatched before the event type <a href="#event-type-blur">blur</a>.</dd>
           </dl>
         </div>
+
+<!-- submit -->
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-submit">
@@ -2085,6 +2108,8 @@
       A form, such as a [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] or [<cite><a class="noxref informative" href="#references-XHTML10">XHTML 1.0</a></cite>] form, is submitted.</dd>
           </dl>
         </div>
+
+        <!-- reset -->
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-reset">
@@ -2094,6 +2119,8 @@
       A form, such as a [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] or [<cite><a class="noxref informative" href="#references-XHTML10">XHTML 1.0</a></cite>] form, is reset.</dd>
           </dl>
         </div>
+
+        <!-- resize -->
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-resize">
@@ -2103,6 +2130,8 @@
       A document view or an element has been resized. The resize occurred before the dispatch of this event type.</dd>
           </dl>
         </div>
+
+        <!-- scroll -->
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-scroll">
@@ -2259,6 +2288,7 @@
       <p id="events-dt-current-click-count">Implementations must maintain the <em>current click count</em> when generating mouse events. This shall be a non-negative integer indicating the number of consecutive clicks of a pointing device button during a user action. The notion of consecutive clicks depends on the environment configuration. For example, a <code><a href="#event-type-dblclick">dblclick</a></code> event type might not happen if there is a long delay between the two clicks.
       <span class="note"><strong>Note:</strong> The value of <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> for a number of clicks greater than 2 is platform-dependent.  For example, on the Windows OS, the click-count series seems to be <code>1, 2, 3, 2, 3</code>, while on MacOS, the click-count series seems to be <code>1, 2, 3, 4, 5, ...</code>.</span></p>
 <!-- click -->
+
       <div class="event-definition assert must">
         <dl>
           <dt id="event-type-click">
@@ -2281,6 +2311,7 @@
         </dl>
       </div>
 <!-- dblclick -->
+
       <div class="event-definition assert must">
         <dl>
           <dt id="event-type-dblclick">
@@ -2292,6 +2323,7 @@
         </dl>
       </div>
 <!-- mousedown -->
+
       <div class="event-definition assert must">
         <dl>
           <dt id="event-type-mousedown">
@@ -2302,6 +2334,7 @@
         </dl>
       </div>
 <!-- mouseenter -->
+
       <div class="event-definition assert must">
         <dl>
           <dt id="event-type-mouseenter">
@@ -2314,6 +2347,7 @@
         </dl>
       </div>
 <!-- mouseleave -->
+
       <div class="event-definition assert must">
         <dl>
           <dt id="event-type-mouseleave">
@@ -2326,6 +2360,7 @@
         </dl>
       </div>
 <!-- mousemove -->
+
       <div class="event-definition assert must">
         <dl>
           <dt id="event-type-mousemove">
@@ -2337,6 +2372,7 @@
         </dl>
       </div>
 <!-- mouseout -->
+
       <div class="event-definition assert must">
         <dl>
           <dt id="event-type-mouseout">
@@ -2349,6 +2385,7 @@
         </dl>
       </div>
 <!-- mouseover -->
+
       <div class="event-definition assert must">
         <dl>
           <dt id="event-type-mouseover">
@@ -2361,6 +2398,7 @@
         </dl>
       </div>
 <!-- mouseup -->
+
       <div class="event-definition assert must">
         <dl>
           <dt id="event-type-mouseup">
@@ -2468,6 +2506,7 @@
           </dl>
         </dd>
       </dl>
+
       <div class="event-definition assert must">
         <dl>
           <dt id="event-type-mousewheel">
@@ -2647,6 +2686,7 @@
           </dl>
         </dd>
       </dl>
+
       <div class="event-definition assert must">
         <dl>
           <dt id="event-type-wheel">
@@ -2834,6 +2874,7 @@
           </dd>
         </dl>
         <p>The text event type is listed below.</p>
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-textInput">
@@ -3035,6 +3076,7 @@
         </dl>
         <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>
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-keydown">
@@ -3046,6 +3088,7 @@
               <p class="note"><strong>Note:</strong> the <a href="#event-type-keydown">keydown</a> and <a href="#event-type-keyup">keyup</a> events are traditionally associated with detecting a physical key rather than a character value.</p></dd>
           </dl>
         </div>
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-keypress">
@@ -3057,6 +3100,7 @@
               <p class="note"><strong>Note:</strong> the <a href="#event-type-keypress">keypress</a> event is traditionally associated with detecting a character value rather than a physical key, and may not be available on all keys in some configurations.</p><p class="warning"><strong>Warning:</strong> the <a href="#event-type-keypress">keypress</a> event type is defined in this specification for reference and completeness, but this specification <a href="#glossary-deprecated">deprecates</a> the use of this event type.</p></dd>
           </dl>
         </div>
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-keyup">
@@ -3158,6 +3202,7 @@
           </dd>
         </dl>
         <p>The composition event types are listed below.</p>
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-compositionstart">
@@ -3168,6 +3213,7 @@
             </dd>
           </dl>
         </div>
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-compositionupdate">
@@ -3177,6 +3223,7 @@
               A <a href="#glossary-text-composition-system">text composition system</a> updates its active text passage with a new character, which is added to the string in <a href="#events-Events-CompositionEvent-data"><code>CompositionEvent.data</code></a>.  Note that some <a href="#glossary-text-composition-system">text composition systems</a> may not expose this information to the DOM, in which case this event will not fire during the composition process.  If the composition process is canceled, this event will be fired immediately before the <a class="noxref" href="#event-type-compositionend">compositionend</a> event, and the <a href="#events-Events-CompositionEvent-data"><code>CompositionEvent.data</code> attribute will be set to <code>null</code><span class="issue">(@@ "null" or "empty string"? What's the distinction?)</span>.</a></dd>
           </dl>
         </div>
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-compositionend">
@@ -3342,6 +3389,7 @@
           </dd>
         </dl>
         <p>The mutation event types are listed below.</p>
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-DOMSubtreeModified">
@@ -3351,6 +3399,7 @@
     This is a general event for notification of all changes to the document. It can be used instead of the more specific mutation and mutation name events listed below. It may be dispatched after a single modification to the document or, at the implementation's discretion, after multiple changes have occurred. The latter use should generally be used to accommodate multiple changes which occur either simultaneously or in rapid succession. The target of this event shall be the lowest common parent of the changes which have taken place. This event shall be dispatched after any other events caused by the mutation(s) have occurred.</dd>
           </dl>
         </div>
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-DOMNodeInserted">
@@ -3360,6 +3409,7 @@
     A node has been added as a child of another node or, in case of <code>Attr</code> nodes, has been added to an <code>Element</code>. This event shall be dispatched after the insertion has taken place. The <a href="#glossary-target-node">target node</a> of this event shall be the node being inserted.</dd>
           </dl>
         </div>
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-DOMNodeRemoved">
@@ -3369,6 +3419,7 @@
     A node is being removed from its parent node or, in case of <code>Attr</code> nodes, removed from its <code>ownerElement</code>. This event shall be dispatched before the removal takes place. The <a href="#glossary-target-node">target node</a> of this event shall be the node being removed.</dd>
           </dl>
         </div>
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-DOMNodeRemovedFromDocument">
@@ -3378,6 +3429,7 @@
     A node is being removed from a document, either through direct removal of the node or removal of a subtree in which it is contained; <code>Attr</code> nodes are considered part of an <code>Element</code>'s subtree. This event shall be dispatched before the removal takes place. The <a href="#glossary-target-node">target node</a> of this event type shall be the node being removed. If the node is being directly removed, the event type <a href="#event-type-DOMNodeRemoved">DOMNodeRemoved</a> must occur before this event type.</dd>
           </dl>
         </div>
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-DOMNodeInsertedIntoDocument">
@@ -3387,6 +3439,7 @@
     A node has been inserted into a document, either through direct insertion of the node or insertion of a subtree in which it is contained; <code>Attr</code> nodes are considered part of an <code>Element</code>'s subtree. This event shall be dispatched after the insertion has taken place. The <a href="#glossary-target-node">target node</a> of this event shall be the node being inserted. If the node is being directly inserted, the event type <a href="#event-type-DOMNodeInserted">DOMNodeInserted</a> must occur before this event type.</dd>
           </dl>
         </div>
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-DOMAttrModified">
@@ -3396,6 +3449,7 @@
     Occurs after <code>Attr.value</code> has been modified and after an <code>Attr</code> node has been added to or removed from an <code>Element</code>. The <a href="#glossary-target-node">target node</a> of this event shall be the <code>Element</code> node where the change occurred. It is implementation dependent whether this event type occurs when the children of the <code>Attr</code> node are changed in ways that do not affect the value of <code>Attr.value</code>.</dd>
           </dl>
         </div>
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-DOMCharacterDataModified">
@@ -3490,6 +3544,7 @@
           </dd>
         </dl>
         <p>The mutation name event types are listed below.</p>
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-DOMElementNameChanged">
@@ -3499,6 +3554,7 @@
     Occurs after the <code>namespaceURI</code> and/or the <code>nodeName</code> of an <code>Element</code> node have been modified (e.g., the element was renamed using <code>Document.renameNode()</code>). The <a href="#glossary-target-node">target node</a> of this event shall be the renamed <code>Element</code> node.</dd>
           </dl>
         </div>
+
         <div class="event-definition assert must">
           <dl>
             <dt id="event-type-DOMAttributeNameChanged">
@@ -3539,7 +3595,8 @@
             <p>This specification only defines the functional mapping, in terms of key identifiers.  The visual marking has no bearing on the digital representation of the keys, and in many configurations may be completely inaccurate.</p>
 
             <h4 id="keyboard-layout" class="adiv2">6.1.1 Keyboard Layout</h4>
-            <p>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 the controller keys to a custom setting appropriate to their keyboard configurations.</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. selecting a Dvorak key mapping.</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 the controller keys to a custom setting appropriate to their keyboard configurations.</p>
 
             <h5 id="keyboard-desktop" class="adiv2">6.1.1.1 Desktop and Laptop Keyboards</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-3-FCD:2009A [<cite><a class="noxref informative" href="#references-ISO-9995-3">ISO-9995-3</a></cite>] as a common layout appropriate to some international uses.</p>