ISSUE-130: added non-normative appendix with suggested WebIDL definitions
authorjrossi2
Fri, 06 May 2011 11:13:59 +0900
changeset 310 6ce0a08e97f6
parent 309 4d576e44fded
child 311 5d2e2538300b
ISSUE-130: added non-normative appendix with suggested WebIDL definitions
html/DOM3-Events.html
--- a/html/DOM3-Events.html	Fri May 06 08:42:33 2011 +0900
+++ b/html/DOM3-Events.html	Fri May 06 11:13:59 2011 +0900
@@ -299,29 +299,48 @@
           </li>
         </ul>
       </li>
-      <li><a href="#security-considerations-Security">Appendix C: Security Considerations</a></li>
-      <li><a href="#changes-Changes">Appendix D: Changes</a>
+	  <li><a href="#webidl-definitions">Appendix C: Web IDL Interface Definitions</a>
         <ul class="toc">
-          <li><a href="#changes-DOMEvents2to3Changes">D.1 Changes between DOM Level 2 Events and DOM Level 3 Events</a>
+          <li><a href="#webidl-events-Event">Interface Event</a></li>
+          <li><a href="#webidl-events-CustomEvent">Interface CustomEvent</a></li>
+          <li><a href="#webidl-events-EventTarget">Interface EventTarget</a></li>
+          <li><a href="#webidl-events-EventListener">Interface EventListener</a></li>
+          <li><a href="#webidl-events-EventException">Exception EventException</a></li>
+          <li><a href="#webidl-events-DocumentEvent">Interface DocumentEvent</a></li>
+          <li><a href="#webidl-events-UIEvent">Interface UIEvent</a></li>
+          <li><a href="#webidl-events-FocusEvent">Interface FocusEvent</a></li>
+          <li><a href="#webidl-events-MouseEvent">Interface MouseEvent</a></li>
+          <li><a href="#webidl-events-WheelEvent">Interface WheelEvent</a></li>
+          <li><a href="#webidl-events-TextEvent">Interface TextEvent</a></li>
+          <li><a href="#webidl-events-KeyboardEvent">Interface KeyboardEvent</a></li>
+          <li><a href="#webidl-events-CompositionEvent">Interface CompositionEvent</a></li>
+          <li><a href="#webidl-events-MutationEvent">Interface MutationEvent</a></li>
+          <li><a href="#webidl-events-MutationNameEvent">Interface MutationNameEvent</a></li>
+        </ul>
+      </li>
+      <li><a href="#security-considerations-Security">Appendix D: Security Considerations</a></li>
+      <li><a href="#changes-Changes">Appendix E: Changes</a>
+        <ul class="toc">
+          <li><a href="#changes-DOMEvents2to3Changes">E.1 Changes between DOM Level 2 Events and DOM Level 3 Events</a>
             <ul class="toc">
-              <li><a href="#changes-DOMEvents2to3Changes-flow">D.1.1 Changes to DOM Level 2 event flow</a></li>
-              <li><a href="#changes-DOMEvents2to3Changes-event-types">D.1.2 Changes to DOM Level 2 event types</a></li>
-              <li><a href="#changes-DOMLevel2to3Changes">D.1.3 Changes to DOM Level 2 Events interfaces</a></li>
-              <li><a href="#changes-DOMLevel3Addons">D.1.4 New Interfaces</a></li>
+              <li><a href="#changes-DOMEvents2to3Changes-flow">E.1.1 Changes to DOM Level 2 event flow</a></li>
+              <li><a href="#changes-DOMEvents2to3Changes-event-types">E.1.2 Changes to DOM Level 2 event types</a></li>
+              <li><a href="#changes-DOMLevel2to3Changes">E.1.3 Changes to DOM Level 2 Events interfaces</a></li>
+              <li><a href="#changes-DOMLevel3Addons">E.1.4 New Interfaces</a></li>
             </ul>
           </li>
-          <li><a href="#changes-drafts">D.2 Changes between different drafts of DOM Level 3 Events</a></li>
+          <li><a href="#changes-drafts">E.2 Changes between different drafts of DOM Level 3 Events</a></li>
         </ul>
       </li>
-      <li><a href="#acknowledgements-contributors">Appendix E: Acknowledgements</a>
+      <li><a href="#acknowledgements-contributors">Appendix F: Acknowledgements</a>
         <ul class="toc">
-          <li><a href="#acknowledgements-Productions">E.1 Production Systems</a></li>
+          <li><a href="#acknowledgements-Productions">F.1 Production Systems</a></li>
         </ul>
       </li>
-      <li><a href="#references-role-references" class="references">Appendix F: References</a>
+      <li><a href="#references-role-references" class="references">Appendix G: References</a>
         <ul class="toc">
-          <li><a href="#references-References-Normative">F.1 Normative References</a></li>
-          <li><a href="#references-References-Informative">F.2 Informative References</a></li>
+          <li><a href="#references-References-Normative">G.1 Normative References</a></li>
+          <li><a href="#references-References-Informative">G.2 Informative References</a></li>
         </ul>
       </li>
     </ul>
@@ -2591,7 +2610,7 @@
                                                 in boolean altKeyArg, 
                                                 in boolean shiftKeyArg, 
                                                 in boolean metaKeyArg, 
-                                                in unsigned short buttonArg, 
+                                                in unsigned short buttonArg,										
                                                 in <a href="#events-EventTarget">EventTarget</a> relatedTargetArg);
   // Introduced in DOM Level 3:
   boolean                            <a href="#events-MouseEvent-getModifierState">getModifierState</a>(in DOMString keyArg);
@@ -6502,7 +6521,7 @@
             <td>Trident (Microsoft)</td>
           </tr>
           <tr>
