Fixes several bugs:
authortleithea
Sat, 07 Apr 2012 09:27:15 +0900
changeset 361 3f4525160ebb
parent 360 9e08e2c8b3d4
child 362 f3b7f6d78b2d
Fixes several bugs:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=16339
https://www.w3.org/Bugs/Public/show_bug.cgi?id=16352
https://www.w3.org/Bugs/Public/show_bug.cgi?id=16354
https://www.w3.org/Bugs/Public/show_bug.cgi?id=16357 (Deprecation of init* methods)
https://www.w3.org/Bugs/Public/show_bug.cgi?id=16443
https://www.w3.org/Bugs/Public/show_bug.cgi?id=16506
html/DOM3-Events.html
--- a/html/DOM3-Events.html	Wed Mar 21 09:00:37 2012 +0900
+++ b/html/DOM3-Events.html	Sat Apr 07 09:27:15 2012 +0900
@@ -25,16 +25,16 @@
       </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="2012-03-20">20 March 2012</span></h2>
+      <h2 id="Overview-W3C-doctype">W3C Editor's Draft <span class="2012-04-06">06 April 2012</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.218">http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.218</a></dd>
+        <dd><a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.219">http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.219</a></dd>
 
         <dt>Latest stable version:</dt>
         <dd><a href="http://www.w3.org/TR/DOM-Level-3-Events">http://www.w3.org/TR/DOM-Level-3-Events</a></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.217">http://dev.w3.org/cvsweb/~checkout~/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.217</a></dd>
+        <dd><a href="http://dev.w3.org/cvsweb/~checkout~/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.218">http://dev.w3.org/cvsweb/~checkout~/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.218</a></dd>
 
         <dt>Editor's Draft:</dt>
         <dd><a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html">http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html</a></dd>
@@ -53,10 +53,10 @@
       </dl>
       <dl>
         <dt>Editors:</dt>
-        <dd>Doug Schepers, <em>W3C</em></dd>
-		<dd>Jacob Rossi, <em>Microsoft</em></dd>
         <dd>Travis Leithead, <em>Microsoft</em></dd>
+        <dd>Jacob Rossi, <em>Microsoft</em></dd>
 	    <dd><br/></dd>
+        <dd>Doug Schepers, <em>W3C (until 2011)</em></dd>
         <dd>Bj&#xF6;rn H&#xF6;hrmann, <em>Invited Expert (until December 2007)</em></dd>
         <dd>Philippe Le H&#xE9;garet, <em>W3C (until November 2003)</em></dd>
         <dd>Tom Pixley, <em>Netscape Communications Corporation (until July 2002)</em></dd>
@@ -368,17 +368,36 @@
             described in <a href="http://www.ietf.org/rfc/rfc2119.txt">RFC 2119</a>
             [<a href="#ref-rfc2119">RFC2119</a>].
             However, for readability, these words do not necessarily appear in uppercase in this specification.</p>
