Move deprecated events into a new Appendix.
authorGary Kacmarcik <garykac@google.com>
Mon, 19 Aug 2013 13:04:52 -0700
changeset 461 e9ad06720cda
parent 460 8b94685f205b
child 462 04ddf321b43c
Move deprecated events into a new Appendix.

Move the entire MutationEvent interface into this appendix as well.

Move deprecated event initializers for UIEvent and MouseEvent into Appendix A (with the other deprecated event initializers).

Cleanup formatting for Event.createEvent().
html/DOM3-Events.html
--- a/html/DOM3-Events.html	Mon Aug 19 11:25:34 2013 -0700
+++ b/html/DOM3-Events.html	Mon Aug 19 13:04:52 2013 -0700
@@ -1455,6 +1455,24 @@
 
 					<p>Creates an event object of the type specified. Returns the newly created object.</p>
 
+					<p class="note"><strong>Note: </strong>After calling <code>createEvent</code>, and prior to dispatching the event with the
+						<a href="#widl-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method, the
+						<a href="#interface-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>
+
+					<div class="example">
+						<div class="example-title">Example</div>
+						<p>A content author wishing to synthesize some kind of <a href="#interface-UIEvent"><code>UIEvent</code></a>
+						would invoke <a href="#widl-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("UIEvent")</code></a>. The <a href="#widl-UIEvent-initUIEvent"><code>
+						UIEvent.initUIEvent()</code></a> method could then be called on the newly created <a class="noxref" href="#interface-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="#widl-UIEvent-detail"><code>UIEvent.detail</code></a>.</p>
+					</div>
+
+					<p class="warning"><strong>Warning!</strong>  For security reasons, events generated using <a href="#widl-DocumentEvent-createEvent">
+						<code>DocumentEvent.createEvent("Event")</code></a> MUST have a <code class="attribute-name"><a href="#widl-Event-isTrusted">isTrusted</a></code> attribute
+						value of <code>false</code>.  See <a href="#trusted-events">trusted events</a> for more details.</p>
+
 					<p><strong>Exceptions:</strong>
 						If the implementation does not support the <a href="#interface-Event"><code>Event</code></a> interface requested, a <code>DOMException</code> of type <em><code>NotSupportedError</code></em>
 						is thrown.</p>
@@ -1465,20 +1483,6 @@
 							<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="#widl-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method, the
-								<a href="#interface-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>
-
-							<div class="example">
-								<div class="example-title">Example</div>
-								<p>A content author wishing to synthesize some kind of <a href="#interface-UIEvent"><code>UIEvent</code></a>
-								would invoke <a href="#widl-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("UIEvent")</code></a>. The <a href="#widl-UIEvent-initUIEvent"><code>
-								UIEvent.initUIEvent()</code></a> method could then be called on the newly created <a class="noxref" href="#interface-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="#widl-UIEvent-detail"><code>UIEvent.detail</code></a>.</p>
-							</div>
-
 							<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">
@@ -1508,9 +1512,6 @@
 								</tr>
 							</table>
 
-							<p class="warning"><strong>Warning!</strong>  For security reasons, events generated using <a href="#widl-DocumentEvent-createEvent">
-								<code>DocumentEvent.createEvent("Event")</code></a> MUST have a <code class="attribute-name"><a href="#widl-Event-isTrusted">isTrusted</a></code> attribute
-								value of <code>false</code>.  See <a href="#trusted-events">trusted events</a> for more details.</p>
 						</dd>
 					</dl>
 				</dd>
@@ -1792,129 +1793,9 @@
 					</tr>
 				</table>
 
-				<p>The following table provides an informative summary of the event types which are <strong>deprecated</strong> in this specification. They are included here for reference and completeness.</p>
-
-				<table class="data-table"
-					summary="This table contains the complete list of the deprecated event types defined by DOM Level 3 Events. The first column contains the local name of the event type. The second column indicates if the event accomplish the bubbling phase or not (all events accomplish the capture and target phases). The third column indicates if the default action associated with the event can be canceled. The fourth column indicates the nodes that can be target of the event. the fifth (and last) column indicates the DOM interface implemented by the event object.">
-					<tr>
-						<th>Event Type</th>
-						<th>Sync / Async</th>
-						<th>Bubbling phase</th>
-						<th>Trusted event target types</th>
-						<th>DOM interface</th>
-						<th>Cancelable</th>
-						<th>Default Action</th>
-					</tr>
-					<tr>
-						<td><a class="eventtype" href="#event-type-DOMActivate"><code>DOMActivate</code></a></td>
-						<td>Sync</td>
-						<td>Yes</td>
-						<td><code>Element</code></td>
-						<td><a href="#interface-UIEvent"><code>UIEvent</code></a></td>
-						<td>Yes</td>
-						<td>none</td>
-					</tr>
-					<tr>
-						<td><a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a></td>
-						<td>Sync</td>
-						<td>Yes</td>
-						<td><code>Element</code></td>
-						<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
-						<td>No</td>
-						<td>none</td>
-					</tr>
-					<tr>
-						<td><a class="eventtype" href="#event-type-DOMCharacterDataModified"><code>DOMCharacterDataModified</code></a></td>
-						<td>Sync</td>
-						<td>Yes</td>
-						<td><code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>ProcessingInstruction</code></td>
-						<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
-						<td>No</td>
-						<td>none</td>
-					</tr>
-					<tr>
-						<td><a class="eventtype" href="#event-type-DOMFocusIn"><code>DOMFocusIn</code></a></td>
-						<td>Sync</td>
-						<td>Yes</td>
-						<td><code>Element</code></td>
-						<td><a href="#interface-FocusEvent"><code>FocusEvent</code></a></td>
-						<td>No</td>
-						<td>none</td>
-					</tr>
-					<tr>
-						<td><a class="eventtype" href="#event-type-DOMFocusOut"><code>DOMFocusOut</code></a></td>
-						<td>Sync</td>
-						<td>Yes</td>
-						<td><code>Element</code></td>
-						<td><a href="#interface-FocusEvent"><code>FocusEvent</code></a></td>
-						<td>No</td>
-						<td>none</td>
-					</tr>
-					<tr>
-						<td><a class="eventtype" href="#event-type-DOMNodeInserted"><code>DOMNodeInserted</code></a></td>
-						<td>Sync</td>
-						<td>Yes</td>
-						<td><code>Element</code>, <code>Attr</code>, <code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>DocumentType</code>, <code>EntityReference</code>,
-							<code>ProcessingInstruction</code></td>
-						<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
-						<td>No</td>
-						<td>none</td>
-					</tr>
-					<tr>
-						<td><a class="eventtype" href="#event-type-DOMNodeInsertedIntoDocument"><code>DOMNodeInsertedIntoDocument</code></a></td>
-						<td>Sync</td>
-						<td>No</td>
-						<td><code>Element</code>, <code>Attr</code>, <code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>DocumentType</code>, <code>EntityReference</code>,
-							<code>ProcessingInstruction</code></td>
-						<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
-						<td>No</td>
-						<td>none</td>
-					</tr>
-					<tr>
-						<td><a class="eventtype" href="#event-type-DOMNodeRemoved"><code>DOMNodeRemoved</code></a></td>
-						<td>Sync</td>
-						<td>Yes</td>
-						<td><code>Element</code>, <code>Attr</code>, <code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>DocumentType</code>, <code>EntityReference</code>,
-							<code>ProcessingInstruction</code></td>
-						<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
-						<td>No</td>
-						<td>none</td>
-					</tr>
-					<tr>
-						<td><a class="eventtype" href="#event-type-DOMNodeRemovedFromDocument"><code>DOMNodeRemovedFromDocument</code></a></td>
-						<td>Sync</td>
-						<td>No</td>
-						<td><code>Element</code>, <code>Attr</code>, <code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>DocumentType</code>, <code>EntityReference</code>,
-							<code>ProcessingInstruction</code></td>
-						<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
-						<td>No</td>
-						<td>none</td>
-					</tr>
-					<tr>
-						<td><a class="eventtype" href="#event-type-DOMSubtreeModified"><code>DOMSubtreeModified</code></a></td>
-						<td>Sync</td>
-						<td>Yes</td>
-						<td><a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, <code>DocumentFragment</code>, <code>Element</code>, <code>Attr</code>
-						</td>
-						<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
-						<td>No</td>
-						<td>none</td>
-					</tr>
-					<tr>
-						<td><a class="eventtype" href="#event-type-keypress"><code>keypress</code></a></td>
-						<td>Sync</td>
-						<td>Yes</td>
-						<td><code>Document</code>, <code>Element</code></td>
-						<td><a href="#interface-KeyboardEvent"><code>KeyboardEvent</code></a></td>
-						<td>Yes</td>
-						<td>Varies:
-							launch <a class="def" href="#glossary-text-composition-system">text composition system</a>;
-							<a class="eventtype" href="#event-type-blur"><code>blur</code></a> and <a class="eventtype" href="#event-type-focus"><code>focus</code></a> events;
-							<a class="eventtype" href="#event-type-DOMActivate"><code>DOMActivate</code></a> event;
-							other event</td>
-					</tr>
-				</table>
-
+				<p>For a list of events which are deprecated in this specification, see the <a href="#legacy-event-types">Legacy Event Types</a> appendix
+					at the end of this document.</p>
+				
 				<div class="example">
 					<div class="example-title">Example</div>
 					<p>The following is one way to interpret the above tables: the <a class="eventtype" href="#event-type-load"><code>load</code></a> event will
@@ -1967,115 +1848,12 @@
 							<p>The <a class="def" href="#glossary-un-initialized-value">un-initialized value</a> of this attribute MUST be <code>0</code>.</p>
 						</dd>
 						
-						<dt>// Deprecated in DOM Level 3</dt>
-
-						<dt>void initUIEvent()</dt>
-						<dd>
-							<p>Initializes attributes of an <code>UIEvent</code> object. This method has the same behavior as <a href="#widl-Event-initEvent"><code>Event.initEvent()</code></a>.</p>
-
-							<p class="warning"><strong>Warning!</strong> The <code>initUIEvent</code> method is deprecated, but supported for backwards-compatibility with widely-deployed
-								implementations. See [<a href="#references-UIEvents">UI Events</a>] for an alternate initializer syntax.</p>
-
-							<dl class="parameters">
-								<dt>DOMString typeArg</dt>
-								<dd>
-									<p>Refer to the <a href="#widl-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.</p>
-								</dd>
-
-								<dt>boolean bubblesArg</dt>
-								<dd>
-									<p>Refer to the <a href="#widl-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.</p>
-								</dd>
-
-								<dt>boolean cancelableArg</dt>
-								<dd>
-									<p>Refer to the <a href="#widl-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.</p>
-								</dd>
-
-								<dt>AbstractView? viewArg</dt>
-								<dd>
-									<p>Specifies <a href="#widl-UIEvent-view"><code>UIEvent.view</code></a>. This value MAY be <code>null</code>.</p>
-								</dd>
-
-								<dt>long detailArg</dt>
-								<dd>
-									<p>Specifies <a href="#widl-UIEvent-detail"><code>UIEvent.detail</code></a>.</p>
-								</dd>
-							</dl>
-						</dd>
 					</dl>
 				</section>
 
 				<p>The User Interface event types are listed below.  Some of these events use the <a href="#interface-UIEvent"><code>UIEvent</code></a> interface if generated from a
 					user interface, but the <a href="#interface-Event"><code>Event</code></a> interface otherwise, as detailed in each event.</p>
 
-				<!-- DOMActivate -->
-				<div class="event-definition">
-					<dl>
-						<dt id="event-type-DOMActivate"><dfn><a class="eventtype" href="#event-type-DOMActivate"><code>DOMActivate</code></a></dfn></dt>
-						<dd>
-							<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
-								<tr>
-									<th>Type</th>
-									<td><strong><code>DOMActivate</code></strong></td>
-								</tr>
-								<tr>
-									<th>Interface</th>
-									<td><a href="#interface-UIEvent"><code>UIEvent</code></a></td>
-								</tr>
-								<tr>
-									<th>Sync / Async</th>
-									<td>Sync</td>
-								</tr>
-								<tr>
-									<th>Bubbles</th>
-									<td>Yes</td>
-								</tr>
-								<tr>
-									<th>Target</th>
-									<td><code>Element</code></td>
-								</tr>
-								<tr>
-									<th>Cancelable</th>
-									<td>Yes</td>
-								</tr>
-								<tr>
-									<th>Default action</th>
-									<td>none</td>
-								</tr>
-								<tr>
-									<th>Context info</th>
-									<td>
-										<ul>
-											<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: element being activated</li>
-
-											<li><a href="#widl-UIEvent-view"><code class="attribute-name">UIEvent.view</code></a>: <a class="def" href="#glossary-defaultView"><code>defaultView</code></a></li>
-
-											<li><a href="#widl-UIEvent-detail"><code class="attribute-name">UIEvent.detail</code></a>: <code>0</code></li>
-										</ul>
-									</td>
-								</tr>
-							</table>
-							<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event when a button, link, or other state-changing element is activated.  Refer to
-								<a href="#event-flow-activation">Activation triggers and behavior</a> for more details.</p>
-
-							<p class="warning" id="DOMActivate-deprecated"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMActivate"><code>DOMActivate</code></a> <a
-								class="def" href="#glossary-event-type">event type</a> is defined in this specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">
-								deprecates</a> the use of this event type in favor of the related <a class="def" href="#glossary-event-type">event type</a> <a class="eventtype" href="#event-type-click">
-								<code>click</code></a>.  Other specifications MAY define and maintain their own <a class="eventtype" href="#event-type-DOMActivate"><code>DOMActivate</code></a>
-								<a class="def" href="#glossary-event-type">event type</a> for backwards compatibility.</p>
-
-							<p class="note" id="DOMActivate-click"><strong>Note:</strong>   While <a class="eventtype" href="#event-type-DOMActivate"><code>DOMActivate</code></a> and <a class="eventtype"
-								href="#event-type-click"><code>click</code></a> are not completely equivalent, implemented behavior for the <a class="eventtype" href="#event-type-click"><code>click</code></a>
-								<a class="def" href="#glossary-event-type">event type</a> has developed to encompass the most critical accessibility aspects for which the <a class="eventtype" href="#event-type-DOMActivate">
-								<code>DOMActivate</code></a> <a class="def" href="#glossary-event-type">event type</a> was designed, and is more widely implemented.  Content authors are encouraged
-								to use the <a class="eventtype" href="#event-type-click"><code>click</code></a> <a class="def" href="#glossary-event-type">event type</a> rather than the related
-								<a class="eventtype" href="#event-type-mousedown"><code>mousedown</code></a> or <a class="eventtype" href="#event-type-mouseup"><code>mouseup</code></a> <a class="def"
-								href="#glossary-event-type">event type</a> to ensure maximum accessibility.</p>
-						</dd>
-					</dl>
-				</div>
-
 				<!-- load -->
 				<div class="event-definition">
 					<dl>
@@ -2642,127 +2420,6 @@
 					</dl>
 				</div>
 