-            <td><code>o</code>, <code>O</code><em class="issue" id="issue-50"><strong>Issue:</strong> is this correct?</em></td>
+            <td><code>o</code>, <code>O</code></td>
             <td>Presto (Opera Software)</td>
           </tr>
           <tr>
@@ -6513,11 +6532,442 @@
       </table>
       <br />
     </div>
+	<!-- div1 WebIDL -->
+    <div>
+      <h2><a id="webidl-definitions" href="#webidl-definitions">Appendix C: WebIDL Interface Definitions</a></h2>
+	  <p><em>This section is informative</em></p>
+      <p>The following definitions are [<a href="#references-webIDL">WebIDL</a>] implementations of the interfaces defined in this specification.</p>
+      	   
+      	   <!-- interface Event webIDL -->
+      	        <h3><a id="webidl-events-Event" href="#webidl-events-Event">Interface Event</a></h3>
+      	        <dl>
+      	        	<dt><strong>WebIDL Definition for the <a href="#interface-Event">interface Event</a></strong></dt>
+      	        <dd>
+                <pre class="idl" id="WEBidl-interface-Event"><code>
+// Introduced in DOM Level 2:
+interface <a href="#events-Event">Event</a> 
+{
+  // PhaseType
+  const unsigned short               <a href="#events-CAPTURING_PHASE">CAPTURING_PHASE</a>      = 1;
+  const unsigned short               <a href="#events-AT_TARGET">AT_TARGET</a>            = 2;
+  const unsigned short               <a href="#events-BUBBLING_PHASE">BUBBLING_PHASE</a>       = 3;
+
+  readonly attribute DOMString       <a href="#events-event-type-type">type</a>;
+  readonly attribute <a href="#events-EventTarget">EventTarget</a>     <a href="#events-event-type-target">target</a>;
+  readonly attribute <a href="#events-EventTarget">EventTarget</a>     <a href="#events-event-type-currentTarget">currentTarget</a>;
+  readonly attribute unsigned short  <a href="#events-event-type-eventPhase">eventPhase</a>;
+  readonly attribute boolean         <a href="#events-event-type-canBubble">bubbles</a>;
+  readonly attribute boolean         <a href="#events-event-type-canCancel">cancelable</a>;
+  readonly attribute DOMTimeStamp    <a href="#events-event-type-timeStamp">timeStamp</a>;
+
+  void                               <a href="#events-event-type-stopPropagation">stopPropagation</a>();
+  void                               <a href="#events-event-type-preventDefault">preventDefault</a>();
+  void                               <a href="#events-event-type-initEvent">initEvent</a>(in DOMString eventTypeArg, 
+                                               in boolean canBubbleArg, 
+                                               in boolean cancelableArg);
+  // Introduced in DOM Level 3:
+  void                               <a href="#events-event-type-stopImmediatePropagation">stopImmediatePropagation</a>();
+
+  readonly attribute boolean         <a href="#events-event-type-defaultPrevented">defaultPrevented</a>;
+  readonly attribute boolean         <a href="#events-event-type-isTrusted">isTrusted</a>;
+};
+                </code></pre>
+              </dd>
+      	        </dl>
+
+      	   <!-- interface CustomEvent webIDL -->
+      	        <h3><a id="webidl-events-CustomEvent" href="#webidl-events-CustomEvent">Interface CustomEvent</a></h3>
+      	        <dl>
+      	        	<dt><strong>WebIDL Definition for the <a href="#interface-CustomEvent">interface CustomEvent</a></strong></dt>
+      	        <dd>
+                <pre class="idl" id="WEBidl-interface-CustomEvent"><code>
+// Introduced in DOM Level 3:
+interface <a href="#events-CustomEvent">CustomEvent</a> : <a href="#events-Event">Event</a> 
+{
+  readonly any DOMObject         <a href="#events-CustomEvent-detail">detail</a>;
+  void               <a href="#events-event-type-initCustomEvent">initCustomEvent</a>(in DOMString typeArg, 
+                                     in boolean canBubbleArg, 
+                                     in boolean cancelableArg, 
+                                     in any detailArg);
+};
+                </code></pre>
+              </dd>
+      	        </dl>
+
+      	   <!-- interface EventTarget webIDL -->
+      	        <h3><a id="webidl-events-EventTarget" href="#webidl-events-EventTarget">Interface EventTarget</a></h3>
+      	        <dl>
+      	        	<dt><strong>WebIDL Definition for the <a href="#interface-EventTarget">interface EventTarget</a></strong></dt>
+      	        <dd>
+                <pre class="idl" id="WEBidl-interface-EventTarget"><code>
+// Introduced in DOM Level 2:
+[NoInterfaceObject]
+interface <a href="#events-EventTarget">EventTarget</a> 
+{
+  void               <a href="#events-EventTarget-addEventListener">addEventListener</a>(in DOMString type, 
+                                      in <a href="#events-EventListener">EventListener</a> listener, 
+                                      in <em>optional</em> boolean useCapture);
+  void               <a href="#events-EventTarget-removeEventListener">removeEventListener</a>(in DOMString type, 
+                                         in <a href="#events-EventListener">EventListener</a> listener, 
+                                         in <em>optional</em> boolean useCapture);
+  // Modified in DOM Level 3:
+  boolean            <a href="#events-EventTarget-dispatchEvent">dispatchEvent</a>(in <a href="#events-Event">Event</a> evt)
+                                   raises(<a href="#events-EventException">EventException</a>, 
+                                   DOMException);
+                                   
+};
+                </code></pre>
+              </dd>
+      	        </dl>
+
+      	   <!-- interface EventListener webIDL -->
+      	        <h3><a id="webidl-events-EventListener" href="#webidl-events-EventListener">Interface EventListener</a></h3>
+      	        <dl>
+      	        	<dt><strong>WebIDL Definition for the <a href="#interface-EventListener">interface EventListener</a></strong></dt>
+      	        <dd>
+                <pre class="idl" id="WEBidl-interface-EventListener"><code>
+// Introduced in DOM Level 2:
+[Callback]
+interface <a href="#events-EventListener">EventListener</a> 
+{
+  void               <a href="#events-EventListener-handleEvent">handleEvent</a>(in <a href="#events-Event">Event</a> evt);
+};
+                </code></pre>
+              </dd>
+      	        </dl>
+
+      	   <!-- Exception EventException webIDL -->
+      	        <h3><a id="webidl-events-EventException" href="#webidl-events-EventException">Exception EventException</a></h3>
+      	        <dl>
+      	        	<dt><strong>WebIDL Definition for the <a href="#events-EventException">exception EventException</a></strong></dt>
+      	        <dd>
+                <pre class="idl" id="WEBidl-interface-EventException"><code>
+// Introduced in DOM Level 2:
+exception <a href="#events-EventException">EventException</a> 
+{
+// EventExceptionCode
+                const unsigned short <a href="#events-UNSPECIFIED_EVENT_TYPE_ERR">UNSPECIFIED_EVENT_TYPE_ERR</a> = 0;
+// Introduced in DOM Level 3:
+                const unsigned short <a href="#events-DISPATCH_REQUEST_ERR">DISPATCH_REQUEST_ERR</a> = 1;
+
+                unsigned short code;
+}
+                </code></pre>
+              </dd>
+      	        </dl>
+
+      	   <!-- interface DocumentEvent webIDL -->
+      	        <h3><a id="webidl-events-DocumentEvent" href="#webidl-events-DocumentEvent">Interface DocumentEvent</a></h3>
+      	        <dl>
+      	        	<dt><strong>WebIDL Definition for the <a href="#interface-DocumentEvent">interface DocumentEvent</a></strong></dt>
+      	        <dd>
+                  <pre class="idl" id="WEBidl-interface-DocumentEvent"><code>
+// Introduced in DOM Level 2:
+[NoInterfaceObject]
+interface <a href="#events-DocumentEvent">DocumentEvent</a> 
+{
+  // Modified in DOM Level 3:
+  <a href="#events-Event">Event</a>                     <a href="#events-DocumentEvent-createEvent">createEvent</a>(in DOMString eventInterface)
+                                        raises(DOMException);
+};
+Document implements <a href="#events-DocumentEvent">DocumentEvent</a>;
+                  </code></pre>
+              </dd>
+      	        </dl>
+
+      	   <!-- interface UIEvent webIDL -->
+      	        <h3><a id="webidl-events-UIEvent" href="#webidl-events-UIEvent">Interface UIEvent</a></h3>
+      	        <dl>
+      	        	<dt><strong>WebIDL Definition for the <a href="#events-UIEvent">interface UIEvent</a></strong></dt>
+      	        <dd>
+                <pre class="idl" id="WEBidl-interface-UIEvent"><code>
+// Introduced in DOM Level 2:
+interface <a href="#events-UIEvent">UIEvent</a> : <a href="#events-Event">Event</a> 
+{
+  readonly attribute AbstractView <a href="#events-UIEvent-view">view</a>;
+  readonly attribute long	<a href="#events-UIEvent-detail">detail</a>;
+
+  void                               <a href="#events-event-type-initUIEvent">initUIEvent</a>(in DOMString typeArg, 
+                                                 in boolean canBubbleArg, 
+                                                 in boolean cancelableArg, 
+                                                 in AbstractView viewArg, 
+                                                 in long detailArg);
+};
+                </code></pre>
+              </dd>
+      	        </dl>
+
+      	   <!-- interface FocusEvent webIDL -->
+      	        <h3><a id="webidl-events-FocusEvent" href="#webidl-events-FocusEvent">Interface FocusEvent</a></h3>
+      	        <dl>
+      	        	<dt><strong>WebIDL Definition for the <a href="#events-FocusEvent">interface FocusEvent</a></strong></dt>
+	      	        <dd>
+	                <pre class="idl" id="WEBidl-interface-FocusEvent"><code>
+// Introduced in DOM Level 3:
+interface <a href="#events-FocusEvent">FocusEvent</a> : <a href="#events-UIEvent">UIEvent</a> 
+{
+  readonly attribute <a href="#events-EventTarget">EventTarget</a>   <a href="#events-FocusEvent-relatedTarget">relatedTarget</a>;
+
+  void                             <a href="#events-event-type-initFocusEvent">initFocusEvent</a>(in DOMString typeArg, 
+												  in boolean canBubbleArg, 
+												  in boolean cancelableArg, 
+												  in AbstractView viewArg, 
+												  in long detailArg, 
+												  in <a href="#events-EventTarget">EventTarget</a> relatedTargetArg);
+};
+	                </code></pre>
+	                </dd>
+	            </dl>
+
+
+      	   <!-- interface MouseEvent webIDL -->
+      	        <h2><a id="webidl-events-MouseEvent" href="#webidl-events-MouseEvent">Interface MouseEvent</a></h2>
+      	        <dl>
+      	        	<dt><strong>WebIDL Definition for the <a href="#events-MouseEvent">interface MouseEvent</a></strong></dt>
+      	        <dd>
+              <pre class="idl" id="WEBidl-interface-MouseEvent"><code>
+// Modified in DOM Level 3:
+interface <a href="#events-MouseEvent">MouseEvent</a> : <a href="#events-UIEvent">UIEvent</a> 
+{
+  readonly attribute long            <a href="#events-MouseEvent-screenX">screenX</a>;
+  readonly attribute long            <a href="#events-MouseEvent-screenY">screenY</a>;
+  readonly attribute long            <a href="#events-MouseEvent-clientX">clientX</a>;
+  readonly attribute long            <a href="#events-MouseEvent-clientY">clientY</a>;
+  readonly attribute boolean         <a href="#events-MouseEvent-ctrlKey">ctrlKey</a>;
+  readonly attribute boolean         <a href="#events-MouseEvent-shiftKey">shiftKey</a>;
+  readonly attribute boolean         <a href="#events-MouseEvent-altKey">altKey</a>;
+  readonly attribute boolean         <a href="#events-MouseEvent-metaKey">metaKey</a>;
+  readonly attribute unsigned short  <a href="#events-MouseEvent-button">button</a>;  
+  readonly attribute unsigned short  <a href="#events-MouseEvent-buttons">buttons</a>;
+  readonly attribute                 <a href="#events-EventTarget">EventTarget</a>     <a href="#events-MouseEvent-relatedTarget">relatedTarget</a>;
+
+  void                               <a href="#events-event-type-initMouseEvent">initMouseEvent</a>(in DOMString typeArg, 
+                                                in boolean canBubbleArg, 
+                                                in boolean cancelableArg, 
+                                                in AbstractView viewArg, 
+                                                in long detailArg, 
+                                                in long screenXArg, 
+                                                in long screenYArg, 
+                                                in long clientXArg, 
+                                                in long clientYArg, 
+                                                in boolean ctrlKeyArg, 
+                                                in boolean altKeyArg, 
+                                                in boolean shiftKeyArg, 
+                                                in boolean metaKeyArg, 
+                                                in unsigned short buttonArg,
+                                                in <a href="#events-EventTarget">EventTarget</a> relatedTargetArg);
+
+  // Introduced in DOM Level 3:
+  boolean                            <a href="#events-MouseEvent-getModifierState">getModifierState</a>(in DOMString keyArg);
+};
+              </code></pre>
+              </dd>
+      	        </dl>
+
+      	   <!-- interface WheelEvent webIDL -->
+      	        <h3><a id="webidl-events-WheelEvent" href="#webidl-events-WheelEvent">Interface WheelEvent</a></h3>
+      	        <dl>
+      	        	<dt><strong>WebIDL Definition for the <a href="#events-WheelEvent">interface WheelEvent</a></strong></dt>
+      	        <dd>
+              <pre class="idl" id="WEBidl-interface-WheelEvent"><code>
+// Introduced in DOM Level 3:
+interface <a href="#events-WheelEvent">WheelEvent</a> : <a href="#events-MouseEvent">MouseEvent</a> 
+{
+  // DeltaModeCode
+  const unsigned long                <a href="#events-DOM_DELTA_PIXEL">DOM_DELTA_PIXEL</a>       = 0x00;
+  const unsigned long                <a href="#events-DOM_DELTA_LINE">DOM_DELTA_LINE</a>        = 0x01;
+  const unsigned long                <a href="#events-DOM_DELTA_PAGE">DOM_DELTA_PAGE</a>        = 0x02;
+
+  readonly attribute float            <a href="#events-WheelEvent-deltaX">deltaX</a>;
+  readonly attribute float            <a href="#events-WheelEvent-deltaY">deltaY</a>;
+  readonly attribute float            <a href="#events-WheelEvent-deltaZ">deltaZ</a>;
+  readonly attribute unsigned long   <a href="#events-WheelEvent-deltaMode">deltaMode</a>;
+
+  void                               <a href="#events-event-type-initWheelEvent">initWheelEvent</a>(in DOMString typeArg, 
+                                                    in boolean canBubbleArg, 
+                                                    in boolean cancelableArg, 
+                                                    in AbstractView viewArg, 
+                                                    in long detailArg, 
+                                                    in long screenXArg, 
+                                                    in long screenYArg, 
+                                                    in long clientXArg, 
+                                                    in long clientYArg, 
+                                                    in unsigned short buttonArg, 
+                                                    in <a href="#events-EventTarget">EventTarget</a> relatedTargetArg, 
+                                                    in DOMString modifiersListArg, 
+                                                    in float deltaXArg, 
+                                                    in float deltaYArg, 
+                                                    in float deltaZArg, 
+                                                    in unsigned long deltaMode);
+};
+              </code></pre>
+              </dd>
+      	        </dl>
+
+      	   <!-- interface TextEvent webIDL -->
+      	        <h3><a id="webidl-events-TextEvent" href="#webidl-events-TextEvent">Interface TextEvent</a></h3>
+      	        <dl>
+      	        	<dt><strong>WebIDL Definition for the <a href="#events-TextEvent">interface TextEvent</a></strong></dt>
+      	        <dd>
+                <pre class="idl" id="WEBidl-interface-TextEvent"><code>
+// Introduced in DOM Level 3:
+interface <a href="#events-TextEvent">TextEvent</a> : <a href="#events-UIEvent">UIEvent</a> 
+{
+  // InputMethodCode
+  const unsigned long                <a href="#events-DOM_INPUT_METHOD_UNKNOWN">DOM_INPUT_METHOD_UNKNOWN</a>       = 0x00;
+  const unsigned long                <a href="#events-DOM_INPUT_METHOD_KEYBOARD">DOM_INPUT_METHOD_KEYBOARD</a>      = 0x01;
+  const unsigned long                <a href="#events-DOM_INPUT_METHOD_PASTE">DOM_INPUT_METHOD_PASTE</a>         = 0x02;
+  const unsigned long                <a href="#events-DOM_INPUT_METHOD_DROP">DOM_INPUT_METHOD_DROP</a>          = 0x03;
+  const unsigned long                <a href="#events-DOM_INPUT_METHOD_IME">DOM_INPUT_METHOD_IME</a>           = 0x04;
+  const unsigned long                <a href="#events-DOM_INPUT_METHOD_OPTION">DOM_INPUT_METHOD_OPTION</a>        = 0x05;
+  const unsigned long                <a href="#events-DOM_INPUT_METHOD_HANDWRITING">DOM_INPUT_METHOD_HANDWRITING</a>   = 0x06;
+  const unsigned long                <a href="#events-DOM_INPUT_METHOD_VOICE">DOM_INPUT_METHOD_VOICE</a>         = 0x07;
+  const unsigned long                <a href="#events-DOM_INPUT_METHOD_MULTIMODAL">DOM_INPUT_METHOD_MULTIMODAL</a>    = 0x08;
+  const unsigned long                <a href="#events-DOM_INPUT_METHOD_SCRIPT">DOM_INPUT_METHOD_SCRIPT</a>        = 0x09;
+
+  readonly attribute DOMString       <a href="#events-TextEvent-data">data</a>;
+  readonly attribute unsigned long   <a href="#events-TextEvent-inputMethod">inputMethod</a>;  
+  readonly attribute DOMString       <a href="#events-TextEvent-locale">locale</a>;
+
+  void                               <a href="#events-event-type-initTextEvent">initTextEvent</a>(in DOMString typeArg, 
+                                                   in boolean canBubbleArg, 
+                                                   in boolean cancelableArg, 
+                                                   in AbstractView viewArg, 
+                                                   in DOMString dataArg, 
+                                                   in unsigned long inputMethod, 
+                                                   in DOMString localeArg);
+};
+                </code></pre>
+              </dd>
+      	        </dl>
+
+      	   <!-- interface KeyboardEvent webIDL -->
+      	        <h3><a id="webidl-events-KeyboardEvent" href="#webidl-events-KeyboardEvent">Interface KeyboardEvent</a></h3>
+      	        <dl>
+      	        	<dt><strong>WebIDL Definition for the <a href="#events-KeyboardEvent">interface KeyboardEvent</a></strong></dt>
+      	        <dd>
+                <pre class="idl" id="WEBidl-interface-KeyboardEvent"><code>
+// Introduced in DOM Level 3:
+interface <a href="#events-KeyboardEvent">KeyboardEvent</a> : <a href="#events-UIEvent">UIEvent</a> 
+{
+  // KeyLocationCode
+  const unsigned long                <a href="#events-DOM_KEY_LOCATION_STANDARD">DOM_KEY_LOCATION_STANDARD</a>      = 0x00;
+  const unsigned long                <a href="#events-DOM_KEY_LOCATION_LEFT">DOM_KEY_LOCATION_LEFT</a>          = 0x01;
+  const unsigned long                <a href="#events-DOM_KEY_LOCATION_RIGHT">DOM_KEY_LOCATION_RIGHT</a>         = 0x02;
+  const unsigned long                <a href="#events-DOM_KEY_LOCATION_NUMPAD">DOM_KEY_LOCATION_NUMPAD</a>        = 0x03;
+  const unsigned long                <a href="#events-DOM_KEY_LOCATION_MOBILE">DOM_KEY_LOCATION_MOBILE</a>        = 0x04;
+  const unsigned long                <a href="#events-DOM_KEY_LOCATION_JOYSTICK">DOM_KEY_LOCATION_JOYSTICK</a>      = 0x05;
+
+  readonly attribute DOMString       <a href="#events-KeyboardEvent-char">char</a>;
+  readonly attribute DOMString       <a href="#events-KeyboardEvent-key">key</a>;
+  readonly attribute unsigned long   <a href="#events-KeyboardEvent-location">location</a>;
+  readonly attribute boolean         <a href="#events-KeyboardEvent-ctrlKey">ctrlKey</a>;
+  readonly attribute boolean         <a href="#events-KeyboardEvent-shiftKey">shiftKey</a>;
+  readonly attribute boolean         <a href="#events-KeyboardEvent-altKey">altKey</a>;
+  readonly attribute boolean         <a href="#events-KeyboardEvent-metaKey">metaKey</a>;
+  readonly attribute boolean         <a href="#events-KeyboardEvent-repeat">repeat</a>;
+  readonly attribute DOMString       <a href="#events-KeyboardEvent-locale">locale</a>;
+
+  boolean                            <a href="#events-KeyboardEvent-getModifierState">getModifierState</a>(in DOMString keyArg);
+  void                               <a href="#events-KeyboardEvent-initKeyboardEvent">initKeyboardEvent</a>(in DOMString typeArg, 
+                                                       in boolean canBubbleArg, 
+                                                       in boolean cancelableArg, 
+                                                       in AbstractView viewArg, 
+                                                       in DOMString charArg, 
+                                                       in DOMString keyArg, 
+                                                       in unsigned long locationArg, 
+                                                       in DOMString modifiersListArg,
+                                                       in boolean repeat,
+                                                       in DOMString localeArg); 
+};
+                </code></pre>
+              </dd>
+      	        </dl>
+
+      	   <!-- interface CompositionEvent webIDL -->
+      	        <h3><a id="webidl-events-CompositionEvent" href="#webidl-events-CompositionEvent">Interface CompositionEvent</a></h3>
+      	        <dl>
+      	        	<dt><strong>WebIDL Definition for the <a href="#events-CompositionEvent">interface CompositionEvent</a></strong></dt>
+      	        <dd>
+                <pre class="idl" id="WEBidl-interface-CompositionEvent"><code>
+// Introduced in DOM Level 3:
+interface <a href="#events-CompositionEvent">CompositionEvent</a> : <a href="#events-UIEvent">UIEvent</a> 
+{
+  readonly attribute DOMString       <a href="#events-CompositionEvent-data">data</a>;
+  readonly attribute DOMString       <a href="#events-CompositionEvent-locale">locale</a>;
+
+  void                               <a href="#events-event-type-initCompositionEvent">initCompositionEvent</a>(in DOMString typeArg, 
+                                                          in boolean canBubbleArg, 
+                                                          in boolean cancelableArg, 
+                                                          in AbstractView viewArg, 
+                                                          in DOMString dataArg,
+                                                          in DOMString localeArg);
+};
+                </code></pre>
+              </dd>
+      	        </dl>
+
+      	   <!-- interface MutationEvent webIDL -->
+      	        <h3><a id="webidl-events-MutationEvent" href="#webidl-events-MutationEvent">Interface MutationEvent</a></h3>
+      	        <dl>
+      	        	<dt><strong>WebIDL Definition for the <a href="#events-MutationEvent">interface MutationEvent</a></strong></dt>
+      	        <dd>
+                <pre class="idl" id="WEBidl-interface-MutationEvent"><code>
+// Introduced in DOM Level 2:
+interface <a href="#events-MutationEvent">MutationEvent</a> : <a href="#events-Event">Event</a> 
+{
+  // attrChangeType
+  const unsigned short      <a href="#events-MODIFICATION">MODIFICATION</a>                   = 1;
+  const unsigned short      <a href="#events-ADDITION">ADDITION</a>                       = 2;
+  const unsigned short      <a href="#events-REMOVAL">REMOVAL</a>                        = 3;
+
+  readonly attribute Node            <a href="#events-MutationEvent-relatedNode">relatedNode</a>;
+  readonly attribute DOMString       <a href="#events-MutationEvent-prevValue">prevValue</a>;
+  readonly attribute DOMString       <a href="#events-MutationEvent-newValue">newValue</a>;
+  readonly attribute DOMString       <a href="#events-MutationEvent-attrName">attrName</a>;
+  readonly attribute unsigned short  <a href="#events-MutationEvent-attrChange">attrChange</a>;
+
+  void               <a href="#events-event-type-initMutationEvent">initMutationEvent</a>(in DOMString typeArg, 
+                                       in boolean canBubbleArg, 
+                                       in boolean cancelableArg, 
+                                       in Node relatedNodeArg, 
+                                       in DOMString prevValueArg, 
+                                       in DOMString newValueArg, 
+                                       in DOMString attrNameArg, 
+                                       in unsigned short attrChangeArg);
+};
+                </code></pre>
+              </dd>
+      	        </dl>
+
+
+      	   <!-- interface MutationNameEvent webIDL -->
+      	        <h3><a id="webidl-events-MutationNameEvent" href="#webidl-events-MutationNameEvent">Interface MutationNameEvent</a></h3>
+      	        <dl>
+      	        	<dt><strong>WebIDL Definition for the <a href="#events-MutationNameEvent">interface MutationNameEvent</a></strong></dt>
+      	        <dd>
+                <pre class="idl" id="WEBidl-interface-MutationNameEvent"><code>
+// Introduced in DOM Level 3:
+interface <a href="#events-MutationNameEvent">MutationNameEvent</a> : <a href="#events-MutationEvent">MutationEvent</a> 
+{
+  readonly attribute DOMString       <a href="#events-MutationNameEvent-prevNamespaceURI">prevNamespaceURI</a>;
+  readonly attribute DOMString       <a href="#events-MutationNameEvent-prevNodeName">prevNodeName</a>;
+
+  // Introduced in DOM Level 3:
+  void                               <a href="#events-event-type-initMutationNameEvent">initMutationNameEvent</a>(in DOMString typeArg, 
+                                                           in boolean canBubbleArg, 
+                                                           in boolean cancelableArg, 
+                                                           in Node relatedNodeArg, 
+                                                           in DOMString prevNamespaceURIArg, 
+                                                           in DOMString prevNodeNameArg);
+};
+                </code></pre>
+              </dd>
+	        </dl>
+      </div>
 <!-- div1 Events -->
