fixed propagation path so it's clear it applies to non-DOM use cases as well
authorschepers
Sat, 07 May 2011 15:04:34 +0900
changeset 311 5d2e2538300b
parent 310 6ce0a08e97f6
child 312 f0f1bd7e5d95
fixed propagation path so it's clear it applies to non-DOM use cases as well
html/DOM3-Events.html
--- a/html/DOM3-Events.html	Fri May 06 11:13:59 2011 +0900
+++ b/html/DOM3-Events.html	Sat May 07 15:04:34 2011 +0900
@@ -25,16 +25,16 @@
       </p>
       <h1 id="Overview-title">Document Object Model (DOM) Level 3 Events Specification</h1>
 <!-- @@@ -->
-      <h2 id="Overview-W3C-doctype">W3C Editor's Draft <time datetime="2011-05-05">5 May 2011</time></h2>
+      <h2 id="Overview-W3C-doctype">W3C Editor's Draft <time datetime="2011-05-07">7 May 2011</time></h2>
       <dl>
         <dt>This version:</dt>
-        <dd><a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.183">http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.183</a></dd>
+        <dd><a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.185">http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.185</a></dd>
 
         <dt>Latest stable version:</dt>
         <dd><a href="http://www.w3.org/TR/DOM-Level-3-Events">http://www.w3.org/TR/DOM-Level-3-Events</a></dd>
 
         <dt>Previous version:</dt>
-        <dd><a href="http://dev.w3.org/cvsweb/~checkout~/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.182">http://dev.w3.org/cvsweb/~checkout~/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.182</a></dd>
+        <dd><a href="http://dev.w3.org/cvsweb/~checkout~/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.184">http://dev.w3.org/cvsweb/~checkout~/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.184</a></dd>
 
         <dt>Editor's Draft:</dt>
         <dd><a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html">http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html</a></dd>
@@ -631,7 +631,8 @@
             <em>Figure 1: graphical representation of an event dispatched in a DOM tree using the DOM event flow</em>
           </p>
         </div>
-        <p>Event objects are always dispatched to the <a class="def" href="#glossary-proximal-event-target">proximal event target</a>.  <span class="assert must">At the beginning of the dispatch, implementations must first determine the event object's <a class="def" href="#glossary-propagation-path">propagation path</a>. The propagation path must be an ordered list of <a class="def" href="#glossary-event-target">event targets</a> through which the event object must pass.</span> <span class="assert must">The last item in the list must be the <a class="def" href="#glossary-proximal-event-target">proximal event target</a></span>; the preceding items in the list are referred to as the <em>target's ancestors</em>, and the immediately preceding item as the <em>target's parent</em>.  <span class="assert mustnot">Once determined, the propagation path must not be changed, even if an element in the propagation path is moved within the DOM or removed from the DOM.</span> As an example, in the DOM event flow event listeners might change the position of the <a class="def" href="#glossary-proximal-event-target">proximal event target</a> in the document while the event object is being dispatched; such changes do not affect the propagation path. Additionally, exceptions inside event listeners do not stop the propagation of the event or affect the <a class="def" href="#glossary-propagation-path">propagation path</a>.</p>
+        <p>Event objects are always dispatched to the <a class="def" href="#glossary-proximal-event-target">proximal event target</a>.  <span class="assert must">At the beginning of the dispatch, implementations must first determine the event object's <a class="def" href="#glossary-propagation-path">propagation path</a>.</span></p> 
+          <p>The propagation path must be an ordered list of <a class="def" href="#glossary-event-target">event targets</a> through which the event object must pass. For tree-based DOM implementations, the propagation path must be reflect the hierarchical tree structure of the document.  <span class="assert must">The last item in the list must be the <a class="def" href="#glossary-proximal-event-target">proximal event target</a></span>; the preceding items in the list are referred to as the <em>target's ancestors</em>, and the immediately preceding item as the <em>target's parent</em>.  <span class="assert mustnot">Once determined, the propagation path must not be changed; for tree-based DOM implementations, this applies even if an element in the propagation path is moved within the DOM or removed from the DOM.</span> As an example, in the DOM event flow event listeners might change the position of the <a class="def" href="#glossary-proximal-event-target">proximal event target</a> in the document while the event object is being dispatched; such changes do not affect the propagation path. Additionally, exceptions inside event listeners do not stop the propagation of the event or affect the <a class="def" href="#glossary-propagation-path">propagation path</a>.</p>
         <p id="event-phase">As the next step, the event object must complete one or more <a class="def" href="#glossary-phase">event phases</a>. This specification defines three event phases: <a href="#capture-phase">capture phase</a>; <a href="#target-phase">target phase</a>; and <a href="#bubble-phase">bubble phase</a>.  Event objects complete these phases in the specified order using the partial propagation paths as defined below.  <span class="assert must">A phase must be skipped if it is not supported, or if the event object's propagation has been stopped.</span>  For example, if the <a href="#events-event-type-canBubble"><code>Event.bubbles</code></a> attribute is set to false, the bubble phase will be skipped, and if <a href="#events-event-type-stopPropagation"><code>Event.stopPropagation()</code></a> has been called prior to the dispatch, all phases must be skipped.</p>
         <ol>
           <li>The <strong id="capture-phase">capture phase</strong>: <span class="assert must">the event object must propagate through the target's ancestors from the <a class="def" href="#glossary-defaultView">defaultView</a> to the target's parent.</span> This phase is also known as the <em>capturing phase</em>. <span class="assert must">Event listeners registered for this phase must handle the event before it reaches its target.</span></li>