-				<!-- DOMFocusIn -->
-				<div class="event-definition">
-					<dl>
-						<dt id="event-type-DOMFocusIn"><dfn><a class="eventtype" href="#event-type-DOMFocusIn"><code>DOMFocusIn</code></a></dfn></dt>
-						<dd>
-							<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
-								<tr>
-									<th>Type</th>
-									<td><strong><code>DOMFocusIn</code></strong></td>
-								</tr>
-								<tr>
-									<th>Interface</th>
-									<td><a href="#interface-FocusEvent"><code>FocusEvent</code></a></td>
-								</tr>
-								<tr>
-									<th>Sync / Async</th>
-									<td>Sync</td>
-								</tr>
-								<tr>
-									<th>Bubbles</th>
-									<td>Yes</td>
-								</tr>
-								<tr>
-									<th>Target</th>
-									<td><code>Element</code></td>
-								</tr>
-								<tr>
-									<th>Cancelable</th>
-									<td>No</td>
-								</tr>
-								<tr>
-									<th>Default action</th>
-									<td>none</td>
-								</tr>
-								<tr>
-									<th>Context info</th>
-									<td>
-										<ul>
-											<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: <a class="def" href="#glossary-event-target">event target</a> receiving
-												focus</li>
-
-											<li><a href="#widl-UIEvent-view"><code class="attribute-name">UIEvent.view</code></a>: <a class="def" href="#glossary-defaultView"><code>defaultView</code></a>,
-												<code>null</code></li>
-
-											<li><a href="#widl-UIEvent-detail"><code class="attribute-name">UIEvent.detail</code></a>: <code>0</code></li>
-
-											<li><a href="#widl-FocusEvent-relatedTarget"><code class="attribute-name">FocusEvent.relatedTarget</code></a>: <code>null</code></li>
-										</ul>
-									</td>
-								</tr>
-							</table>
-							<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event when an <a class="def" href="#glossary-event-target">event target</a> receives
-								focus. The focus MUST be given to the element before the dispatch of this event type. This event type MUST be dispatched after the event type <a class="eventtype"
-								href="#event-type-focus"><code>focus</code></a>.</p>
-
-							<p class="warning" id="_7"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMFocusIn"><code>DOMFocusIn</code></a> event type is defined in this
-								specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the use of this event type in favor
-								of the related event types <a class="eventtype" href="#event-type-focus"><code>focus</code></a> and <a class="eventtype" href="#event-type-focusIn"><code>focusin</code></a>.</p>
-						</dd>
-					</dl>
-				</div>
-
-				<!-- DOMFocusOut -->
-				<div class="event-definition">
-					<dl>
-						<dt id="event-type-DOMFocusOut"><dfn><a class="eventtype" href="#event-type-DOMFocusOut"><code>DOMFocusOut</code></a></dfn></dt>
-						<dd>
-							<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
-								<tr>
-									<th>Type</th>
-									<td><strong><code>DOMFocusOut</code></strong></td>
-								</tr>
-								<tr>
-									<th>Interface</th>
-									<td><a href="#interface-FocusEvent"><code>FocusEvent</code></a></td>
-								</tr>
-								<tr>
-									<th>Sync / Async</th>
-									<td>Sync</td>
-								</tr>
-								<tr>
-									<th>Bubbles</th>
-									<td>Yes</td>
-								</tr>
-								<tr>
-									<th>Target</th>
-									<td><code>Element</code></td>
-								</tr>
-								<tr>
-									<th>Cancelable</th>
-									<td>No</td>
-								</tr>
-								<tr>
-									<th>Default action</th>
-									<td>none</td>
-								</tr>
-								<tr>
-									<th>Context info</th>
-									<td>
-										<ul>
-											<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: <a class="def" href="#glossary-event-target">event target</a> losing
-												focus</li>
-											<li><a href="#widl-UIEvent-view"><code class="attribute-name">UIEvent.view</code></a>: <a class="def" href="#glossary-defaultView"><code>defaultView</code></a>,
-												<code>null</code></li>
-											<li><a href="#widl-UIEvent-detail"><code class="attribute-name">UIEvent.detail</code></a>: <code>0</code></li>
-											<li><a href="#widl-FocusEvent-relatedTarget"><code class="attribute-name">FocusEvent.relatedTarget</code></a>: <code>null</code></li>
-										</ul>
-									</td>
-								</tr>
-							</table>
-							<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event when an <a class="def" href="#glossary-event-target">event target</a> loses
-								focus. The focus MUST be taken from the element before the dispatch of this event type. This event type MUST be dispatched after the event type <a class="eventtype"
-								href="#event-type-blur"><code>blur</code></a>.</p>
-
-							<p class="warning" id="_8"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMFocusOut"><code>DOMFocusOut</code></a> event type is defined in
-								this specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the use of this event type in
-								favor of the related event types <a class="eventtype" href="#event-type-blur"><code>blur</code></a> and <a class="eventtype" href="#event-type-focusout"><code>focusout</code></a>.</p>
-						</dd>
-					</dl>
-				</div>
-
 				<!-- focus -->
 				<div class="event-definition">
 					<dl>
@@ -3094,93 +2751,6 @@
 							<p>The <a class="def" href="#glossary-un-initialized-value">un-initialized value</a> of this attribute MUST be <code>null</code>.</p>
 						</dd>
 
-						<dt>// Deprecated in DOM Level 3</dt>
-
-						<dt>void initMouseEvent()</dt>
-						<dd>
-							<p>Initializes attributes of a <code>MouseEvent</code> object. This method has the same behavior as <a href="#widl-UIEvent-initUIEvent"><code>UIEvent.initUIEvent()</code></a>.</p>
-
-							<p class="warning"><strong>Warning!</strong> The <code>initMouseEvent</code> method is deprecated, but supported for backwards-compatibility with widely-deployed
-								implementations. See [<a href="#references-UIEvents">UI Events</a>] for an alternate initializer syntax.</p>
-
-							<dl class="parameters">
-								<dt>DOMString typeArg</dt>
-								<dd>
-									<p>Refer to the <a href="#widl-UIEvent-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.</p>
-								</dd>
-
-								<dt>boolean bubblesArg</dt>
-								<dd>
-									<p>Refer to the <a href="#widl-UIEvent-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.</p>
-								</dd>
-
-								<dt>boolean cancelableArg</dt>
-								<dd>
-									<p>Refer to the <a href="#widl-UIEvent-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.</p>
-								</dd>
-
-								<dt>AbstractView? viewArg</dt>
-								<dd>
-									<p>Refer to the <a href="#widl-UIEvent-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.</p>
-								</dd>
-
-								<dt>long detailArg</dt>
-								<dd>
-									<p>Refer to the <a href="#widl-UIEvent-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.</p>
-								</dd>
-
-								<dt>long screenXArg</dt>
-								<dd>
-									<p>Specifies <a href="#widl-MouseEvent-screenX"><code>MouseEvent.screenX</code></a>.</p>
-								</dd>
-
-								<dt>long screenYArg</dt>
-								<dd>
-									<p>Specifies <a href="#widl-MouseEvent-screenY"><code>MouseEvent.screenY</code></a>.</p>
-								</dd>
-
-								<dt>long clientXArg</dt>
-								<dd>
-									<p>Specifies <a href="#widl-MouseEvent-clientX"><code>MouseEvent.clientX</code></a>.</p>
-								</dd>
-
-								<dt>long clientYArg</dt>
-								<dd>
-									<p>Specifies <a href="#widl-MouseEvent-clientY"><code>MouseEvent.clientY</code></a>.</p>
-								</dd>
-
-								<dt>boolean ctrlKeyArg</dt>
-								<dd>
-									<p>Specifies <a href="#widl-MouseEvent-ctrlKey"><code>MouseEvent.ctrlKey</code></a>.</p>
-								</dd>
-
-								<dt>boolean altKeyArg</dt>
-								<dd>
-									<p>Specifies <a href="#widl-MouseEvent-altKey"><code>MouseEvent.altKey</code></a>.</p>
-								</dd>
-
-								<dt>boolean shiftKeyArg</dt>
-								<dd>
-									<p>Specifies <a href="#widl-MouseEvent-shiftKey"><code>MouseEvent.shiftKey</code></a>.</p>
-								</dd>
-
-								<dt>boolean metaKeyArg</dt>
-								<dd>
-									<p>Specifies <a href="#widl-MouseEvent-metaKey"><code>MouseEvent.metaKey</code></a>.</p>
-								</dd>
-
-								<dt>unsigned short buttonArg</dt>
-								<dd>
-									<p>Specifies <a href="#widl-MouseEvent-button"><code>MouseEvent.button</code></a>.</p>
-								</dd>
-
-								<dt>EventTarget? relatedTargetArg</dt>
-								<dd>
-									<p>Specifies <a href="#widl-MouseEvent-relatedTarget"><code>MouseEvent.relatedTarget</code></a>. This value MAY be <code>null</code>.</p>
-								</dd>
-							</dl>
-						</dd>
-
 						<dt>// Introduced in DOM Level 3</dt>
 
 						<dt>boolean getModifierState()</dt>
@@ -4477,7 +4047,7 @@
 					and even the same implementation on different operating systems or using different localizations.  DOM Level 3 Events  does not define values for either
 					<code>keyCode</code> or <code>charCode</code>, or behavior for <code>charCode</code>; content authors can use <a href="#widl-KeyboardEvent-key"><code>KeyboardEvent.key</code></a>
 					instead, in conforming DOM Level 3 Events implementations. <em>For more information, see
-					the informative appendix on <a href="#legacy-key-attributes-events">Legacy key attributes and events</a>.</em></p>
+					the informative appendix on <a href="#legacy-key-attributes">Legacy key attributes</a>.</em></p>
 
 				<p class="note"><strong>Note:</strong> For compatibility with existing content, virtual keyboards, such as software keyboards on screen-based
 					input devices, are expected to produce the normal range of keyboard events, even though they do not possess physical keys.</p>
@@ -5035,620 +4605,6 @@
 				</div>
 			</section>
 