-          <p>This specification is to be understood in the context of the DOM Level 3 Core specification [<cite><a class="normative" href="#references-DOMCore">DOM3 Core</a></cite>] and the general considerations for DOM implementations apply. For example, behavior in exceptional circumstances (such as when a <code>null</code> argument is passed when <code>null</code> was not expected) is discussed under <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-17189187"><em>DOMException</em></a>, and handling of <a class="def" href="#glossary-namespaceURI">namespace URIs</a> is discussed in <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#Namespaces-Considerations"><em>XML Namespaces</em></a>. For additional information about <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/introduction.html#ID-Conformance"><em>conformance</em></a>, please see the DOM Level 3 Core specification [<cite><a class="normative" href="#references-DOMCore">DOM3 Core</a></cite>].  A <a class="def" href="#glossary-user-agent">user agent</a> is not required to conform to the entirety of another specification in order to conform to this specification, but it must conform to the specific parts of any other specification which are called out in this specification (e.g., a conforming DOM3 Events <a class="def" href="#glossary-user-agent">user agent</a> must support the <code>DOMString</code> data type as defined in DOM3 Core, but need not support every method or data type defined in DOM3 Core in order to conform to DOM3 Events).</p>
+          <p>This specification is to be understood in the context of the DOM Level 3 Core specification [<cite><a class="normative" href="#references-DOMCore">DOM3 Core</a></cite>] and 
+              the general considerations for DOM implementations apply. For example, handling of <a class="def" href="#glossary-namespaceURI">namespace URIs</a> is discussed in 
+              <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#Namespaces-Considerations"><em>XML Namespaces</em></a>. For additional information about 
+              <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/introduction.html#ID-Conformance"><em>conformance</em></a>, please see the DOM Level 3 Core specification 
+              [<cite><a class="normative" href="#references-DOMCore">DOM3 Core</a></cite>].  A <a class="def" href="#glossary-user-agent">user agent</a> is not required to conform to the 
+              entirety of another specification in order to conform to this specification, but it must conform to the specific parts of any other specification which are called out in this 
+              specification (e.g., a conforming DOM3 Events <a class="def" href="#glossary-user-agent">user agent</a> must support the <code>DOMString</code> data type as defined in 
+              <a href="#references-WebIDL">Web IDL</a>, but need not support every method or data type defined in <a href="#references-WebIDL">Web IDL</a> in order to conform to DOM3 Events).</p>
           <p>This specification defines several classes of conformance for different <a class="def" href="#glossary-user-agent">user agents</a>, specifications, and content authors:</p>
           <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 <q>browser</q> (be it a Web browser, AT (Accessibility Technology) application, or other similar program), conforms to DOM Level 3 Events if it supports the Core module defined in [<cite><a class="normative" href="#references-DOMCore">DOM3 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>, and the complete set of <a class="def" href="#glossary-character-value">character values</a> and <a class="def" href="#glossary-key-value">key values</a> in the <a href="#key-values">Key Values Set</a> (subject to platform availability), 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-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 <q>browser</q> (be it a Web browser, AT (Accessibility Technology) 
+                  application, or other similar program), conforms to DOM Level 3 Events if it supports the Core module defined in [<cite><a class="normative" href="#references-DOMCore">DOM3 
+                  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 with the exception of those marked as <a class="def" href="#glossary-deprecated">deprecated</a> (a conforming 
+                  user agent may implement the deprecated interfaces, events, or APIs for backwards compatibility, but is not required to do so in order to be conforming), and the complete set of 
+                  <a class="def" href="#glossary-character-value">character values</a> and <a class="def" href="#glossary-key-value">key values</a> in the <a href="#key-values">Key Values Set</a>
+                  (subject to platform availability), 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-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>
-              <p><span id="conform-script">A conforming browser must support scripting, declarative interactivity, or some other means of detecting and dispatching events in the manner described by this specification, and with the attributes specified for that <a class="def" href="#glossary-event-type">event type</a>.</span>  <span id="conform-declarative">A declarative browser may still conform to this specification if it does not directly support or expose the methods defined for the DOM Level 3 Events interfaces, but it should provide compatible functionality by other means.</span></p>
+              <p><span id="conform-script">A conforming browser must support scripting, declarative interactivity, or some other means of detecting and dispatching events in the manner 
+                  described by this specification, and must support the APIs specified for that <a class="def" href="#glossary-event-type">event type</a>.</span>
+              </p>
               <p>In addition to meeting all other conformance criteria, a conforming browser may implement features of this specification marked as <a class="def" href="#glossary-deprecated">deprecated</a>, for backwards compatibility with existing content, but such implementation is discouraged.</p>
-              <p>A conforming browser may also support features not found in this specification, but which use the <a href="#event-flow">Event dispatch and DOM event flow</a> mechanism, interfaces, events, or other features defined in DOM Level 3 Events, and may implement additional interfaces and <a class="def" href="#glossary-event-type">event types</a> appropriate to that implementation.  Such features may be later standardized in future specifications.</p>
+              <p>A conforming browser may also support features not found in this specification, but which use the <a href="#event-flow">Event dispatch and DOM event flow</a> mechanism, 
+                  interfaces, events, or other features defined in DOM Level 3 Events, and may implement additional interfaces and <a class="def" href="#glossary-event-type">event types</a>
+                  appropriate to that implementation. Such features can be later standardized in future specifications.</p>
               <p>A browser which does not conform to all required portions of this specification must not claim conformance to DOM Level 3 Events.  Such an implementation which does conform to portions of this specification may claim conformance to those specific portions.</p>
               <p>A conforming browser must also be a <i>conforming implementation</i> of the IDL fragments in this specification, as described in the Web IDL specification. <a href="#references-WebIDL">[WEBIDL]</a></p>
             </dd>
@@ -390,12 +409,33 @@
 
             <dt id="conf-authors">Content authors and content</dt>
             <dd>
-              <p>A content author creates conforming DOM Level 3 Events content if that content uses the <a class="def" href="#glossary-event-type">event types</a> and <a href="#event-flow">Event dispatch and DOM event flow</a> model, consistent in a manner as defined in this specification.  A content author should not use features of this specification marked as <a class="def" href="#glossary-deprecated">deprecated</a><!--  or <a class="def" href="#glossary-obsolete">obsolete</a> -->, but should rely instead upon replacement mechanisms defined in this specification and elsewhere.  Conforming content must use the semantics of the interfaces and <a class="def" href="#glossary-event-type">event types</a> as described in this specification, and must follow best practices as described in accessibility and internationalization guideline specifications. <!-- <i class="issue" id="issue-guidelines"><strong>Issue:</strong> define specific guideline specifications.</i> --></p>
+              <p>A content author creates conforming DOM Level 3 Events content if that content uses the <a class="def" href="#glossary-event-type">event types</a> 
+                  and <a href="#event-flow">Event dispatch and DOM event flow</a> model, consistent in a manner as defined in this specification.  A content author 
+                  should not use features of this specification marked as <a class="def" href="#glossary-deprecated">deprecated</a>, but should rely instead upon 
+                  replacement mechanisms defined in this specification and elsewhere. Conforming content must use the semantics of the interfaces and 
+                  <a class="def" href="#glossary-event-type">event types</a> as described in this specification.
+              </p>
+              <p class="note"><strong>Authoring Note: </strong>Content authors are advised to follow best practices as described in 
+                  <a href="http://www.w3.org/TR/WAI-WEBCONTENT/">accessibility</a> and <a href="http://www.w3.org/standards/techs/i18n#w3c_all">internationalization</a> guideline specifications.
+              </p>
             </dd>
 
             <dt id="conf-specs">Specifications and host languages</dt>
             <dd>
-              <p>A specification or <a class="def" href="#glossary-host-language">host language</a> conforms to DOM Level 3 Events if it references and uses the <a href="#event-flow">Event dispatch and DOM event flow</a> mechanism, interfaces, events, or other features defined in this specification, and does not extend these features in incompatible ways.  A specification or <a class="def" href="#glossary-host-language">host language</a> conforms specifically to the DOM Level 3 Events Architecture if it references and uses the <a href="#dom-event-architecture">DOM Event Architecture</a> and <a href="#event-interfaces">Basic Event Interfaces</a>, regardless of its use of any other event interfaces or <a class="def" href="#glossary-event-type">event types</a> defined in this specification.  A specification or <a class="def" href="#glossary-host-language">host language</a> conforms specifically to the DOM Level 3 Events Module if it references and uses 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 references and uses that interface and its related <a class="def" href="#glossary-event-type">event types</a>.  <span id="conf-extend">A conforming specification may define additional interfaces and <a class="def" href="#glossary-event-type">event types</a> appropriate to that specification, or may extend the DOM Level 3 Events interfaces and <a class="def" href="#glossary-event-type">event types</a> in a manner that does not contradict or conflict with the definitions of those interfaces and <a class="def" href="#glossary-event-type">event types</a> in this specification.  Events defined in conforming specifications must not have name conflicts with known languages, and should be defined in a manner that can be generalized for use with other specifications conforming to DOM Level 3 Events, as much as is possible.</span>  Specifications or <a class="def" href="#glossary-host-language">host languages</a> which reference DOM Level 3 Events should not use or recommend features of this specification marked as <a class="def" href="#glossary-deprecated">deprecated</a><!--  or <a class="def" href="#glossary-obsolete">obsolete</a> -->, but should point instead to the indicated replacement for that the feature.  Editors of specifications referring to DOM Level 3 Events should consult with the Working Group responsible for this specification when using or extending the features defined in this specification.</p>
+              <p>A specification or <a class="def" href="#glossary-host-language">host language</a> conforms to DOM Level 3 Events if it references and uses the 
+                  <a href="#event-flow">Event dispatch and DOM event flow</a> mechanism, interfaces, events, or other features defined in this specification, and does not extend these 
+                  features in incompatible ways.  A specification or <a class="def" href="#glossary-host-language">host language</a> conforms specifically to the DOM Level 3 Events 
+                  Architecture if it references and uses the <a href="#dom-event-architecture">DOM Event Architecture</a> and <a href="#event-interfaces">Basic Event Interfaces</a>, 
+                  regardless of its use of any other event interfaces or <a class="def" href="#glossary-event-type">event types</a> defined in this specification.  A specification or 
+                  <a class="def" href="#glossary-host-language">host language</a> conforms specifically to the DOM Level 3 Events Module if it references and uses 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 
+                  references and uses that interface and its related <a class="def" href="#glossary-event-type">event types</a>.  <span id="conf-extend">A conforming specification may 
+                  define additional interfaces and <a class="def" href="#glossary-event-type">event types</a> appropriate to that specification, or may extend the DOM Level 3 Events 
+                  interfaces and <a class="def" href="#glossary-event-type">event types</a> in a manner that does not contradict or conflict with the definitions of those interfaces 
+                  and <a class="def" href="#glossary-event-type">event types</a> in this specification. Specifications or <a class="def" href="#glossary-host-language">host languages</a> 
+                  which reference DOM Level 3 Events should not use or recommend features of this specification marked as <a class="def" href="#glossary-deprecated">deprecated</a>, but 
+                  should use or recommend the indicated replacement for that the feature (if available).
+               </p>
             </dd>
           </dl>
         </div>
@@ -446,7 +486,7 @@
               <a class="def">This is a link to a definition in the glossary</a>
             </p>
             <p class="note">This is a note.</p>
-            <p class="warning">This is a warning.  It is used on security notes and to mark <a class="def" href="#glossary-deprecated">deprecated</a><!--  or <a class="def" href="#glossary-obsolete">obsolete</a> --> features.</p>
+            <p class="warning"><strong>Warning!</strong> This is a warning.  It is used on security notes and to mark <a class="def" href="#glossary-deprecated">deprecated</a><!--  or <a class="def" href="#glossary-obsolete">obsolete</a> --> features.</p>
             <p class="example"><strong>Example:</strong> This is an example.</p>
             <p class="atrisk">This is a feature at risk, which is likely to be removed from the specification.</p>
             <p class="proposal">This is a proposed new feature.</p>
@@ -492,7 +532,7 @@
           <dd>A <a class="def" href="#glossary-default-action">default action</a> is an optional supplementary behavior that an implementation must perform in combination with the dispatch of the event object.  Each event type definition, and each specification, defines the <a class="def" href="#glossary-default-action">default action</a> for that event type, if it has one.  An instance of an event may have more than one <a class="def" href="#glossary-default-action">default action</a> under some circumstances, such as when associated with an <a class="def" href="#glossary-activation-trigger">activation trigger</a>.  A <a class="def" href="#glossary-default-action">default action</a> may be cancelled through the invocation of the <a href="#events-event-type-preventDefault"><code>Event.preventDefault()</code></a> method.  For more details, see <a href="#event-flow-default-cancel">Default actions and cancelable events</a>.</dd>
 
           <dt id="glossary-defaultView"><dfn>defaultView</dfn></dt>
-          <dd>The <code>defaultView</code> is the document's browsing context's Window Proxy object as defined in <a href="http://dev.w3.org/html5/spec/Overview.html#dom-document-defaultview" title="HTML5 defaultView IDL attribute">HTML5</a>.</dd>
+          <dd>The <code>defaultView</code> is the document's browsing context's Window Proxy object as defined in <a href="http://dev.w3.org/html5/spec/Overview.html#dom-document-defaultview" title="HTML5 defaultView IDL attribute">HTML5</a> [<cite><a class="normative" href="#references-HTML5">HTML5</a></cite>].</dd>
 
           <dt id="glossary-delta"><dfn>delta</dfn></dt>
           <dd>The distance an input device using the <a href="#events-wheelevents">WheelEvent</a> interface (such as a mouse wheel) has rotated around its axis.  The value of a <a class="def" href="#glossary-delta">delta</a> must be a floating point number indicating the number of pixels, lines, or pages scrolled (as indicated by the <a href="#events-WheelEvent-deltaMode"><code>deltaMode</code></a> property. The relationship between the physical direction of rotation and whether the <a class="def" href="#glossary-delta">delta</a> is positive or negative is environment and device dependent. However, if a user agent scrolls as the <a class="def" href="#glossary-default-action">default action</a> then the sign of the <a class="def" href="#glossary-delta">delta</a> is given by a right-hand coordinate system where positive X,Y, and Z axes are directed towards the right-most edge, bottom-most edge, and farthest depth (away from the user) of the document, respectively.
@@ -745,7 +785,7 @@
         
         <p>Most events take place in a sequential context.  [<cite><a class="informative" href="#references-HTML5">HTML5</a></cite>] defines its event operations in terms of an event loop mechanism, in which events of all types are fed into different <em>task queues</em>.  This specification does not define events in terms of this event loop mechanism, but it is compatible with this mechanism.  Instead, this specification defines several operation-specific <a class="def" href="#glossary-event-order">event orders</a>.</p>
         <p>Using the terminology of HTML5, each independent device, such as a mouse or keyboard, should be treated as a <em>task source</em> which feeds into the appropriate <em>task queue</em>, in the order defined by the <a class="def" href="#glossary-event-order">event order</a> associated with that device; each operation, such as a focus change or composition input, also acts as a <em>task source</em> for the appropriate <em>task queue</em>.  The resolution of these event loops is handled in a manner conforming to the <a class="def" href="#glossary-host-language">host language</a>, such as HTML [<cite><a class="informative" href="#references-HTML5">HTML5</a></cite>].</p>
-        <p class="warning" id="dropped-events"><strong>Warning!</strong> Certain events, such as <q>hotkeys</q> or controls keys pressed in a certain sequence, can be <q>swallowed</q> by the operating system or the application, interrupting the expected <a class="def" href="#glossary-event-order">event order</a>.  Content authors should make appropriate checks for such occurrences.</p>
+        <p class="note" id="dropped-events"><strong>Authoring Note:</strong> Certain events, such as <q>hotkeys</q> or controls keys pressed in a certain sequence, can be <q>swallowed</q> by the operating system or the application, interrupting the expected <a class="def" href="#glossary-event-order">event order</a>.  Content authors are advised to make appropriate checks for such occurrences.</p>
         
       </div>
 
@@ -828,7 +868,8 @@
       <!-- div START event exceptions -->
       <div>
         <h3><a id="event-exceptions" href="#event-exceptions">3.6 Event exceptions</a></h3>
-        <p>Event operations may throw a <code>DOMException</code></a> as specified in their method descriptions.</p>
+        <p><em>This section is non-normative.</em>
+        <p>Event operations can throw a <code>DOMException</code></a> as specified in their method descriptions.</p>
         <p class="note" id="note-eventexcpetion-removed"><strong>Note:</strong> the exception <em>EventException</em> introduced in <strong class="version">DOM Level 2</strong> is
             removed in this specification as part of this specification's normative support of <a href="#references-WebIDL">Web IDL</a>. <em>EventException</em> formerly defined
             an exception code <code>UNSPECIFIED_EVENT_TYPE_ERR</code> which is replaced in this specification by the use of a <code>DOMException</code> of type 
@@ -872,7 +913,15 @@
         <dl>
           <dt><strong>Interface <em><a id="events-Event">Event</a></em></strong> (introduced in <strong class="since">DOM Level 2</strong>)</dt>
           <dd>
-            <p>The <code>Event</code> interface is used to provide contextual information about an event to the listener processing the event. An object which implements the <code>Event</code> interface must be passed as the parameter to an <a href="#events-EventListener"><code>EventListener</code></a>. The object passed to the event listener may also implement derived interfaces that provide access to information directly relating to the type of event they represent.</p>
+            <p>The <code>Event</code> interface is used to provide contextual information about an event to the listener processing the event. 
+                A listener is provided an <code>Event</code> object by way of its <code><a href="#events-EventListener-handleEvent">EventListener.handleEvent</a></code> 
+                method. The object passed to the event listener may also implement derived interfaces that provide access to information directly 
+                relating to the type of event they represent.
+            </p>
+            <p class="note"><strong>Note: </strong>In JavaScript, user-defined functions are considered to implement the <code>EventListener</code> interface. 
+                Thus the <code>Event</code> object will be provided as the first paramter to the user-defined function when it is invoked. Additionally, 
+                JavaScript objects can also implement the <code>EventListener</code> interface when they define a <q><code>handleEvent</code></q> method.
+            </p>
             <p>To create an instance of the <code>Event</code> interface, use the <a href="#events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("Event")</code></a> method call.</p>
             <dl>
               <dt>
@@ -951,7 +1000,7 @@
                   <dd><p>Used to indicate whether this event was generated by the <a class="def" href="#glossary-user-agent">user agent</a> (trusted) or by script (untrusted).  See <a href="#trusted-events">trusted events</a> for more details.</p></dd>
 
                   <dt><code class="attribute-name"><a id="events-event-type-eventPhase">eventPhase</a></code> of type <code>unsigned short</code>, readonly</dt>
-                  <dd><p>Used to indicate which phase of event flow is currently being accomplished.</p></dd>
+                  <dd><p>Used to indicate the <a href=#event-phase>phase</a> of the event's current propagation path (capture, target, or bubble).</p></dd>
 
                   <dt><code class="attribute-name"><a id="events-event-type-target">target</a></code> of type <a href="#events-EventTarget"><code>EventTarget</code></a>, readonly</dt>
                   <dd><p>Used to indicate the <a class="def" href="#glossary-event-target">event target</a>. This attribute contains the <a class="def" href="#glossary-proximal-event-target">proximal event target</a> when used with the <a href="#event-flow">Event dispatch and DOM event flow</a>.</p></dd>
@@ -981,7 +1030,6 @@
                   <dd>
                     <div class="method">
                       <p>Initializes attributes of an <code>Event</code> created through the <a href="#events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent</code></a> method. This method must be called before the <code>Event</code> has been dispatched via the <a href="#events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method. If the method is called several times before invoking <a href="#events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent</code></a>, only the final invocation takes precedence. This method has no effect if called after the event has been dispatched. If called from a subclass of the <code>Event</code> interface only the values specified in this method are modified, all other attributes are left unchanged.</p>
-                      <p>This method sets the <a href="#events-event-type-type"><code>Event.type</code></a> attribute to <code>eventTypeArg</code>.</p>
                       <p class="warning" id="warning-initEvent-untrusted"><strong>Warning!</strong>  For security reasons, events modified using <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a> must have a <code class="attribute-name"><a href="#events-event-type-isTrusted">isTrusted</a></code> attribute value of <code>false</code>.  See <a href="#trusted-events">trusted events</a> for more details.</p>
 
                       <div class="parameters">
@@ -1117,7 +1165,7 @@
                             <dd><p>Refer to the <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.</p></dd>
                             
                             <dt><a id="events-CustomEvent-initparam-detailArg"><code class="parameter-name">detailArg</code></a> of type <code>any</code></dt>
-                            <dd><p>Specifies <a href="#events-CustomEvent-detail"><code>CustomEvent.detail</code></a>. This value may be <code>null</code>.</p></dd>
+                            <dd><p>Specifies <a href="#events-CustomEvent-detail"><code>CustomEvent.detail</code></a>.</dd>
                           </dl>
                         </div>
                       </div>
@@ -1140,7 +1188,7 @@
         <dl>
           <dt><strong>Interface <em><a id="events-EventTarget">EventTarget</a></em></strong> (introduced in <strong class="since">DOM Level 2</strong>)</dt>
           <dd>
-            <p>The <code>EventTarget</code> interface must be implemented by all the objects which could be <a class="def" href="#glossary-event-target">event targets</a> in an implementation which supports an event flow. The interface allows registration and removal of event listeners, and dispatch of events to an event target.</p>
+            <p>The <code>EventTarget</code> interface allows registration and removal of event listeners, and dispatch of events to an event target.</p>
             
             <p class="note" id="EventTarget-trusted"><strong>Note:</strong>  Though an event listener can be registered for any <a class="def" href="#glossary-event-target">event target</a> node, the user agent only dispatches UA-generated (trusted) events on node types that are defined as proximal event target types for that specific event type (see the <a href="#event-types-list">List of DOM3 Event Types</a>); for example, a <a class="eventtype" href="#event-type-mouseover"><code>mouseover</code></a> event type registered on a text node will never be fired by the user agent, though a content author could dispatch an event of that type on the text node via script.</p>
             
@@ -1194,14 +1242,13 @@
                             
                             <dt><a id="events-EventTarget-aelparam-listener"><code class="parameter-name">listener</code></a> of type <a href="#events-EventListener"><code>EventListener</code></a></dt>
                             <dd>
-                              <p>The <code>listener</code> parameter must be an object that implements the <a href="#events-EventListener"><code>EventListener</code></a> interface or a function.  If <code>listener</code> is a function then it must be used as the callback for the event; otherwise, if <code>listener</code> implements <a href="#events-EventListener"><code>EventListener</code></a>, then its <a href="#events-EventListener-handleEvent">handleEvent</a> method must be used as the callback. If <code>listener</code> is a function that also has a <a href="#events-EventListener-handleEvent">handleEvent</a> method, the function itself must be used as the callback and not its <a href="#events-EventListener-handleEvent">handleEvent</a> method.</p>
-                              <p class="note" id="addEventListener_function"><strong>Note:</strong>  When a <code>listener</code> is a function, it can be either a function reference or an inline function object literal.</p>
+                              <p>The <code>listener</code> parameter must be an object that implements the <a href="#events-EventListener"><code>EventListener</code></a> interface or a function.  If <code>listener</code> is a function then it must be used as the callback for the event; otherwise, if <code>listener</code> implements <a href="#events-EventListener"><code>EventListener</code></a>, then its <a href="#events-EventListener-handleEvent">handleEvent</a> method must be used as the callback.</p>
                             </dd>
                             
                             <dt><a id="addEventListener_useCapture"><code class="parameter-name">useCapture</code></a> of type <code>boolean</code></dt>
                             <dd>
                               <p>If true, <code>useCapture</code> indicates that the user wishes to add the event listener for the <a class="def" href="#glossary-capture-phase">capture</a> and <a class="def" href="#glossary-target-phase">target</a> phases only, i.e., this event listener will not be triggered during the <a class="def" href="#glossary-bubbling-phase">bubbling</a> phase.  If <code>false</code>, the event listener must only be triggered during the <a class="def" href="#glossary-target-phase">target</a> and <a class="def" href="#glossary-bubbling-phase">bubbling</a> phases.</p>
-                              <p>This parameter may be optional, on an implementation-specific basis.  If not provided, the <a href="#events-EventTarget-addEventListener">EventTarget.addEventListener</a> method must behave as if <a href="#addEventListener_useCapture"><code class="parameter-name">useCapture</code></a> were specified to be <code>false</code>.</p>
+                              <p>This parameter must be optional. If not provided, the <a href="#events-EventTarget-addEventListener">EventTarget.addEventListener</a> method must behave as if <a href="#addEventListener_useCapture"><code class="parameter-name">useCapture</code></a> were specified to be <code>false</code>.</p>
                               <!-- WebIDL will/does clarify this for other language bindings - the note isn't needed anymore
                                 <p class="note" id="addEventListener_useCapture-java"><strong>Note:</strong>  For programming languages which do not allow optional method parameters, such as Java, the implementation may provide two <a href="#events-EventTarget-addEventListener">EventTarget.addEventListener</a> methods, one with 2 parameters, and one with 3 parameters.</p> 
                                -->
@@ -1235,7 +1282,7 @@
                             <dd><p>The <a href="#events-EventListener"><code>EventListener</code></a> to be removed.</p></dd>
                             <dt><code id="removeEventListener_useCapture" class="parameter-name">useCapture</code> of type <code>boolean</code></dt>
                             <dd>
-                              <p>Specifies whether the <a href="#events-EventListener"><code>EventListener</code></a> being removed was registered for the capture phase or not.</p>
+                              <p>Specifies whether the <a href="#events-EventListener"><code>EventListener</code></a> being removed was registered for the capture phase or not. Implementations must treat the same listener that was registered twice with both <code>useCapture</code> true and <code>useCapture</code> false as independent registrations, and remove them independently.</p>
                               <p class="note"><strong>Authoring Note:</strong>  If a listener was registered twice, once for the capture and target phases and once for the target and bubbling phases, this represents two unique registrations. Removal of an event listener registered for the capture and target phases does not affect the same event listener registered for the target and bubbling phases, and vice versa.</p>
                               <p>This parameter may be optional, on an implementation-specific basis.  If not provided, the <a href="#events-EventTarget-removeEventListener">EventTarget.removeEventListener</a> method must behave as if <a href="#removeEventListener_useCapture"><code class="parameter-name">useCapture</code></a> were specified to be <code>false</code>, including the removal of event listeners which had an <a href="#events-EventTarget-addEventListener">EventTarget.addEventListener</a> <a href="#events-EventTarget-addEventListener"><code class="parameter-name">useCapture</code></a> value of <code>false</code>.</p>
                               <!-- WebIDL will/does clarify this for other language bindings - the note isn't needed anymore
@@ -1300,11 +1347,11 @@
             <p class="note"><strong>Note:</strong> Authors define an object which implements the <code>EventListener</code> interface and register their event listener using <a href="#events-EventTarget-addEventListener">EventTarget.addEventListener</a>. In JavaScript, an <code>EventListener</code> can be either a function or an object with a <code>handleEvent</code> member function.</p>
             <p class="note"><strong>Note:</strong> It is a best practice for authors to remove their <code>EventListener</code> from its <a href="#events-EventTarget"><code>EventTarget</code></a> after they have completed using the listener.</p>
             <p>
-              <span class="assert must">Copying a <code>Node</code>, with methods such as <code>Node.cloneNode</code> or <code>Range.cloneContents</code>, must not copy the event listeners attached to it.</span>
-              <span class="assert must">Event listeners must be attached to the newly created <code>Node</code> afterwards, if so desired.</span>
+              <span class="assert must">Copying a <code>Node</code>, with methods such as <code>Node.cloneNode</code> or <code>Range.cloneContents</code> [<cite><a class="informative" href="#references-DOMRange">DOM Range</a></cite>], must not copy the event listeners attached to it.</span>
+              <span class="assert must">Event listeners can be attached to the newly created <code>Node</code> afterwards, if so desired.</span>
             </p>
             <p>
-              <span class="assert mustnot">Moving a <code>Node</code>, with methods <code>Document.adoptNode</code>, <code>Node.appendChild</code>, or <code>Range.extractContents</code>, must not affect the event listeners attached to it.</span>
+              <span class="assert mustnot">Moving a <code>Node</code>, with methods such as <code>Document.adoptNode</code>, <code>Node.appendChild</code>, or <code>Range.extractContents</code> [<cite><a class="informative" href="#references-DOMRange">DOM Range</a></cite>], must not affect the event listeners attached to it.</span>
             </p>
             <dl>
               <dt>
@@ -1399,7 +1446,13 @@
                           <dl>
                             <dt><code class="parameter-name">eventInterface</code> of type <code>DOMString</code></dt>
                             <dd>
-                              <p>The <code>eventInterface</code> parameter specifies the name of the DOM Events interface to be supported by the created event object, e.g., <code>"Event"</code>, <code>"MouseEvent"</code>, <code>"MutationEvent"</code>, and so on. If the <a href="#events-Event"><code>Event</code></a> is to be dispatched via the <a href="#events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method, the appropriate event initialization method must be called after creation in order to initialize the <a class="noxref" href="#events-Event"><code>Event</code></a>'s values.</p>
+                              <p>The <code>eventInterface</code> parameter specifies the name of the DOM Events interface to be supported by the created event 
+                                  object, e.g., <code>"Event"</code>, <code>"MouseEvent"</code>, <code>"MutationEvent"</code>, and so on.</p>
+                              <p class="note"><strong>Note: </strong>After calling <code>createEvent</code>, and prior to dispatching the event with the 
+                                  <a href="#events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method, the 
+                                  <a href="#events-Event"><code>Event</code></a> will need to be initialized with the appropriate event initialization 
+                                  method (e.g., <code>initEvent</code>, <code>initMouseEvent</code>, etc.) in order to associate it with an event type and related values.
+                              </p>
                               <p class="example" id="example-createEvent"><strong>Example:</strong>  A content author wishing to synthesize some kind of <a href="#events-UIEvent"><code>UIEvent</code></a> would invoke <a href="#events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("UIEvent")</code></a>. The <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method could then be called on the newly created <a class="noxref" href="#events-UIEvent"><code>UIEvent</code></a> object to set the specific type of user interface event to be dispatched, <a class="eventtype" href="#event-type-scroll"><code>scroll</code></a> for example, and set its context information, e.g., <a href="#events-UIEvent-detail"><code>UIEvent.detail</code></a>.</p>
                               <p>For backward compatibility, the following case-insensitive feature names are valid values for the parameter <code>eventInterface</code>:</p>
                               <table class="data-table" summary="The first column contains the feature name, the second contains the resulting event interface returned by createEvent">
@@ -1459,7 +1512,7 @@
           <h4><a id="event-creation" href="#event-creation">4.5.1 Event creation</a></h4>
 
           <p>In most cases, the events dispatched by the DOM Events implementation are also created by the implementation.  However, it is possible to simulate events, such as mouse events, by creating the <a href="#events-Event"><code>Event</code></a> objects and dispatch them using the DOM Events implementation.</p>
-          <p>Creating <a href="#events-Event"><code>Event</code></a> objects that are known to the DOM Events implementation is done using <a href="#events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent()</code></a>. The content author must then initialize the <a href="#events-Event"><code>Event</code></a> object by directly setting the <a href="#events-Event"><code>Event</code></a>'s property values, by using the generic <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a> method, or by using any existing event initialization method for that interface, before invoking <a href="#events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a>. The <a href="#events-Event"><code>Event</code></a> objects created must be known by the DOM Events implementation; otherwise an event exception must be thrown.</p>
+          <p>Creating <a href="#events-Event"><code>Event</code></a> objects that are known to the DOM Events implementation is done using <a href="#events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent()</code></a>. The content author must then initialize the <a href="#events-Event"><code>Event</code></a> object by directly setting the <a href="#events-Event"><code>Event</code></a>'s property values, by using the generic <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a> method, or by using any existing event initialization method for that interface, before invoking <a href="#events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a>.</p>
           <!-- <p class="example" id="example-create-event">
             <strong>Example:</strong>
             <i class="note" id="_6"><strong>To Do:</strong> Create examples of creating and dispatching an event.</i>
@@ -1981,6 +2034,7 @@
 {
   readonly attribute AbstractView? <a href="#events-UIEvent-view">view</a>;
   readonly attribute long          <a href="#events-UIEvent-detail">detail</a>;
+  <span class="comment">// Deprecated in DOM Level 3:</span>
   void                             <a href="#events-event-type-initUIEvent">initUIEvent</a>(DOMString typeArg, 
                                                boolean canBubbleArg, 
                                                boolean cancelableArg, 
@@ -2013,6 +2067,9 @@
                   <dd>
                     <div class="method">
                       <p>Initializes attributes of an <code>UIEvent</code> object. This method has the same behavior as <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a>.</p>
+                      <p class="warning"><strong>Warning!</strong> The <code>initUIEvent</code> method is deprecated. Implementations support this API for backwards-compatibility. An alternative form of 
+                          <code>UIEvent</code> initialization that does not require providing every parameter to an event initializer will be made available in a future spec.
+                      </p>
                       <div class="parameters">
                         <strong>Parameters</strong>
                         <div class="paramtable">
@@ -2274,7 +2331,7 @@
               
               <p>This specification does not provide contextual information to access the selected text.  Where applicable, a <a class="def" href="#glossary-host-language">host language</a> should define rules for how a user may select content (with consideration for international language conventions), at what point the <a class="eventtype" href="#event-type-select"><code>select</code></a> event is dispatched, and how a content author may access the user-selected content.</p>
               
-              <p class="note" id="note-get-select"><strong>Note:</strong>  In order to access to user-selected content, content authors will use native capabilities of the <a class="def" href="#glossary-host-language">host languages</a>, such as the <code>Document.getSelection()</code> method of HTML's <a href="http://dev.w3.org/html5/spec/editing.html#selection" title="7 User Interaction &#x2014; HTML 5">text selection APIs</a> [<cite><a class="informative" href="#references-HTML5">HTML5</a></cite>].</p>
+              <p class="note" id="note-get-select"><strong>Note:</strong>  In order to access to user-selected content, content authors will use native capabilities of the <a class="def" href="#glossary-host-language">host languages</a>, such as the <code>Document.getSelection()</code> method of the <a href="https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html#selections">HTML Editing APIs</a> [<cite><a class="informative" href="#references-HTMLEd">HTML Editing</a></cite>].</p>
               
               <p class="note" id="note-select-na"><strong>Note:</strong> The <a class="eventtype" href="#event-type-select"><code>select</code></a> event might not be available for all elements in all languages.  For example, in [<cite><a class="informative" href="#references-HTML5">HTML5</a></cite>], <a class="eventtype" href="#event-type-select"><code>select</code></a> events can be dispatched only on form <code>input</code> and <code>textarea</code> elements.  Implementations can dispatch <a class="eventtype" href="#event-type-select"><code>select</code></a> events in any context deemed appropriate, including text selections outside of form controls, or image or markup selections such as in SVG.</p>              
               
@@ -2376,6 +2433,7 @@
 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>;
+  <span class="comment">// Deprecated in DOM Level 3:</span>
   void                            <a href="#events-event-type-initFocusEvent">initFocusEvent</a>(DOMString typeArg, 
                                                  boolean canBubbleArg, 
                                                  boolean cancelableArg, 
@@ -2415,6 +2473,9 @@
                 </dt>
                 <dd>
                   <div class="method">Initializes attributes of a <code>FocusEvent</code> object. This method has the same behavior as <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a>.
+                     <p class="warning"><strong>Warning!</strong> The <code>initFocusEvent</code> method is deprecated. Implementations support this API for backwards-compatibility. An alternative form of 
+                          <code>FocusEvent</code> initialization that does not require providing every parameter to an event initializer will be made available in a future spec.
+                      </p>
                     <div class="parameters">
                       <strong>Parameters</strong>
                       <div class="paramtable">
@@ -2704,6 +2765,7 @@
   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>;
+  <span class="comment">// Deprecated in DOM Level 3:</span>
   void                              <a href="#events-event-type-initMouseEvent">initMouseEvent</a>(DOMString typeArg, 
                                                    boolean canBubbleArg, 
                                                    boolean cancelableArg, 
@@ -2745,7 +2807,12 @@
                 </dd>
 
                 <dt><code class="attribute-name"><a id="events-MouseEvent-buttons">buttons</a></code> of type <code>unsigned short</code>, readonly</dt>
-                <dd>During mouse events caused by the depression or release of a mouse button, <code>buttons</code> must be used to indicate which combination of mouse buttons are currently being pressed, expressed as a bitmask.  <span class="note" id="_11"><strong>Note:</strong> Not to be confused with the <a href="#events-MouseEvent-button">button</a> attribute.</span>
+                <dd>During mouse events caused by the depression or release of a mouse button, <code>buttons</code> must be used to indicate which combination of mouse buttons are currently being pressed, expressed as a bitmask.
+                <p class="note" id="_11"><strong>Note:</strong> Though similarly named, the values for the <code>buttons</code> attribute and the 
+                    <a href="#events-MouseEvent-button">button</a> attribute are very different. The value of <code>button</code> is assumed to be 
+                    valid during <code>mousedown</code>/<code>mouseup</code> event handlers, whereas the <code>buttons</code> attribute reflects the 
+                    state of the mouse's buttons for any trusted <code>MouseEvent</code> object (while it is being dispatched), because it can 
+                    represent the "no button currently active" state (0).</p>
                 <p>The value of the <a href="#events-MouseEvent-buttons"><code>MouseEvent.buttons</code></a> attribute must be as follows:</p>
                 <ul>
                   <li><code>0</code> must indicates no button is currently active.</li>
@@ -2816,6 +2883,9 @@
                 <dd>
                   <div class="method">
                     <p>Initializes attributes of a <code>MouseEvent</code> object. This method has the same behavior as <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a>.</p>
+                    <p class="warning"><strong>Warning!</strong> The <code>initMouseEvent</code> method is deprecated. Implementations support this API for backwards-compatibility. An alternative form of 
+                          <code>MouseEvent</code> initialization that does not require providing every parameter to an event initializer will be made available in a future spec.
+                    </p>
                     <div class="parameters">
                       <strong>Parameters</strong>
                       <div class="paramtable">
@@ -3395,6 +3465,7 @@
   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>;    
+  <span class="comment">// Deprecated in DOM Level 3:</span>
   void                             <a href="#events-event-type-initWheelEvent">initWheelEvent</a>(DOMString typeArg, 
                                                   boolean canBubbleArg, 
                                                   boolean cancelableArg, 
@@ -3465,6 +3536,9 @@
                 <dd>
                   <div class="method">
                     <p>Initializes attributes of a <code>WheelEvent</code> object. This method has the same behavior as <a href="#events-event-type-initMouseEvent"><code>MouseEvent.initMouseEvent()</code></a>.</p>
+                    <p class="warning"><strong>Warning!</strong> The <code>initWheelEvent</code> method is deprecated. Implementations support this API for backwards-compatibility. An alternative form of 
+                          <code>WheelEvent</code> initialization that does not require providing every parameter to an event initializer will be made available in a future spec.
+                      </p>
                     <div class="parameters">
                       <strong>Parameters</strong>
                       <div class="paramtable">
@@ -3825,6 +3899,7 @@
   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>(DOMString keyArg);
+  <span class="comment">// Deprecated in DOM Level 3:</span>
   void                             <a href="#events-KeyboardEvent-initKeyboardEvent">initKeyboardEvent</a>(DOMString typeArg, 
                                                      boolean canBubbleArg, 
                                                      boolean cancelableArg, 
@@ -3976,7 +4051,12 @@
                   </dt>
                   <dd>
                     <div class="method">
-                      <p>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-UIEvent-detail"><code>UIEvent.detail</code></a> remains undefined.</p>
+                      <p>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-UIEvent-detail"><code>UIEvent.detail</code></a> remains undefined.
+                      </p>
+                      <p class="warning"><strong>Warning!</strong> The <code>initKeyboardEvent</code> method is deprecated. Implementations support this API for backwards-compatibility. An alternative form of 
+                          <code>KeyboardEvent</code> initialization that does not require providing every parameter to an event initializer will be made available in a future spec.
+                      </p>
                       <div class="parameters">
                         <strong>Parameters</strong>
                         <div class="paramtable">
@@ -4264,6 +4344,7 @@
 {
   readonly attribute DOMString? <a href="#events-CompositionEvent-data">data</a>;
   readonly attribute DOMString  <a href="#events-CompositionEvent-locale">locale</a>;
+  <span class="comment">// Deprecated in DOM Level 3:</span>
   void                          <a href="#events-event-type-initCompositionEvent">initCompositionEvent</a>(DOMString typeArg, 
                                                      boolean canBubbleArg, 
                                                      boolean cancelableArg, 
@@ -4298,7 +4379,11 @@
                     </code>
                   </dt>
                   <dd>
-                    <div class="method">Initializes attributes of a <code>CompositionEvent</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-UIEvent-detail"><code>UIEvent.detail</code></a> remains undefined.
+                    <div class="method">
+                      <p>Initializes attributes of a <code>CompositionEvent</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-UIEvent-detail"><code>UIEvent.detail</code></a> remains undefined.</p>
+                      <p class="warning"><strong>Warning!</strong> The <code>initCompositionEvent</code> method is deprecated. Implementations support this API for backwards-compatibility. An alternative form of 
+                          <code>CompositionEvent</code> initialization that does not require providing every parameter to an event initializer will be made available in a future spec.
+                      </p>
                       <div class="parameters">
                         <strong>Parameters</strong>
                         <div class="paramtable">
@@ -4528,7 +4613,7 @@
               </dt>
               <dd>
                 <pre class="idl" id="idl-interface-MutationEvent"><code>
-<span class="comment">// Introduced in DOM Level 2:</span>
+<span class="comment">// Deprecated in DOM Level 3:</span>
 interface <a href="#events-MutationEvent">MutationEvent</a> : <a href="#events-Event">Event</a>
 {
   <span class="comment">// attrChangeType</span>
@@ -4922,13 +5007,12 @@
               </dt>
               <dd>
                 <pre class="idl" id="idl-interface-MutationNameEvent"><code>
-<span class="comment">// Introduced in DOM Level 3:</span>
+<span class="comment">// Deprecated in DOM Level 3:</span>
 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>;
 
-  <span class="comment">// Introduced in DOM Level 3:</span>
   void                         <a href="#events-event-type-initMutationNameEvent">initMutationNameEvent</a>(DOMString typeArg, 
                                                      boolean canBubbleArg, 
                                                      boolean cancelableArg, 
@@ -7214,7 +7298,7 @@
           <li>The <q>key identifier</q> feature has been renamed <q>key value</q> 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 [<cite><a class="informative" href="#references-HTML5">HTML5</a></cite>].</li>
           <li>Namespaced events have been removed.</li>
-          <li>Updated to use WebIDL.</li>
+          <li>Updated to use <a href="#references-WebIDL">Web IDL</a>.</li>
           <li>EventException has been removed.</li>
         </ul>
       </div>
@@ -7281,6 +7365,17 @@
           </dt>
           <dd><cite>ECMAScript Language Specification</cite>, Third Edition. European Computer Manufacturers Association, Standard ECMA-262, December 1999. This version of the ECMAScript Language is available from http://www.ecma-international.org/.</dd>
 
+          <dt id="references-HTML5">
+            <strong class="informref">[HTML5]</strong>
+          </dt>
+          <dd><cite class="w3cwd"><a href="http://www.w3.org/TR/2009/WD-html5-20090825/">HTML 5</a></cite>,
+            I. Hickson, editor.
+            World Wide Web Consortium, <span class="wip">work in progress</span>, 24 June 2010.
+            <br />This edition of HTML 5 is http://www.w3.org/TR/2010/WD-html5-20100624/.
+            <br />The <a href="http://www.w3.org/TR/html5/">latest edition of HTML 5</a> is available at
+            http://www.w3.org/TR/html5/.
+          </dd>
+
           <dt>
             <strong>[<a id="references-Java">Java</a>]</strong>
           </dt>
@@ -7348,6 +7443,18 @@
           <dd><cite><a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407">Document Object Model Level 3 Load and Save Specification</a></cite>, J. Stenback, A. Heninger, Editors. World Wide Web Consortium, April 2004. This version of the DOM Level 3 Load and Save Specification is http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407. The <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-LS">latest version of DOM Level 3 Load and Save</a> is available at http://www.w3.org/TR/DOM-Level-3-LS.</dd>
 
           <dt>
+            <strong>[<a id="references-DOMRange">DOM2 Range</a>]</strong>
+          </dt>
+          <dd><cite><a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/">Document Object Model (DOM) Level 2 Traversal and Range Specification</a></cite>, J. Kesselman, J. Robie, M. Champion, P. Sharpe, V. Apparao, L. Wood, Editors. World Wide Web Consortium, November 2000.</dd>
+
+          <!--<dt>
+              <strong>[<a id="references-DOM4">DOM4</a>]</strong>
+          </dt>
+          <dd>
+              <cite><a href="http://www.w3.org/TR/dom/">DOM4</a></cite>, A. van Kesteren, A. Gregor, Ms2ger, Editors. World Wide Web Consortium, <span class="wip">Working Draft</span>, 5 April 2012. 
+          </dd>
+            -->
+          <dt>
             <strong>[<a id="references-DWW95">DWW95</a>]</strong>
           </dt>
           <dd><cite>Developing International Software for Windows 95 and Windows NT: A Handbook for International Software Design</cite>, N. Kano, Author. Microsoft Press, 1995. ISBN 1-55615-840-8.</dd>
@@ -7357,18 +7464,11 @@
           </dt>
           <dd><cite><a href="http://www.w3.org/TR/1999/REC-html401-19991224/">HTML 4.01 Specification</a></cite>, D. Raggett, A. Le Hors, and I. Jacobs, Editors. World Wide Web Consortium, December 1999. This version of the HTML 4.01 Recommendation is http://www.w3.org/TR/1999/REC-html401-19991224. The <a class="normative" href="http://www.w3.org/TR/html4">latest version of HTML 4</a> is available at http://www.w3.org/TR/html4.</dd>
 
-          <dt id="references-HTML5">
-            <strong class="informref">[HTML5]</strong>
-          </dt>
-          <dd><cite class="w3cwd"><a href="http://www.w3.org/TR/2009/WD-html5-20090825/">HTML 5</a></cite>,
-            I. Hickson, editor.
-            World Wide Web Consortium, <span class="wip">work in progress</span>, 24 June 2010.
-            <br />This edition of HTML 5 is http://www.w3.org/TR/2010/WD-html5-20100624/.
-            <br />The <a href="http://www.w3.org/TR/html5/">latest edition of HTML 5</a> is available at
-            http://www.w3.org/TR/html5/.
+          <dt><strong>[<a id="references-HTMLEd">HTML Editing</a>]</strong><dt>
+          <dd>
+              <cite><a href="https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html">HTML Editing APIs</a></cite>, A. Gregor, Editor. World Wide Web Consortium, <span class="wip">work in progress</span>, 12 March 2012.
           </dd>
 
-          <dt>
             <strong>[<a id="references-ISO-9995-2-3">ISO9995-2/3</a>]</strong>
           </dt>
           <dd>