-
-
     <div>
-      <h2><a id="security-considerations-Security" href="#security-considerations-Security">Appendix B: Security Considerations</a></h2>
+      <h2><a id="security-considerations-Security" href="#security-considerations-Security">Appendix D: Security Considerations</a></h2>
 
       <p class="1st">This appendix discusses security considerations for DOM Level 3 Events implementations. The discussion is limited to security issues that arise directly from implementation of the event model, APIs and events defined in this specification. Implementations typically support other features like scripting languages, other APIs and additional events not defined in this document; these features constitute an unknown factor and are out of scope of this document. Implementers should consult the specifications of such features for their respective security considerations.</p>
       <p>Many of the event types defined in this specification are dispatched in response to user actions. This allows malicious event listeners to gain access to information users would typically consider confidential, e.g., typos they might have made when filling out a form, if they reconsider their answer to a multiple choice question shortly before submitting a form, their typing rate or primary input mechanism. In the worst case, malicious event listeners are able to capture all user interactions and submit them to a third party through means, while not defined in DOM Level 3 Events, generally available in DOM implementations, such as the XMLHttpRequest interface.</p>
@@ -6529,14 +6979,14 @@
 
     
     <div>
-      <h2><a id="changes-Changes" href="#changes-Changes">Appendix D: Changes</a></h2>
+      <h2><a id="changes-Changes" href="#changes-Changes">Appendix E: Changes</a></h2>
 
       <div>