-			<section id="events-mutationevents">
-				<h3>Mutation Events</h3>
-
-				<p>The mutation and mutation name event modules are designed to allow notification of any changes to the structure of a document, including attribute, text, or name
-					modifications.</p>
-
-				<p class="note"><strong>Note:</strong> None of the event types associated with the <code>MutationEvent</code> interface are designated as cancelable. This stems from
-					the fact that it is very difficult to make use of existing DOM interfaces which cause document modifications if any change to the document might or might not take
-					place due to cancelation of the resulting event. Although this is still a desired capability, it was decided that it would be better left until the addition of
-					transactions into the DOM.</p>
-
-				<p>Many single modifications of the tree can cause multiple mutation events to be dispatched. Rather than attempt to specify the ordering of mutation events due to
-					every possible modification of the tree, the ordering of these events is left to the implementation.</p>
-
-				<p class="warning"><strong>Warning!</strong>  The <a href="#interface-MutationEvent">MutationEvent interface</a> was introduced in DOM Level 2 Events, but has not yet been
-					completely and interoperably implemented across <a class="def" href="#glossary-user-agent">user agents</a>. In addition, there have been critiques that the interface, as designed,
-					introduces a performance and implementation challenge. DOM4 [<a href="#references-DOM4">DOM4</a>] provides a new mechanism using a <code>MutationObserver</code> interface which
-					addresses the use cases that mutation events solve, but in a more performant manner. Thus, this specification describes mutation events for reference and completeness of legacy
-					behavior, but <a class="def" href="#glossary-deprecated">deprecates</a> the use of the <a href="#interface-MutationEvent"><code>MutationEvent</code></a> interface.</p>
-
-				<section id="interface-MutationEvent">
-					<h4>Interface MutationEvent</h4>
-
-					<p class="intro-dom">Introduced in DOM Level 2, deprecated in DOM Level 3</p>
-
-					<p>The <code>MutationEvent</code> interface provides specific contextual information associated with Mutation events.</p>
-
-					<p>To create an instance of the <code>MutationEvent</code> interface, use the <a href="#widl-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("MutationEvent")</code></a>
-						method call.</p>
-
-					<dl class="idl" title="interface MutationEvent : Event">
-						<dt>// attrChangeType</dt>
-
-						<dt>const unsigned short MODIFICATION = 1</dt>
-						<dd>
-							<p>The <code>Attr</code> was modified in place.</p>
-						</dd>
-
-						<dt>const unsigned short ADDITION = 2</dt>
-						<dd>
-							<p>The <code>Attr</code> was just added.</p>
-						</dd>
-
-						<dt>const unsigned short REMOVAL = 3</dt>
-						<dd>
-							<p>The <code>Attr</code> was just removed.</p>
-						</dd>
-
-						<dt>readonly attribute Node? relatedNode</dt>
-						<dd>
-							<p><code>relatedNode</code> MUST be used to identify a secondary node related to a mutation event. For example, if a mutation event is dispatched to a node indicating
-								that its parent has changed, the <code>relatedNode</code> will be the changed parent. If an event is instead dispatched to a subtree indicating a node was changed
-								within it, the <code>relatedNode</code> MUST be the changed node. In the case of the <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a>
-								event it indicates the <code>Attr</code> node which was modified, added, or removed.</p>
-
-							<p>The <a class="def" href="#glossary-un-initialized-value">un-initialized value</a> of this attribute MUST be <code>null</code>.</p>
-						</dd>
-
-						<dt>readonly attribute DOMString prevValue</dt>
-						<dd>
-							<p><code>prevValue</code> indicates the previous value of the <code>Attr</code> node in <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a>
-								events, and of the <code>CharacterData</code> node in <a class="eventtype" href="#event-type-DOMCharacterDataModified"><code>DOMCharacterDataModified</code></a>
-								events.</p>
-
-							<p>The <a class="def" href="#glossary-un-initialized-value">un-initialized value</a> of this attribute MUST be <code>""</code> (the empty string).</p>
-						</dd>
-
-						<dt>readonly attribute DOMString newValue</dt>
-						<dd>
-							<p><code>newValue</code> indicates the new value of the <code>Attr</code> node in <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a>
-								events, and of the <code>CharacterData</code> node in <a class="eventtype" href="#event-type-DOMCharacterDataModified"><code>DOMCharacterDataModified</code></a>
-								events.</p>
-
-							<p>The <a class="def" href="#glossary-un-initialized-value">un-initialized value</a> of this attribute MUST be <code>""</code> (the empty string).</p>
-						</dd>
-
-						<dt>readonly attribute DOMString attrName</dt>
-						<dd>
-							<p><code>attrName</code> indicates the name of the changed <code>Attr</code> node in a <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a>
-								event.</p>
-
-							<p>The <a class="def" href="#glossary-un-initialized-value">un-initialized value</a> of this attribute MUST be <code>""</code> (the empty string).</p>
-						</dd>
-
-						<dt>readonly attribute unsigned short attrChange</dt>
-						<dd>
-							<p><code>attrChange</code> indicates the type of change which triggered the <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a>
-								event. The values can be <code>MODIFICATION</code>, <code>ADDITION</code>, or <code>REMOVAL</code>.</p>
-
-							<p>The <a class="def" href="#glossary-un-initialized-value">un-initialized value</a> of this attribute MUST be <code>0</code>.</p>
-
-							<p class="warning"><strong>Warning:</strong> There is no defined constant for the attrChange value of 0 (the un-initialized value).</p>
-						</dd>
-
-						<dt>void initMutationEvent()</dt>
-						<dd>
-							<p>Initializes attributes of a <code>MutationEvent</code> object. This method has the same behavior as <a href="#widl-Event-initEvent"><code>Event.initEvent()</code></a>.</p>
-							<dl class="parameters">
-								<dt>DOMString typeArg</dt>
-								<dd>
-									<p>Refer to the <a href="#widl-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.</p>
-								</dd>
-
-								<dt>boolean bubblesArg</dt>
-								<dd>
-									<p>Refer to the <a href="#widl-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.</p>
-								</dd>
-
-								<dt>boolean cancelableArg</dt>
-								<dd>
-									<p>Refer to the <a href="#widl-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.</p>
-								</dd>
-
-								<dt>Node? relatedNodeArg</dt>
-								<dd>
-									<p>Specifies <a href="#widl-MutationEvent-relatedNode"><code>MutationEvent.relatedNode</code></a>.</p>
-								</dd>
-
-								<dt>DOMString prevValueArg</dt>
-								<dd>
-									<p>Specifies <a href="#widl-MutationEvent-prevValue"><code>MutationEvent.prevValue</code></a>. This value MAY be the <a class="def" href="#glossary-empty-string">
-										empty string</a>.</p>
-								</dd>
-
-								<dt>DOMString newValueArg</dt>
-								<dd>
-									<p>Specifies <a href="#widl-MutationEvent-newValue"><code>MutationEvent.newValue</code></a>. This value MAY be the <a class="def" href="#glossary-empty-string">empty
-										string</a>.</p>
-								</dd>
-
-								<dt>DOMString attrNameArg</dt>
-								<dd>
-									<p>Specifies <a href="#widl-MutationEvent-attrName"><code>MutationEvent.attrName</code></a>. This value MAY be the <a class="def" href="#glossary-empty-string">empty
-										string</a>.</p>
-								</dd>
-
-								<dt>unsigned short attrChangeArg</dt>
-								<dd>
-									<p>Specifies <a href="#widl-MutationEvent-attrChange"><code>MutationEvent.attrChange</code></a>. This value MAY be <code>0</code>.</p>
-								</dd>
-
-							</dl>
-						</dd>
-
-					</dl>
-				</section>
-
-				<p>The mutation event types are listed below.</p>
-
-				<!-- DOMAttrModified -->
-				<div class="event-definition">
-					<dl>
-						<dt id="event-type-DOMAttrModified"><dfn><a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a></dfn></dt>
-						<dd>
-							<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
-								<tr>
-									<th>Type</th>
-									<td><strong><code>DOMAttrModified</code></strong></td>
-								</tr>
-								<tr>
-									<th>Interface</th>
-									<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
-								</tr>
-								<tr>
-									<th>Sync / Async</th>
-									<td>Sync</td>
-								</tr>
-								<tr>
-									<th>Bubbles</th>
-									<td>Yes</td>
-								</tr>
-								<tr>
-									<th>Target</th>
-									<td><code>Element</code></td>
-								</tr>
-								<tr>
-									<th>Cancelable</th>
-									<td>No</td>
-								</tr>
-								<tr>
-									<th>Default action</th>
-									<td>none</td>
-								</tr>
-								<tr>
-									<th>Context info</th>
-									<td>
-										<ul>
-											<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: element whose attribute is being modified</li>
-											<li><a href="#widl-MutationEvent-attrName"><code class="attribute-name">MutationEvent.attrName</code></a>: the name of the changed <code>Attr</code> node</li>
-											<li><a href="#widl-MutationEvent-attrChange"><code class="attribute-name">MutationEvent.attrChange</code></a>: the numerical code corresponding to the most applicable
-												<a href="#widl-MutationEvent-attrChangeType">attrChangeType</a></li>
-											<li><a href="#widl-MutationEvent-relatedNode"><code class="attribute-name">MutationEvent.relatedNode</code></a>:  the <code>Attr</code> node that has been modified,
-												added, or removed.</li>
-											<li><a href="#widl-MutationEvent-newValue"><code class="attribute-name">MutationEvent.newValue</code></a>: new value of the attribute, if the <code>Attr</code> node
-												has been added or modified</li>
-											<li><a href="#widl-MutationEvent-prevValue"><code class="attribute-name">MutationEvent.prevValue</code></a>: previous value of the attribute, if the <code>Attr</code>
-												node has been removed or modified</li>
-										</ul>
-									</td>
-								</tr>
-							</table>
-
-							<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event after an <code>Attr.value</code> has been modified and after an <code>Attr</code>
-								node has been added to or removed from an <code>Element</code>. The <a class="def" href="#glossary-event-target">event target</a> of this event MUST be the <code>Element</code>
-								node where the change occurred. It is implementation dependent whether this event type occurs when the children of the <code>Attr</code> node are changed in ways
-								that do not affect the value of <code>Attr.value</code>.</p>
-
-							<p class="warning"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a> event type is defined
-								in this specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the use of this event type.</p>
-						</dd>
-					</dl>
-				</div>
-
-				<!-- DOMCharacterDataModified -->
-				<div class="event-definition">
-					<dl>
-						<dt id="event-type-DOMCharacterDataModified"><dfn><a class="eventtype" href="#event-type-DOMCharacterDataModified"><code>DOMCharacterDataModified</code></a></dfn></dt>
-						<dd>
-							<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
-								<tr>
-									<th>Type</th>
-									<td><strong><code>DOMCharacterDataModified</code></strong></td>
-								</tr>
-								<tr>
-									<th>Interface</th>
-									<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
-								</tr>
-								<tr>
-									<th>Sync / Async</th>
-									<td>Sync</td>
-								</tr>
-								<tr>
-									<th>Bubbles</th>
-									<td>Yes</td>
-								</tr>
-								<tr>
-									<th>Target</th>
-									<td><code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>ProcessingInstruction</code></td>
-								</tr>
-								<tr>
-									<th>Cancelable</th>
-									<td>No</td>
-								</tr>
-								<tr>
-									<th>Default action</th>
-									<td>none</td>
-								</tr>
-								<tr>
-									<th>Context info</th>
-									<td>
-										<ul>
-											<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: object whose content is being modified</li>
-											<li><a href="#widl-MutationEvent-attrName"><code class="attribute-name">MutationEvent.attrName</code></a>: the <a class="def" href="#glossary-empty-string">empty
-												string</a></li>
-											<li><a href="#widl-MutationEvent-attrChange"><code class="attribute-name">MutationEvent.attrChange</code></a>: <code>0</code></li>
-											<li><a href="#widl-MutationEvent-relatedNode"><code class="attribute-name">MutationEvent.relatedNode</code></a>: parent node of the object whose content is being
-												modified</li>
-											<li><a href="#widl-MutationEvent-newValue"><code class="attribute-name">MutationEvent.newValue</code></a>: new value of the object</li>
-											<li><a href="#widl-MutationEvent-prevValue"><code class="attribute-name">MutationEvent.prevValue</code></a>: previous value of the object</li>
-										</ul>
-									</td>
-								</tr>
-							</table>
-
-							<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event after <code>CharacterData.data</code> or <code>ProcessingInstruction.data</code>
-								have been modified, but the node itself has not been inserted or deleted.  The <a class="def" href="#glossary-event-target">event target</a> of this event MUST
-								be the <code>CharacterData</code> node or the <code>ProcessingInstruction</code> node.</p>
-
-							<p class="warning" id="_45"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMCharacterDataModified"><code>DOMCharacterDataModified</code></a>
-								event type is defined in this specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the
-								use of this event type.</p>
-						</dd>
-					</dl>
-				</div>
-
-				<!-- DOMNodeInserted -->
-				<div class="event-definition">
-					<dl>
-						<dt id="event-type-DOMNodeInserted"><dfn><a class="eventtype" href="#event-type-DOMNodeInserted"><code>DOMNodeInserted</code></a></dfn></dt>
-						<dd>
-							<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
-								<tr>
-									<th>Type</th>
-									<td><strong><code>DOMNodeInserted</code></strong></td>
-								</tr>
-								<tr>
-									<th>Interface</th>
-									<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
-								</tr>
-								<tr>
-									<th>Sync / Async</th>
-									<td>Sync</td>
-								</tr>
-								<tr>
-									<th>Bubbles</th>
-									<td>Yes</td>
-								</tr>
-								<tr>
-									<th>Target</th>
-									<td><code>Element</code>, <code>Attr</code>, <code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>DocumentType</code>, <code>EntityReference</code>,
-										<code>ProcessingInstruction</code></td>
-								</tr>
-								<tr>
-									<th>Cancelable</th>
-									<td>No</td>
-								</tr>
-								<tr>
-									<th>Default action</th>
-									<td>none</td>
-								</tr>
-								<tr>
-									<th>Context info</th>
-									<td>
-										<ul>
-											<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: element which is being inserted</li>
-											<li><a href="#widl-MutationEvent-attrName"><code class="attribute-name">MutationEvent.attrName</code></a>: the <a class="def" href="#glossary-empty-string">empty
-												string</a></li>
-											<li><a href="#widl-MutationEvent-attrChange"><code class="attribute-name">MutationEvent.attrChange</code></a>: <code>0</code></li>
-											<li><a href="#widl-MutationEvent-relatedNode"><code class="attribute-name">MutationEvent.relatedNode</code></a>:  parent node of the node that has been inserted,
-												or the <code>ownerElement</code> in the case of <code>Attr</code> nodes</li>
-											<li><a href="#widl-MutationEvent-newValue"><code class="attribute-name">MutationEvent.newValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
-												string</a></li>
-											<li><a href="#widl-MutationEvent-prevValue"><code class="attribute-name">MutationEvent.prevValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
-												string</a></li>
-										</ul>
-									</td>
-								</tr>
-							</table>
-
-							<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event type when a node other than an <code>Attr</code> node has been added as a child
-								of another node.  A <a class="def" href="#glossary-user-agent">user agent</a> MAY dispatch this event when an <code>Attr</code> node has been added to an <code>Element</code>
-								node (see <a href="#DOMNodeInserted-attr">note</a> below). This event MUST be dispatched after the insertion has taken place. The <a class="def" href="#glossary-event-target">
-								event target</a> of this event MUST be the node being inserted.</p>
-
-							<p class="note" id="DOMNodeInserted-attr"><strong>Note:</strong> For detecting attribute insertion, use the <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a>
-								event type instead.</p>
-
-							<p class="warning"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMNodeInserted"><code>DOMNodeInserted</code></a> event type is defined in this specification
-								for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the use of this event type.</p>
-						</dd>
-					</dl>
-				</div>
-
-				<!-- DOMNodeInsertedIntoDocument -->
-				<div class="event-definition">
-					<dl>
-						<dt id="event-type-DOMNodeInsertedIntoDocument"><dfn><a class="eventtype" href="#event-type-DOMNodeInsertedIntoDocument"><code>DOMNodeInsertedIntoDocument</code></a></dfn></dt>
-						<dd>
-							<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
-								<tr>
-									<th>Type</th>
-									<td><strong><code>DOMNodeInsertedIntoDocument</code></strong></td>
-								</tr>
-								<tr>
-									<th>Interface</th>
-									<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
-								</tr>
-								<tr>
-									<th>Sync / Async</th>
-									<td>Sync</td>
-								</tr>
-								<tr>
-									<th>Bubbles</th>
-									<td>No</td>
-								</tr>
-								<tr>
-									<th>Target</th>
-									<td><code>Element</code>, <code>Attr</code>, <code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>DocumentType</code>, <code>EntityReference</code>,
-										<code>ProcessingInstruction</code></td>
-								</tr>
-								<tr>
-									<th>Cancelable</th>
-									<td>No</td>
-								</tr>
-								<tr>
-									<th>Default action</th>
-									<td>none</td>
-								</tr>
-								<tr>
-									<th>Context info</th>
-									<td>
-										<ul>
-											<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: element which is being inserted</li>
-											<li><a href="#widl-MutationEvent-attrName"><code class="attribute-name">MutationEvent.attrName</code></a>: the <a class="def" href="#glossary-empty-string">empty
-												string</a></li>
-											<li><a href="#widl-MutationEvent-attrChange"><code class="attribute-name">MutationEvent.attrChange</code></a>: <code>0</code></li>
-											<li><a href="#widl-MutationEvent-relatedNode"><code class="attribute-name">MutationEvent.relatedNode</code></a>:  parent node of the node that has been inserted,
-												or the <code>ownerElement</code> in the case of <code>Attr</code> nodes</li>
-											<li><a href="#widl-MutationEvent-newValue"><code class="attribute-name">MutationEvent.newValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
-												string</a></li>
-											<li><a href="#widl-MutationEvent-prevValue"><code class="attribute-name">MutationEvent.prevValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
-												string</a></li>
-										</ul>
-									</td>
-								</tr>
-							</table>
-
-							<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event when a node has been inserted into a document, either through direct insertion
-								of the node or insertion of a subtree in which it is contained; a <a class="def" href="#glossary-user-agent">user agent</a> MAY  treat an <code>Attr</code>
-								node as part of an <code>Element</code>'s subtree. This event MUST be dispatched after the insertion has taken place. The <a class="def" href="#glossary-event-target">
-								event target</a> of this event MUST be the node being inserted. If the node is being directly inserted, the event type <a class="eventtype" href="#event-type-DOMNodeInserted">
-								<code>DOMNodeInserted</code></a> MUST occur before this event type.</p>
-
-							<p class="warning"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMNodeInsertedIntoDocument"><code>DOMNodeInsertedIntoDocument</code></a>
-								event type is defined in this specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the
-								use of this event type.</p>
-						</dd>
-					</dl>
-				</div>
-
-				<!-- DOMNodeRemoved -->
-				<div class="event-definition">
-					<dl>
-						<dt id="event-type-DOMNodeRemoved"><dfn><a class="eventtype" href="#event-type-DOMNodeRemoved"><code>DOMNodeRemoved</code></a></dfn></dt>
-						<dd>
-							<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
-								<tr>
-									<th>Type</th>
-									<td><strong><code>DOMNodeRemoved</code></strong></td>
-								</tr>
-								<tr>
-									<th>Interface</th>
-									<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
-								</tr>
-								<tr>
-									<th>Sync / Async</th>
-									<td>Sync</td>
-								</tr>
-								<tr>
-									<th>Bubbles</th>
-									<td>Yes</td>
-								</tr>
-								<tr>
-									<th>Target</th>
-									<td><code>Element</code>, <code>Attr</code>, <code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>DocumentType</code>, <code>EntityReference</code>,
-										<code>ProcessingInstruction</code></td>
-								</tr>
-								<tr>
-									<th>Cancelable</th>
-									<td>No</td>
-								</tr>
-								<tr>
-									<th>Default action</th>
-									<td>none</td>
-								</tr>
-								<tr>
-									<th>Context info</th>
-									<td>
-										<ul>
-											<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: element which is being removed</li>
-											<li><a href="#widl-MutationEvent-attrName"><code class="attribute-name">MutationEvent.attrName</code></a>: the <a class="def" href="#glossary-empty-string">empty
-												string</a></li>
-											<li><a href="#widl-MutationEvent-attrChange"><code class="attribute-name">MutationEvent.attrChange</code></a>: <code>0</code></li>
-											<li><a href="#widl-MutationEvent-relatedNode"><code class="attribute-name">MutationEvent.relatedNode</code></a>: the parent node of the node being removed, or the
-												<code>ownerElement</code> in the case of <code>Attr</code> nodes</li>
-											<li><a href="#widl-MutationEvent-newValue"><code class="attribute-name">MutationEvent.newValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
-												string</a></li>
-											<li><a href="#widl-MutationEvent-prevValue"><code class="attribute-name">MutationEvent.prevValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
-												string</a></li>
-										</ul>
-									</td>
-								</tr>
-							</table>
-
-							<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event when a node other than an <code>Attr</code> node is being removed from its
-								parent node.  A <a class="def" href="#glossary-user-agent">user agent</a> MAY dispatch this event when an <code>Attr</code> node is being removed from its <code>ownerElement</code>
-								(see <a href="#DOMNodeRemoved-attr">note</a> below). This event MUST be dispatched before the removal takes place. The <a class="def" href="#glossary-event-target">
-								event target</a> of this event MUST be the node being removed.</p>
-
-							<p class="note" id="DOMNodeRemoved-attr"><strong>Note:</strong> For reliably detecting attribute removal, use the <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a>
-								event type instead.</p>
-
-							<p class="warning"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMNodeRemoved"><code>DOMNodeRemoved</code></a> event type is defined
-								in this specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the use of this event type.
-							</p>
-						</dd>
-					</dl>
-				</div>
-
-				<!-- DOMNodeRemovedFromDocument -->
-				<div class="event-definition">
-					<dl>
-						<dt id="event-type-DOMNodeRemovedFromDocument"><dfn><a class="eventtype" href="#event-type-DOMNodeRemovedFromDocument"><code>DOMNodeRemovedFromDocument</code></a></dfn></dt>
-						<dd>
-							<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
-								<tr>
-									<th>Type</th>
-									<td><strong><code>DOMNodeRemovedFromDocument</code></strong></td>
-								</tr>
-								<tr>
-									<th>Interface</th>
-									<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
-								</tr>
-								<tr>
-									<th>Sync / Async</th>
-									<td>Sync</td>
-								</tr>
-								<tr>
-									<th>Bubbles</th>
-									<td>No</td>
-								</tr>
-								<tr>
-									<th>Target</th>
-									<td><code>Element</code>, <code>Attr</code>, <code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>DocumentType</code>, <code>EntityReference</code>,
-										<code>ProcessingInstruction</code></td>
-								</tr>
-								<tr>
-									<th>Cancelable</th>
-									<td>No</td>
-								</tr>
-								<tr>
-									<th>Default action</th>
-									<td>none</td>
-								</tr>
-								<tr>
-									<th>Context info</th>
-									<td>
-										<ul>
-											<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: element which is being removed</li>
-											<li><a href="#widl-MutationEvent-attrName"><code class="attribute-name">MutationEvent.attrName</code></a>: the <a class="def" href="#glossary-empty-string">empty
-												string</a></li>
-											<li><a href="#widl-MutationEvent-attrChange"><code class="attribute-name">MutationEvent.attrChange</code></a>: <code>0</code></li>
-											<li><a href="#widl-MutationEvent-relatedNode"><code class="attribute-name">MutationEvent.relatedNode</code></a>: the parent node of the node being removed, or the
-												<code>ownerElement</code> in the case of <code>Attr</code> nodes</li>
-											<li><a href="#widl-MutationEvent-newValue"><code class="attribute-name">MutationEvent.newValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
-												string</a></li>
-											<li><a href="#widl-MutationEvent-prevValue"><code class="attribute-name">MutationEvent.prevValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
-												string</a></li>
-										</ul>
-									</td>
-								</tr>
-							</table>
-
-							<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event when a node is being removed from a document, either through direct removal
-								of the node or removal of a subtree in which it is contained; a <a class="def" href="#glossary-user-agent">user agent</a> MAY treat an <code>Attr</code>
-								node as part of an <code>Element</code>'s subtree. This event MUST be dispatched before the removal takes place. The <a class="def" href="#glossary-event-target">event
-								target</a> of this event type MUST be the node being removed. If the node is being directly removed, the event type <a class="eventtype" href="#event-type-DOMNodeRemoved">
-								<code>DOMNodeRemoved</code></a> MUST occur before this event type.</p>
-
-							<p class="note"><strong>Note:</strong> For reliably detecting attribute removal, use the <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a>
-								event type instead.</p>
-
-							<p class="warning"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMNodeRemovedFromDocument"><code>DOMNodeRemovedFromDocument</code></a>
-								event type is defined in this specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the
-								use of this event type.</p>
-						</dd>
-					</dl>
-				</div>
-
-				<!-- DOMSubtreeModified -->
-				<div class="event-definition">
-					<dl>
-						<dt id="event-type-DOMSubtreeModified"><dfn><a class="eventtype" href="#event-type-DOMSubtreeModified"><code>DOMSubtreeModified</code></a></dfn></dt>
-						<dd>
-							<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
-								<tr>
-									<th>Type</th>
-									<td><strong><code>DOMSubtreeModified</code></strong></td>
-								</tr>
-								<tr>
-									<th>Interface</th>
-									<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
-								</tr>
-								<tr>
-									<th>Sync / Async</th>
-									<td>Sync</td>
-								</tr>
-								<tr>
-									<th>Bubbles</th>
-									<td>Yes</td>
-								</tr>
-								<tr>
-									<th>Target</th>
-									<td><a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, <code>DocumentFragment</code>, <code>Element</code>, <code>Attr</code>
-									</td>
-								</tr>
-								<tr>
-									<th>Cancelable</th>
-									<td>No</td>
-								</tr>
-								<tr>
-									<th>Default action</th>
-									<td>none</td>
-								</tr>
-								<tr>
-									<th>Context info</th>
-									<td>
-										<ul>
-											<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: parent node of subtree being modified</li>
-											<li><a href="#widl-MutationEvent-attrName"><code class="attribute-name">MutationEvent.attrName</code></a>: the <a class="def" href="#glossary-empty-string">empty
-												string</a></li>
-											<li><a href="#widl-MutationEvent-attrChange"><code class="attribute-name">MutationEvent.attrChange</code></a>: <code>0</code></li>
-											<li><a href="#widl-MutationEvent-relatedNode"><code class="attribute-name">MutationEvent.relatedNode</code></a>: <code>null</code></li>
-											<li><a href="#widl-MutationEvent-newValue"><code class="attribute-name">MutationEvent.newValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
-												string</a></li>
-											<li><a href="#widl-MutationEvent-prevValue"><code class="attribute-name">MutationEvent.prevValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
-												string</a></li>
-										</ul>
-									</td>
-								</tr>
-							</table>
-
-							<p>This is a general event for notification of all changes to the document. It can be used instead of the more specific mutation and mutation name events. It MAY be
-								dispatched after a single modification to the document or, at the implementation's discretion, after multiple changes have occurred. The latter case SHOULD generally
-								be used to accommodate multiple changes which occur either simultaneously or in rapid succession. The target of this event MUST be the lowest common parent of the
-								changes which have taken place. This event MUST be dispatched after any other events caused by the mutation(s) have occurred.</p>
-
-							<p class="warning"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMSubtreeModified"><code>DOMSubtreeModified</code></a> event type is defined in this
-								specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the use of this event type.</p>
-						</dd>
-					</dl>
-				</div>
-
-			</section>
 		</section>
 
 	</section>  <!-- events-module -->
