--- a/html/DOM3-Events.html Fri Oct 30 05:44:37 2009 +0900
+++ b/html/DOM3-Events.html Fri Oct 30 12:19:25 2009 +0900
@@ -208,7 +208,7 @@
<dl>
<dt>This version:</dt>
<dd>
- <a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.101">http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.101</a>
+ <a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.104">http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.104</a>
</dd>
<dt>Latest stable version:</dt>
<dd>
@@ -216,7 +216,7 @@
</dd>
<dt>Previous version:</dt>
<dd>
- <a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.100">http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.100</a>
+ <a href="http://dev.w3.org/cvsweb/~checkout~/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.103">http://dev.w3.org/cvsweb/~checkout~/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.103</a>
</dd>
<dt>Editor's Draft:</dt>
<dd>
@@ -1737,20 +1737,6 @@
<td>No</td>
<td>none</td>
</tr>
- <!-- <tr>
- <td>
- <a class="eventtype" href="#event-type-DOMContentLoaded"><code>DOMContentLoaded</code></a>
- </td>
- <td>No</td>
- <td><code>Document</code>, <code>Element</code></td>
- <td>
- <a href="#events-Events-Event">
- <code>Event</code>
- </a>
- </td>
- <td>No</td>
- <td>none</td>
- </tr> -->
<tr>
<td>
<a class="eventtype" href="#event-type-DOMCharacterDataModified"><code>DOMCharacterDataModified</code></a>
@@ -1874,7 +1860,7 @@
<a class="eventtype" href="#event-type-DOMSubtreeModified"><code>DOMSubtreeModified</code></a>
</td>
<td>Yes</td>
- <td><code>Document</code>, <code>DocumentFragment</code>, <code>Element</code>, <code>Attr</code></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="#events-Events-MutationEvent">
<code>MutationEvent</code>
@@ -2000,7 +1986,7 @@
<a class="eventtype" href="#event-type-load"><code>load</code></a>
</td>
<td>No</td>
- <td><code>Document</code>, <code>Element</code></td>
+ <td><a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, <code>Element</code></td>
<td>
<a href="#events-Events-Event">
<code>Event</code>
@@ -2126,7 +2112,7 @@
<a class="eventtype" href="#event-type-mousewheel"><code>mousewheel</code></a>
</td>
<td>Yes</td>
- <td><code>Document</code>, <code>Element</code></td>
+ <td><a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, <code>Element</code></td>
<td>
<a href="#events-Events-MouseWheelEvent">
<code>MouseWheelEvent</code>
@@ -2139,8 +2125,8 @@
<td>
<a class="eventtype" href="#event-type-resize"><code>resize</code></a>
</td>
- <td>Yes</td>
- <td><code>Document</code>, <code>Element</code></td>
+ <td>No</td>
+ <td><a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, <code>Element</code></td>
<td>
<a href="#events-Events-UIEvent">
<code>UIEvent</code>
@@ -2154,7 +2140,7 @@
<a class="eventtype" href="#event-type-scroll"><code>scroll</code></a>
</td>
<td>No</td>
- <td><code>Document</code>, <code>Element</code></td>
+ <td><a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, <code>Element</code></td>
<td>
<a href="#events-Events-UIEvent">
<code>UIEvent</code>
@@ -2200,7 +2186,7 @@
<a class="eventtype" href="#event-type-unload"><code>unload</code></a>
</td>
<td>No</td>
- <td><code>Document</code>, <code>Element</code></td>
+ <td><a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, <code>Element</code></td>
<td>
<a href="#events-Events-Event">
<code>Event</code>
@@ -2214,7 +2200,7 @@
<a class="eventtype" href="#event-type-wheel"><code>wheel</code></a>
</td>
<td>Yes</td>
- <td><code>Document</code>, <code>Element</code></td>
+ <td><a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, <code>Element</code></td>
<td>
<a href="#events-Events-WheelEvent">
<code>WheelEvent</code>
@@ -2224,7 +2210,7 @@
<td>Scroll (or zoom) the document</td>
</tr>
</table>
- <p>As an example, the event <a class="eventtype" href="#event-type-load"><code>load</code></a> must trigger event listeners attached on <code>Element</code> nodes for that event and on the capture and target phases. This event cannot be cancelled. If an event listener for the <a class="eventtype" href="#event-type-load"><code>load</code></a> event is attached to a node other than <code>Document</code> or <code>Element</code> nodes, or if it is attached to the bubbling phase only, this event listener must not be triggered.</p>
+ <p>As an example of interpreting of this table, the event <a class="eventtype" href="#event-type-load"><code>load</code></a> must trigger event listeners attached on <code>Element</code> nodes for that event and on the capture and target phases. This event cannot be cancelled. If an event listener for the <a class="eventtype" href="#event-type-load"><code>load</code></a> event is attached to a node other than <a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, or <code>Element</code> nodes, or if it is attached to the bubbling phase only, this event listener must not be triggered.</p>
<p>The event objects associated with the event types described above may contain context information. Refer to the description of the DOM interfaces for further information.</p>
</div>
<!-- div3 Events-EventTypes-complete -->
@@ -2322,7 +2308,7 @@
<dt id="event-type-load">
<a class="eventtype noxref" href="#event-type-load"><code>load</code></a>
</dt>
- <dd><table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0"><tr class="assert must"><th>Type</th><td class="eventname"><strong><code>load</code></strong></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-UIEvent"><code>UIEvent</code></a> if generated from a user interface, <a href="#events-Events-Event"><code>Event</code></a> otherwise.</td></tr><tr class="assert must"><th>Bubbles</th><td>No</td></tr><tr class="assert must"><th>Target</th><td><code>Document</code>, <code>Element</code></td></tr><tr class="assert must"><th>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Default action</th><td>none</td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> may be in use.</td></tr></table>
+ <dd><table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0"><tr class="assert must"><th>Type</th><td class="eventname"><strong><code>load</code></strong></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-UIEvent"><code>UIEvent</code></a> if generated from a user interface, <a href="#events-Events-Event"><code>Event</code></a> otherwise.</td></tr><tr class="assert must"><th>Bubbles</th><td>No</td></tr><tr class="assert must"><th>Target</th><td><a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, <code>Element</code></td></tr><tr class="assert must"><th>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Default action</th><td>none</td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> may be in use.</td></tr></table>
A <a class="def" href="#glossary-user-agent">user agent</a> must dispatch this event when the DOM implementation finishes loading the resource (such as the document) and any dependent resources (such as images, style sheets, or scripts). Dependent resources that fail to load must not prevent this event from firing if the resource that loaded them is still accessible via the DOM. If this event type is dispatched, implementations are required to dispatch this event at least on the <code>Document</code> node.
<!-- This event differs from the <a class="eventtype" href="#event-type-DOMContentLoaded"><code>DOMContentLoaded</code></a> event in that it is not dispatched until all external resources are loaded. -->
</dd>
@@ -2335,7 +2321,7 @@
<dt id="event-type-DOMContentLoaded">
<a class="eventtype noxref" href="#event-type-DOMContentLoaded"><code>DOMContentLoaded</code></a>
</dt>
- <dd><table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0"><tr class="assert must"><th>Type</th><td class="eventname"><strong><code>DOMContentLoaded</code></strong></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-UIEvent"><code>UIEvent</code></a> if generated from a user interface, <a href="#events-Events-Event"><code>Event</code></a> otherwise.</td></tr><tr class="assert must"><th>Bubbles</th><td>No</td></tr><tr class="assert must"><th>Target</th><td><code>Document</code>, <code>Element</code></td></tr><tr class="assert must"><th>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Default action</th><td>none</td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> may be in use.</td></tr></table>
+ <dd><table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0"><tr class="assert must"><th>Type</th><td class="eventname"><strong><code>DOMContentLoaded</code></strong></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-UIEvent"><code>UIEvent</code></a> if generated from a user interface, <a href="#events-Events-Event"><code>Event</code></a> otherwise.</td></tr><tr class="assert must"><th>Bubbles</th><td>No</td></tr><tr class="assert must"><th>Target</th><td><a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, <code>Element</code></td></tr><tr class="assert must"><th>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Default action</th><td>none</td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> may be in use.</td></tr></table>
A <a class="def" href="#glossary-user-agent">user agent</a> must dispatch this event when the DOM implementation finishes loading the resource (such as the document), but before any dependent resources (such as images, style sheets, or scripts) are necessary loaded. If this event type is dispatched, implementations are required to dispatch this event at least on the <code>Document</code> node. This event differs from the <a class="eventtype" href="#event-type-load"><code>load</code></a> event in that it is dispatched immediately when the document markup is loaded, rather than waiting on external resources.
</dd>
</dl>
@@ -2348,7 +2334,7 @@
<dt id="event-type-unload">
<a class="eventtype noxref" href="#event-type-unload"><code>unload</code></a>
</dt>
- <dd><table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0"><tr class="assert must"><th>Type</th><td class="eventname"><strong><code>unload</code></strong></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-UIEvent"><code>UIEvent</code></a> if generated from a user interface, <a href="#events-Events-Event"><code>Event</code></a> otherwise.</td></tr><tr class="assert must"><th>Bubbles</th><td>No</td></tr><tr class="assert must"><th>Target</th><td><code>Document</code>, <code>Element</code></td></tr><tr class="assert must"><th>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Default action</th><td>none</td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> may be in use.</td></tr></table>
+ <dd><table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0"><tr class="assert must"><th>Type</th><td class="eventname"><strong><code>unload</code></strong></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-UIEvent"><code>UIEvent</code></a> if generated from a user interface, <a href="#events-Events-Event"><code>Event</code></a> otherwise.</td></tr><tr class="assert must"><th>Bubbles</th><td>No</td></tr><tr class="assert must"><th>Target</th><td><a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, <code>Element</code></td></tr><tr class="assert must"><th>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Default action</th><td>none</td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> may be in use.</td></tr></table>
A <a class="def" href="#glossary-user-agent">user agent</a> must dispatch this event when the DOM Implementation removes from the environment the resource (such as the document) or any dependent resources (such as images, style sheets, scripts). The document shall be unloaded after the dispatch of this event type. If this event type is dispatched, implementations are required to dispatch this event at least on the <code>Document</code> node.</dd>
</dl>
</div>
@@ -2394,8 +2380,10 @@
<dt id="event-type-resize">
<a class="eventtype noxref" href="#event-type-resize"><code>resize</code></a>
</dt>
- <dd><table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0"><tr class="assert must"><th>Type</th><td class="eventname"><strong><code>resize</code></strong></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-UIEvent"><code>UIEvent</code></a></td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Document</code>, <code>Element</code></td></tr><tr class="assert must"><th>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Default action</th><td>none</td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> is in use.</td></tr></table>
- A <a class="def" href="#glossary-user-agent">user agent</a> must dispatch this event when a document view or an element has been resized. This event type is dispatched after the resize has occurred.</dd>
+ <dd><table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0"><tr class="assert must"><th>Type</th><td class="eventname"><strong><code>resize</code></strong></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-UIEvent"><code>UIEvent</code></a></td></tr><tr class="assert must"><th>Bubbles</th><td>No</td></tr><tr class="assert must"><th>Target</th><td><a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, <code>Element</code></td></tr><tr class="assert must"><th>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Default action</th><td>none</td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> is in use.</td></tr></table>
+ A <a class="def" href="#glossary-user-agent">user agent</a> must dispatch this event when a document view or an element has been resized. This event type is dispatched after the resize has occurred.
+ <p class="note"><strong>Note:</strong> In previous DOM Events specifications, the <a class="eventtype noxref" href="#event-type-resize"><code>resize</code></a> event type was defined to have a <a class="def" href="#glossary-bubbling-phase">bubbling phase</a>, but for performance reasons, this was not implemented in most user agents, and this specification removes the <a class="def" href="#glossary-bubbling-phase">bubbling phase</a> for this event.</p>
+ </dd>
</dl>
</div>
@@ -2405,7 +2393,7 @@
<dt id="event-type-scroll">
<a class="eventtype noxref" href="#event-type-scroll"><code>scroll</code></a>
</dt>
- <dd><table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0"><tr class="assert must"><th>Type</th><td class="eventname"><strong><code>scroll</code></strong></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-UIEvent"><code>UIEvent</code></a></td></tr><tr class="assert must"><th>Bubbles</th><td>No</td></tr><tr class="assert must"><th>Target</th><td><code>Document</code>, <code>Element</code></td></tr><tr class="assert must"><th>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Default action</th><td>none</td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> is in use.</td></tr></table>
+ <dd><table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0"><tr class="assert must"><th>Type</th><td class="eventname"><strong><code>scroll</code></strong></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-UIEvent"><code>UIEvent</code></a></td></tr><tr class="assert must"><th>Bubbles</th><td>No</td></tr><tr class="assert must"><th>Target</th><td><a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, <code>Element</code></td></tr><tr class="assert must"><th>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Default action</th><td>none</td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> is in use.</td></tr></table>
A <a class="def" href="#glossary-user-agent">user agent</a> must dispatch this event when a document view or an element has been scrolled. This event type is dispatched after the scroll has occurred.</dd>
</dl>
</div>
@@ -2971,7 +2959,7 @@
<dt id="event-type-mousewheel">
<a class="eventtype noxref" href="#event-type-mousewheel"><code>mousewheel</code></a>
</dt>
- <dd><table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0"><tr class="assert must"><th>Type</th><td class="eventname"><strong><code>mousewheel</code></strong></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-MouseWheelEvent"><code>MouseWheelEvent</code></a></td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Document</code>, <code>Element</code></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Default action</th><td>scroll (or zoom) the document</td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-MouseWheelEvent-wheelDelta"><code>MouseWheelEvent.wheelDelta</code></a>, <a href="#events-Events-MouseEvent-altKey"><code>MouseEvent.altKey</code></a>, <a href="#events-Events-MouseEvent-ctrlKey"><code>MouseEvent.ctrlKey</code></a>, <a href="#events-Events-MouseEvent-shiftKey"><code>MouseEvent.shiftKey</code></a>, <a href="#events-Events-MouseEvent-metaKey"><code>MouseEvent.metaKey</code></a>, and <a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> are in use. <a href="#events-Events-MouseEvent-screenX"><code>MouseEvent.screenX</code></a>, <a href="#events-Events-MouseEvent-screenY"><code>MouseEvent.screenY</code></a>, <a href="#events-Events-MouseEvent-clientX"><code>MouseEvent.clientX</code></a>, <a href="#events-Events-MouseEvent-clientY"><code>MouseEvent.clientY</code></a>, and <a href="#events-Events-MouseEvent-button"><code>MouseEvent.button</code></a> are in use if the wheel is associated to a pointing device. <a href="#events-Events-MouseEvent-relatedTarget"><code>MouseEvent.relatedTarget</code></a> indicates the <a class="def" href="#glossary-event-target">event target</a> the pointing device is pointing at, if any. <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> is not in use.</td></tr></table>
+ <dd><table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0"><tr class="assert must"><th>Type</th><td class="eventname"><strong><code>mousewheel</code></strong></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-MouseWheelEvent"><code>MouseWheelEvent</code></a></td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, <code>Element</code></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Default action</th><td>scroll (or zoom) the document</td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-MouseWheelEvent-wheelDelta"><code>MouseWheelEvent.wheelDelta</code></a>, <a href="#events-Events-MouseEvent-altKey"><code>MouseEvent.altKey</code></a>, <a href="#events-Events-MouseEvent-ctrlKey"><code>MouseEvent.ctrlKey</code></a>, <a href="#events-Events-MouseEvent-shiftKey"><code>MouseEvent.shiftKey</code></a>, <a href="#events-Events-MouseEvent-metaKey"><code>MouseEvent.metaKey</code></a>, and <a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> are in use. <a href="#events-Events-MouseEvent-screenX"><code>MouseEvent.screenX</code></a>, <a href="#events-Events-MouseEvent-screenY"><code>MouseEvent.screenY</code></a>, <a href="#events-Events-MouseEvent-clientX"><code>MouseEvent.clientX</code></a>, <a href="#events-Events-MouseEvent-clientY"><code>MouseEvent.clientY</code></a>, and <a href="#events-Events-MouseEvent-button"><code>MouseEvent.button</code></a> are in use if the wheel is associated to a pointing device. <a href="#events-Events-MouseEvent-relatedTarget"><code>MouseEvent.relatedTarget</code></a> indicates the <a class="def" href="#glossary-event-target">event target</a> the pointing device is pointing at, if any. <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> is not in use.</td></tr></table>
A <a class="def" href="#glossary-user-agent">user agent</a> must dispatch this event when a mouse wheel has been rotated around the y-axis, or when an equivalent input device (such as a mouse-ball, certain tablets or touchpads, etc.) has emulated such an action.
<p>The typical default action of the <a class="eventtype" href="#event-type-mousewheel"><code>mousewheel</code></a> event type is to scroll (or in some cases, zoom) the document by the indicated amount. If this event is canceled, the implementation must not scroll or zoom the document (or perform whatever other implementation-specific default action is associated with this event type).</p>
<p class="warning"><strong>Warning:</strong> the <a class="eventtype" href="#event-type-mousewheel"><code>mousewheel</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 <a class="eventtype" href="#event-type-wheel"><code>wheel</code></a> event type.</p>
@@ -3114,7 +3102,7 @@
<dt id="event-type-wheel">
<a class="eventtype noxref" href="#event-type-wheel"><code>wheel</code></a>
</dt>
- <dd><table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0"><tr class="assert must"><th>Type</th><td class="eventname"><strong><code>wheel</code></strong></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-WheelEvent"><code>WheelEvent</code></a></td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Document</code>, <code>Element</code></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Default action</th><td>scroll (or zoom) the document</a> event</td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-WheelEvent-deltaX"><code>WheelEvent.deltaX</code></a>, <a href="#events-Events-WheelEvent-deltaY"><code>WheelEvent.deltaY</code></a>, <a href="#events-Events-WheelEvent-deltaZ"><code>WheelEvent.deltaZ</code></a>, <a href="#events-Events-MouseEvent-altKey"><code>MouseEvent.altKey</code></a>, <a href="#events-Events-MouseEvent-ctrlKey"><code>MouseEvent.ctrlKey</code></a>, <a href="#events-Events-MouseEvent-shiftKey"><code>MouseEvent.shiftKey</code></a>, <a href="#events-Events-MouseEvent-metaKey"><code>MouseEvent.metaKey</code></a>, and <a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> are in use. <a href="#events-Events-MouseEvent-screenX"><code>MouseEvent.screenX</code></a>, <a href="#events-Events-MouseEvent-screenY"><code>MouseEvent.screenY</code></a>, <a href="#events-Events-MouseEvent-clientX"><code>MouseEvent.clientX</code></a>, <a href="#events-Events-MouseEvent-clientY"><code>MouseEvent.clientY</code></a>, and <a href="#events-Events-MouseEvent-button"><code>MouseEvent.button</code></a> are in use if the wheel is associated to a pointing device. <a href="#events-Events-MouseEvent-relatedTarget"><code>MouseEvent.relatedTarget</code></a> indicates the <a class="def" href="#glossary-event-target">event target</a> the pointing device is pointing at, if any. <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> is not in use.</td></tr></table>
+ <dd><table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0"><tr class="assert must"><th>Type</th><td class="eventname"><strong><code>wheel</code></strong></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-WheelEvent"><code>WheelEvent</code></a></td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><a class="def" href="#glossary-defaultView"><code>defaultView</code></a>, <code>Document</code>, <code>Element</code></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Default action</th><td>scroll (or zoom) the document</a> event</td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-WheelEvent-deltaX"><code>WheelEvent.deltaX</code></a>, <a href="#events-Events-WheelEvent-deltaY"><code>WheelEvent.deltaY</code></a>, <a href="#events-Events-WheelEvent-deltaZ"><code>WheelEvent.deltaZ</code></a>, <a href="#events-Events-MouseEvent-altKey"><code>MouseEvent.altKey</code></a>, <a href="#events-Events-MouseEvent-ctrlKey"><code>MouseEvent.ctrlKey</code></a>, <a href="#events-Events-MouseEvent-shiftKey"><code>MouseEvent.shiftKey</code></a>, <a href="#events-Events-MouseEvent-metaKey"><code>MouseEvent.metaKey</code></a>, and <a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> are in use. <a href="#events-Events-MouseEvent-screenX"><code>MouseEvent.screenX</code></a>, <a href="#events-Events-MouseEvent-screenY"><code>MouseEvent.screenY</code></a>, <a href="#events-Events-MouseEvent-clientX"><code>MouseEvent.clientX</code></a>, <a href="#events-Events-MouseEvent-clientY"><code>MouseEvent.clientY</code></a>, and <a href="#events-Events-MouseEvent-button"><code>MouseEvent.button</code></a> are in use if the wheel is associated to a pointing device. <a href="#events-Events-MouseEvent-relatedTarget"><code>MouseEvent.relatedTarget</code></a> indicates the <a class="def" href="#glossary-event-target">event target</a> the pointing device is pointing at, if any. <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> is not in use.</td></tr></table>
A <a class="def" href="#glossary-user-agent">user agent</a> must dispatch this event when a mouse wheel has been rotated around any axis, or when an equivalent input device (such as a mouse-ball, certain tablets or touchpads, etc.) has emulated such an action.
<p>The typical default action of the <a class="eventtype" href="#event-type-wheel"><code>wheel</code></a> event type is to scroll (or in some cases, zoom) the document by the indicated amount. If this event is canceled, the implementation must not scroll or zoom the document (or perform whatever other implementation-specific default action is associated with this event type).</p>
@@ -3823,7 +3811,7 @@
<dt id="event-type-DOMSubtreeModified">
<a class="eventtype noxref" href="#event-type-DOMSubtreeModified"><code>DOMSubtreeModified</code></a>
</dt>
- <dd><table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0"><tr class="assert must"><th>Type</th><td class="eventname"><strong><code>DOMSubtreeModified</code></strong></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-MutationEvent"><code>MutationEvent</code></a></td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Document</code>, <code>DocumentFragment</code>, <code>Element</code>, <code>Attr</code></td></tr><tr class="assert must"><th>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Default action</th><td>none</td></tr><tr class="assert must"><th>Context info</th><td>None</td></tr></table>
+ <dd><table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0"><tr class="assert must"><th>Type</th><td class="eventname"><strong><code>DOMSubtreeModified</code></strong></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-MutationEvent"><code>MutationEvent</code></a></td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><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 class="assert must"><th>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Default action</th><td>none</td></tr><tr class="assert must"><th>Context info</th><td>None</td></tr></table>
This is a general event for notification of all changes to the document. It can be used instead of the more specific mutation and mutation name events listed below. It may be dispatched after a single modification to the document or, at the implementation's discretion, after multiple changes have occurred. The latter use should generally be used to accommodate multiple changes which occur either simultaneously or in rapid succession. The target of this event shall be the lowest common parent of the changes which have taken place. This event shall be dispatched after any other events caused by the mutation(s) have occurred.
<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>
@@ -4084,6 +4072,9 @@
<div class="div2">
<h3 class="adiv2"><a id="keyset-keyidentifiers" href="#keyset-keyidentifiers">6.2 Key Identifiers</a></h3>
+
+ <p class="issue">@@ should we rename this section (and the list) "Key Values" and "Key Value Set", to disambiguate them from unique identifiers for keys?</p>
+
<p>A key identifier is a <code>DOMString</code> that can be used to indicate any given key on a keyboard, regardless of position or state, by the value it produces. These key identifiers may be used as return values for keyboard events generated by the implementation, or as input values by the author to specify desired input (such as for keyboard shortcuts). This specification defines a set of common key identifiers (called the <a href="#keyset-key-identifiers">Key Identifiers Set</a>), and rules for production of new key identifiers.</p>
@@ -4101,7 +4092,7 @@
<p>It is also important to note that there is not a one-to-one relationship between key event states and key identifiers. A particular key identifier may be associated with multiple keys; for example, many standard keyboards contain more than one key with the <code class="value">'Shift'</code> key identifier (normally distinguished by the <a href="#events-Events-KeyboardEvent-location"><code>KeyboardEvent.location</code></a> values <a href="#events-DOM_KEY_LOCATION_LEFT"><code class="constant-name">DOM_KEY_LOCATION_LEFT</code></a> and <a href="#events-DOM_KEY_LOCATION_RIGHT"><code class="constant-name">DOM_KEY_LOCATION_RIGHT</code></a>) or <code class="value">'8'</code> key identifier (normally distinguished by the <a href="#events-Events-KeyboardEvent-location"><code>KeyboardEvent.location</code></a> values <a href="#events-DOM_KEY_LOCATION_STANDARD"><code class="constant-name">DOM_KEY_LOCATION_STANDARD</code></a> and <a href="#events-DOM_KEY_LOCATION_NUMPAD"><code class="constant-name">DOM_KEY_LOCATION_NUMPAD</code></a>), and user-configured custom keyboard layouts may duplicate any key identifier in multiple key-state scenarios (note that <a href="#events-Events-KeyboardEvent-location"><code>KeyboardEvent.location</code></a> is intended for standard keyboard layouts, and cannot always indicate a meaningful distinction).</p>
- <p>Similarly, a given key event state may have multiple key identifiers: the key identifier name; the Unicode value; and the character representation itself. For example, the question mark (<code>'?'</code>) key has the following key identifiers: <code>'\u003F'</code> (the Unicode code point as an escaped character value); and <code>'QuestionMark'</code> (the name). Note that not all keys will have both these identifiers; for example, the horizontal tabulation (tab) key has a name (<code class="value">'Tab'</code>) and a Unicode value (<code class="value">'\u0009'</code>) but no character representation, the <code>A</code> key has a character representation (<code class="value">'A'</code>) and a Unicode value (<code class="value">'\u0041'</code>) but no name, and the volume mute key has only a name, <code class="value">'VolumeMute'</code>. <span class="issue">@@ rewrite this paragraph in light of recent changes to character values and dropping the <code class="value">'U+'</code> syntax.</span></p>
+ <p>Similarly, a given key event state may have multiple key identifiers, some of which may represent a character in one of the <a class="def" href="#glossary-Unicode-character-categories">Unicode character categories</a>: a <a class="def" href="#glossary-character-value">character value</a>; and the <a class="def" href="#glossary-key-name">key name</a>. For example, the question mark (<code>'?'</code>) key has the following key identifiers: <code>'\u003F'</code> (the Unicode code point as an escaped character value, which is in the range of <a class="def" href="#glossary-Unicode-character-categories">Unicode character categories</a>); and <code>'QuestionMark'</code> (the name), while the horizontal tabulation (tab) key has a name (<code class="value">'Tab'</code>) and a <a class="def" href="#glossary-character-value">character value</a> (<code class="value">'\u0009'</code>) but no character representation. Note that not all keys will have both these identifiers; for example, the volume mute key has only a <a class="def" href="#glossary-key-name">key name</a>, <code class="value">'VolumeMute'</code>, and no <a class="def" href="#glossary-character-value">character value</a> or character representation, since it doesn't have a corresponding <a class="def" href="#glossary-unicode-code-point">Unicode code point</a>.</p>
<p>The value of the <a href="#events-Events-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> attribute of the <a href="#events-Events-KeyboardEvent">KeyboardEvent</a> interface event types (e.g. <a class="eventtype" href="#event-type-keydown"><code>keydown</code></a>, <a class="eventtype" href="#event-type-keypress"><code>keypress</code></a>, and <a class="eventtype" href="#event-type-keyup"><code>keyup</code></a>) must default to the <a class="def" href="#glossary-character-value">character value</a> itself; if the key identifier does not have a character representation, the value of the <a href="#events-Events-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> attribute must be the <a class="def" href="#glossary-key-name">key name</a>. The author may use the <a href="#events-Events-DocumentEvent-convertKeyIdentifier"><code>DocumentEvent.convertKeyIdentifier</code></a> method to find either the <a class="def" href="#glossary-character-value">character value</a>, the <a class="def" href="#glossary-key-name">key name</a>, or the raw <a class="def" href="#glossary-unicode-code-point">Unicode code point</a> of any given key identifier.</p>
@@ -4327,24 +4318,27 @@
<p class="note"><strong>Note:</strong> This section is normative.</p>
<p>The list of key identifiers contained in this specification is not exhaustive and input devices may have to define their own key identifiers. Here is a algorithm to determine which key identifier to use:</p>
-
- <ol>
- <li>Consider the current function of the key (i.e., with modifiers), taking into consideration the keyboard layout mapping in use, to determine if a corresponding Unicode character exists from which a key identifier may be derived.
- <!-- If multiple Unicode characters exist which correspond to the primary function of the key, the Unicode character with the lowest codepoint must be used. <span class="issue">@@ won't this be a problem for detecting the range for that character, if it's intended to be from a particular language? is there some way for the implementation to detect which language or code block the code point is from?</span> -->
+
+ <ol>
+ <li>Consider the current function of the key (i.e., with modifiers), taking into consideration the keyboard layout mapping in use, to determine if the key is represented by the set of defined key identifiers, if a corresponding Unicode character exists from which a key identifier may be derived, or if a new key identifier must be defined.
<ol>
- <li>If the primary function of the key is to generate a character, and that character is in one of the <a class="def" href="#glossary-Unicode-character-categories">Unicode character categories</a>, then the key identifier shall be a string consisting of just that character as a <a class="def" href="#glossary-character-value">character value</a>. <!-- If the primary function of the key is to generate a character in class <abbr title="Letter, Lowercase">Ll</abbr> for which there exists an equivalent, single character in class <abbr title="Letter, Uppercase">Lu</abbr>, the uppercase character should be used instead. <br/><span class="issue">Is this necessary? Why can't we simply allow lowercase letters as well? If a script author wishes to do a comparison, they can cast the output to upper or lower case as needed. See <a href="http://www.w3.org/2008/webapps/track/issues/23" title="ISSUE-23 - Web Applications Working Group Tracker">ISSUE-23</a>.</span> --></li>
- <li> If the primary function of the key is to generate a character that is not in one of the above general categories, or if the primary function of the key is a function for which there exists a corresponding Unicode character that is not in one of the above general categories, then:
+ <li>If the primary current function of the key is to generate a character, then:
<ol>
- <li>If there exists an appropriate key identifier in the <a href="#keyset-keyidentifiers">key identifiers set</a>, and that key identifier does not have a <a class="def" href="#glossary-unicode-code-point">Unicode code point</a>, that key identifier must be used.</li>
- <li>If there exists an appropriate key identifier in the <a href="#keyset-keyidentifiers">key identifiers set</a>, and that key identifier has a <a class="def" href="#glossary-unicode-code-point">Unicode code point</a>, and that key identifier is in one of the <a class="def" href="#glossary-Unicode-character-categories">Unicode character categories</a>, then the <a class="def" href="#glossary-character-value">character value</a> itself for that key identifier must be used.</li>
-
- <li>If there is no appropriate key identifier in the <a href="#keyset-keyidentifiers">key identifiers set</a>, then the key identifier is a string beginning with "\u" and followed by the <a class="def" href="#glossary-unicode-code-point">Unicode code point</a> of the character in hexadecimal, using at least four digits. Leading zeroes must be omitted unless they are required to make the codepoint use at least four digits.</li>
+ <li>If there exists an appropriate key identifier in the <a href="#keyset-keyidentifiers">key identifiers set</a>, that the key identifier shall be a string consisting of just that character as a <a class="def" href="#glossary-character-value">character value</a>.</li>
+ <li>If there is no appropriate key identifier in the <a href="#keyset-keyidentifiers">key identifiers set</a>, and there exists an appropriate <a class="def" href="#glossary-unicode-code-point">Unicode code point</a>, then the key identifier is a string beginning with "\u" and followed by the <a class="def" href="#glossary-unicode-code-point">Unicode code point</a> of the character in hexadecimal, using at least four digits. Leading zeroes must be omitted unless they are required to buffer the code point to a length of at least four digits.</li>
+ <li>If there is no appropriate key identifier in the <a href="#keyset-keyidentifiers">key identifiers set</a>, and no appropriate <a class="def" href="#glossary-unicode-code-point">Unicode code point</a> exists, then... uh, are you sure this is meant to produce a character?</li>
+ </ol>
+ </li>
+ <li>If the primary current function of the key is to serve as a function key, then:
+ <ol>
+ <li>If there exists an appropriate key identifier in the <a href="#keyset-keyidentifiers">key identifiers set</a>, that the key identifier shall be a string consisting of that key identifier as a <a class="def" href="#glossary-key-name">key name</a>.</li>
+ <li>If there is no appropriate key identifier in the <a href="#keyset-keyidentifiers">key identifiers set</a>, then a key identifier must be devised. The key identifier should be as human friendly as possible and must not contain whitespace characters. The identifier must be composed only of characters in the ranges <abbr title="0-9">\u0030..\u0039</abbr>, <abbr title="A-Z">\u0041..\u005A</abbr>, or <abbr title="a-z">\u0061..\u007A</abbr>, and must begin with a character in the range <abbr title="A-Z">\u0041..\u005A</abbr>. <br/><span class="issue">Why should we not allow names in other ranges (Chinese, for example)?</span></li>
</ol>
</li>
</ol>
</li>
- <li> For keys with no corresponding Unicode character, a key identifier can be devised. The key identifier should be as human friendly as possible and must not contain whitespace. The identifier must be composed only of characters in the ranges <abbr title="0-9">\u0030..\u0039</abbr>, <abbr title="A-Z">\u0041..\u005A</abbr>, or <abbr title="a-z">\u0061..\u007A</abbr>, and must begin with a character in the range <abbr title="A-Z">\u0041..\u005A</abbr>. <br/><span class="issue">Why should we not allow names in other ranges (Chinese, for example)?</span></li>
</ol>
+
<p>Examples:</p>
<ul>
<li>On a PC/AT US keyboard with a two-handed Dvorak keyboard mapping, the key labeled <code class="value">'Q'</code> maps to the key identifiers <code class="value">'5'</code> (unmodified) and <code class="value">'%'</code> (shifted). The primary function of this key is to generate the character <code class="value">'\u0035'</code>. Since this character is in general category <abbr title="Number, Decimal Digit">Nd</abbr>, the key identifier for the unmodified key shall be <code class="value">'5'</code>.</li>
@@ -4363,7 +4357,10 @@
<p class="note"><strong>Note:</strong> The key names <code class="value">'NumPad0'</code>, <code class="value">'NumPad1'</code>, <code class="value">'NumPad2'</code>, <code class="value">'NumPad3'</code>, <code class="value">'NumPad4'</code>, <code class="value">'NumPad5'</code>, <code class="value">'NumPad6'</code>, <code class="value">'NumPad7'</code>, <code class="value">'NumPad8'</code>, and <code class="value">'NumPad9'</code>, found in some keyboard enumeration sets, are not distinguished from other numerical key identifiers in this set; an author may use the <a href="#events-Events-KeyboardEvent-location"><code>KeyboardEvent.location</code></a> attribute to discover if a key originated from the numeric keypad.</p>
- <div id"js-escape" class="issue">
+ <p>Javascript escaped characters may have issues because they are based on UTF-16 encoding, in that it uses surrogate pairs for values outside the Basic Multilingual Plane</p>
+
+
+ <div id="js-escape" class="issue">
<p>@@ Javascript escaped characters may have issues:</p>
<ul>
<li>may not be suitable for Java or C, which use different escaping mechanisms (could be solved with a normalizing methods such as <a href="#events-Events-DocumentEvent-convertKeyIdentifier"><code>DocumentEvent.convertKeyIdentifier</code></a>)</li>
@@ -6367,6 +6364,7 @@
<dd>The <a href="#events-Events-MouseEvent"><code>MouseEvent</code></a> interface has one new methods <a href="#events-Events-MouseEvent-getModifierState"><code>MouseEvent.getModifierState()</code></a>.</dd>
<dt>Exception <a href="#events-Events-EventException"><code>EventException</code></a></dt>
<dd>The <a href="#events-DISPATCH_REQUEST_ERR"><code>DISPATCH_REQUEST_ERR</code></a> constant has been added.</dd>
+ <dd>The <code>resize</code> event type no longer bubbles, reflecting existing implementations.</dd>
</dl>
</div>
<!-- div3 DOMLevel2to3Changes -->