-        <h3><a id="changes-DOMEvents2to3Changes" href="#changes-DOMEvents2to3Changes">D.1 Changes between DOM Level 2 Events and DOM Level 3 Events</a></h3>
+        <h3><a id="changes-DOMEvents2to3Changes" href="#changes-DOMEvents2to3Changes">E.1 Changes between DOM Level 2 Events and DOM Level 3 Events</a></h3>
 
         <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-UIEvent"><code>UIEvent</code></a> module, the event type <code>dblclick</code> has been added to the <a href="#events-MouseEvent"><code>MouseEvent</code></a> module. This new specification provides a better separation between the DOM event flow, the event types, and the DOM interfaces.</p>
         <div>
-          <h4><a id="changes-DOMEvents2to3Changes-flow" href="#changes-DOMEvents2to3Changes-flow">D.1.1 Changes to DOM Level 2 event flow</a></h4>
+          <h4><a id="changes-DOMEvents2to3Changes-flow" href="#changes-DOMEvents2to3Changes-flow">E.1.1 Changes to DOM Level 2 event flow</a></h4>
 
           <p>This new specification introduced the following new concepts in the event flow:</p>
           <ul>
@@ -6547,7 +6997,7 @@
 <!-- div3 DOMEvents2to3Changes-flow -->
         <div>
           