@@ -7218,13 +6174,19 @@
 				<li><a href="#idl-interface-CompositionEvent-initializers"><code>CompositionEvent</code></a></li>
 			</ul>
 			<p>
+				This section also documents suggested event constructors for the following event interfaces which were introduced in DOM Level 2 Events [<a
+					href="#references-DOM2Events">DOM2 Events</a>] and deprecated in this specification:
+			</p>
+			<ul>
+				<li><a href="#idl-interface-UIEvent-initializers"><code>UIEvent</code></a></li>
+				<li><a href="#idl-interface-MouseEvent-initializers"><code>MouseEvent</code></a></li>
+			</ul>
+			<p>
 				For completeness, this section also documents suggested event constructors for the following event interfaces which were introduced in DOM Level 2 Events [<a
 					href="#references-DOM2Events">DOM2 Events</a>] but not deprecated in this specification:
 			</p>
 			<ul>
 				<li><a href="#idl-interface-Event-initializers"><code>Event</code></a></li>
-				<li><a href="#idl-interface-UIEvent-initializers"><code>UIEvent</code></a></li>
-				<li><a href="#idl-interface-MouseEvent-initializers"><code>MouseEvent</code></a></li>
 			</ul>
 
 			<section id="idl-interface-Event-initializers">
@@ -7284,6 +6246,42 @@
 					<dt>long detail = 0</dt><dd></dd>
 				</dl>
 				<dl class="idl" title="[Constructor(DOMString typeArg, optional UIEventInit uiEventInitDict] partial interface UIEvent">
+					<dt>// Deprecated in DOM Level 3</dt>
+
+					<dt>void initUIEvent()</dt>
+					<dd>
+						<p>Initializes attributes of an <code>UIEvent</code> object. This method has the same behavior as <a href="#widl-Event-initEvent"><code>Event.initEvent()</code></a>.</p>
+
+						<p class="warning"><strong>Warning!</strong> The <code>initUIEvent</code> method is deprecated, but supported for backwards-compatibility with widely-deployed
+							implementations. See [<a href="#references-UIEvents">UI Events</a>] for an alternate initializer syntax.</p>
+
+						<dl class="parameters">
+							<dt>DOMString typeArg</dt>
+							<dd>
+								<p>Refer to the <a href="#widl-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.</p>
+							</dd>
+
+							<dt>boolean bubblesArg</dt>
+							<dd>
+								<p>Refer to the <a href="#widl-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.</p>
+							</dd>
+
+							<dt>boolean cancelableArg</dt>
+							<dd>
+								<p>Refer to the <a href="#widl-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.</p>
+							</dd>
+
+							<dt>AbstractView? viewArg</dt>
+							<dd>
+								<p>Specifies <a href="#widl-UIEvent-view"><code>UIEvent.view</code></a>. This value MAY be <code>null</code>.</p>
+							</dd>
+
+							<dt>long detailArg</dt>
+							<dd>
+								<p>Specifies <a href="#widl-UIEvent-detail"><code>UIEvent.detail</code></a>.</p>
+							</dd>
+						</dl>
+					</dd>
 				</dl>
 			</section>
 
@@ -7355,7 +6353,94 @@
 					<dt>unsigned short buttons = 0</dt><dd></dd>
 					<dt>EventTarget? relatedTarget = null</dt><dd></dd>
 				</dl>
-				<dl class="idl" title="[Constructor(DOMString typeArg, optional MouseEventInit mouseEventInitDict] partial interface UIEvent">
+				<dl class="idl" title="[Constructor(DOMString typeArg, optional MouseEventInit mouseEventInitDict] partial interface MouseEvent">
+					<dt>// Deprecated in DOM Level 3</dt>
+
+					<dt>void initMouseEvent()</dt>
+					<dd>
+						<p>Initializes attributes of a <code>MouseEvent</code> object. This method has the same behavior as <a href="#widl-UIEvent-initUIEvent"><code>UIEvent.initUIEvent()</code></a>.</p>
+
+						<p class="warning"><strong>Warning!</strong> The <code>initMouseEvent</code> method is deprecated, but supported for backwards-compatibility with widely-deployed
+							implementations. See [<a href="#references-UIEvents">UI Events</a>] for an alternate initializer syntax.</p>
+
+						<dl class="parameters">
+							<dt>DOMString typeArg</dt>
+							<dd>
+								<p>Refer to the <a href="#widl-UIEvent-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.</p>
+							</dd>
+
+							<dt>boolean bubblesArg</dt>
+							<dd>
+								<p>Refer to the <a href="#widl-UIEvent-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.</p>
+							</dd>
+
+							<dt>boolean cancelableArg</dt>
+							<dd>
+								<p>Refer to the <a href="#widl-UIEvent-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.</p>
+							</dd>
+
+							<dt>AbstractView? viewArg</dt>
+							<dd>
+								<p>Refer to the <a href="#widl-UIEvent-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.</p>
+							</dd>
+
+							<dt>long detailArg</dt>
+							<dd>
+								<p>Refer to the <a href="#widl-UIEvent-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.</p>
+							</dd>
+
+							<dt>long screenXArg</dt>
+							<dd>
+								<p>Specifies <a href="#widl-MouseEvent-screenX"><code>MouseEvent.screenX</code></a>.</p>
+							</dd>
+
+							<dt>long screenYArg</dt>
+							<dd>
+								<p>Specifies <a href="#widl-MouseEvent-screenY"><code>MouseEvent.screenY</code></a>.</p>
+							</dd>
+
+							<dt>long clientXArg</dt>
+							<dd>
+								<p>Specifies <a href="#widl-MouseEvent-clientX"><code>MouseEvent.clientX</code></a>.</p>
+							</dd>
+
+							<dt>long clientYArg</dt>
+							<dd>
+								<p>Specifies <a href="#widl-MouseEvent-clientY"><code>MouseEvent.clientY</code></a>.</p>
+							</dd>
+
+							<dt>boolean ctrlKeyArg</dt>
+							<dd>
+								<p>Specifies <a href="#widl-MouseEvent-ctrlKey"><code>MouseEvent.ctrlKey</code></a>.</p>
+							</dd>
+
+							<dt>boolean altKeyArg</dt>
+							<dd>
+								<p>Specifies <a href="#widl-MouseEvent-altKey"><code>MouseEvent.altKey</code></a>.</p>
+							</dd>
+
+							<dt>boolean shiftKeyArg</dt>
+							<dd>
+								<p>Specifies <a href="#widl-MouseEvent-shiftKey"><code>MouseEvent.shiftKey</code></a>.</p>
+							</dd>
+
+							<dt>boolean metaKeyArg</dt>
+							<dd>
+								<p>Specifies <a href="#widl-MouseEvent-metaKey"><code>MouseEvent.metaKey</code></a>.</p>
+							</dd>
+
+							<dt>unsigned short buttonArg</dt>
+							<dd>
+								<p>Specifies <a href="#widl-MouseEvent-button"><code>MouseEvent.button</code></a>.</p>
+							</dd>
+
+							<dt>EventTarget? relatedTargetArg</dt>
+							<dd>
+								<p>Specifies <a href="#widl-MouseEvent-relatedTarget"><code>MouseEvent.relatedTarget</code></a>. This value MAY be <code>null</code>.</p>
+							</dd>
+						</dl>
+					</dd>
+
 				</dl>
 			</section>
 
@@ -7576,11 +6661,11 @@
 	</section>
 
 	<!-- Appendix B: Legacy key attributes ========================================================-->
-	<section id="legacy-key-attributes-events">
-		<h1>Legacy key attributes and events</h1>
+	<section id="legacy-key-attributes">
+		<h1>Legacy key attributes</h1>
 		<p><em>This section is informative</em></p>
 
-		<p>This section provides a non-normative description of the attributes and events that are currently employed for handling keyboard events.</p>
+		<p>This section provides a non-normative description of the attributes that are currently used when handling keyboard events.</p>
 
 		<p>These features were never formally specified and the current browser implementations vary in significant ways.
 			The large amount of legacy content, including script libraries, that relies upon detecting the <a class="def" href="#glossary-user-agent">user agent</a>
@@ -7590,12 +6675,7 @@
 		<p>Therefore, this specification does not normatively define the events and attributes commonly employed for handling keyboard input,
 			though they MAY be present in <a class="def" href="#glossary-user-agent">user agents</a> for compatibility with legacy content.
 			Authors SHOULD use the <a href="#widl-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> attribute instead of the <code class="attribute-name">charCode</code>
-			and <code class="attribute-name">keyCode</code> attributes.
-			Authors SHOULD also make use of the
-				<a class="eventtype" href="#event-type-beforeinput"><code>beforeinput</code></a>
-			event instead of the
-				<a class="eventtype" href="#event-type-keypress"><code>keypress</code></a>
-			event.</p>
+			and <code class="attribute-name">keyCode</code> attributes.</p>
 
 		<p>However, for the purpose of documenting the current state of these features and their relation to normative events and attributes, this section provides an
 			informative description.
@@ -7668,175 +6748,6 @@
 			</dl>
 		</section>
 