-        <h4><a id="changes-DOMEvents2to3Changes-event-types" href="#changes-DOMEvents2to3Changes-event-types">D.1.2 Changes to DOM Level 2 event types</a></h4>
+        <h4><a id="changes-DOMEvents2to3Changes-event-types" href="#changes-DOMEvents2to3Changes-event-types">E.1.2 Changes to DOM Level 2 event types</a></h4>
 
           <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 for 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>
@@ -6557,7 +7007,7 @@
 <!-- div3 DOMEvents2to3Changes-event-types -->
         <div>
           
-          <h4><a id="changes-DOMLevel2to3Changes" href="#changes-DOMLevel2to3Changes">D.1.3 Changes to DOM Level 2 Events interfaces</a></h4>
+          <h4><a id="changes-DOMLevel2to3Changes" href="#changes-DOMLevel2to3Changes">E.1.3 Changes to DOM Level 2 Events interfaces</a></h4>
 
           <dl>
             <dt>Interface <a href="#events-Event"><code>Event</code></a></dt>
@@ -6584,7 +7034,7 @@
         </div>
 <!-- div3 DOMLevel2to3Changes -->
         <div>
-          <h3><a id="changes-DOMLevel3Addons" href="#changes-DOMLevel3Addons">D.1.4 New Interfaces</a></h3>
+          <h3><a id="changes-DOMLevel3Addons" href="#changes-DOMLevel3Addons">E.1.4 New Interfaces</a></h3>
 
           <p>The interfaces <a href="#events-CustomEvent"><code>CustomEvent</code></a>, <a href="#events-FocusEvent"><code>FocusEvent</code></a>, <a href="#events-TextEvent"><code>TextEvent</code></a>, <a href="#events-KeyboardEvent"><code>KeyboardEvent</code></a>, <a href="#events-CompositionEvent"><code>CompositionEvent</code></a>, <a href="#events-MutationNameEvent"><code>MutationNameEvent</code></a>, and <a href="#events-WheelEvent"><code>WheelEvent</code></a> were added to the Events module.</p>
         </div>