-		<section id="legacy-keypress-event">
-			<h2>Legacy <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event</h2>
-			<p><em>This section is informative</em></p>
-
-			<p>The <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event is the traditional method for capturing key events and
-				processing them before the DOM is updated with the effects of the key press. Code that makes use of the
-					<a class="eventtype" href="#event-type-keypress"><code>keypress</code></a>
-				event typically relies on the legacy
-					<a href="#widl-KeyboardEvent-charCode">charCode</a>,
-					<a href="#widl-KeyboardEvent-keyCode">keyCode</a>,
-					and <a href="#widl-KeyboardEvent-which">which</a>
-				attributes.</p>
-
-			<p>Note that the <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event is specific to key events, and has been replaced
-				by the more general event sequence of <a class="eventtype" href="#event-type-beforeinput"><code>beforeinput</code></a>
-				and <a class="eventtype" href="#event-type-input"><code>input</code></a> events.
-				These new input events are not specific to keyboard actions and can be used to capture user input regardless of the original source.
-				</p>
-				
-			<!-- keypress -->
-			<div class="event-definition">
-				<dl>
-					<dt id="event-type-keypress"><dfn><a class="eventtype" href="#event-type-keypress"><code>keypress</code></a></dfn></dt>
-					<dd>
-						<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
-							<tr>
-								<th>Type</th>
-								<td><strong><code>keypress</code></strong></td>
-							</tr>
-							<tr>
-								<th>Interface</th>
-								<td><a href="#interface-KeyboardEvent"><code>KeyboardEvent</code></a></td>
-							</tr>
-							<tr>
-								<th>Sync / Async</th>
-								<td>Sync</td>
-							</tr>
-							<tr>
-								<th>Bubbles</th>
-								<td>Yes</td>
-							</tr>
-							<tr>
-								<th>Target</th>
-								<td><code>Document</code>, <code>Element</code></td>
-							</tr>
-							<tr>
-								<th>Cancelable</th>
-								<td>Yes</td>
-							</tr>
-							<tr>
-								<th>Default action</th>
-								<td>Varies: launch <a class="def" href="#glossary-text-composition-system">text composition system</a>; <a class="eventtype" href="#event-type-blur"><code>blur</code></a>
-									and <a class="eventtype" href="#event-type-focus"><code>focus</code></a> events; <a class="eventtype" href="#event-type-DOMActivate"><code>DOMActivate</code></a>
-									event; other event</td>
-							</tr>
-							<tr>
-								<th>Context info</th>
-								<td>
-									<ul>
-										<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: focused element processing the key event, root element if no suitable
-											input element focused</li>
-										<li><a href="#widl-UIEvent-view"><code class="attribute-name">UIEvent.view</code></a>: <a class="def" href="#glossary-defaultView"><code>defaultView</code></a></li>
-										<li><a href="#widl-UIEvent-detail"><code class="attribute-name">UIEvent.detail</code></a>: <code>0</code></li>
-										<li><a href="#widl-KeyboardEvent-charCode"><code class="attribute-name">KeyboardEvent.charCode</code></a>: legacy character value for this event</li>
-										<li><a href="#widl-KeyboardEvent-keyCode"><code class="attribute-name">KeyboardEvent.keyCode</code></a>: legacy numerical code for this key</li>
-										<li><a href="#widl-KeyboardEvent-which"><code class="attribute-name">KeyboardEvent.which</code></a>: legacy numerical code for this key</li>
-										<li><a href="#widl-KeyboardEvent-key"><code class="attribute-name">KeyboardEvent.key</code></a>: the key value of the key pressed.</li>
-										<li><a href="#widl-KeyboardEvent-location"><code class="attribute-name">KeyboardEvent.location</code></a>: the location of the key on the device.</li>
-										<li><a href="#widl-KeyboardEvent-altKey"><code class="attribute-name">KeyboardEvent.altKey</code></a>: <code>true</code> if <a href="#key-Alt"><code class="key">
-											'Alt'</code></a> modifier was active, otherwise <code>false</code></li>
-										<li><a href="#widl-KeyboardEvent-shiftKey"><code class="attribute-name">KeyboardEvent.shiftKey</code></a>:  <code>true</code> if <a href="#key-Shift"><code class="key">
-											'Shift'</code></a> modifier was active, otherwise <code>false</code></li>
-										<li><a href="#widl-KeyboardEvent-ctrlKey"><code class="attribute-name">KeyboardEvent.ctrlKey</code></a>:  <code>true</code> if <a href="#key-Control"><code class="key">
-											'Control'</code></a> modifier was active, otherwise <code>false</code></li>
-										<li><a href="#widl-KeyboardEvent-metaKey"><code class="attribute-name">KeyboardEvent.metaKey</code></a>:  <code>true</code> if <a href="#key-Meta"><code class="key">
-											'Meta'</code></a> modifier was active, otherwise <code>false</code></li>
-										<li><a href="#widl-KeyboardEvent-repeat"><code class="attribute-name">KeyboardEvent.repeat</code></a>:  <code>true</code> if a key has been depressed long enough
-											to trigger key repetition, otherwise <code>false</code></li>
-										<li><a href="#widl-KeyboardEvent-locale"><code class="attribute-name">KeyboardEvent.locale</code></a>: the language code for the key event, if available; otherwise,
-											the <a class="def" href="#glossary-empty-string">empty string</a></li>
-									</ul>
-								</td>
-							</tr>
-						</table>
-
-						<p>If supported by a <a class="def" href="#glossary-user-agent">user agent</a>, this event MUST be dispatched when a key is pressed down, if and only if that key normally produces a <a
-							class="def" href="#glossary-character-value">character value</a>. The <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event type is device
-							dependent and relies on the capabilities of the input devices and how they are mapped in the operating system. This event type MUST be generated after the <a class="def"
-							href="#glossary-key-mapping">key mapping</a>. It MUST NOT be fired when using an <a class="def" href="#glossary-ime">input method editor</a>.
-							If this event is canceled, it should prevent the
-								<a class="eventtype" href="#event-type-input"><code>input</code></a>
-							event from firing, in addition to canceling the
-							<a class="def" href="#glossary-default-action">default action</a>.</p>
-
-						<p class="note"><strong>Note:</strong> The <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event is traditionally associated with detecting a
-							<a class="def" href="#glossary-character-value">character value</a> rather than a physical key, and might not be available on all keys in some configurations.</p>
-
-						<p class="warning"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event type is defined in this
-							specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the use of this event type. When
-							in editing contexts, authors can subscribe to the <code>beforeinput</code> event instead.</p>
-
-					</dd>
-				</dl>
-			</div>
-
-			<section id="keypress-event-order">
-				<h2><a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event order</h2>
-
-				<p>The <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event type MUST be dispatched after the
-					<a class="eventtype" href="#event-type-keydown"><code>keydown</code></a> event and before the
-					<a class="eventtype" href="#event-type-keyup"><code>keyup</code></a> event associated with the same key.</p>
-
-				<p>The <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event type MUST be dispatched after the
-					<a class="eventtype" href="#event-type-beforeinput"><code>beforeinput</code></a> event and before the
-					<a class="eventtype" href="#event-type-input"><code>input</code></a> event associated with the same key.</p>
-
-				<p>The sequence of key events for user-agents the support the <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event
-					is demonstrated in the following example:</p>
-
-				<div class="example">
-					<div class="example-title">Example</div>
-					<table class="event-sequence-table">
-						<tr>
-							<td class="cell-right"></td>
-							<th>Event Name</th>
-							<th class="cell-center"><a href="#widl-KeyboardEvent-key"><code>KeyboardEvent<br/>key</code></a></th>
-							<th class="cell-center"><a href="#widl-CompositionEvent-data"><code>CompositionEvent<br/>data</code></a></th>
-						</tr>
-						<tr>
-							<td class="cell-right">1.</td>
-							<td><a class="eventtype" href="#event-type-keydown"><code>keydown</code></a></td>
-							<td class="cell-center"><code class="key">'a'</code></td>
-							<td class="cell-center"></td>
-						</tr>
-						<tr>
-							<td class="cell-right">2.</td>
-							<td><a class="eventtype" href="#event-type-beforeinput"><code>beforeinput</code></a></td>
-							<td class="cell-center"></td>
-							<td class="cell-center"><code class="key">'a'</code></td>
-						</tr>
-						<tr>
-							<td class="cell-right">3.</td>
-							<td><a class="eventtype" href="#event-type-keypress"><code>keypress</code></a></td>
-							<td class="cell-center"><code class="key">'a'</code></td>
-							<td class="cell-center"></td>
-						</tr>
-						<tr>
-							<td class="cell-right"></td>
-							<td colapsan="3"><em>Any <a class="def" href="#glossary-default-action">default actions</a> related to this key, such as inserting a
-								character in to the DOM.</em></td>
-						</tr>
-						<tr>
-							<td class="cell-right">4.</td>
-							<td><a class="eventtype" href="#event-type-input"><code>input</code></a></td>
-							<td class="cell-center"></td>
-							<td class="cell-center"></td>
-						</tr>
-						<tr>
-							<td class="cell-right">5.</td>
-							<td><a class="eventtype" href="#event-type-keyup"><code>keyup</code></a></td>
-							<td class="cell-center"><code class="key">'a'</code></td>
-							<td class="cell-center"></td>
-						</tr>
-					</table>
-				</div>
-			</section>
-		
-		</section>
-
 		<section id="legacy-key-models">
 			<h2>Legacy key models</h2>
 			<p><em>This section is informative</em></p>
@@ -8067,6 +6978,1125 @@
 		</section>
 	</section>
 