@@ -6592,7 +7042,7 @@
       </div>
 <!-- div2 DOMEvents2to3Changes -->
       <div>
-        <h2><a id="changes-drafts" href="#changes-drafts">D.2 Changes between different drafts of DOM Level 3 Events</a></h2>
+        <h2><a id="changes-drafts" href="#changes-drafts">E.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>
@@ -6609,7 +7059,7 @@
 
 
     <div>
-      <h2><a id="acknowledgements-contributors" href="#acknowledgements-contributors">Appendix E: Acknowledgements</a></h2>
+      <h2><a id="acknowledgements-contributors" href="#acknowledgements-contributors">Appendix F: Acknowledgements</a></h2>
 
       <p class="1st">Many people contributed to the DOM specifications (Level 1, 2 or 3), including participants of the DOM Working Group, the DOM Interest Group,the WebAPI Working Group, and the WebApps Working Group. We especially thank the following:</p>
       <p>Andrew Watson (Object Management Group), Andy Heninger (IBM), Angel Diaz (IBM), Arnaud Le Hors (W3C and IBM), Ashok Malhotra (IBM and Microsoft), Ben Chang (Oracle), Bill Smith (Sun), Bill Shea (Merrill Lynch), Bob Sutor (IBM), Chris Lovett (Microsoft), Chris Wilson (Microsoft), David Brownell (Sun), David Ezell (Hewlett-Packard Company), David Singer (IBM), Dimitris Dimitriadis (Improve AB and invited expert), Don Park (invited), Elena Litani (IBM), Eric Vasilik (Microsoft), Gavin Nicol (INSO), Ian Jacobs (W3C), James Clark (invited), James Davidson (Sun), Jared Sorensen (Novell), Jeroen van Rotterdam (X-Hive Corporation), Joe Kesselman (IBM), Joe Lapp (webMethods), Joe Marini (Macromedia), Johnny Stenback (Netscape/AOL), Jon Ferraiolo (Adobe), Jonathan Marsh (Microsoft), Jonathan Robie (Texcel Research and Software AG), Kim Adamson-Sharpe (SoftQuad Software Inc.), Lauren Wood (SoftQuad Software Inc., <em>former Chair</em>), Laurence Cable (Sun), Mark Davis (IBM), Mark Scardina (Oracle), Martin D&#xFC;rst (W3C), Mary Brady (NIST), Mick Goulish (Software AG), Mike Champion (Arbortext and Software AG), Miles Sabin (Cromwell Media), Patti Lutsky (Arbortext), Paul Grosso (Arbortext), Peter Sharpe (SoftQuad Software Inc.), Phil Karlton (Netscape), Philippe Le H&#xE9;garet (W3C, <em>W3C Team Contact and former Chair</em>), Ramesh Lekshmynarayanan (Merrill Lynch), Ray Whitmer (iMall, [email protected], and Netscape/AOL, <em>Chair</em>), Rezaur Rahman (Intel), Rich Rollman (Microsoft), Rick Gessner (Netscape), Rick Jelliffe (invited), Rob Relyea (Microsoft), Scott Isaacs (Microsoft), Sharon Adler (INSO), Steve Byrne (JavaSoft), Tim Bray (invited), Tim Yu (Oracle), Tom Pixley (Netscape/AOL), Vidur Apparao (Netscape), Vinod Anupam (Lucent), Anne van Kesteren (Opera Software), Arun Ranganathan (AOL), Bj&#xF6;rn H&#xF6;hrmann, Charles McCathieNevile (Opera Software, <em>Co-Chair</em>), Christophe Jolif (ILOG), Dean Jackson (W3C, <em>W3C Team Contact</em>), Doug Schepers (Vectoreal), Gorm Haug Eriksen (Opera Software), Ian Davis (Talis Information Limited), Ian Hickson (Google), John Robinson (AOL), Jonas Sicking (Mozilla Foundation), Luca Mascaro (HTML Writers Guild), Maciej Stachowiak (Apple Computer), Marc Hadley (Sun Microsystems), Michael Shenfield (Research In Motion), Robin Berjon, (Expway, <em>Co-Chair</em>) , Scott Hayman (Research In Motion), St&#xE9;phane Sire (IntuiLab), and T.V. Raman (Google).</p>