+	<section id="legacy-event-types">
+		<h1>Legacy event types</h1>
+		<p><em>This section is informative</em></p>
+
+		<p>This section provides a non-normative description of the event types that are deprecated in this document.</p>
+
+		<p>The purpose of this section is to document the current state of these features and their relation to normative events.
+			For implementations which do support these events, it is suggested that the definitions provided in this section be used.</p>
+
+		<p>The following table provides an informative summary of the event types which are deprecated in this specification. They are included here for reference and completeness.</p>
+
+		<table class="data-table"
+			summary="This table contains the complete list of the deprecated event types defined by DOM Level 3 Events. The first column contains the local name of the event type. The second column indicates if the event accomplish the bubbling phase or not (all events accomplish the capture and target phases). The third column indicates if the default action associated with the event can be canceled. The fourth column indicates the nodes that can be target of the event. the fifth (and last) column indicates the DOM interface implemented by the event object.">
+			<tr>
+				<th>Event Type</th>
+				<th>Sync / Async</th>
+				<th>Bubbling phase</th>
+				<th>Trusted event target types</th>
+				<th>DOM interface</th>
+				<th>Cancelable</th>
+				<th>Default Action</th>
+			</tr>
+			<tr>
+				<td><a class="eventtype" href="#event-type-DOMActivate"><code>DOMActivate</code></a></td>
+				<td>Sync</td>
+				<td>Yes</td>
+				<td><code>Element</code></td>
+				<td><a href="#interface-UIEvent"><code>UIEvent</code></a></td>
+				<td>Yes</td>
+				<td>none</td>
+			</tr>
+			<tr>
+				<td><a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a></td>
+				<td>Sync</td>
+				<td>Yes</td>
+				<td><code>Element</code></td>
+				<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
+				<td>No</td>
+				<td>none</td>
+			</tr>
+			<tr>
+				<td><a class="eventtype" href="#event-type-DOMCharacterDataModified"><code>DOMCharacterDataModified</code></a></td>
+				<td>Sync</td>
+				<td>Yes</td>
+				<td><code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>ProcessingInstruction</code></td>
+				<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
+				<td>No</td>
+				<td>none</td>
+			</tr>
+			<tr>
+				<td><a class="eventtype" href="#event-type-DOMFocusIn"><code>DOMFocusIn</code></a></td>
+				<td>Sync</td>
+				<td>Yes</td>
+				<td><code>Element</code></td>
+				<td><a href="#interface-FocusEvent"><code>FocusEvent</code></a></td>
+				<td>No</td>
+				<td>none</td>
+			</tr>
+			<tr>
+				<td><a class="eventtype" href="#event-type-DOMFocusOut"><code>DOMFocusOut</code></a></td>
+				<td>Sync</td>
+				<td>Yes</td>
+				<td><code>Element</code></td>
+				<td><a href="#interface-FocusEvent"><code>FocusEvent</code></a></td>
+				<td>No</td>
+				<td>none</td>
+			</tr>
+			<tr>
+				<td><a class="eventtype" href="#event-type-DOMNodeInserted"><code>DOMNodeInserted</code></a></td>
+				<td>Sync</td>
+				<td>Yes</td>
+				<td><code>Element</code>, <code>Attr</code>, <code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>DocumentType</code>, <code>EntityReference</code>,
+					<code>ProcessingInstruction</code></td>
+				<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
+				<td>No</td>
+				<td>none</td>
+			</tr>
+			<tr>
+				<td><a class="eventtype" href="#event-type-DOMNodeInsertedIntoDocument"><code>DOMNodeInsertedIntoDocument</code></a></td>
+				<td>Sync</td>
+				<td>No</td>
+				<td><code>Element</code>, <code>Attr</code>, <code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>DocumentType</code>, <code>EntityReference</code>,
+					<code>ProcessingInstruction</code></td>
+				<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
+				<td>No</td>
+				<td>none</td>
+			</tr>
+			<tr>
+				<td><a class="eventtype" href="#event-type-DOMNodeRemoved"><code>DOMNodeRemoved</code></a></td>
+				<td>Sync</td>
+				<td>Yes</td>
+				<td><code>Element</code>, <code>Attr</code>, <code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>DocumentType</code>, <code>EntityReference</code>,
+					<code>ProcessingInstruction</code></td>
+				<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
+				<td>No</td>
+				<td>none</td>
+			</tr>
+			<tr>
+				<td><a class="eventtype" href="#event-type-DOMNodeRemovedFromDocument"><code>DOMNodeRemovedFromDocument</code></a></td>
+				<td>Sync</td>
+				<td>No</td>
+				<td><code>Element</code>, <code>Attr</code>, <code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>DocumentType</code>, <code>EntityReference</code>,
+					<code>ProcessingInstruction</code></td>
+				<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
+				<td>No</td>
+				<td>none</td>
+			</tr>
+			<tr>
+				<td><a class="eventtype" href="#event-type-DOMSubtreeModified"><code>DOMSubtreeModified</code></a></td>
+				<td>Sync</td>
+				<td>Yes</td>
+				<td><a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, <code>DocumentFragment</code>, <code>Element</code>, <code>Attr</code>
+				</td>
+				<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
+				<td>No</td>
+				<td>none</td>
+			</tr>
+			<tr>
+				<td><a class="eventtype" href="#event-type-keypress"><code>keypress</code></a></td>
+				<td>Sync</td>
+				<td>Yes</td>
+				<td><code>Document</code>, <code>Element</code></td>
+				<td><a href="#interface-KeyboardEvent"><code>KeyboardEvent</code></a></td>
+				<td>Yes</td>
+				<td>Varies:
+					launch <a class="def" href="#glossary-text-composition-system">text composition system</a>;
+					<a class="eventtype" href="#event-type-blur"><code>blur</code></a> and <a class="eventtype" href="#event-type-focus"><code>focus</code></a> events;
+					<a class="eventtype" href="#event-type-DOMActivate"><code>DOMActivate</code></a> event;
+					other event</td>
+			</tr>
+		</table>
+
+		<section id="legacy-uievent-events">
+			<h2>Legacy <a href="#interface-UIEvent"><code>UIEvent</code></a> events</h2>
+		
+			<!-- DOMActivate -->
+			<div class="event-definition">
+				<dl>
+					<dt id="event-type-DOMActivate"><dfn><a class="eventtype" href="#event-type-DOMActivate"><code>DOMActivate</code></a></dfn></dt>
+					<dd>
+						<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
+							<tr>
+								<th>Type</th>
+								<td><strong><code>DOMActivate</code></strong></td>
+							</tr>
+							<tr>
+								<th>Interface</th>
+								<td><a href="#interface-UIEvent"><code>UIEvent</code></a></td>
+							</tr>
+							<tr>
+								<th>Sync / Async</th>
+								<td>Sync</td>
+							</tr>
+							<tr>
+								<th>Bubbles</th>
+								<td>Yes</td>
+							</tr>
+							<tr>
+								<th>Target</th>
+								<td><code>Element</code></td>
+							</tr>
+							<tr>
+								<th>Cancelable</th>
+								<td>Yes</td>
+							</tr>
+							<tr>
+								<th>Default action</th>
+								<td>none</td>
+							</tr>
+							<tr>
+								<th>Context info</th>
+								<td>
+									<ul>
+										<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: element being activated</li>
+
+										<li><a href="#widl-UIEvent-view"><code class="attribute-name">UIEvent.view</code></a>: <a class="def" href="#glossary-defaultView"><code>defaultView</code></a></li>
+
+										<li><a href="#widl-UIEvent-detail"><code class="attribute-name">UIEvent.detail</code></a>: <code>0</code></li>
+									</ul>
+								</td>
+							</tr>
+						</table>
+						<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event when a button, link, or other state-changing element is activated.  Refer to
+							<a href="#event-flow-activation">Activation triggers and behavior</a> for more details.</p>
+
+						<p class="warning" id="DOMActivate-deprecated"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMActivate"><code>DOMActivate</code></a> <a
+							class="def" href="#glossary-event-type">event type</a> is defined in this specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">
+							deprecates</a> the use of this event type in favor of the related <a class="def" href="#glossary-event-type">event type</a> <a class="eventtype" href="#event-type-click">
+							<code>click</code></a>.  Other specifications MAY define and maintain their own <a class="eventtype" href="#event-type-DOMActivate"><code>DOMActivate</code></a>
+							<a class="def" href="#glossary-event-type">event type</a> for backwards compatibility.</p>
+
+						<p class="note" id="DOMActivate-click"><strong>Note:</strong>   While <a class="eventtype" href="#event-type-DOMActivate"><code>DOMActivate</code></a> and <a class="eventtype"
+							href="#event-type-click"><code>click</code></a> are not completely equivalent, implemented behavior for the <a class="eventtype" href="#event-type-click"><code>click</code></a>
+							<a class="def" href="#glossary-event-type">event type</a> has developed to encompass the most critical accessibility aspects for which the <a class="eventtype" href="#event-type-DOMActivate">
+							<code>DOMActivate</code></a> <a class="def" href="#glossary-event-type">event type</a> was designed, and is more widely implemented.  Content authors are encouraged
+							to use the <a class="eventtype" href="#event-type-click"><code>click</code></a> <a class="def" href="#glossary-event-type">event type</a> rather than the related
+							<a class="eventtype" href="#event-type-mousedown"><code>mousedown</code></a> or <a class="eventtype" href="#event-type-mouseup"><code>mouseup</code></a> <a class="def"
+							href="#glossary-event-type">event type</a> to ensure maximum accessibility.</p>
+					</dd>
+				</dl>
+			</div>		
+		</section>
+		
+		<section id="legacy-focusevent-events">
+			<h2>Legacy <a href="#interface-FocusEvent"><code>FocusEvent</code></a> events</h2>
+		
+			<!-- DOMFocusIn -->
+			<div class="event-definition">
+				<dl>
+					<dt id="event-type-DOMFocusIn"><dfn><a class="eventtype" href="#event-type-DOMFocusIn"><code>DOMFocusIn</code></a></dfn></dt>
+					<dd>
+						<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
+							<tr>
+								<th>Type</th>
+								<td><strong><code>DOMFocusIn</code></strong></td>
+							</tr>
+							<tr>
+								<th>Interface</th>
+								<td><a href="#interface-FocusEvent"><code>FocusEvent</code></a></td>
+							</tr>
+							<tr>
+								<th>Sync / Async</th>
+								<td>Sync</td>
+							</tr>
+							<tr>
+								<th>Bubbles</th>
+								<td>Yes</td>
+							</tr>
+							<tr>
+								<th>Target</th>
+								<td><code>Element</code></td>
+							</tr>
+							<tr>
+								<th>Cancelable</th>
+								<td>No</td>
+							</tr>
+							<tr>
+								<th>Default action</th>
+								<td>none</td>
+							</tr>
+							<tr>
+								<th>Context info</th>
+								<td>
+									<ul>
+										<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: <a class="def" href="#glossary-event-target">event target</a> receiving
+											focus</li>
+
+										<li><a href="#widl-UIEvent-view"><code class="attribute-name">UIEvent.view</code></a>: <a class="def" href="#glossary-defaultView"><code>defaultView</code></a>,
+											<code>null</code></li>
+
+										<li><a href="#widl-UIEvent-detail"><code class="attribute-name">UIEvent.detail</code></a>: <code>0</code></li>
+
+										<li><a href="#widl-FocusEvent-relatedTarget"><code class="attribute-name">FocusEvent.relatedTarget</code></a>: <code>null</code></li>
+									</ul>
+								</td>
+							</tr>
+						</table>
+						<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event when an <a class="def" href="#glossary-event-target">event target</a> receives
+							focus. The focus MUST be given to the element before the dispatch of this event type. This event type MUST be dispatched after the event type <a class="eventtype"
+							href="#event-type-focus"><code>focus</code></a>.</p>
+
+						<p class="warning" id="_7"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMFocusIn"><code>DOMFocusIn</code></a> event type is defined in this
+							specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the use of this event type in favor
+							of the related event types <a class="eventtype" href="#event-type-focus"><code>focus</code></a> and <a class="eventtype" href="#event-type-focusIn"><code>focusin</code></a>.</p>
+					</dd>
+				</dl>
+			</div>
+
+			<!-- DOMFocusOut -->
+			<div class="event-definition">
+				<dl>
+					<dt id="event-type-DOMFocusOut"><dfn><a class="eventtype" href="#event-type-DOMFocusOut"><code>DOMFocusOut</code></a></dfn></dt>
+					<dd>
+						<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
+							<tr>
+								<th>Type</th>
+								<td><strong><code>DOMFocusOut</code></strong></td>
+							</tr>
+							<tr>
+								<th>Interface</th>
+								<td><a href="#interface-FocusEvent"><code>FocusEvent</code></a></td>
+							</tr>
+							<tr>
+								<th>Sync / Async</th>
+								<td>Sync</td>
+							</tr>
+							<tr>
+								<th>Bubbles</th>
+								<td>Yes</td>
+							</tr>
+							<tr>
+								<th>Target</th>
+								<td><code>Element</code></td>
+							</tr>
+							<tr>
+								<th>Cancelable</th>
+								<td>No</td>
+							</tr>
+							<tr>
+								<th>Default action</th>
+								<td>none</td>
+							</tr>
+							<tr>
+								<th>Context info</th>
+								<td>
+									<ul>
+										<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: <a class="def" href="#glossary-event-target">event target</a> losing
+											focus</li>
+										<li><a href="#widl-UIEvent-view"><code class="attribute-name">UIEvent.view</code></a>: <a class="def" href="#glossary-defaultView"><code>defaultView</code></a>,
+											<code>null</code></li>
+										<li><a href="#widl-UIEvent-detail"><code class="attribute-name">UIEvent.detail</code></a>: <code>0</code></li>
+										<li><a href="#widl-FocusEvent-relatedTarget"><code class="attribute-name">FocusEvent.relatedTarget</code></a>: <code>null</code></li>
+									</ul>
+								</td>
+							</tr>
+						</table>
+						<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event when an <a class="def" href="#glossary-event-target">event target</a> loses
+							focus. The focus MUST be taken from the element before the dispatch of this event type. This event type MUST be dispatched after the event type <a class="eventtype"
+							href="#event-type-blur"><code>blur</code></a>.</p>
+
+						<p class="warning" id="_8"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMFocusOut"><code>DOMFocusOut</code></a> event type is defined in
+							this specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the use of this event type in
+							favor of the related event types <a class="eventtype" href="#event-type-blur"><code>blur</code></a> and <a class="eventtype" href="#event-type-focusout"><code>focusout</code></a>.</p>
+					</dd>
+				</dl>
+			</div>
+
+		</section>
+		
+		<section id="legacy-keyboardevent-events">
+			<h2>Legacy <a href="#interface-KeyboardEvent"><code>KeyboardEvent</code></a> events</h2>
+
+			<p>The <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event is the traditional method for capturing key events and
+				processing them before the DOM is updated with the effects of the key press. Code that makes use of the
+					<a class="eventtype" href="#event-type-keypress"><code>keypress</code></a>
+				event typically relies on the legacy
+					<a href="#widl-KeyboardEvent-charCode">charCode</a>,
+					<a href="#widl-KeyboardEvent-keyCode">keyCode</a>,
+					and <a href="#widl-KeyboardEvent-which">which</a>
+				attributes.</p>
+
+			<p>Note that the <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event is specific to key events, and has been replaced
+				by the more general event sequence of <a class="eventtype" href="#event-type-beforeinput"><code>beforeinput</code></a>
+				and <a class="eventtype" href="#event-type-input"><code>input</code></a> events.
+				These new input events are not specific to keyboard actions and can be used to capture user input regardless of the original source.
+				</p>
+				
+			<!-- keypress -->
+			<div class="event-definition">
+				<dl>
+					<dt id="event-type-keypress"><dfn><a class="eventtype" href="#event-type-keypress"><code>keypress</code></a></dfn></dt>
+					<dd>
+						<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
+							<tr>
+								<th>Type</th>
+								<td><strong><code>keypress</code></strong></td>
+							</tr>
+							<tr>
+								<th>Interface</th>
+								<td><a href="#interface-KeyboardEvent"><code>KeyboardEvent</code></a></td>
+							</tr>
+							<tr>
+								<th>Sync / Async</th>
+								<td>Sync</td>
+							</tr>
+							<tr>
+								<th>Bubbles</th>
+								<td>Yes</td>
+							</tr>
+							<tr>
+								<th>Target</th>
+								<td><code>Document</code>, <code>Element</code></td>
+							</tr>
+							<tr>
+								<th>Cancelable</th>
+								<td>Yes</td>
+							</tr>
+							<tr>
+								<th>Default action</th>
+								<td>Varies: launch <a class="def" href="#glossary-text-composition-system">text composition system</a>; <a class="eventtype" href="#event-type-blur"><code>blur</code></a>
+									and <a class="eventtype" href="#event-type-focus"><code>focus</code></a> events; <a class="eventtype" href="#event-type-DOMActivate"><code>DOMActivate</code></a>
+									event; other event</td>
+							</tr>
+							<tr>
+								<th>Context info</th>
+								<td>
+									<ul>
+										<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: focused element processing the key event, root element if no suitable
+											input element focused</li>
+										<li><a href="#widl-UIEvent-view"><code class="attribute-name">UIEvent.view</code></a>: <a class="def" href="#glossary-defaultView"><code>defaultView</code></a></li>
+										<li><a href="#widl-UIEvent-detail"><code class="attribute-name">UIEvent.detail</code></a>: <code>0</code></li>
+										<li><a href="#widl-KeyboardEvent-charCode"><code class="attribute-name">KeyboardEvent.charCode</code></a>: legacy character value for this event</li>
+										<li><a href="#widl-KeyboardEvent-keyCode"><code class="attribute-name">KeyboardEvent.keyCode</code></a>: legacy numerical code for this key</li>
+										<li><a href="#widl-KeyboardEvent-which"><code class="attribute-name">KeyboardEvent.which</code></a>: legacy numerical code for this key</li>
+										<li><a href="#widl-KeyboardEvent-key"><code class="attribute-name">KeyboardEvent.key</code></a>: the key value of the key pressed.</li>
+										<li><a href="#widl-KeyboardEvent-location"><code class="attribute-name">KeyboardEvent.location</code></a>: the location of the key on the device.</li>
+										<li><a href="#widl-KeyboardEvent-altKey"><code class="attribute-name">KeyboardEvent.altKey</code></a>: <code>true</code> if <a href="#key-Alt"><code class="key">
+											'Alt'</code></a> modifier was active, otherwise <code>false</code></li>
+										<li><a href="#widl-KeyboardEvent-shiftKey"><code class="attribute-name">KeyboardEvent.shiftKey</code></a>:  <code>true</code> if <a href="#key-Shift"><code class="key">
+											'Shift'</code></a> modifier was active, otherwise <code>false</code></li>
+										<li><a href="#widl-KeyboardEvent-ctrlKey"><code class="attribute-name">KeyboardEvent.ctrlKey</code></a>:  <code>true</code> if <a href="#key-Control"><code class="key">
+											'Control'</code></a> modifier was active, otherwise <code>false</code></li>
+										<li><a href="#widl-KeyboardEvent-metaKey"><code class="attribute-name">KeyboardEvent.metaKey</code></a>:  <code>true</code> if <a href="#key-Meta"><code class="key">
+											'Meta'</code></a> modifier was active, otherwise <code>false</code></li>
+										<li><a href="#widl-KeyboardEvent-repeat"><code class="attribute-name">KeyboardEvent.repeat</code></a>:  <code>true</code> if a key has been depressed long enough
+											to trigger key repetition, otherwise <code>false</code></li>
+										<li><a href="#widl-KeyboardEvent-locale"><code class="attribute-name">KeyboardEvent.locale</code></a>: the language code for the key event, if available; otherwise,
+											the <a class="def" href="#glossary-empty-string">empty string</a></li>
+									</ul>
+								</td>
+							</tr>
+						</table>
+
+						<p>If supported by a <a class="def" href="#glossary-user-agent">user agent</a>, this event MUST be dispatched when a key is pressed down, if and only if that key normally produces a <a
+							class="def" href="#glossary-character-value">character value</a>. The <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event type is device
+							dependent and relies on the capabilities of the input devices and how they are mapped in the operating system. This event type MUST be generated after the <a class="def"
+							href="#glossary-key-mapping">key mapping</a>. It MUST NOT be fired when using an <a class="def" href="#glossary-ime">input method editor</a>.
+							If this event is canceled, it should prevent the
+								<a class="eventtype" href="#event-type-input"><code>input</code></a>
+							event from firing, in addition to canceling the
+							<a class="def" href="#glossary-default-action">default action</a>.</p>
+
+						<p>Authors SHOULD use the
+								<a class="eventtype" href="#event-type-beforeinput"><code>beforeinput</code></a>
+							event instead of the
+								<a class="eventtype" href="#event-type-keypress"><code>keypress</code></a>
+							event.</p>
+
+						<p class="note"><strong>Note:</strong> The <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event is traditionally associated with detecting a
+							<a class="def" href="#glossary-character-value">character value</a> rather than a physical key, and might not be available on all keys in some configurations.</p>
+
+						<p class="warning"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event type is defined in this
+							specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the use of this event type. When
+							in editing contexts, authors can subscribe to the <code>beforeinput</code> event instead.</p>
+
+					</dd>
+				</dl>
+			</div>
+
+			<section id="keypress-event-order">
+				<h2><a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event order</h2>
+
+				<p>The <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event type MUST be dispatched after the
+					<a class="eventtype" href="#event-type-keydown"><code>keydown</code></a> event and before the
+					<a class="eventtype" href="#event-type-keyup"><code>keyup</code></a> event associated with the same key.</p>
+
+				<p>The <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event type MUST be dispatched after the
+					<a class="eventtype" href="#event-type-beforeinput"><code>beforeinput</code></a> event and before the
+					<a class="eventtype" href="#event-type-input"><code>input</code></a> event associated with the same key.</p>
+
+				<p>The sequence of key events for user-agents the support the <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a> event
+					is demonstrated in the following example:</p>
+
+				<div class="example">
+					<div class="example-title">Example</div>
+					<table class="event-sequence-table">
+						<tr>
+							<td class="cell-right"></td>
+							<th>Event Name</th>
+							<th class="cell-center"><a href="#widl-KeyboardEvent-key"><code>KeyboardEvent<br/>key</code></a></th>
+							<th class="cell-center"><a href="#widl-CompositionEvent-data"><code>CompositionEvent<br/>data</code></a></th>
+						</tr>
+						<tr>
+							<td class="cell-right">1.</td>
+							<td><a class="eventtype" href="#event-type-keydown"><code>keydown</code></a></td>
+							<td class="cell-center"><code class="key">'a'</code></td>
+							<td class="cell-center"></td>
+						</tr>
+						<tr>
+							<td class="cell-right">2.</td>
+							<td><a class="eventtype" href="#event-type-beforeinput"><code>beforeinput</code></a></td>
+							<td class="cell-center"></td>
+							<td class="cell-center"><code class="key">'a'</code></td>
+						</tr>
+						<tr>
+							<td class="cell-right">3.</td>
+							<td><a class="eventtype" href="#event-type-keypress"><code>keypress</code></a></td>
+							<td class="cell-center"><code class="key">'a'</code></td>
+							<td class="cell-center"></td>
+						</tr>
+						<tr>
+							<td class="cell-right"></td>
+							<td colapsan="3"><em>Any <a class="def" href="#glossary-default-action">default actions</a> related to this key, such as inserting a
+								character in to the DOM.</em></td>
+						</tr>
+						<tr>
+							<td class="cell-right">4.</td>
+							<td><a class="eventtype" href="#event-type-input"><code>input</code></a></td>
+							<td class="cell-center"></td>
+							<td class="cell-center"></td>
+						</tr>
+						<tr>
+							<td class="cell-right">5.</td>
+							<td><a class="eventtype" href="#event-type-keyup"><code>keyup</code></a></td>
+							<td class="cell-center"><code class="key">'a'</code></td>
+							<td class="cell-center"></td>
+						</tr>
+					</table>
+				</div>
+			</section>
+		</section>
+
+		<section id="legacy-mutationevent-events">
+			<h3>Legacy <a href="#interface-MutationEvent"><code>MutationEvent</code></a> events</h3>
+
+			<p>The mutation and mutation name event modules are designed to allow notification of any changes to the structure of a document, including attribute, text, or name
+				modifications.</p>
+
+			<p class="note"><strong>Note:</strong> None of the event types associated with the <code>MutationEvent</code> interface are designated as cancelable. This stems from
+				the fact that it is very difficult to make use of existing DOM interfaces which cause document modifications if any change to the document might or might not take
+				place due to cancelation of the resulting event. Although this is still a desired capability, it was decided that it would be better left until the addition of
+				transactions into the DOM.</p>
+
+			<p>Many single modifications of the tree can cause multiple mutation events to be dispatched. Rather than attempt to specify the ordering of mutation events due to
+				every possible modification of the tree, the ordering of these events is left to the implementation.</p>
+
+			<p class="warning"><strong>Warning!</strong>  The <a href="#interface-MutationEvent">MutationEvent interface</a> was introduced in DOM Level 2 Events, but has not yet been
+				completely and interoperably implemented across <a class="def" href="#glossary-user-agent">user agents</a>. In addition, there have been critiques that the interface, as designed,
+				introduces a performance and implementation challenge. DOM4 [<a href="#references-DOM4">DOM4</a>] provides a new mechanism using a <code>MutationObserver</code> interface which
+				addresses the use cases that mutation events solve, but in a more performant manner. Thus, this specification describes mutation events for reference and completeness of legacy
+				behavior, but <a class="def" href="#glossary-deprecated">deprecates</a> the use of the <a href="#interface-MutationEvent"><code>MutationEvent</code></a> interface.</p>
+
+			<section id="interface-MutationEvent">
+				<h4>Interface MutationEvent</h4>
+
+				<p class="intro-dom">Introduced in DOM Level 2, deprecated in DOM Level 3</p>
+
+				<p>The <code>MutationEvent</code> interface provides specific contextual information associated with Mutation events.</p>
+
+				<p>To create an instance of the <code>MutationEvent</code> interface, use the <a href="#widl-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("MutationEvent")</code></a>
+					method call.</p>
+
+				<dl class="idl" title="interface MutationEvent : Event">
+					<dt>// attrChangeType</dt>
+
+					<dt>const unsigned short MODIFICATION = 1</dt>
+					<dd>
+						<p>The <code>Attr</code> was modified in place.</p>
+					</dd>
+
+					<dt>const unsigned short ADDITION = 2</dt>
+					<dd>
+						<p>The <code>Attr</code> was just added.</p>
+					</dd>
+
+					<dt>const unsigned short REMOVAL = 3</dt>
+					<dd>
+						<p>The <code>Attr</code> was just removed.</p>
+					</dd>
+
+					<dt>readonly attribute Node? relatedNode</dt>
+					<dd>
+						<p><code>relatedNode</code> MUST be used to identify a secondary node related to a mutation event. For example, if a mutation event is dispatched to a node indicating
+							that its parent has changed, the <code>relatedNode</code> will be the changed parent. If an event is instead dispatched to a subtree indicating a node was changed
+							within it, the <code>relatedNode</code> MUST be the changed node. In the case of the <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a>
+							event it indicates the <code>Attr</code> node which was modified, added, or removed.</p>
+
+						<p>The <a class="def" href="#glossary-un-initialized-value">un-initialized value</a> of this attribute MUST be <code>null</code>.</p>
+					</dd>
+
+					<dt>readonly attribute DOMString prevValue</dt>
+					<dd>
+						<p><code>prevValue</code> indicates the previous value of the <code>Attr</code> node in <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a>
+							events, and of the <code>CharacterData</code> node in <a class="eventtype" href="#event-type-DOMCharacterDataModified"><code>DOMCharacterDataModified</code></a>
+							events.</p>
+
+						<p>The <a class="def" href="#glossary-un-initialized-value">un-initialized value</a> of this attribute MUST be <code>""</code> (the empty string).</p>
+					</dd>
+
+					<dt>readonly attribute DOMString newValue</dt>
+					<dd>
+						<p><code>newValue</code> indicates the new value of the <code>Attr</code> node in <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a>
+							events, and of the <code>CharacterData</code> node in <a class="eventtype" href="#event-type-DOMCharacterDataModified"><code>DOMCharacterDataModified</code></a>
+							events.</p>
+
+						<p>The <a class="def" href="#glossary-un-initialized-value">un-initialized value</a> of this attribute MUST be <code>""</code> (the empty string).</p>
+					</dd>
+
+					<dt>readonly attribute DOMString attrName</dt>
+					<dd>
+						<p><code>attrName</code> indicates the name of the changed <code>Attr</code> node in a <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a>
+							event.</p>
+
+						<p>The <a class="def" href="#glossary-un-initialized-value">un-initialized value</a> of this attribute MUST be <code>""</code> (the empty string).</p>
+					</dd>
+
+					<dt>readonly attribute unsigned short attrChange</dt>
+					<dd>
+						<p><code>attrChange</code> indicates the type of change which triggered the <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a>
+							event. The values can be <code>MODIFICATION</code>, <code>ADDITION</code>, or <code>REMOVAL</code>.</p>
+
+						<p>The <a class="def" href="#glossary-un-initialized-value">un-initialized value</a> of this attribute MUST be <code>0</code>.</p>
+
+						<p class="warning"><strong>Warning:</strong> There is no defined constant for the attrChange value of 0 (the un-initialized value).</p>
+					</dd>
+
+					<dt>void initMutationEvent()</dt>
+					<dd>
+						<p>Initializes attributes of a <code>MutationEvent</code> object. This method has the same behavior as <a href="#widl-Event-initEvent"><code>Event.initEvent()</code></a>.</p>
+						<dl class="parameters">
+							<dt>DOMString typeArg</dt>
+							<dd>
+								<p>Refer to the <a href="#widl-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.</p>
+							</dd>
+
+							<dt>boolean bubblesArg</dt>
+							<dd>
+								<p>Refer to the <a href="#widl-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.</p>
+							</dd>
+
+							<dt>boolean cancelableArg</dt>
+							<dd>
+								<p>Refer to the <a href="#widl-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.</p>
+							</dd>
+
+							<dt>Node? relatedNodeArg</dt>
+							<dd>
+								<p>Specifies <a href="#widl-MutationEvent-relatedNode"><code>MutationEvent.relatedNode</code></a>.</p>
+							</dd>
+
+							<dt>DOMString prevValueArg</dt>
+							<dd>
+								<p>Specifies <a href="#widl-MutationEvent-prevValue"><code>MutationEvent.prevValue</code></a>. This value MAY be the <a class="def" href="#glossary-empty-string">
+									empty string</a>.</p>
+							</dd>
+
+							<dt>DOMString newValueArg</dt>
+							<dd>
+								<p>Specifies <a href="#widl-MutationEvent-newValue"><code>MutationEvent.newValue</code></a>. This value MAY be the <a class="def" href="#glossary-empty-string">empty
+									string</a>.</p>
+							</dd>
+
+							<dt>DOMString attrNameArg</dt>
+							<dd>
+								<p>Specifies <a href="#widl-MutationEvent-attrName"><code>MutationEvent.attrName</code></a>. This value MAY be the <a class="def" href="#glossary-empty-string">empty
+									string</a>.</p>
+							</dd>
+
+							<dt>unsigned short attrChangeArg</dt>
+							<dd>
+								<p>Specifies <a href="#widl-MutationEvent-attrChange"><code>MutationEvent.attrChange</code></a>. This value MAY be <code>0</code>.</p>
+							</dd>
+
+						</dl>
+					</dd>
+
+				</dl>
+			</section>
+
+			<p>The mutation event types are listed below.</p>
+
+			<!-- DOMAttrModified -->
+			<div class="event-definition">
+				<dl>
+					<dt id="event-type-DOMAttrModified"><dfn><a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a></dfn></dt>
+					<dd>
+						<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
+							<tr>
+								<th>Type</th>
+								<td><strong><code>DOMAttrModified</code></strong></td>
+							</tr>
+							<tr>
+								<th>Interface</th>
+								<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
+							</tr>
+							<tr>
+								<th>Sync / Async</th>
+								<td>Sync</td>
+							</tr>
+							<tr>
+								<th>Bubbles</th>
+								<td>Yes</td>
+							</tr>
+							<tr>
+								<th>Target</th>
+								<td><code>Element</code></td>
+							</tr>
+							<tr>
+								<th>Cancelable</th>
+								<td>No</td>
+							</tr>
+							<tr>
+								<th>Default action</th>
+								<td>none</td>
+							</tr>
+							<tr>
+								<th>Context info</th>
+								<td>
+									<ul>
+										<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: element whose attribute is being modified</li>
+										<li><a href="#widl-MutationEvent-attrName"><code class="attribute-name">MutationEvent.attrName</code></a>: the name of the changed <code>Attr</code> node</li>
+										<li><a href="#widl-MutationEvent-attrChange"><code class="attribute-name">MutationEvent.attrChange</code></a>: the numerical code corresponding to the most applicable
+											<a href="#widl-MutationEvent-attrChangeType">attrChangeType</a></li>
+										<li><a href="#widl-MutationEvent-relatedNode"><code class="attribute-name">MutationEvent.relatedNode</code></a>:  the <code>Attr</code> node that has been modified,
+											added, or removed.</li>
+										<li><a href="#widl-MutationEvent-newValue"><code class="attribute-name">MutationEvent.newValue</code></a>: new value of the attribute, if the <code>Attr</code> node
+											has been added or modified</li>
+										<li><a href="#widl-MutationEvent-prevValue"><code class="attribute-name">MutationEvent.prevValue</code></a>: previous value of the attribute, if the <code>Attr</code>
+											node has been removed or modified</li>
+									</ul>
+								</td>
+							</tr>
+						</table>
+
+						<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event after an <code>Attr.value</code> has been modified and after an <code>Attr</code>
+							node has been added to or removed from an <code>Element</code>. The <a class="def" href="#glossary-event-target">event target</a> of this event MUST be the <code>Element</code>
+							node where the change occurred. It is implementation dependent whether this event type occurs when the children of the <code>Attr</code> node are changed in ways
+							that do not affect the value of <code>Attr.value</code>.</p>
+
+						<p class="warning"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a> event type is defined
+							in this specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the use of this event type.</p>
+					</dd>
+				</dl>
+			</div>
+
+			<!-- DOMCharacterDataModified -->
+			<div class="event-definition">
+				<dl>
+					<dt id="event-type-DOMCharacterDataModified"><dfn><a class="eventtype" href="#event-type-DOMCharacterDataModified"><code>DOMCharacterDataModified</code></a></dfn></dt>
+					<dd>
+						<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
+							<tr>
+								<th>Type</th>
+								<td><strong><code>DOMCharacterDataModified</code></strong></td>
+							</tr>
+							<tr>
+								<th>Interface</th>
+								<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
+							</tr>
+							<tr>
+								<th>Sync / Async</th>
+								<td>Sync</td>
+							</tr>
+							<tr>
+								<th>Bubbles</th>
+								<td>Yes</td>
+							</tr>
+							<tr>
+								<th>Target</th>
+								<td><code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>ProcessingInstruction</code></td>
+							</tr>
+							<tr>
+								<th>Cancelable</th>
+								<td>No</td>
+							</tr>
+							<tr>
+								<th>Default action</th>
+								<td>none</td>
+							</tr>
+							<tr>
+								<th>Context info</th>
+								<td>
+									<ul>
+										<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: object whose content is being modified</li>
+										<li><a href="#widl-MutationEvent-attrName"><code class="attribute-name">MutationEvent.attrName</code></a>: the <a class="def" href="#glossary-empty-string">empty
+											string</a></li>
+										<li><a href="#widl-MutationEvent-attrChange"><code class="attribute-name">MutationEvent.attrChange</code></a>: <code>0</code></li>
+										<li><a href="#widl-MutationEvent-relatedNode"><code class="attribute-name">MutationEvent.relatedNode</code></a>: parent node of the object whose content is being
+											modified</li>
+										<li><a href="#widl-MutationEvent-newValue"><code class="attribute-name">MutationEvent.newValue</code></a>: new value of the object</li>
+										<li><a href="#widl-MutationEvent-prevValue"><code class="attribute-name">MutationEvent.prevValue</code></a>: previous value of the object</li>
+									</ul>
+								</td>
+							</tr>
+						</table>
+
+						<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event after <code>CharacterData.data</code> or <code>ProcessingInstruction.data</code>
+							have been modified, but the node itself has not been inserted or deleted.  The <a class="def" href="#glossary-event-target">event target</a> of this event MUST
+							be the <code>CharacterData</code> node or the <code>ProcessingInstruction</code> node.</p>
+
+						<p class="warning" id="_45"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMCharacterDataModified"><code>DOMCharacterDataModified</code></a>
+							event type is defined in this specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the
+							use of this event type.</p>
+					</dd>
+				</dl>
+			</div>
+
+			<!-- DOMNodeInserted -->
+			<div class="event-definition">
+				<dl>
+					<dt id="event-type-DOMNodeInserted"><dfn><a class="eventtype" href="#event-type-DOMNodeInserted"><code>DOMNodeInserted</code></a></dfn></dt>
+					<dd>
+						<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
+							<tr>
+								<th>Type</th>
+								<td><strong><code>DOMNodeInserted</code></strong></td>
+							</tr>
+							<tr>
+								<th>Interface</th>
+								<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
+							</tr>
+							<tr>
+								<th>Sync / Async</th>
+								<td>Sync</td>
+							</tr>
+							<tr>
+								<th>Bubbles</th>
+								<td>Yes</td>
+							</tr>
+							<tr>
+								<th>Target</th>
+								<td><code>Element</code>, <code>Attr</code>, <code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>DocumentType</code>, <code>EntityReference</code>,
+									<code>ProcessingInstruction</code></td>
+							</tr>
+							<tr>
+								<th>Cancelable</th>
+								<td>No</td>
+							</tr>
+							<tr>
+								<th>Default action</th>
+								<td>none</td>
+							</tr>
+							<tr>
+								<th>Context info</th>
+								<td>
+									<ul>
+										<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: element which is being inserted</li>
+										<li><a href="#widl-MutationEvent-attrName"><code class="attribute-name">MutationEvent.attrName</code></a>: the <a class="def" href="#glossary-empty-string">empty
+											string</a></li>
+										<li><a href="#widl-MutationEvent-attrChange"><code class="attribute-name">MutationEvent.attrChange</code></a>: <code>0</code></li>
+										<li><a href="#widl-MutationEvent-relatedNode"><code class="attribute-name">MutationEvent.relatedNode</code></a>:  parent node of the node that has been inserted,
+											or the <code>ownerElement</code> in the case of <code>Attr</code> nodes</li>
+										<li><a href="#widl-MutationEvent-newValue"><code class="attribute-name">MutationEvent.newValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
+											string</a></li>
+										<li><a href="#widl-MutationEvent-prevValue"><code class="attribute-name">MutationEvent.prevValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
+											string</a></li>
+									</ul>
+								</td>
+							</tr>
+						</table>
+
+						<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event type when a node other than an <code>Attr</code> node has been added as a child
+							of another node.  A <a class="def" href="#glossary-user-agent">user agent</a> MAY dispatch this event when an <code>Attr</code> node has been added to an <code>Element</code>
+							node (see <a href="#DOMNodeInserted-attr">note</a> below). This event MUST be dispatched after the insertion has taken place. The <a class="def" href="#glossary-event-target">
+							event target</a> of this event MUST be the node being inserted.</p>
+
+						<p class="note" id="DOMNodeInserted-attr"><strong>Note:</strong> For detecting attribute insertion, use the <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a>
+							event type instead.</p>
+
+						<p class="warning"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMNodeInserted"><code>DOMNodeInserted</code></a> event type is defined in this specification
+							for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the use of this event type.</p>
+					</dd>
+				</dl>
+			</div>
+
+			<!-- DOMNodeInsertedIntoDocument -->
+			<div class="event-definition">
+				<dl>
+					<dt id="event-type-DOMNodeInsertedIntoDocument"><dfn><a class="eventtype" href="#event-type-DOMNodeInsertedIntoDocument"><code>DOMNodeInsertedIntoDocument</code></a></dfn></dt>
+					<dd>
+						<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
+							<tr>
+								<th>Type</th>
+								<td><strong><code>DOMNodeInsertedIntoDocument</code></strong></td>
+							</tr>
+							<tr>
+								<th>Interface</th>
+								<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
+							</tr>
+							<tr>
+								<th>Sync / Async</th>
+								<td>Sync</td>
+							</tr>
+							<tr>
+								<th>Bubbles</th>
+								<td>No</td>
+							</tr>
+							<tr>
+								<th>Target</th>
+								<td><code>Element</code>, <code>Attr</code>, <code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>DocumentType</code>, <code>EntityReference</code>,
+									<code>ProcessingInstruction</code></td>
+							</tr>
+							<tr>
+								<th>Cancelable</th>
+								<td>No</td>
+							</tr>
+							<tr>
+								<th>Default action</th>
+								<td>none</td>
+							</tr>
+							<tr>
+								<th>Context info</th>
+								<td>
+									<ul>
+										<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: element which is being inserted</li>
+										<li><a href="#widl-MutationEvent-attrName"><code class="attribute-name">MutationEvent.attrName</code></a>: the <a class="def" href="#glossary-empty-string">empty
+											string</a></li>
+										<li><a href="#widl-MutationEvent-attrChange"><code class="attribute-name">MutationEvent.attrChange</code></a>: <code>0</code></li>
+										<li><a href="#widl-MutationEvent-relatedNode"><code class="attribute-name">MutationEvent.relatedNode</code></a>:  parent node of the node that has been inserted,
+											or the <code>ownerElement</code> in the case of <code>Attr</code> nodes</li>
+										<li><a href="#widl-MutationEvent-newValue"><code class="attribute-name">MutationEvent.newValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
+											string</a></li>
+										<li><a href="#widl-MutationEvent-prevValue"><code class="attribute-name">MutationEvent.prevValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
+											string</a></li>
+									</ul>
+								</td>
+							</tr>
+						</table>
+
+						<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event when a node has been inserted into a document, either through direct insertion
+							of the node or insertion of a subtree in which it is contained; a <a class="def" href="#glossary-user-agent">user agent</a> MAY  treat an <code>Attr</code>
+							node as part of an <code>Element</code>'s subtree. This event MUST be dispatched after the insertion has taken place. The <a class="def" href="#glossary-event-target">
+							event target</a> of this event MUST be the node being inserted. If the node is being directly inserted, the event type <a class="eventtype" href="#event-type-DOMNodeInserted">
+							<code>DOMNodeInserted</code></a> MUST occur before this event type.</p>
+
+						<p class="warning"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMNodeInsertedIntoDocument"><code>DOMNodeInsertedIntoDocument</code></a>
+							event type is defined in this specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the
+							use of this event type.</p>
+					</dd>
+				</dl>
+			</div>
+
+			<!-- DOMNodeRemoved -->
+			<div class="event-definition">
+				<dl>
+					<dt id="event-type-DOMNodeRemoved"><dfn><a class="eventtype" href="#event-type-DOMNodeRemoved"><code>DOMNodeRemoved</code></a></dfn></dt>
+					<dd>
+						<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
+							<tr>
+								<th>Type</th>
+								<td><strong><code>DOMNodeRemoved</code></strong></td>
+							</tr>
+							<tr>
+								<th>Interface</th>
+								<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
+							</tr>
+							<tr>
+								<th>Sync / Async</th>
+								<td>Sync</td>
+							</tr>
+							<tr>
+								<th>Bubbles</th>
+								<td>Yes</td>
+							</tr>
+							<tr>
+								<th>Target</th>
+								<td><code>Element</code>, <code>Attr</code>, <code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>DocumentType</code>, <code>EntityReference</code>,
+									<code>ProcessingInstruction</code></td>
+							</tr>
+							<tr>
+								<th>Cancelable</th>
+								<td>No</td>
+							</tr>
+							<tr>
+								<th>Default action</th>
+								<td>none</td>
+							</tr>
+							<tr>
+								<th>Context info</th>
+								<td>
+									<ul>
+										<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: element which is being removed</li>
+										<li><a href="#widl-MutationEvent-attrName"><code class="attribute-name">MutationEvent.attrName</code></a>: the <a class="def" href="#glossary-empty-string">empty
+											string</a></li>
+										<li><a href="#widl-MutationEvent-attrChange"><code class="attribute-name">MutationEvent.attrChange</code></a>: <code>0</code></li>
+										<li><a href="#widl-MutationEvent-relatedNode"><code class="attribute-name">MutationEvent.relatedNode</code></a>: the parent node of the node being removed, or the
+											<code>ownerElement</code> in the case of <code>Attr</code> nodes</li>
+										<li><a href="#widl-MutationEvent-newValue"><code class="attribute-name">MutationEvent.newValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
+											string</a></li>
+										<li><a href="#widl-MutationEvent-prevValue"><code class="attribute-name">MutationEvent.prevValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
+											string</a></li>
+									</ul>
+								</td>
+							</tr>
+						</table>
+
+						<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event when a node other than an <code>Attr</code> node is being removed from its
+							parent node.  A <a class="def" href="#glossary-user-agent">user agent</a> MAY dispatch this event when an <code>Attr</code> node is being removed from its <code>ownerElement</code>
+							(see <a href="#DOMNodeRemoved-attr">note</a> below). This event MUST be dispatched before the removal takes place. The <a class="def" href="#glossary-event-target">
+							event target</a> of this event MUST be the node being removed.</p>
+
+						<p class="note" id="DOMNodeRemoved-attr"><strong>Note:</strong> For reliably detecting attribute removal, use the <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a>
+							event type instead.</p>
+
+						<p class="warning"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMNodeRemoved"><code>DOMNodeRemoved</code></a> event type is defined
+							in this specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the use of this event type.
+						</p>
+					</dd>
+				</dl>
+			</div>
+
+			<!-- DOMNodeRemovedFromDocument -->
+			<div class="event-definition">
+				<dl>
+					<dt id="event-type-DOMNodeRemovedFromDocument"><dfn><a class="eventtype" href="#event-type-DOMNodeRemovedFromDocument"><code>DOMNodeRemovedFromDocument</code></a></dfn></dt>
+					<dd>
+						<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
+							<tr>
+								<th>Type</th>
+								<td><strong><code>DOMNodeRemovedFromDocument</code></strong></td>
+							</tr>
+							<tr>
+								<th>Interface</th>
+								<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
+							</tr>
+							<tr>
+								<th>Sync / Async</th>
+								<td>Sync</td>
+							</tr>
+							<tr>
+								<th>Bubbles</th>
+								<td>No</td>
+							</tr>
+							<tr>
+								<th>Target</th>
+								<td><code>Element</code>, <code>Attr</code>, <code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>DocumentType</code>, <code>EntityReference</code>,
+									<code>ProcessingInstruction</code></td>
+							</tr>
+							<tr>
+								<th>Cancelable</th>
+								<td>No</td>
+							</tr>
+							<tr>
+								<th>Default action</th>
+								<td>none</td>
+							</tr>
+							<tr>
+								<th>Context info</th>
+								<td>
+									<ul>
+										<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: element which is being removed</li>
+										<li><a href="#widl-MutationEvent-attrName"><code class="attribute-name">MutationEvent.attrName</code></a>: the <a class="def" href="#glossary-empty-string">empty
+											string</a></li>
+										<li><a href="#widl-MutationEvent-attrChange"><code class="attribute-name">MutationEvent.attrChange</code></a>: <code>0</code></li>
+										<li><a href="#widl-MutationEvent-relatedNode"><code class="attribute-name">MutationEvent.relatedNode</code></a>: the parent node of the node being removed, or the
+											<code>ownerElement</code> in the case of <code>Attr</code> nodes</li>
+										<li><a href="#widl-MutationEvent-newValue"><code class="attribute-name">MutationEvent.newValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
+											string</a></li>
+										<li><a href="#widl-MutationEvent-prevValue"><code class="attribute-name">MutationEvent.prevValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
+											string</a></li>
+									</ul>
+								</td>
+							</tr>
+						</table>
+
+						<p>A <a class="def" href="#glossary-user-agent">user agent</a> MUST dispatch this event when a node is being removed from a document, either through direct removal
+							of the node or removal of a subtree in which it is contained; a <a class="def" href="#glossary-user-agent">user agent</a> MAY treat an <code>Attr</code>
+							node as part of an <code>Element</code>'s subtree. This event MUST be dispatched before the removal takes place. The <a class="def" href="#glossary-event-target">event
+							target</a> of this event type MUST be the node being removed. If the node is being directly removed, the event type <a class="eventtype" href="#event-type-DOMNodeRemoved">
+							<code>DOMNodeRemoved</code></a> MUST occur before this event type.</p>
+
+						<p class="note"><strong>Note:</strong> For reliably detecting attribute removal, use the <a class="eventtype" href="#event-type-DOMAttrModified"><code>DOMAttrModified</code></a>
+							event type instead.</p>
+
+						<p class="warning"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMNodeRemovedFromDocument"><code>DOMNodeRemovedFromDocument</code></a>
+							event type is defined in this specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the
+							use of this event type.</p>
+					</dd>
+				</dl>
+			</div>
+
+			<!-- DOMSubtreeModified -->
+			<div class="event-definition">
+				<dl>
+					<dt id="event-type-DOMSubtreeModified"><dfn><a class="eventtype" href="#event-type-DOMSubtreeModified"><code>DOMSubtreeModified</code></a></dfn></dt>
+					<dd>
+						<table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
+							<tr>
+								<th>Type</th>
+								<td><strong><code>DOMSubtreeModified</code></strong></td>
+							</tr>
+							<tr>
+								<th>Interface</th>
+								<td><a href="#interface-MutationEvent"><code>MutationEvent</code></a></td>
+							</tr>
+							<tr>
+								<th>Sync / Async</th>
+								<td>Sync</td>
+							</tr>
+							<tr>
+								<th>Bubbles</th>
+								<td>Yes</td>
+							</tr>
+							<tr>
+								<th>Target</th>
+								<td><a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, <code>DocumentFragment</code>, <code>Element</code>, <code>Attr</code>
+								</td>
+							</tr>
+							<tr>
+								<th>Cancelable</th>
+								<td>No</td>
+							</tr>
+							<tr>
+								<th>Default action</th>
+								<td>none</td>
+							</tr>
+							<tr>
+								<th>Context info</th>
+								<td>
+									<ul>
+										<li><a href="#widl-Event-target"><code class="attribute-name">Event.target</code></a>: parent node of subtree being modified</li>
+										<li><a href="#widl-MutationEvent-attrName"><code class="attribute-name">MutationEvent.attrName</code></a>: the <a class="def" href="#glossary-empty-string">empty
+											string</a></li>
+										<li><a href="#widl-MutationEvent-attrChange"><code class="attribute-name">MutationEvent.attrChange</code></a>: <code>0</code></li>
+										<li><a href="#widl-MutationEvent-relatedNode"><code class="attribute-name">MutationEvent.relatedNode</code></a>: <code>null</code></li>
+										<li><a href="#widl-MutationEvent-newValue"><code class="attribute-name">MutationEvent.newValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
+											string</a></li>
+										<li><a href="#widl-MutationEvent-prevValue"><code class="attribute-name">MutationEvent.prevValue</code></a>: the <a class="def" href="#glossary-empty-string">empty
+											string</a></li>
+									</ul>
+								</td>
+							</tr>
+						</table>
+
+						<p>This is a general event for notification of all changes to the document. It can be used instead of the more specific mutation and mutation name events. It MAY be
+							dispatched after a single modification to the document or, at the implementation's discretion, after multiple changes have occurred. The latter case SHOULD generally
+							be used to accommodate multiple changes which occur either simultaneously or in rapid succession. The target of this event MUST be the lowest common parent of the
+							changes which have taken place. This event MUST be dispatched after any other events caused by the mutation(s) have occurred.</p>
+
+						<p class="warning"><strong>Warning!</strong> The <a class="eventtype" href="#event-type-DOMSubtreeModified"><code>DOMSubtreeModified</code></a> event type is defined in this
+							specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the use of this event type.</p>
+					</dd>
+				</dl>
+			</div>
+
+		</section>
+
+	</section>
+	
 	<!-- Appendix C: Extending events ========================================================-->
 	<section id="extending_events">
 		<h1>Extending Events</h1>