@@ -6624,7 +7074,7 @@
       <p>Thanks to all those who have helped to improve this specification by sending suggestions and corrections (please, keep bugging us with your issues!), or writing informative books or Web sites:  Brad Pettit, Dylan Schiemann, David Flanagan, Steven Pemberton, Curt Arnold, Al Gilman, Misha Wolf, Sigurd Lerstad, Michael B. Allen, Alexander J. Vincent, Martin D&#xFC;rst, Ken Rehor, NAKANO Masayuki, Garrett Smith, Sergey Ilinsky, Martijn Wargers, Sean Hogan, Magnus Kristiansen, Alex Russell, Jorge Chamorro, Peter-Paul Koch, William Edney, Erik Arvidsson, Cameron McCormack, Kazuyuki Ashimura, Øistein E. Andersen, James Su, Tony Chang, Ojan Vafai, Richard Ishida, Paul Irish, Mike Taylor, Oliver Hunt, Alexey Proskuryakov, and Jan Goyvaerts (regular-expressions.info).</p>
 
       <div>
-        <h3><a id="acknowledgements-Productions" href="#acknowledgements-Productions">E.1 Production Systems</a></h3>
+        <h3><a id="acknowledgements-Productions" href="#acknowledgements-Productions">F.1 Production Systems</a></h3>
 
         <p>The current drafts of this specification are lovingly hand-crafted in HTML and SVG.</p>
         <p>Earlier versions of this specification were written in XML; the HTML, OMG IDL, Java and ECMAScript bindings were all produced automatically.  Thanks to Joe English, author of <a class="normative" href="http://www.flightlab.com/cost">cost</a>, which was used as the basis for producing DOM Level 1. Thanks also to Gavin Nicol, who wrote the scripts which run on top of cost. Arnaud Le Hors and Philippe Le H&#xE9;garet maintained the scripts.</p>
@@ -6637,7 +7087,7 @@
     
     <div id="references-References">
       <h2 class="references">
-        <a id="references-role-references" href="#references-role-references">Appendix F: References</a>
+        <a id="references-role-references" href="#references-role-references">Appendix G: References</a>
       </h2>
       <p class="1st">For the latest version of any W3C specification please consult the list of <a class="normative" href="http://www.w3.org/TR">W3C Technical Reports</a> available at http://www.w3.org/TR.</p>
       <div>
@@ -6697,9 +7147,9 @@
         </dl>
       </div>
       
-<!-- div2 References-Normative -->
+<!-- div2 References-Informative -->
       <div>
-        <h3><a id="references-References-Informative" href="#references-References-Informative">F.2 Informative References</a></h3>
+        <h3><a id="references-References-Informative" href="#references-References-Informative">G.2 Informative References</a></h3>
 
         <dl>
           <dt id="ref-ARIA">
@@ -6817,9 +7267,15 @@
             World Wide Web Consortium, <span class="wip">work in progress</span>, 8 March 2010.  
             This version of the UAAG 2.0 specfication is http://www.w3.org/WAI/UA/2010/ED-UAAG20-20100308/. The <a class="normative" href="http://www.w3.org/TR/UAAG20/">latest version of UAAG 2.0</a> is available at http://www.w3.org/TR/UAAG20/.
           </dd>
-
-          <dt id="ref-WIN1252"><strong>[<a id="WIN1252">WIN1252</a>]</strong>Windows 1252</dt>
-          <dd><cite>S Steele. Unicode, Microsoft, 1998. cp1252 to Unicode table. Available at <a href="http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1252.TXT">http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1252.TXT</a></cite></dd>
+          <dt id="references-WebIDL">
+            <strong class="WebIDL">[Web IDL]</strong>
+          </dt>
+          <dd><cite class="w3cwd"><a href="http://www.w3.org/TR/2010/WD-WebIDL-20101021/">Web IDL</a></cite>,
+            C. McCormack, editor.
+            World Wide Web Consortium, <span class="wip">work in progress</span>, 21 October 2010.
+            <br />This edition of Web IDL is http://www.w3.org/TR/2010/WD-WebIDL-20101021/.
+            <br />The <a href="http://www.w3.org/TR/WebIDL/">latest edition of Web IDL</a> is available at http://www.w3.org/TR/WebIDL/.
+          </dd>
 
           <dt>
             <strong>[<a id="references-XML">XML 1.0</a>]</strong>