--- a/html/DOM3-Events.html Sat Aug 29 08:07:36 2009 +0900
+++ b/html/DOM3-Events.html Sat Aug 29 13:58:45 2009 +0900
@@ -1,111 +1,113 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html lang="en-US" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
+<?xml version="1.0"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Document Object Model (DOM) Level 3 Events Specification</title>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-
- <link rel="copyright" href="copyright-notice.html"/>
- <link rel="glossary" href="glossary.html"/>
- <link rel="Start" href="Overview.html"/>
- <link rel="author" href="mailto:public-webapps@w3.org"/>
- <link rel="help" href="http://www.w3.org/DOM/"/>
-
- <link rel="alternate stylesheet" type="text/css" media="screen" title="geek" href="geek.css" />
- <link rel="stylesheet" type="text/css" href="./spec.css"/>
- <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-ED"/>
+ <link rel="copyright" href="copyright-notice.html" />
+ <link rel="glossary" href="glossary.html" />
+ <link rel="Start" href="Overview.html" />
+ <link rel="author" href="mailto:public-webapps@w3.org" />
+ <link rel="help" href="http://www.w3.org/DOM/" />
+ <link rel="alternate stylesheet" type="text/css" media="screen" title="geek" href="geek.css" />
+ <link rel="stylesheet" type="text/css" href="./spec.css" />
+ <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-ED" />
<style type="text/css">
.issue {
- background-color: darkgray;
- color: white;
- /* border: 2px dashed red; */
+ background-color: darkgray;
+ color: white;
}
+
.note {
- color:green;
+ color:green;
}
.example {
- border:1px solid #ffa500;
- background-color:#fffacd;
- padding: 1em;
+ border:1px solid #ffa500;
+ background-color:#fffacd;
+ padding: 1em;
}
.value {
- color: #191970;
+ color: #191970;
}
.atrisk {
- border:1px solid red;
- color: gray;
+ border:1px solid red;
+ color: gray;
}
.typeCell {
- bgcolor: #CFCFCF;
+ bgcolor: #CFCFCF;
}
- dl#glossary-list dt a
- {
- font-weight: bold;
+ h5 {
+ font-weight: bold;
+ }
+
+ dl#glossary-list dt a
+ {
+ font-weight: bold;
}
-
- /*style for keyIdentifiers keyCode charCode table*/
- table#tbl-keyIdentifiers-keyCode-charCode { border: 1px solid black; border-spacing: 0; cell-padding: 2; }
- #tbl-keyIdentifiers-keyCode-charCode td { border: 1px solid #d3d3d3 }
- #tbl-keyIdentifiers-keyCode-charCode th { border: 1px solid black }
-
- #tbl-keyIdentifiers-keyCode-charCode th { text-align: center; font-weight: bold }
-
- #tbl-keyIdentifiers-keyCode-charCode th { vertical-align: middle; font-size: 0.85em; }
- #tbl-keyIdentifiers-keyCode-charCode td { vertical-align: middle; text-align: center; }
-
- .smallRow1 th {
- font-size: 0.75em;
- display:block;
- width:1.5em;
- height:1.5em;
- height:auto;
- }
-
- .verticalCell1 {
- display:block;
- width:1.5em;
- height:1.5em;
- height:auto;
- }
-
- #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td,
- #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td,
- #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
- #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td
- {
- border-left: 1px solid black;
- }
-
-
- #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td,
- #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td,
- #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td,
- #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
- #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
- #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
- #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
- #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td
- {
- border-left: 1px solid gray;
- }
-
- </style>
+
+ /*style for keyIdentifiers keyCode charCode table*/
+ table#tbl-keyIdentifiers-keyCode-charCode { border: 1px solid black; border-spacing: 0; cell-padding: 2; }
+ #tbl-keyIdentifiers-keyCode-charCode td { border: 1px solid #d3d3d3 }
+ #tbl-keyIdentifiers-keyCode-charCode th { border: 1px solid black }
+
+ #tbl-keyIdentifiers-keyCode-charCode th { text-align: center; font-weight: bold }
+
+ #tbl-keyIdentifiers-keyCode-charCode th { vertical-align: middle; font-size: 0.85em; }
+ #tbl-keyIdentifiers-keyCode-charCode td { vertical-align: middle; text-align: center; }
+
+ .smallRow1 th {
+ font-size: 0.75em;
+ display:block;
+ width:1.5em;
+ height:1.5em;
+ height:auto;
+ }
+
+ .verticalCell1 {
+ display:block;
+ width:1.5em;
+ height:1.5em;
+ height:auto;
+ }
+
+ #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td,
+ #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td,
+ #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
+ #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td
+ {
+ border-left: 1px solid black;
+ }
+
+
+ #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td,
+ #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td,
+ #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td,
+ #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
+ #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
+ #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
+ #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td,
+ #tbl-keyIdentifiers-keyCode-charCode td:first-child + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td + td
+ {
+ border-left: 1px solid gray;
+ }
+
+ </style>
</head>
<body>
<div id="Overview" class="head">
<p>
<a href="http://www.w3.org/">
- <img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/>
+ <img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home" />
</a>
</p>
<h1 id="Overview-title">Document Object Model (DOM) Level 3 Events Specification</h1>
<h2 id="Overview-version">Version 1.1</h2>
- <!-- @@@ -->
- <h2 id="Overview-W3C-doctype">Editor's Draft <span class="date">28 August 2009</span></h2>
+<!-- @@@ -->
+ <h2 id="Overview-W3C-doctype">Editor's Draft <span class="date">29 August 2009</span></h2>
<dl>
<dt>This version:</dt>
<dd>
@@ -117,46 +119,38 @@
</dd>
<dt>Previous version:</dt>
<dd>
- <a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.42">http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.42</a>
+ <a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.53">http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.53</a>
</dd>
</dl>
<dl>
<dt>Editors:</dt>
<dd>Doug Schepers, W3C</dd>
- <dd><a href="http://bjoern.hoehrmann.de/">Björn Höhrmann</a> Invited Expert (until December 2007)</dd>
- <dd>Philippe Le Hégaret, <em>W3C (until November 2003)</em></dd>
+ <dd><a href="http://bjoern.hoehrmann.de/">Björn Höhrmann</a> Invited Expert (until December 2007)</dd>
+ <dd>Philippe Le Hégaret, <em>W3C (until November 2003)</em></dd>
<dd>Tom Pixley, <em>Netscape Communications Corporation (until July 2002)</em></dd>
</dl>
-
<p class="copyright" id="copyright-copy-2009-w3creg-mit-ercim-kei"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a>
- © 2009 <a href="http://www.w3.org/"><acronym title="World Wide Web
- Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute
- of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium
- for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ © 2009 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
<a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document
use</a> rules apply.</p>
-
-
</div>
- <hr title="separator from header"/>
+ <hr title="separator from header" />
<h2 id="Overview-abstract">Abstract</h2>
<div class="abstract">
<p>This specification defines the Document Object Model Events Level 3, a generic platform- and language-neutral event system which allows registration of event handlers, describes event flow through a tree structure, and provides basic contextual information for each event. The Document Object Model Events Level 3 builds on the Document Object Model Events Level 2 [<a class="noxref" href="#references-DOM2Events">DOM Level 2 Events</a>].</p>
</div>
-
<h2 class="no-num no-toc" id="sotd">Status of this Document</h2>
-
- <div>
-
- <p id="this-section-describes-the-status-of-thi"><em>This section
+ <div>
+ <p id="this-section-describes-the-status-of-thi">
+ <em>This section
describes the status of this document at the time of its publication.
Other documents may supersede this document. A list of current W3C
publications and the latest revision of this technical report can be
found in the <a href="http://www.w3.org/TR/">W3C technical reports
- index</a> at http://www.w3.org/TR/.</em></p>
-
- <p id="this-document-was-produced-by-a-group-op">This document was
+ index</a> at http://www.w3.org/TR/.</em>
+ </p>
+ <p id="this-document-was-produced-by-a-group-op">This document was
produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February
2004 W3C Patent Policy</a>. W3C maintains a <a href="http://www.w3.org/2004/01/pp-impl/42538/status" rel="disclosure">public list of any patent disclosures</a> made in
connection with the deliverables of the group; that page also includes
@@ -164,10 +158,8 @@
knowledge of a patent which the individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential
Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
6 of the W3C Patent Policy</a>.</p>
-
- <p id="working-draft">This is the <span class="date">20 July 2009</span> Editor's Draft version of the "Document Object Model (DOM) Level 3 Events" specification. This document was previously published as a W3C Note, pending further feedback from implementers, and is now being revised to reflect the current state of implementation. It is expected that this specification will progress to Recommendation status.</p>
-
- <p id="this-document-is-produced-by-the-web-app">This document is produced
+ <p id="working-draft">This is the <span class="date">29 August 2009</span> Editor's Draft version of the "Document Object Model (DOM) Level 3 Events" specification. This document was previously published as a W3C Note, pending further feedback from implementers, and is now being revised to reflect the current state of implementation. It is expected that this specification will progress to Recommendation status.</p>
+ <p id="this-document-is-produced-by-the-web-app">This document is produced
by the <a href="http://www.w3.org/2008/webapps/">Web Applications WG</a>,
part of the <a href="http://www.w3.org/2006/rwc/Activity">Rich Web
Clients Activity</a> in the W3C <a href="http://www.w3.org/Interaction/">Interaction Domain</a>. It is
@@ -176,8 +168,7 @@
W3C Membership. This is a draft document and may be updated, replaced or
obsoleted by other documents at any time. It is inappropriate to cite
this document as other than work in progress.</p>
-
- <p id="latest-editors-draft"><strong>You can find the
+ <p id="latest-editors-draft"><strong>You can find the
latest <a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html">Editor's Draft</a>
of this document in the <a href="http://dev.w3.org/">W3C's CVS
repository</a>, which is updated on a regular basis.</strong> The
@@ -186,352 +177,433 @@
See <a href="http://www.w3.org/Mail/">W3C mailing list and archive usage
guidelines</a>. <!-- A detailed <a href="http://dev.w3.org/cvsweb/2009/dom/">list of changes</a>
from the previous version is also available from the W3C's CVS server. --></p>
-
- <p id="unstable"><strong class="redNote">Implementers should be aware that this document is not
+ <p id="unstable"><strong class="redNote">Implementers should be aware that this document is not
stable.</strong> Implementers who are not taking part in the discussions
are likely to find the specification changing out from under them in
incompatible ways. Vendors interested in implementing this document
before it eventually reaches the Candidate Recommendation stage should
join the aforementioned mailing lists and take part in the discussions.</p>
-
</div>
- <h2 id="Overview-table-of-contents"><a id="Overview-contents">Table of Contents</a></h2>
+ <h2 id="Overview-table-of-contents">
+ <a id="Overview-contents">Table of Contents</a>
+ </h2>
<ul class="toc">
- <li><a href="#events-Events">1. Document Object Model Events</a>
- <ul class="toc">
- <li><a href="#events-Events-overview">1.1 Introduction</a></li>
- <li><a href="#events-Conformance">1.2 Conformance</a></li>
- </ul>
- </li>
- <li><a href="#glossary-role-glossary" class="glossary">2. Glossary</a></li>
- <li><a href="#events-Events-flow">3. DOM Event Architecture</a>
- <ul class="toc">
- <li><a href="#events-Events-flow">3.1 Event dispatch and DOM event flow</a></li>
- <li><a href="#events-Events-flow-cancelation">3.2 Default actions and cancelable events</a></li>
- <li><a href="#events-Events-flow-activation">3.3 Activation requests and behavior</a></li>
- </ul>
- </li>
- <li><a href="#events-Events-interface">4. Basic Event Interfaces</a>
+ <li>
+ <a href="#dom-events">1. Document Object Model Events</a>
<ul class="toc">
- <li><a href="#interface-Event">4.1 Interface Event</a></li>
- <li><a href="#interface-CustomEvent">4.2 Interface CustomEvent</a></li>
- <li><a href="#interface-EventTarget">4.3 Interface EventTarget</a></li>
- <li><a href="#interface-EventListener">4.4 Interface EventListener</a></li>
- <li><a href="#events-Events-document">4.5 Event creation</a></li>
- <li><a href="#interface-DocumentEvent">4.5.1 Interface DocumentEvent</a></li>
- </ul>
- </li>
- <li><a href="#events-Events">5. Events</a>
- <ul class="toc">
- <li><a href="#events-Event-types">5.1 Event Types</a>
- <ul class="toc">
- <li><a href="#events-Events-EventTypes-complete">5.1.1 Complete List of Event Types</a></li>
- </ul>
+ <li>
+ <a href="#dom-events-overview">1.1 Introduction</a>
</li>
- <li><a href="#events-Events-definitions">5.2 Event Module Definitions</a>
- <ul class="toc">
- <li><a href="#events-Events-eventgroupings-uievents">5.2.1 User Interface Event Types</a></li>
- <li><a href="#events-Events-eventgroupings-basicevents">5.2.2 Basic Event Types</a></li>
- <li><a href="#events-Events-eventgroupings-mouseevents">5.2.3 Mouse Event Types</a></li>
- <li><a href="#events-Events-eventgroupings-mousewheelevents">5.2.4 Mouse Wheel Event Types</a></li>
- <li><a href="#events-Events-eventgroupings-wheelevents">5.2.5 Wheel Event Types</a></li>
- <li><a href="#events-Events-TextEvents-Interfaces">5.2.6 Text Events Types</a></li>
- <li><a href="#events-Events-KeyboardEvents-Interfaces">5.2.7 Keyboard Event Types</a></li>
- <li><a href="#events-Events-CompositionEvents-Interfaces">5.2.8 Composition Events Types</a>
- <ul class="toc">
- <li><a href="#handwriting">5.2.8.1 Handwriting Recognition Systems</a></li>
- </ul>
- </li>
- <li><a href="#events-Events-eventgroupings-mutationevents">5.2.9 Mutation Events</a></li>
- <li><a href="#events-Events-eventgroupings-mutationnameevents">5.2.10 Mutation Name Event Types</a></li>
- </ul>
+ <li>
+ <a href="#dom-events-conformance">1.2 Conformance</a>
</li>
</ul>
</li>
- <li><a href="#keyset-KeySet">6: Keyboard events and key identifiers</a>
+ <li>
+ <a href="#glossary" class="glossary">2. Glossary</a>
+ </li>
+ <li>
+ <a href="#dom-event-architecture">3. DOM Event Architecture</a>
<ul class="toc">
- <li><a href="#keyset-KeySet-intro">6.1 Introduction</a>
- <ul class="toc">
- <li><a href="#keyset-Modifiers">6.1.1 Modifier keys</a></li>
- <li><a href="#keyset-DeadKeys">6.1.2 Dead keys</a></li>
- <li><a href="#keyset-IME">6.1.3 Input Method Editors</a>
- <ul class="toc">
- <li><a href="#keyset-IME_keys">6.1.3.1 Input Method Editor mode keys</a></li>
- </ul>
- </li>
- <li><a href="#keyset-cancelable_keys">6.1.4 Default actions and cancelable keyboard events</a></li>
- <li><a href="#keyset-Guide">6.1.5 Guidelines for defining key identifiers</a></li>
- </ul>
+ <li>
+ <a href="#event-flow">3.1 Event dispatch and DOM event flow</a>
</li>
- <li><a href="#keyset-KeySet-Set">6.2 Key identifiers set</a>
- <ul class="toc">
- <li><a href="#keyset-KeySet-Set-keyCode-charCode">6.2.1 Key identifiers, keyCode, and charCode</a></li>
- </ul>
+ <li>
+ <a href="#event-flow-cancelation">3.2 Default actions and cancelable events</a>
+ </li>
+ <li>
+ <a href="#event-flow-activation">3.3 Activation requests and behavior</a>
</li>
</ul>
</li>
- <li><a href="#extending_events">Appendix A: Extending Events</a>
+ <li>
+ <a href="#event-interfaces">4. Basic Event Interfaces</a>
<ul class="toc">
- <li><a href="#extending_events-intro">A.1 Introduction</a></li>
- <li><a href="#extending_events-Custom_Events">A.2 Custom Events</a></li>
- <li><a href="#extending_events-Namespaced_Events">A.3 Namespaced Events</a>
- <ul class="toc">
- <li><a href="#extending_events-Legacy_Events">A.3.1 Legacy Events</a></li>
- <li><a href="#extending_events-Vendor_Extensions">A.3.2 Vendor Extensions</a></li>
- </ul>
+ <li>
+ <a href="#interface-Event">4.1 Interface Event</a>
</li>
- </ul>
- </li>
- <li><a href="#security-considerations-Security">Appendix B: Security Considerations</a></li>
- <li><a href="#changes-Changes">Appendix C: Changes</a>
- <ul class="toc">
- <li><a href="#changes-DOMEvents2to3Changes">C.1 Changes between DOM Level 2 Events and DOM Level 3 Events</a>
+ <li>
+ <a href="#interface-CustomEvent">4.2 Interface CustomEvent</a>
+ </li>
+ <li>
+ <a href="#interface-EventTarget">4.3 Interface EventTarget</a>
+ </li>
+ <li>
+ <a href="#interface-EventListener">4.4 Interface EventListener</a>
+ </li>
+ <li>
+ <a href="#interface-DocumentEvent">4.5 Interface DocumentEvent</a>
<ul class="toc">
- <li><a href="#changes-DOMEvents2to3Changes-flow">C.1.1 Changes to DOM Level 2 event flow</a></li>
- <li><a href="#changes-DOMEvents2to3Changes-event-types">C.1.2 Changes to DOM Level 2 event types</a></li>
- <li><a href="#changes-DOMLevel2to3Changes">C.1.3 Changes to DOM Level 2 Events interfaces</a></li>
- <li><a href="#changes-DOMLevel3Addons">C.1.4 New Interfaces</a></li>
+ <li>
+ <a href="#event-creation">4.5.1 Event creation</a>
+ </li>
</ul>
</li>
</ul>
</li>
- <li><a href="#idl-definitions-idl">Appendix D: IDL Definitions</a>
- <!-- <ul class="toc">
+ <li>
+ <a href="#events-module">5. Events Module</a>
+ <ul class="toc">
+ <li>
+ <a href="#event-types">5.1 Event Types</a>
+ <ul class="toc">
+ <li>
+ <a href="#event-types-list">5.1.1 List of DOM3 Event Types</a>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <a href="#event-definitions">5.2 Event Module Definitions</a>
+ <ul class="toc">
+ <li>
+ <a href="#events-uievents">5.2.1 User Interface Event Types</a>
+ </li>
+ <li>
+ <a href="#events-basicevents">5.2.2 Basic Event Types</a>
+ </li>
+ <li>
+ <a href="#events-mouseevents">5.2.3 Mouse Event Types</a>
+ </li>
+ <li>
+ <a href="#events-mousewheelevents">5.2.4 Mouse Wheel Event Types</a>
+ </li>
+ <li>
+ <a href="#events-wheelevents">5.2.5 Wheel Event Types</a>
+ </li>
+ <li>
+ <a href="#events-textevents">5.2.6 Text Events Types</a>
+ </li>
+ <li>
+ <a href="#events-keyboardevents">5.2.7 Keyboard Event Types</a>
+ </li>
+ <li>
+ <a href="#events-compositionevents">5.2.8 Composition Events Types</a>
+ <ul class="toc">
+ <li>
+ <a href="#handwriting">5.2.8.1 Handwriting Recognition Systems</a>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <a href="#events-mutationevents">5.2.9 Mutation Events</a>
+ </li>
+ <li>
+ <a href="#events-mutationnameevents">5.2.10 Mutation Name Event Types</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <a href="#keyset">6. Keyboard events and key identifiers</a>
+ <ul class="toc">
+ <li>
+ <a href="#keyboard-input">6.1 Keyboard Input</a>
+ <ul class="toc">
+ <li>
+ <a href="#keyboard-layout">6.1.1 Keyboard Layout</a>
+ <ul class="toc">
+ <li>
+ <a href="#keyboard-desktop">6.1.1.1 Desktop and Laptop Keyboards</a>
+ </li>
+ <li>
+ <a href="#keyboard-mobile">6.1.1.1 Mobile Keypads</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <a href="#keyset-comp-input">6.2 Compositional Keyboard Input</a>
+ <ul class="toc">
+ <li>
+ <a href="#keyset-Modifiers">6.2.1 Modifier keys</a>
+ </li>
+ <li>
+ <a href="#keyset-DeadKeys">6.2.2 Dead keys</a>
+ </li>
+ <li>
+ <a href="#keyset-IME">6.2.3 Input Method Editors</a>
+ <ul class="toc">
+ <li>
+ <a href="#keyset-IME_keys">6.2.3.1 Input Method Editor mode keys</a>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <a href="#keyset-cancelable_keys">6.2.4 Default actions and cancelable keyboard events</a>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <a href="#keyset-keyidentifiers">6.3 Key Identifiers</a>
+ <ul class="toc">
+ <li>
+ <a href="#keyset-Guide">6.2.5 Guidelines for defining key identifiers</a>
+ </li>
+ <li>
+ <a href="#keyset-key-identifiers">6.3.1 Key Identifiers Set</a>
+ </li>
+ <li>
+ <a href="#keyset-keyCode-charCode">6.3.1 Key identifiers, keyCode, and charCode</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <a href="#extending_events">Appendix A: Extending Events</a>
+ <ul class="toc">
+ <li>
+ <a href="#extending_events-intro">A.1 Introduction</a>
+ </li>
+ <li>
+ <a href="#extending_events-Custom_Events">A.2 Custom Events</a>
+ </li>
+ <li>
+ <a href="#extending_events-Namespaced_Events">A.3 Namespaced Events</a>
+ <ul class="toc">
+ <li>
+ <a href="#extending_events-Legacy_Events">A.3.1 Legacy Events</a>
+ </li>
+ <li>
+ <a href="#extending_events-Vendor_Extensions">A.3.2 Vendor Extensions</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <a href="#security-considerations-Security">Appendix B: Security Considerations</a>
+ </li>
+ <li>
+ <a href="#changes-Changes">Appendix C: Changes</a>
+ <ul class="toc">
+ <li>
+ <a href="#changes-DOMEvents2to3Changes">C.1 Changes between DOM Level 2 Events and DOM Level 3 Events</a>
+ <ul class="toc">
+ <li>
+ <a href="#changes-DOMEvents2to3Changes-flow">C.1.1 Changes to DOM Level 2 event flow</a>
+ </li>
+ <li>
+ <a href="#changes-DOMEvents2to3Changes-event-types">C.1.2 Changes to DOM Level 2 event types</a>
+ </li>
+ <li>
+ <a href="#changes-DOMLevel2to3Changes">C.1.3 Changes to DOM Level 2 Events interfaces</a>
+ </li>
+ <li>
+ <a href="#changes-DOMLevel3Addons">C.1.4 New Interfaces</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <a href="#idl-definitions-idl">Appendix D: IDL Definitions</a>
+<!-- <ul class="toc">
<li><a href="#idl-definitions-idl-events.idl"></a><a href="idl/events.idl">events.idl</a></li>
</ul> -->
</li>
- <li><a href="#java-binding-java-binding">Appendix E: Java Language Binding</a>
+ <li>
+ <a href="#java-binding-java-binding">Appendix E: Java Language Binding</a>
</li>
- <li><a href="#ecma-script-binding-ecma-binding">Appendix F: ECMAScript Language Binding</a></li>
- <li><a href="#acknowledgements-contributors">Appendix G: Acknowledgements</a>
+ <li>
+ <a href="#ecma-script-binding-ecma-binding">Appendix F: ECMAScript Language Binding</a>
+ </li>
+ <li>
+ <a href="#acknowledgements-contributors">Appendix G: Acknowledgements</a>
<ul class="toc">
- <li><a href="#acknowledgements-Productions">G.1 Production Systems</a>
+ <li>
+ <a href="#acknowledgements-Productions">G.1 Production Systems</a>
+ </li>
</ul>
</li>
- <li><a href="#references-role-references" class="references">References</a>
+ <li>
+ <a href="#references-role-references" class="references">References</a>
<ul class="toc">
- <li><a href="#references-References-Normative">H.1 Normative References</a>
- <li><a href="#references-References-Informative">H.2 Informative References</a></li>
+ <li>
+ <a href="#references-References-Normative">H.1 Normative References</a>
+ </li>
+ <li>
+ <a href="#references-References-Informative">H.2 Informative References</a>
+ </li>
</ul>
</li>
</ul>
- </div>
<div class="div1">
- <h1 id="events-Events" class="div1">1. Document Object Model Events</h1>
-
+ <h1 id="dom-events" class="div1">1. Document Object Model Events</h1>
<div class="div2">
- <h2 id="events-Events-overview" class="div2">1.1 Introduction</h2>
- <p>DOM Events is designed with two main goals. The first goal is the design of an <a href="#glossary-dt-event">event</a> system which allows registration of event listeners and describes event flow through a tree structure. Additionally, the specification will provide standard modules of events for user interface control and document mutation notifications, including defined contextual information for each of these event modules.</p>
- <p>The second goal of DOM Events is to provide a common subset of the current event systems used in <a href="#glossary-dt-DOM-Level-0">DOM Level 0</a> browsers. This is intended to foster interoperability of existing scripts and content. It is not expected that this goal will be met with full backwards compatibility. However, the specification attempts to achieve this when possible.</p>
+ <h2 id="dom-events-overview" class="div2">1.1 Introduction</h2>
+ <p>DOM Events is designed with two main goals. The first goal is the design of an <a href="#glossary-event">event</a> system which allows registration of event listeners and describes event flow through a tree structure. Additionally, the specification will provide standard modules of events for user interface control and document mutation notifications, including defined contextual information for each of these event modules.</p>
+ <p>The second goal of DOM Events is to provide a common subset of the current event systems used in <a href="#glossary-DOM-Level-0">DOM Level 0</a> browsers. This is intended to foster interoperability of existing scripts and content. It is not expected that this goal will be met with full backwards compatibility. However, the specification attempts to achieve this when possible.</p>
<div class="div3">
- <h3 id="events-Conformance" class="div3">1.2 Conformance</h3>
- <p>This specification is to be understood in the context of the DOM Level 3 Core specification [<cite><a class="noxref normative" href="#references-DOMCore">DOM Level 3 Core</a></cite>] and the general considerations for DOM implementations apply. For example, handling of <a href="#glossary-dt-namespaceURI">namespace URIs</a> is discussed in <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#Namespaces-Considerations"><em>XML Namespaces</em></a>, and behavior in exceptional circumstances (such as when a <code>null</code> argument is passed when <code>null</code> was not expected) is discussed under <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-17189187"><em>DOMException</em></a>. For additional information about <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/introduction.html#ID-Conformance"><em>conformance</em></a>, please see the DOM Level 3 Core specification [<cite><a class="noxref normative" href="#references-DOMCore">DOM Level 3 Core</a></cite>].</p>
-
- <p>An implementation is DOM Level 3 Events conformant if it supports the Core module defined in [<cite><a class="noxref normative" href="#references-DOM2Core">DOM Level 2 Core</a></cite>], the <a href="#events-Events-flow">Event dispatch and DOM event flow</a> mechanism and the interfaces with their associated semantics defined in <a href="#events-Events-interface">Basic interfaces</a>. An implementation conforms to a DOM Level 3 Events module if it conforms to DOM Level 3 Events, the event types defined in the module, and the modules the module depends upon (if any).</p>
-
+ <h3 id="dom-events-conformance" class="div3">1.2 Conformance</h3>
+ <p>This specification is to be understood in the context of the DOM Level 3 Core specification [<cite><a class="noxref normative" href="#references-DOMCore">DOM Level 3 Core</a></cite>] and the general considerations for DOM implementations apply. For example, handling of <a href="#glossary-namespaceURI">namespace URIs</a> is discussed in <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#Namespaces-Considerations"><em>XML Namespaces</em></a>, and behavior in exceptional circumstances (such as when a <code>null</code> argument is passed when <code>null</code> was not expected) is discussed under <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-17189187"><em>DOMException</em></a>. For additional information about <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/introduction.html#ID-Conformance"><em>conformance</em></a>, please see the DOM Level 3 Core specification [<cite><a class="noxref normative" href="#references-DOMCore">DOM Level 3 Core</a></cite>].</p>
+ <p>An implementation is DOM Level 3 Events conformant if it supports the Core module defined in [<cite><a class="noxref normative" href="#references-DOM2Core">DOM Level 2 Core</a></cite>], the <a href="#event-flow">Event dispatch and DOM event flow</a> mechanism and the interfaces with their associated semantics defined in <a href="#event-interfaces">Basic interfaces</a>. An implementation conforms to a DOM Level 3 Events module if it conforms to DOM Level 3 Events, the event types defined in the module, and the modules the module depends upon (if any).</p>
<p>An implementation conforms to an event type if it conforms to its associated semantics and DOM interfaces. This includes that event objects that are generated by the implementation are generated as outlined in the tabular definition of the event type.</p>
-
- <p>An implementation which does not conform to an event module can still implement the DOM interfaces associated with it. The DOM application can then create an event object using the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent()</code></a> method and <a href="#glossary-dt-dispatch">dispatch</a> an event type associated with this interface using the <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method.</p>
-
- <p><span class='assert must'>A DOM application may use the <code>hasFeature(feature, version)</code> method of the <code>DOMImplementation</code> interface with parameter values <code>"Events"</code> and <code>"3.0"</code> (respectively) to determine whether or not DOM Level 3 Events is supported by the implementation, and the implementation must return true.</span> <span class='assert must'>Since DOM Level 3 Events is built on top of DOM Level 2 Events [<cite><a class="noxref normative" href="#references-DOM2Events">DOM Level 2 Events</a></cite>], an implementation that returns <code>true</code> for <code>"Events"</code> and <code>"3.0"</code> shall also return <code>true</code> for the parameters <code>"Events"</code> and <code>"2.0"</code>.</span> <span class='assert must'>The same holds for the feature strings defined for the individual event modules as applicable.</span> Refer to <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMFeatures"><em>DOM Features</em></a> in [<cite><a class="noxref normative" href="#references-DOMCore">DOM Level 3 Core</a></cite>] for additional information.</p>
+ <p>An implementation which does not conform to an event module can still implement the DOM interfaces associated with it. The DOM application can then create an event object using the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent()</code></a> method and <a href="#glossary-dispatch">dispatch</a> an event type associated with this interface using the <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method.</p>
+ <p><span class="assert must">A DOM application may use the <code>hasFeature(feature, version)</code> method of the <code>DOMImplementation</code> interface with parameter values <code>"Events"</code> and <code>"3.0"</code> (respectively) to determine whether or not DOM Level 3 Events is supported by the implementation, and the implementation must return true.</span><span class="assert must">Since DOM Level 3 Events is built on top of DOM Level 2 Events [<cite><a class="noxref normative" href="#references-DOM2Events">DOM Level 2 Events</a></cite>], an implementation that returns <code>true</code> for <code>"Events"</code> and <code>"3.0"</code> shall also return <code>true</code> for the parameters <code>"Events"</code> and <code>"2.0"</code>.</span><span class="assert must">The same holds for the feature strings defined for the individual event modules as applicable.</span> Refer to <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMFeatures"><em>DOM Features</em></a> in [<cite><a class="noxref normative" href="#references-DOMCore">DOM Level 3 Core</a></cite>] for additional information.</p>
</div>
- <!-- div3 Conformance -->
+<!-- div3 Conformance -->
</div>
-
- <!-- div1 glossary -->
+<!-- div1 glossary -->
<div class="div1" id="glossary-glossary">
- <h1 id="glossary-role-glossary" class="glossary">2. Glossary</h1>
+ <h1 id="glossary" class="glossary">2. Glossary</h1>
<p class="1st">Some of the following term definitions have been borrowed or modified from similar definitions in other W3C or standards documents. See the links within the definitions for more information.</p>
<dl id="glossary-list">
- <dt id="glossary-dt-activation-behavior">activation behavior</dt>
- <dd>The action taken when an <a href="#glossary-dt-event">event</a>, typically initiated by users through an input device, causes an element to fulfill a defined role. The role may be defined for that element by the host language, or by author-defined variables, or both. The role for any given element may be a generic action, or may be unique to that element. For example, the activation behavior of an HTML or SVG <code><a></code> element shall be to cause the user agent to traverse the link specified in the <code>href</code> attribute, with the further optional parameter of specifying the browsing context for the traversal (such as the current window or tab, a named window, or a new window); the activation behavior of an HTML <code><input></code> element with the <code>type</code> attribute value <code>submit</code> shall be to send the values of the form elements to an author-defined IRI by the author-defined HTTP method.</dd>
-
- <dt id="glossary-dt-bubbling-phase">bubbling phase</dt>
- <dd>The process by which an <a href="#glossary-dt-event">event</a> can be handled by one of the target ancestors after being handled by the <a href="#glossary-dt-target-node">target node</a>.</dd>
-
- <dt id="glossary-dt-capture-phase">capture phase</dt>
- <dd>The process by which an <a href="#glossary-dt-event">event</a> can be handled by one of the target ancestors before being handled by the <a href="#glossary-dt-target-node">target node</a>.</dd>
-
- <dt id="glossary-dt-dead-key">dead key</dt>
- <dd>A dead key is a key or combination of key that produces no character by itself, but which in combination or sequence with another key produces a modified character, such as a character with diacritical marks (e.g. <code>ö</code>, <code>é</code>, <code>â</code>).</dd>
-
- <dt id="glossary-dt-default-action">default action</dt>
- <dd>A <a href="#glossary-dt-default-action">default action</a> is a supplementary behavior that an implementation must perform in combination with the dispatch of the event object. Each event, and each specification, defines the <a href="#glossary-dt-default-action">default action</a> for that event. A <a href="#glossary-dt-default-action">default action</a> may be cancelled through the invocation of the <a href="#events-Events-Event-preventDefault"><code>Event.preventDefault()</code></a> method. For more details, see <a href="#events-Events-flow-cancelation">Default actions and cancelable events</a>.</dd>
-
- <dt id="glossary-dt-defaultView">defaultView</dt>
- <dd>The <code>defaultView</code> is the <a href="http://www.w3.org/TR/DOM-Level-2-Views/views.html#Views-AbstractView" title="Document Object Model Views"><code>AbstractView</code> interface</a> of the <code>Document</code>'s <a href="http://www.w3.org/TR/DOM-Level-2-Views/views.html#Views-DocumentView" title="Document Object Model Views"><code>DocumentView</code> interface</a>, which serves as a reference to the containing frame or window. This interface may also be accessed as the <code>Window</code> interface in many implementations.</dd>
-
- <dt id="glossary-dt-deprecated">deprecated</dt>
- <dd>Features marked as deprecated are included in the specification as reference to older implementations or specifications, but are optional and discouraged. Only features which have existing or in-progress replacements shall be deprecated in this specification. Implementations which do not already include support for the feature should not implement deprecated features, and authors creating content should not use deprecated features, unless there is no other way to solve a use case. Other specifications which reference this specification should not use deprecated features, but should point instead to the replacements of which the feature is deprecated in favor.</dd>
-
- <dt id="glossary-dt-dispatch">dispatch</dt>
- <dd>To create an event with attributes and methods appropriate to its type and context, and propagate it through the DOM tree in the specified manner. Interchangeable with the term "fire", e.g. "fire a 'click' event" or "dispatch a 'load' event".</dd>
-
- <dt id="glossary-dt-DOM-Level-0">DOM Level 0</dt>
- <dd>The term "DOM Level 0" refers to a mix (not formally specified) of HTML document functionalities offered by Netscape Navigator version 3.0 and Microsoft Internet Explorer version 3.0. In some cases, attributes or methods have been included for reasons of backward compatibility with "DOM Level 0".</dd>
-
- <dt id="glossary-dt-event">event</dt>
- <dd>An event is the representation of some asynchronous occurrence (such as a mouse click on the presentation of the element, or the removal of child node from an element, or any of unthinkably many other possibilities) that gets associated with an <a href="#glossary-dt-event-target">event target</a>.</dd>
-
- <dt id="glossary-dt-event-phase">event phase</dt>
- <dd>See <a href="#glossary-dt-phase">phase</a>.</dd>
-
- <dt id="glossary-dt-event-type">event target</dt>
- <dd>The object to which an <a href="#glossary-dt-event">event</a> is targeted.</dd>
-
- <dt id="glossary-dt-event-type">event type</dt>
- <dd>An <a href="#glossary-dt-event">event</a> object which defines particular trigger conditions, properties, interfaces, and other characteristics which distinguish it from other event types. For example, the <a href="#events-event-click"><code>click</code></a> event type has different characteristics than the <a href="#events-event-mouseover"><code>mouseover</code></a> or <a href="#events-event-load"><code>load</code></a> event types. The event type is exposed as the <a class="noxref" href="#events-Events-Event-type"><code class="interface-attribute">type</code></a> attribute on the event object. See <a href="#events-Event-types">event types</a> for more details. Also loosely referred to as 'event', such as the <em><code>click</code> event</em>.</dd>
-
- <dt id="glossary-dt-host-language">host language</dt>
- <dd>Any language which integrates the features of another language, while normatively referencing the origin language rather than redefining those features, and extending those features only in ways defined by the origin language. An origin language typically is only intended to be implemented in the context of one or more host languages, not as a standalone language. For example, XHTML, HTML, and SVG are host languages for DOM 3 Events, and they integrate and extend the objects and models defined in this specification.</dd>
-
- <dt id="glossary-dt-ime">IME</dt>
- <dt id="glossary-dt-input-method-editor">input method editor</dt>
- <dd>An <em>input method editor</em> (IME), also known as a <em>front end processor</em>, is an application that performs the conversion between keystrokes and ideographs or other characters, usually by user-guided dictionary lookup, often used in East Asian languages (e.g. Chinese, Japanese, Korean). An IME may also be used for dictionary-based word completion, such as on mobile devices. See <a href="#keyset-IME">Input Method Editors</a> for treatment of IMEs in this specification. See also <a href="#glossary-dt-text-composition-system">text composition system</a>.</dd>
-
- <dt id="glossary-dt-localname">local name</dt>
- <dd>See local name in [<cite><a class="noxref informative" href="#references-Namespaces11">XML Namespaces 1.1</a></cite>].</dd>
-
- <dt id="glossary-dt-namespaceURI">namespace URI</dt>
- <dd>A <em>namespace URI</em> is a URI that identifies an XML namespace. This is called the namespace name in [<cite><a class="noxref informative" href="#references-Namespaces11">XML Namespaces 1.1</a></cite>]. See also sections 1.3.2 "<a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#baseURIs-Considerations"> <em>DOM URIs</em></a>" and 1.3.3 "<a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#Namespaces-Considerations"><em>XML Namespaces</em></a>" regarding URIs and namespace URIs handling and comparison in the DOM APIs.</dd>
-
- <dt id="glossary-dt-phase">phase</dt>
- <dd>In the context of <a href="#glossary-dt-event">events</a>, a phase is set of logical traversals from node to node along the DOM tree, from the <a href="#glossary-dt-root-element">root element</a> down to the <a href="#glossary-dt-event-target">event target</a> (<a href="glossary-dt-capture-phase">capture phase</a>), at the <a href="#glossary-dt-event-target">event target</a> itself (<a href="#glossary-dt-target-phase">target phase</a>), and back up to the <a href="#glossary-dt-root-element">root element</a> (<a href="#glossary-dt-bubbling-phase">bubbling phase</a>).</dd>
-
- <dt id="glossary-dt-propagation-path">propagation path</dt>
- <dd>The ordered set of <a href="#glossary-dt-event-target">event targets</a> though which an <a href="#glossary-dt-event">event</a> object will pass sequentially on the way to and back from the ultimate <a href="#glossary-dt-event-target">event target</a>. The propagation path is initially comprised of one or more <a href="#glossary-dt-event-phase">event phases</a> as defined by the <a href="#glossary-dt-event-type">event type</a>, but may be interrupted. Also known as an <em>event target chain</em>.</dd>
-
- <dt id="glossary-dt-target-node">target node</dt>
- <dd>The target node is the node representing the <a href="#glossary-dt-event-target">event target</a> to which an <a href="#glossary-dt-event">event</a> is targeted using the DOM event flow.</dd>
-
- <dt id="glossary-dt-text-composition-system">text composition system</dt>
- <dd>A software component which interprets some form of alternate input, such as a <a href="#glossary-dt-ime">input method editor</a>, a speech processor, or a handwriting recognition system, and converts it to text.</dd>
-
- <dt id="glossary-dt-root-element">root element</dt>
- <dd>The first element node of a document, of which all other elements are children; the document element.</dd>
-
- <dt id="glossary-dt-target-phase">target phase</dt>
- <dd>The process by which an <a href="#glossary-dt-event">event</a> can be handled by the <a href="#glossary-dt-event-target">event target</a>.</dd>
-
- <dt id="glossary-dt-topmost-event-target">topmost event target</dt>
- <dd>The <a href="#glossary-dt-topmost-event-target">topmost event target</a> shall be the element highest in the rendering order which is capable of being an <a href="#glossary-dt-event-target">event target</a>. In this case, 'top' shall refer not to the position on the screen, but the logical order of the element in relation to other elements in drawing or stacking order on the z-axis (where the x-axis is the screen width and the y-axis is the screen height). In HTML and CSS, or in SVG, this is controlled by the document order, as modified in HTML and CSS by the 'z-index' property. In some cases, such as when using some values of the SVG 'pointer-events' property, the topmost element may not receive pointer events, in which case, the next element in z-index order which can receive pointer-events is the <a href="#glossary-dt-topmost-event-target">topmost event target</a>. Note that visibility of the element does not necessarily affect its ability to be the <a href="#glossary-dt-topmost-event-target">topmost event target</a>, since an element which is hidden by use of the CSS 'visibility' property can still receive pointer events (though not one with a 'display' property of 'none'), and the <a href="#glossary-dt-topmost-event-target">topmost event target</a> may be completely obscured by another element which cannot receive pointer events. Unless otherwise noted, there is only one <a href="#glossary-dt-topmost-event-target">topmost event target</a> in any event.</dd>
-
- <dt id="glossary-dt-tree">tree</dt>
- <dd>A data structure that represents a document as a hierarchical set of nodes with child-parent-sibling relationships, i.e. each node having one or more possible ancestors (nodes higher in the hierarchy in a direct lineage), one or more possible descendants (nodes lower in the hierarchy in a direct lineage), and one or more possible peers (nodes of the same level in the hierarchy, with the same immediate ancestor).</dd>
-
- <dt id="glossary-dt-Unicode-character-categories">Unicode character categories</dt>
- <dd>The Unicode character categories, a subset of the complete Unicode general categories, comprise the categories <abbr title="Letter, Lowercase">Ll</abbr>, <abbr title="Letter, Modifier">Lm</abbr>, <abbr title="Letter, Other">Lo</abbr>, <abbr title="Letter, Titlecase">Lt</abbr>, <abbr title="Letter, Uppercase">Lu</abbr>, <abbr title="Number, Decimal Digit">Nd</abbr>, <abbr title="Number, Letter">Nl</abbr>, <abbr title="Number, Other">No</abbr>, <abbr title="Punctuation, Connector">Pc</abbr>, <abbr title="Punctuation, Dash">Pd</abbr>, <abbr title="Punctuation, Close">Pe</abbr>, <abbr title="Punctuation, Final quote">Pf</abbr>, <abbr title="Punctuation, Initial quote">Pi</abbr>, <abbr title="Punctuation, Other">Po</abbr>, <abbr title="Punctuation, Open">Ps</abbr>, <abbr title="Symbol, Currency">Sc</abbr>, <abbr title="Symbol, Modifier">Sk</abbr>, <abbr title="Symbol, Math">Sm</abbr>, and <abbr title="Symbol, Other">So</abbr>.</dd>
-
- </dl>
+ <dt id="glossary-activation-behavior">activation behavior</dt>
+ <dd>The action taken when an <a href="#glossary-event">event</a>, typically initiated by users through an input device, causes an element to fulfill a defined role. The role may be defined for that element by the host language, or by author-defined variables, or both. The role for any given element may be a generic action, or may be unique to that element. For example, the activation behavior of an HTML or SVG <code><a></code> element shall be to cause the user agent to traverse the link specified in the <code>href</code> attribute, with the further optional parameter of specifying the browsing context for the traversal (such as the current window or tab, a named window, or a new window); the activation behavior of an HTML <code><input></code> element with the <code>type</code> attribute value <code>submit</code> shall be to send the values of the form elements to an author-defined IRI by the author-defined HTTP method.</dd>
+ <dt id="glossary-bubbling-phase">bubbling phase</dt>
+ <dd>The process by which an <a href="#glossary-event">event</a> can be handled by one of the target ancestors after being handled by the <a href="#glossary-target-node">target node</a>.</dd>
+ <dt id="glossary-capture-phase">capture phase</dt>
+ <dd>The process by which an <a href="#glossary-event">event</a> can be handled by one of the target ancestors before being handled by the <a href="#glossary-target-node">target node</a>.</dd>
+ <dt id="glossary-dead-key">dead key</dt>
+ <dd>A dead key is a key or combination of key that produces no character by itself, but which in combination or sequence with another key produces a modified character, such as a character with diacritical marks (e.g. <code>ö</code>, <code>é</code>, <code>â</code>).</dd>
+ <dt id="glossary-default-action">default action</dt>
+ <dd>A <a href="#glossary-default-action">default action</a> is a supplementary behavior that an implementation must perform in combination with the dispatch of the event object. Each event, and each specification, defines the <a href="#glossary-default-action">default action</a> for that event. A <a href="#glossary-default-action">default action</a> may be cancelled through the invocation of the <a href="#events-event-type-preventDefault"><code>Event.preventDefault()</code></a> method. For more details, see <a href="#event-flow-cancelation">Default actions and cancelable events</a>.</dd>
+ <dt id="glossary-defaultView">defaultView</dt>
+ <dd>The <code>defaultView</code> is the <a href="http://www.w3.org/TR/DOM-Level-2-Views/views.html#Views-AbstractView" title="Document Object Model Views"><code>AbstractView</code> interface</a> of the <code>Document</code>'s <a href="http://www.w3.org/TR/DOM-Level-2-Views/views.html#Views-DocumentView" title="Document Object Model Views"><code>DocumentView</code> interface</a>, which serves as a reference to the containing frame or window. This interface may also be accessed as the <code>Window</code> interface in many implementations.</dd>
+ <dt id="glossary-deprecated">deprecated</dt>
+ <dd>Features marked as deprecated are included in the specification as reference to older implementations or specifications, but are optional and discouraged. Only features which have existing or in-progress replacements shall be deprecated in this specification. Implementations which do not already include support for the feature should not implement deprecated features, and authors creating content should not use deprecated features, unless there is no other way to solve a use case. Other specifications which reference this specification should not use deprecated features, but should point instead to the replacements of which the feature is deprecated in favor.</dd>
+ <dt id="glossary-dispatch">dispatch</dt>
+ <dd>To create an event with attributes and methods appropriate to its type and context, and propagate it through the DOM tree in the specified manner. Interchangeable with the term "fire", e.g. "fire a 'click' event" or "dispatch a 'load' event".</dd>
+ <dt id="glossary-DOM-Level-0">DOM Level 0</dt>
+ <dd>The term "DOM Level 0" refers to a mix (not formally specified) of HTML document functionalities offered by Netscape Navigator version 3.0 and Microsoft Internet Explorer version 3.0. In some cases, attributes or methods have been included for reasons of backward compatibility with "DOM Level 0".</dd>
+ <dt id="glossary-event">event</dt>
+ <dd>An event is the representation of some asynchronous occurrence (such as a mouse click on the presentation of the element, or the removal of child node from an element, or any of unthinkably many other possibilities) that gets associated with an <a href="#glossary-event-target">event target</a>.</dd>
+ <dt id="glossary-event-phase">event phase</dt>
+ <dd>See <a href="#glossary-phase">phase</a>.</dd>
+ <dt id="glossary-event-target">event target</dt>
+ <dd>The object to which an <a href="#glossary-event">event</a> is targeted.</dd>
+ <dt id="glossary-event-type">event type</dt>
+ <dd>An <a href="#glossary-event">event</a> object which defines particular trigger conditions, properties, interfaces, and other characteristics which distinguish it from other event types. For example, the <a href="#event-type-click"><code>click</code></a> event type has different characteristics than the <a href="#event-type-mouseover"><code>mouseover</code></a> or <a href="#event-type-load"><code>load</code></a> event types. The event type is exposed as the <a class="noxref" href="#events-event-type-type"><code class="interface-attribute">type</code></a> attribute on the event object. See <a href="#event-types">event types</a> for more details. Also loosely referred to as 'event', such as the <em><code>click</code> event</em>.</dd>
+ <dt id="glossary-host-language">host language</dt>
+ <dd>Any language which integrates the features of another language, while normatively referencing the origin language rather than redefining those features, and extending those features only in ways defined by the origin language. An origin language typically is only intended to be implemented in the context of one or more host languages, not as a standalone language. For example, XHTML, HTML, and SVG are host languages for DOM 3 Events, and they integrate and extend the objects and models defined in this specification.</dd>
+ <dt id="glossary-ime">IME</dt>
+ <dt id="glossary-input-method-editor">input method editor</dt>
+ <dd>An <em>input method editor</em> (IME), also known as a <em>front end processor</em>, is an application that performs the conversion between keystrokes and ideographs or other characters, usually by user-guided dictionary lookup, often used in East Asian languages (e.g. Chinese, Japanese, Korean). An IME may also be used for dictionary-based word completion, such as on mobile devices. See <a href="#keyset-IME">Input Method Editors</a> for treatment of IMEs in this specification. See also <a href="#glossary-text-composition-system">text composition system</a>.</dd>
+ <dt id="glossary-localname">local name</dt>
+ <dd>See local name in [<cite><a class="noxref informative" href="#references-Namespaces11">XML Namespaces 1.1</a></cite>].</dd>
+ <dt id="glossary-namespaceURI">namespace URI</dt>
+ <dd>A <em>namespace URI</em> is a URI that identifies an XML namespace. This is called the namespace name in [<cite><a class="noxref informative" href="#references-Namespaces11">XML Namespaces 1.1</a></cite>]. See also sections 1.3.2 "<a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#baseURIs-Considerations"><em>DOM URIs</em></a>" and 1.3.3 "<a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#Namespaces-Considerations"><em>XML Namespaces</em></a>" regarding URIs and namespace URIs handling and comparison in the DOM APIs.</dd>
+ <dt id="glossary-phase">phase</dt>
+ <dd>In the context of <a href="#glossary-event">events</a>, a phase is set of logical traversals from node to node along the DOM tree, from the <a href="#glossary-root-element">root element</a> down to the <a href="#glossary-event-target">event target</a> (<a href="glossary-capture-phase">capture phase</a>), at the <a href="#glossary-event-target">event target</a> itself (<a href="#glossary-target-phase">target phase</a>), and back up to the <a href="#glossary-root-element">root element</a> (<a href="#glossary-bubbling-phase">bubbling phase</a>).</dd>
+ <dt id="glossary-propagation-path">propagation path</dt>
+ <dd>The ordered set of <a href="#glossary-event-target">event targets</a> though which an <a href="#glossary-event">event</a> object will pass sequentially on the way to and back from the ultimate <a href="#glossary-event-target">event target</a>. The propagation path is initially comprised of one or more <a href="#glossary-event-phase">event phases</a> as defined by the <a href="#glossary-event-type">event type</a>, but may be interrupted. Also known as an <em>event target chain</em>.</dd>
+ <dt id="glossary-target-node">target node</dt>
+ <dd>The target node is the node representing the <a href="#glossary-event-target">event target</a> to which an <a href="#glossary-event">event</a> is targeted using the DOM event flow.</dd>
+ <dt id="glossary-text-composition-system">text composition system</dt>
+ <dd>A software component which interprets some form of alternate input, such as a <a href="#glossary-ime">input method editor</a>, a speech processor, or a handwriting recognition system, and converts it to text.</dd>
+ <dt id="glossary-root-element">root element</dt>
+ <dd>The first element node of a document, of which all other elements are children; the document element.</dd>
+ <dt id="glossary-target-phase">target phase</dt>
+ <dd>The process by which an <a href="#glossary-event">event</a> can be handled by the <a href="#glossary-event-target">event target</a>.</dd>
+ <dt id="glossary-topmost-event-target">topmost event target</dt>
+ <dd>The <a href="#glossary-topmost-event-target">topmost event target</a> shall be the element highest in the rendering order which is capable of being an <a href="#glossary-event-target">event target</a>. In this case, 'top' shall refer not to the position on the screen, but the logical order of the element in relation to other elements in drawing or stacking order on the z-axis (where the x-axis is the screen width and the y-axis is the screen height). In HTML and CSS, or in SVG, this is controlled by the document order, as modified in HTML and CSS by the 'z-index' property. In some cases, such as when using some values of the SVG 'pointer-events' property, the topmost element may not receive pointer events, in which case, the next element in z-index order which can receive pointer-events is the <a href="#glossary-topmost-event-target">topmost event target</a>. Note that visibility of the element does not necessarily affect its ability to be the <a href="#glossary-topmost-event-target">topmost event target</a>, since an element which is hidden by use of the CSS 'visibility' property can still receive pointer events (though not one with a 'display' property of 'none'), and the <a href="#glossary-topmost-event-target">topmost event target</a> may be completely obscured by another element which cannot receive pointer events. Unless otherwise noted, there is only one <a href="#glossary-topmost-event-target">topmost event target</a> in any event.</dd>
+ <dt id="glossary-tree">tree</dt>
+ <dd>A data structure that represents a document as a hierarchical set of nodes with child-parent-sibling relationships, i.e. each node having one or more possible ancestors (nodes higher in the hierarchy in a direct lineage), one or more possible descendants (nodes lower in the hierarchy in a direct lineage), and one or more possible peers (nodes of the same level in the hierarchy, with the same immediate ancestor).</dd>
+ <dt id="glossary-Unicode-character-categories">Unicode character categories</dt>
+ <dd>The Unicode character categories, a subset of the complete Unicode general categories, comprise the categories <abbr title="Letter, Lowercase">Ll</abbr>, <abbr title="Letter, Modifier">Lm</abbr>, <abbr title="Letter, Other">Lo</abbr>, <abbr title="Letter, Titlecase">Lt</abbr>, <abbr title="Letter, Uppercase">Lu</abbr>, <abbr title="Number, Decimal Digit">Nd</abbr>, <abbr title="Number, Letter">Nl</abbr>, <abbr title="Number, Other">No</abbr>, <abbr title="Punctuation, Connector">Pc</abbr>, <abbr title="Punctuation, Dash">Pd</abbr>, <abbr title="Punctuation, Close">Pe</abbr>, <abbr title="Punctuation, Final quote">Pf</abbr>, <abbr title="Punctuation, Initial quote">Pi</abbr>, <abbr title="Punctuation, Other">Po</abbr>, <abbr title="Punctuation, Open">Ps</abbr>, <abbr title="Symbol, Currency">Sc</abbr>, <abbr title="Symbol, Modifier">Sk</abbr>, <abbr title="Symbol, Math">Sm</abbr>, and <abbr title="Symbol, Other">So</abbr>.</dd>
+ </dl>
</div>
- <!-- div1 glossary -->
-
+<!-- div1 glossary -->
<!-- <span class='assert must'></span> -->
-
- <!-- div2 Events-overview -->
- <h2 id="events-Events-flow" class="div2">3. DOM Event Architecture</h2>
+<!-- div2 Events-overview -->
+ <h2 id="dom-event-architecture" class="div2">3. DOM Event Architecture</h2>
<div class="div2">
- <h3 id="events-Events-flow" class="div2">3.1 Event dispatch and DOM event flow</h3>
- <p>This section defines the event <a href="#glossary-dt-dispatch">dispatch</a> mechanism of the event model defined in this specification. <span class='assert may'>Applications may dispatch event objects using the <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method</span>, and <span class='assert must'>implementations must dispatch event objects as if through this method.</span> The behavior of this method depends on the <em>event flow</em> associated with the underlying object. An event flow describes how event objects <em>propagate</em> through a data structure. As an example, when an event object is dispatched to an element in an XML document, the object propagates through parts of the document, as determined by the DOM event flow which is defined at the end of this section.</p>
-
+ <h3 id="event-flow" class="div2">3.1 Event dispatch and DOM event flow</h3>
+ <p>This section defines the event <a href="#glossary-dispatch">dispatch</a> mechanism of the event model defined in this specification. <span class="assert may">Applications may dispatch event objects using the <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method</span>, and <span class="assert must">implementations must dispatch event objects as if through this method.</span> The behavior of this method depends on the <em>event flow</em> associated with the underlying object. An event flow describes how event objects <em>propagate</em> through a data structure. As an example, when an event object is dispatched to an element in an XML document, the object propagates through parts of the document, as determined by the DOM event flow which is defined at the end of this section.</p>
<div class="figure" style="text-align: center">
<object type="image/svg+xml" data="images/eventflow.svg" width="520" height="560">
- <img src="images/eventflow.png" alt="graphical representation of an event dispatched in a DOM tree using the DOM event flow" title="graphical representation of an event dispatched in a DOM tree using the DOM event flow"/>
+ <img src="images/eventflow.png" alt="graphical representation of an event dispatched in a DOM tree using the DOM event flow" title="graphical representation of an event dispatched in a DOM tree using the DOM event flow" />
</object>
- <p style="text-align:left"><em>Figure: graphical representation of an event dispatched in a DOM tree using the DOM event flow</em></p>
+ <p style="text-align:left">
+ <em>Figure: 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 a node called the <em>event target</em>. <span class='assert must'>At the beginning of the dispatch, implementations must first determine the event object's <a href="#glossary-dt-propagation-path">propagation path</a>. The propagation path shall be an ordered list of event targets through which the object must pass.</span> <span class='assert must'>The last item in the list shall be the event target</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 target node in the document while the event object is being dispatched; such changes do not affect the propagation path.</p>
-
- <p id="event phase">As the next step, the event object must complete one or more <a href="#glossary-dt-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 shall 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-Events-Event-canBubble"><code>Event.bubbles</code></a> attribute is set to false, the bubble phase shall be skipped, and if <a href="#events-Events-Event-stopPropagation"><code>Event.stopPropagation()</code></a> has been called prior to the dispatch, all phases must be skipped.</p>
-
+ <p>Event objects are always dispatched to a node called the <em>event target</em>. <span class="assert must">At the beginning of the dispatch, implementations must first determine the event object's <a href="#glossary-propagation-path">propagation path</a>. The propagation path shall be an ordered list of event targets through which the object must pass.</span> <span class="assert must">The last item in the list shall be the event target</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 target node in the document while the event object is being dispatched; such changes do not affect the propagation path.</p>
+ <p id="event-phase">As the next step, the event object must complete one or more <a 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 shall 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 shall 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 href="#glossary-dt-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>
-
- <li>The <strong id="target-phase">target phase</strong>: <span class='assert must'>the event object must arrive at the event's target.</span> This phase is also known as the <em>at-target phase</em>. <span class='assert must'>Event listeners registered for this phase must handle the event once it has reached its target.</span> <span class='assert must'>If the <a href="#glossary-dt-event-type">event type</a> indicates that the event must not bubble, the event object must halt after completion of this phase.</span></li>
-
- <li>The <strong id="bubble-phase">bubble phase</strong>: <span class='assert must'>the event object propagates through the target's ancestors in reverse order, starting with the target's parent and ending with the <a href="#glossary-dt-defaultView">defaultView</a>.</span> This phase is also known as the <em>bubbling phase</em>. <span class='assert must'>Event listeners registered for this phase shall handle the event after it has reached its target.</span></li>
+ <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 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>
+ <li>The <strong id="target-phase">target phase</strong>: <span class="assert must">the event object must arrive at the event's target.</span> This phase is also known as the <em>at-target phase</em>. <span class="assert must">Event listeners registered for this phase must handle the event once it has reached its target.</span> <span class="assert must">If the <a href="#glossary-event-type">event type</a> indicates that the event must not bubble, the event object must halt after completion of this phase.</span></li>
+ <li>The <strong id="bubble-phase">bubble phase</strong>: <span class="assert must">the event object propagates through the target's ancestors in reverse order, starting with the target's parent and ending with the <a href="#glossary-defaultView">defaultView</a>.</span> This phase is also known as the <em>bubbling phase</em>. <span class="assert must">Event listeners registered for this phase shall handle the event after it has reached its target.</span></li>
</ol>
-
- <p><span class='assert must'>Implementations let event objects accomplish an event phase by applying the following steps while there are pending event targets in the partial propagation path for this phase and the event object's propagation has not been stopped through <a href="#events-Events-Event-stopPropagation"><code>Event.stopPropagation()</code></a>.</span></p>
-
- <p><span class='assert must'>First, the implementation must determine the <em>current target</em>. This shall be the next pending event target in the partial propagation path, starting with the first. From the perspective of an event listener this shall be the event target the listener has been registered on.</span></p>
-
- <p><span class='assert must'>Next, the implementation must determine the current target's <em>candidate event listeners</em>. This shall be the list of all event listeners that have been registered on the current target in their order of registration. Once determined, the candidate event listeners cannot be changed; adding or removing listeners does not affect the current target's candidate event listeners.</span></p>
-
- <p><span class='assert must'>Finally, the implementation must process all candidate event listeners in order and trigger each listener if all the following conditions are met:</span></p>
+ <p>
+ <span class="assert must">Implementations let event objects accomplish an event phase by applying the following steps while there are pending event targets in the partial propagation path for this phase and the event object's propagation has not been stopped through <a href="#events-event-type-stopPropagation"><code>Event.stopPropagation()</code></a>.</span>
+ </p>
+ <p>
+ <span class="assert must">First, the implementation must determine the <em>current target</em>. This shall be the next pending event target in the partial propagation path, starting with the first. From the perspective of an event listener this shall be the event target the listener has been registered on.</span>
+ </p>
+ <p>
+ <span class="assert must">Next, the implementation must determine the current target's <em>candidate event listeners</em>. This shall be the list of all event listeners that have been registered on the current target in their order of registration. Once determined, the candidate event listeners cannot be changed; adding or removing listeners does not affect the current target's candidate event listeners.</span>
+ </p>
+ <p>
+ <span class="assert must">Finally, the implementation must process all candidate event listeners in order and trigger each listener if all the following conditions are met:</span>
+ </p>
<ul>
- <li><span class='assert must'>The event object's immediate propagation has not been stopped.</span></li>
- <li><span class='assert must'>The listener has been registered for this event phase.</span></li>
- <li><span class='assert must'>The listener has been registered for this event type.</span></li>
+ <li>
+ <span class="assert must">The event object's immediate propagation has not been stopped.</span>
+ </li>
+ <li>
+ <span class="assert must">The listener has been registered for this event phase.</span>
+ </li>
+ <li>
+ <span class="assert must">The listener has been registered for this event type.</span>
+ </li>
</ul>
- <p><span class='assert must'>An implementation shall trigger a listener by invoking the <a href="#events-Events-EventListener-handleEvent"><code class="method-name">EventListener.handleEvent()</code></a> method or an equivalent binding-specific mechanism.</span></p>
-
- <p><span class='assert must'>As the final step of the event dispatch, for reasons of backwards compatibility, the implementation must reset the event object's internal-propagation and default-action-prevention states.</span> This ensures that an event object may be properly dispatched multiple times while also allowing to prevent the event objects propagation or <a href="#glossary-dt-default-action">default actions</a> prior to the event dispatch.</p>
-
- <p>In the production of the <a href="#glossary-dt-propagation-path">propagation path</a>, if the <a href="#glossary-dt-defaultView">defaultView</a> implements the <a href="#events-Events-EventTarget">EventTarget</a> interface, the event propagates from <a href="#glossary-dt-defaultView">defaultView</a> to the <code>document</code> object during the <a href="#glossary-dt-capture-phase">capture phase</a>, and from the <code>document</code> object to the <a href="#glossary-dt-defaultView">defaultView</a> during the <a href="#glossary-dt-bubble-phase">bubble phase</a>. Note that for legacy reasons, the <a href="#events-event-load">load</a> event does not bubble to the <a href="#glossary-dt-defaultView">defaultView</a> in HTML implementations.</p>
-
- <p>The model defined above must be applied regardless of the specific event flow associated with an event target. Each event flow must define how the propagation path shall be determined and which event phases are supported. The <em>DOM event flow</em> is an application of this model: the propagation path for a <code>Node</code> object shall be determined by its <code>Node.parentNode</code> chain, and if applicable, the document's containing <a href="#glossary-dt-defaultView">defaultView</a>; all events accomplish the capture and target phases; whether an event accomplishes the bubble phase shall be defined individually for each event type. An alternate application of this model can be found in [<cite><a class="noxref informative" href="#references-DOMLS">DOM Level 3 Load and Save</a></cite>].</p>
-
+ <p>
+ <span class="assert must">An implementation shall trigger a listener by invoking the <a href="#events-Events-EventListener-handleEvent"><code class="method-name">EventListener.handleEvent()</code></a> method or an equivalent binding-specific mechanism.</span>
+ </p>
+ <p><span class="assert must">As the final step of the event dispatch, for reasons of backwards compatibility, the implementation must reset the event object's internal-propagation and default-action-prevention states.</span> This ensures that an event object may be properly dispatched multiple times while also allowing to prevent the event objects propagation or <a href="#glossary-default-action">default actions</a> prior to the event dispatch.</p>
+ <p>In the production of the <a href="#glossary-propagation-path">propagation path</a>, if the <a href="#glossary-defaultView">defaultView</a> implements the <a href="#events-Events-EventTarget">EventTarget</a> interface, the event propagates from <a href="#glossary-defaultView">defaultView</a> to the <code>document</code> object during the <a href="#glossary-capture-phase">capture phase</a>, and from the <code>document</code> object to the <a href="#glossary-defaultView">defaultView</a> during the <a href="#glossary-bubble-phase">bubble phase</a>. Note that for legacy reasons, the <a href="#event-type-load">load</a> event does not bubble to the <a href="#glossary-defaultView">defaultView</a> in HTML implementations.</p>
+ <p>The model defined above must be applied regardless of the specific event flow associated with an event target. Each event flow must define how the propagation path shall be determined and which event phases are supported. The <em>DOM event flow</em> is an application of this model: the propagation path for a <code>Node</code> object shall be determined by its <code>Node.parentNode</code> chain, and if applicable, the document's containing <a href="#glossary-defaultView">defaultView</a>; all events accomplish the capture and target phases; whether an event accomplishes the bubble phase shall be defined individually for each event type. An alternate application of this model can be found in [<cite><a class="noxref informative" href="#references-DOMLS">DOM Level 3 Load and Save</a></cite>].</p>
<p>Implementations of the DOM event model must be reentrant. Event listeners may perform actions that cause additional events to be dispatched. Such events are handled in a synchronous manner, the event propagation that causes the event listener to be triggered must resume only after the event dispatch of the new event is completed.</p>
</div>
- <!-- div2 Events-flow -->
+<!-- div2 Events-flow -->
<div class="div2">
- <h3 id="events-Events-flow-cancelation" class="div2">3.2 Default actions and cancelable events</h3>
- <p>Event objects may have <a href="#glossary-dt-default-action">default actions</a> associated with them. These are actions the implementation must perform in combination with the dispatch of the event object. An example is the [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] form element. When the user submits the form (e.g. by pressing on a submit button), the event <a href="#events-event-submit">submit</a> shall be dispatched to the element and the <a href="#glossary-dt-default-action">default action</a> for this event type shall be generally to send a request to a Web server with the parameters from the form.</p>
-
- <p><a href="#glossary-dt-default-action">Default actions</a> should be performed after the event dispatch has been completed, but in exceptional cases also immediately before the event is dispatched.</p>
-
+ <h3 id="event-flow-cancelation" class="div2">3.2 Default actions and cancelable events</h3>
+ <p>Event objects may have <a href="#glossary-default-action">default actions</a> associated with them. These are actions the implementation must perform in combination with the dispatch of the event object. An example is the [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] form element. When the user submits the form (e.g. by pressing on a submit button), the event <a href="#event-type-submit">submit</a> shall be dispatched to the element and the <a href="#glossary-default-action">default action</a> for this event type shall be generally to send a request to a Web server with the parameters from the form.</p>
+ <p><a href="#glossary-default-action">Default actions</a> should be performed after the event dispatch has been completed, but in exceptional cases also immediately before the event is dispatched.</p>
<span class="issue">@@ insert example here: <input type="checkbox">'s .checked handling comes to mind.
.checked is changed just before 'click' event is dispatched, and if
default action is prevented, .checked is set to its original value.</span>
-
- <p id="events-dt-cancelable-event">Some event objects are <em>cancelable</em>, meaning the <a href="#glossary-dt-default-action">default action</a> can be prevented from occuring, or, if the <a href="#glossary-dt-default-action">default action</a> is carried out before the dispatch, its effect may be reversed. Whether an event object is cancelable shall be indicated by the <a href="#events-Events-Event-canCancel"><code>Event.cancelable</code></a> attribute. Event listeners can cancel <a href="#glossary-dt-default-action">default actions</a> of cancelable event objects by invoking the <a href="#events-Events-Event-preventDefault"><code>Event.preventDefault()</code></a> method, and determine whether an event has been canceled through the <a href="#events-Events-Event-defaultPrevented"><code>Event.defaultPrevented</code></a> attribute while the object is being dispatched, or from the return value of the <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method for event objects dispatched by the DOM application itself.</p>
- <p>This specification does not offer features to programatically query if an event object has any <a href="#glossary-dt-default-action">default action</a> associated with it, or to associate new <a href="#glossary-dt-default-action">default actions</a> to an event object. Other specifications may define what default actions, if any, are associated with certain event objects. Further, implementations may associate <a href="#glossary-dt-default-action">default actions</a> with events as necessary and appropriate for that implementation. As an example, one implementation may scroll a document view by a certain amount as <a href="#glossary-dt-default-action">default action</a> of a mouse wheel event, while another implementation may instead zoom the document as its <a href="#glossary-dt-default-action">default action</a> for a mouse wheel event.</p>
+ <p id="events-dt-cancelable-event">Some event objects are <em>cancelable</em>, meaning the <a href="#glossary-default-action">default action</a> can be prevented from occuring, or, if the <a href="#glossary-default-action">default action</a> is carried out before the dispatch, its effect may be reversed. Whether an event object is cancelable shall be indicated by the <a href="#events-event-type-canCancel"><code>Event.cancelable</code></a> attribute. Event listeners can cancel <a href="#glossary-default-action">default actions</a> of cancelable event objects by invoking the <a href="#events-event-type-preventDefault"><code>Event.preventDefault()</code></a> method, and determine whether an event has been canceled through the <a href="#events-event-type-defaultPrevented"><code>Event.defaultPrevented</code></a> attribute while the object is being dispatched, or from the return value of the <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method for event objects dispatched by the DOM application itself.</p>
+ <p>This specification does not offer features to programatically query if an event object has any <a href="#glossary-default-action">default action</a> associated with it, or to associate new <a href="#glossary-default-action">default actions</a> to an event object. Other specifications may define what default actions, if any, are associated with certain event objects. Further, implementations may associate <a href="#glossary-default-action">default actions</a> with events as necessary and appropriate for that implementation. As an example, one implementation may scroll a document view by a certain amount as <a href="#glossary-default-action">default action</a> of a mouse wheel event, while another implementation may instead zoom the document as its <a href="#glossary-default-action">default action</a> for a mouse wheel event.</p>
</div>
- <!-- div2 Events-flow-cancelation -->
+<!-- div2 Events-flow-cancelation -->
<div class="div2">
- <h3 id="events-Events-flow-activation" class="div2">3.3 Activation requests and behavior</h3>
+ <h3 id="event-flow-activation" class="div2">3.3 Activation requests and behavior</h3>
<p>(This section is currently being rewritten.)</p>
- <p>Event targets may have associated <a href="#glossary-dt-activation-behavior">activation behavior</a> that implementations perform in response to an <em>activation request</em>. As an example, the typical activation behavior associated with hyperlinks is to follow the link. Activation requests are typically initiated by users through an input device.</p>
- <p>In terms of this specification, the activation behavior of the event target shall be the <a href="#glossary-dt-default-action">default action</a> of the event type <a href="#events-event-DOMActivate">DOMActivate</a>. DOM applications should use this event type whenever they wish to make or react to an activation request.</p>
- <p>Implementations must dispatch the <code>DOMActivate</code> event as the <a href="#glossary-dt-default-action">default action</a> of a <a href="#events-event-click">click</a> event. This click event shall be either part of the activation request (e.g., a user requests activiation using a mouse), or synthesized by the implementation to accomodate legacy applications. Context information of such a <code>click</code> event is implementation dependent.</p>
- <p>When implementations dispatch a synthesized <code>click</code> event, the expectation shall be that they do so as <a href="#glossary-dt-default-action">default action</a> of another event type. For example, when a user activates a hyperlink using a keyboard, the <code>click</code> event would be dispatched as <a href="#glossary-dt-default-action">default action</a> of the respective keyboard event.</p>
+ <p>Event targets may have associated <a href="#glossary-activation-behavior">activation behavior</a> that implementations perform in response to an <em>activation request</em>. As an example, the typical activation behavior associated with hyperlinks is to follow the link. Activation requests are typically initiated by users through an input device.</p>
+ <p>In terms of this specification, the activation behavior of the event target shall be the <a href="#glossary-default-action">default action</a> of the event type <a href="#event-type-DOMActivate">DOMActivate</a>. DOM applications should use this event type whenever they wish to make or react to an activation request.</p>
+ <p>Implementations must dispatch the <code>DOMActivate</code> event as the <a href="#glossary-default-action">default action</a> of a <a href="#event-type-click">click</a> event. This click event shall be either part of the activation request (e.g., a user requests activiation using a mouse), or synthesized by the implementation to accomodate legacy applications. Context information of such a <code>click</code> event is implementation dependent.</p>
+ <p>When implementations dispatch a synthesized <code>click</code> event, the expectation shall be that they do so as <a href="#glossary-default-action">default action</a> of another event type. For example, when a user activates a hyperlink using a keyboard, the <code>click</code> event would be dispatched as <a href="#glossary-default-action">default action</a> of the respective keyboard event.</p>
<p>Implementations are required to dispatch the synthesized <code>click</code> event as described above even if they do not dispatch such an event (e.g., when activation is requested by a voice command, since this specification does not address event types for voice input).</p>
<p class="note"><strong>Note:</strong> The activation of an event target is device dependent but is also application dependent, e.g. a link in a document can be activated using a mouse click or a mouse double click.</p>
</div>
-
-
- <!-- div2 Events-flow-activation -->
-
-
- <!-- div2 Event-interfaces -->
+<!-- div2 Events-flow-activation -->
+<!-- div2 Event-interfaces -->
<div class="div2">
- <h2 id="events-Events-interface" class="div2">4. Basic Event Interfaces</h2>
+ <h2 id="event-interfaces" class="div2">4. Basic Event Interfaces</h2>
<p>The interfaces described in this section are fundamental to DOM Level 3 Events and must always be supported by the implementation. Together they define the feature Events 3.0.</p>
-
<p>The event types defined in this specification derive from these basic interfaces, and shall inherit all of the attributes, methods, and constants of the interfaces they derive from. Event types defined in other specifications may similarly inherit from these basic interfaces or other interfaces defined in this specification, or may define their own interfaces. The following chart describes the inheritance structure of interfaces defined in this specification.</p>
-
<div class="figure" style="text-align: center">
<object type="image/svg+xml" data="images/event-inheritance.svg" width="960" height="230">
- <img src="images/event-inheritance.png" alt="graphical representation of the DOM3 Events interface inheritance"/>
+ <img src="images/event-inheritance.png" alt="graphical representation of the DOM3 Events interface inheritance" />
</object>
- <p style="text-align:left"><em>Figure: graphical representation of the DOM3 Events interface inheritance</em></p>
+ <p style="text-align:left">
+ <em>Figure: graphical representation of the DOM3 Events interface inheritance</em>
+ </p>
</div>
-
-
-
<h3 id="interface-Event" class="div2">4.1 Interface Event</h3>
<dl>
- <dt><strong>Interface <em>
- <a id="events-Events-Event">Event</a>
- </em></strong> (introduced in <strong class="since">DOM Level 2</strong>)</dt>
+ <dt><strong>Interface <em><a id="events-Events-Event">Event</a></em></strong> (introduced in <strong class="since">DOM Level 2</strong>)</dt>
<dd>
<p>The <code>Event</code> interface is used to provide contextual information about an event to the listener processing the event. An object which implements the <code>Event</code> interface shall be passed as the parameter to an <a href="#events-Events-EventListener"><code>EventListener</code></a>. The object passed to the event listener may also implement derived interfaces that provide access to information directly relating to the type of event they represent.</p>
<p>To create an instance of the <code>Event</code> interface, use the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("Event")</code></a> method call.</p>
<dl>
<dt>
- <br/>
+ <br />
<strong>IDL Definition</strong>
</dt>
<dd>
@@ -545,41 +617,39 @@
const unsigned short <a class="noxref" href="#events-AT_TARGET">AT_TARGET</a> = 2;
const unsigned short <a class="noxref" href="#events-BUBBLING_PHASE">BUBBLING_PHASE</a> = 3;
- readonly attribute DOMString <a class="noxref" href="#events-Events-Event-type">type</a>;
- readonly attribute <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> <a class="noxref" href="#events-Events-Event-target">target</a>;
- readonly attribute <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> <a class="noxref" href="#events-Events-Event-currentTarget">currentTarget</a>;
- readonly attribute unsigned short <a class="noxref" href="#events-Events-Event-eventPhase">eventPhase</a>;
- readonly attribute boolean <a class="noxref" href="#events-Events-Event-canBubble">bubbles</a>;
- readonly attribute boolean <a class="noxref" href="#events-Events-Event-canCancel">cancelable</a>;
- readonly attribute DOMTimeStamp <a class="noxref" href="#events-Events-Event-timeStamp">timeStamp</a>;
- void <a class="noxref" href="#events-Events-Event-stopPropagation">stopPropagation</a>();
- void <a class="noxref" href="#events-Events-Event-preventDefault">preventDefault</a>();
- void <a class="noxref" href="#events-Events-Event-initEvent">initEvent</a>(in DOMString eventTypeArg,
+ readonly attribute DOMString <a class="noxref" href="#events-event-type-type">type</a>;
+ readonly attribute <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> <a class="noxref" href="#events-event-type-target">target</a>;
+ readonly attribute <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> <a class="noxref" href="#events-event-type-currentTarget">currentTarget</a>;
+ readonly attribute unsigned short <a class="noxref" href="#events-event-type-eventPhase">eventPhase</a>;
+ readonly attribute boolean <a class="noxref" href="#events-event-type-canBubble">bubbles</a>;
+ readonly attribute boolean <a class="noxref" href="#events-event-type-canCancel">cancelable</a>;
+ readonly attribute DOMTimeStamp <a class="noxref" href="#events-event-type-timeStamp">timeStamp</a>;
+ void <a class="noxref" href="#events-event-type-stopPropagation">stopPropagation</a>();
+ void <a class="noxref" href="#events-event-type-preventDefault">preventDefault</a>();
+ void <a class="noxref" href="#events-event-type-initEvent">initEvent</a>(in DOMString eventTypeArg,
in boolean canBubbleArg,
in boolean cancelableArg);
// Introduced in DOM Level 3:
- readonly attribute DOMString <a class="noxref" href="#events-Events-Event-namespaceURI">namespaceURI</a>;
+ readonly attribute DOMString <a class="noxref" href="#events-event-type-namespaceURI">namespaceURI</a>;
// Introduced in DOM Level 3:
- void <a class="noxref" href="#events-Events-Event-stopImmediatePropagation">stopImmediatePropagation</a>();
+ void <a class="noxref" href="#events-event-type-stopImmediatePropagation">stopImmediatePropagation</a>();
// Introduced in DOM Level 3:
- readonly attribute boolean <a class="noxref" href="#events-Events-Event-defaultPrevented">defaultPrevented</a>;
+ readonly attribute boolean <a class="noxref" href="#events-event-type-defaultPrevented">defaultPrevented</a>;
// Introduced in DOM Level 3:
- void <a class="noxref" href="#events-Events-Event-initEventNS">initEventNS</a>(in DOMString namespaceURIArg,
+ void <a class="noxref" href="#events-event-type-initEventNS">initEventNS</a>(in DOMString namespaceURIArg,
in DOMString eventTypeArg,
in boolean canBubbleArg,
in boolean cancelableArg);
};
</pre>
</div>
- <br/>
+ <br />
</dd>
<dt>
- <strong>Definition group <em>
- <a id="events-Events-Event-eventPhaseType">PhaseType</a>
- </em></strong>
+ <strong>Definition group <em><a id="events-event-type-eventPhaseType">PhaseType</a></em></strong>
</dt>
<dd>
- <p>An integer indicating which phase of the event flow is being processed as defined in <a href="#events-Events-flow">Event dispatch and DOM event flow</a>.</p>
+ <p>An integer indicating which phase of the event flow is being processed as defined in <a href="#event-flow">Event dispatch and DOM event flow</a>.</p>
<dl>
<dt>
<strong>Defined Constants</strong>
@@ -587,17 +657,23 @@
<dd>
<dl>
<dt>
- <a id="events-AT_TARGET"><code class="constant-name">AT_TARGET</code></a>
+ <a id="events-AT_TARGET">
+ <code class="constant-name">AT_TARGET</code>
+ </a>
</dt>
- <dd>The current event is in the <a href="#glossary-dt-target-phase">target phase</a>, i.e. it is being evaluated at the <a href="#glossary-dt-event-target">event target</a>.</dd>
+ <dd>The current event is in the <a href="#glossary-target-phase">target phase</a>, i.e. it is being evaluated at the <a href="#glossary-event-target">event target</a>.</dd>
<dt>
- <a id="events-BUBBLING_PHASE"><code class="constant-name">BUBBLING_PHASE</code></a>
+ <a id="events-BUBBLING_PHASE">
+ <code class="constant-name">BUBBLING_PHASE</code>
+ </a>
</dt>
- <dd>The current event phase is the <a href="#glossary-dt-bubbling-phase">bubbling phase</a>.</dd>
+ <dd>The current event phase is the <a href="#glossary-bubbling-phase">bubbling phase</a>.</dd>
<dt>
- <a id="events-CAPTURING_PHASE"><code class="constant-name">CAPTURING_PHASE</code></a>
+ <a id="events-CAPTURING_PHASE">
+ <code class="constant-name">CAPTURING_PHASE</code>
+ </a>
</dt>
- <dd>The current event phase is the <a href="#glossary-dt-capture-phase">capture phase</a>.</dd>
+ <dd>The current event phase is the <a href="#glossary-capture-phase">capture phase</a>.</dd>
</dl>
</dd>
</dl>
@@ -607,43 +683,25 @@
</dt>
<dd>
<dl>
- <dt><code class="attribute-name">
- <a id="events-Events-Event-canBubble">bubbles</a>
- </code> of type <code>boolean</code>, readonly</dt>
- <dd>Used to indicate whether or not an event is a bubbling event. If the event can bubble the value shall be <code>true</code>, otherwise the value shall be <code>false</code>.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-Event-canCancel">cancelable</a>
- </code> of type <code>boolean</code>, readonly</dt>
- <dd>Used to indicate whether or not an event can have its <a href="#glossary-dt-default-action">default action</a> prevented (see also <a href="#events-Events-flow-cancelation">Default actions and cancelable events</a>). If the <a href="#glossary-dt-default-action">default action</a> can be prevented the value shall be <code>true</code>, otherwise the value shall be <code>false</code>.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-Event-currentTarget">currentTarget</a>
- </code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a>, readonly</dt>
- <dd>Used to indicate the <a href="#events-Events-EventTarget"><code>EventTarget</code></a> whose <a href="#events-Events-EventListener"><code>EventListeners</code></a> are currently being processed. This is particularly useful during the capture and bubbling phases. When used with the <a href="#events-Events-flow">Event dispatch and DOM event flow</a>, this attribute contains the <a href="#glossary-dt-target-node">target node</a> or a target ancestor.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-Event-defaultPrevented">defaultPrevented</a>
- </code> of type <code>boolean</code>, readonly, introduced in <strong class="version">DOM Level 3</strong></dt>
- <dd>Used to indicate whether <a href="#events-Events-Event-preventDefault"><code>Event.preventDefault()</code></a> has been called for this event.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-Event-eventPhase">eventPhase</a>
- </code> of type <code>unsigned short</code>, readonly</dt>
- <dd>Used to indicate which phase of event flow is currently being accomplished.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-Event-namespaceURI">namespaceURI</a>
- </code> of type <code>DOMString</code>, readonly, introduced in <strong class="version">DOM Level 3</strong></dt>
- <dd>The <a href="#glossary-dt-namespaceURI">namespace URI</a> associated with this event at initialization time, or <code>null</code> if it is unspecified.<br />
-DOM Level 2 Events initialization methods, such as <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a>, set the value to null.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-Event-target">target</a>
- </code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a>, readonly</dt>
- <dd>Used to indicate the <a href="#glossary-dt-event-target">event target</a>. This attribute contains the <a href="#glossary-dt-target-node">target node</a> when used with the <a href="#events-Events-flow">Event dispatch and DOM event flow</a>.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-Event-timeStamp">timeStamp</a>
- </code> of type <code>DOMTimeStamp</code>, readonly</dt>
- <dd>Used to specify the time at which the event was created in milliseconds relative to 1970-01-01T00:00:00Z. Due to the fact that some systems may not provide this information the value of <code>timeStamp</code> may be not available for all events. When not available, the value shall be <code>0</code>.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-Event-type">type</a>
- </code> of type <code>DOMString</code>, readonly</dt>
- <dd>The <a href="#glossary-dt-localname">local name</a> of the event type. The name must be an <a class="normative" href="http://www.w3.org/TR/2004/REC-xml-names11-20040204/#NT-NCName">NCName</a> as defined in [<cite><a class="noxref normative" href="#references-Namespaces11">XML Namespaces 1.1</a></cite>] and must be case-sensitive.<br/></dd>
+ <dt><code class="attribute-name"><a id="events-event-type-canBubble">bubbles</a></code> of type <code>boolean</code>, readonly</dt>
+ <dd>Used to indicate whether or not an event is a bubbling event. If the event can bubble the value shall be <code>true</code>, otherwise the value shall be <code>false</code>.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-event-type-canCancel">cancelable</a></code> of type <code>boolean</code>, readonly</dt>
+ <dd>Used to indicate whether or not an event can have its <a href="#glossary-default-action">default action</a> prevented (see also <a href="#event-flow-cancelation">Default actions and cancelable events</a>). If the <a href="#glossary-default-action">default action</a> can be prevented the value shall be <code>true</code>, otherwise the value shall be <code>false</code>.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-event-type-currentTarget">currentTarget</a></code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a>, readonly</dt>
+ <dd>Used to indicate the <a href="#events-Events-EventTarget"><code>EventTarget</code></a> whose <a href="#events-Events-EventListener"><code>EventListeners</code></a> are currently being processed. This is particularly useful during the capture and bubbling phases. When used with the <a href="#event-flow">Event dispatch and DOM event flow</a>, this attribute contains the <a href="#glossary-target-node">target node</a> or a target ancestor.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-event-type-defaultPrevented">defaultPrevented</a></code> of type <code>boolean</code>, readonly, introduced in <strong class="version">DOM Level 3</strong></dt>
+ <dd>Used to indicate whether <a href="#events-event-type-preventDefault"><code>Event.preventDefault()</code></a> has been called for this event.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-event-type-eventPhase">eventPhase</a></code> of type <code>unsigned short</code>, readonly</dt>
+ <dd>Used to indicate which phase of event flow is currently being accomplished.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-event-type-namespaceURI">namespaceURI</a></code> of type <code>DOMString</code>, readonly, introduced in <strong class="version">DOM Level 3</strong></dt>
+ <dd>The <a href="#glossary-namespaceURI">namespace URI</a> associated with this event at initialization time, or <code>null</code> if it is unspecified.<br />
+DOM Level 2 Events initialization methods, such as <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a>, set the value to null.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-event-type-target">target</a></code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a>, readonly</dt>
+ <dd>Used to indicate the <a href="#glossary-event-target">event target</a>. This attribute contains the <a href="#glossary-target-node">target node</a> when used with the <a href="#event-flow">Event dispatch and DOM event flow</a>.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-event-type-timeStamp">timeStamp</a></code> of type <code>DOMTimeStamp</code>, readonly</dt>
+ <dd>Used to specify the time at which the event was created in milliseconds relative to 1970-01-01T00:00:00Z. Due to the fact that some systems may not provide this information the value of <code>timeStamp</code> may be not available for all events. When not available, the value shall be <code>0</code>.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-event-type-type">type</a></code> of type <code>DOMString</code>, readonly</dt>
+ <dd>The <a href="#glossary-localname">local name</a> of the event type. The name must be an <a class="normative" href="http://www.w3.org/TR/2004/REC-xml-names11-20040204/#NT-NCName">NCName</a> as defined in [<cite><a class="noxref normative" href="#references-Namespaces11">XML Namespaces 1.1</a></cite>] and must be case-sensitive.<br /></dd>
</dl>
</dd>
<dt>
@@ -651,138 +709,83 @@
</dt>
<dd>
<dl>
- <dt><code class="method-name">
- <a id="events-Events-Event-initEvent">initEvent</a>
+ <dt>
+ <code class="method-name">
+ <a id="events-event-type-initEvent">initEvent</a>
</code>
</dt>
<dd>
- <div class="method">Initializes attributes of an <code>Event</code> created through the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent</code></a> method. This method may only be called before the <code>Event</code> has been dispatched via the <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method. If the method is called several times before invoking <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent</code></a>, only the final invocation takes precedence. This method has no effect if called after the event has been dispatched. If called from a subclass of the <code>Event</code> interface only the values specified in this method are modified, all other attributes are left unchanged.<br/>
-This method sets the <a href="#events-Events-Event-type"><code>Event.type</code></a> attribute to <code>eventTypeArg</code>, and <a href="#events-Events-Event-namespaceURI"><code>Event.namespaceURI</code></a> to <code>null</code>. To initialize an event with a namespace URI, use the <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a> method.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">eventTypeArg</code> of type <code>DOMString</code></dt>
- <dd>Specifies <a href="#events-Events-Event-type"><code>Event.type</code></a>, the <a href="#glossary-dt-localname">local name</a> of the event type.<br /></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Specifies <a href="#events-Events-Event-canBubble"><code>Event.bubbles</code></a>. This parameter overrides the intrinsic bubbling behavior of the event.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Specifies <a href="#events-Events-Event-canCancel"><code>Event.cancelable</code></a>. This parameter overrides the intrinsic cancelable behavior of the event.<br/></dd>
- </dl>
- </div>
- </div>
+ <div class="method">Initializes attributes of an <code>Event</code> created through the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent</code></a> method. This method may only be called before the <code>Event</code> has been dispatched via the <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method. If the method is called several times before invoking <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent</code></a>, only the final invocation takes precedence. This method has no effect if called after the event has been dispatched. If called from a subclass of the <code>Event</code> interface only the values specified in this method are modified, all other attributes are left unchanged.<br />
+This method sets the <a href="#events-event-type-type"><code>Event.type</code></a> attribute to <code>eventTypeArg</code>, and <a href="#events-event-type-namespaceURI"><code>Event.namespaceURI</code></a> to <code>null</code>. To initialize an event with a namespace URI, use the <a href="#events-event-type-initEventNS"><code>Event.initEventNS()</code></a> method.
+<div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">eventTypeArg</code> of type <code>DOMString</code></dt><dd>Specifies <a href="#events-event-type-type"><code>Event.type</code></a>, the <a href="#glossary-localname">local name</a> of the event type.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Specifies <a href="#events-event-type-canBubble"><code>Event.bubbles</code></a>. This parameter overrides the intrinsic bubbling behavior of the event.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Specifies <a href="#events-event-type-canCancel"><code>Event.cancelable</code></a>. This parameter overrides the intrinsic cancelable behavior of the event.<br /></dd></dl></div></div>
<!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
</div>
- <!-- method -->
+<!-- method -->
</dd>
- <dt><code class="method-name">
- <a id="events-Events-Event-initEventNS">initEventNS</a>
- </code> introduced in <strong class="since">DOM Level 3</strong></dt>
+ <dt><code class="method-name"><a id="events-event-type-initEventNS">initEventNS</a></code> introduced in <strong class="since">DOM Level 3</strong></dt>
<dd>
- <div class="method">Initializes attributes of an <code>Event</code> object. This method has the same behavior as <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a>.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt>
- <dd>Specifies <a href="#events-Events-Event-namespaceURI"><code>Event.namespaceURI</code></a>, the <a href="#glossary-dt-namespaceURI">namespace URI</a> associated with this event, or <code>null</code> if no namespace.<br /></dd>
- <dt><code class="parameter-name">eventTypeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br/></dd>
- </dl>
- </div>
- </div>
+ <div class="method">Initializes attributes of an <code>Event</code> object. This method has the same behavior as <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a>.
+<div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt><dd>Specifies <a href="#events-event-type-namespaceURI"><code>Event.namespaceURI</code></a>, the <a href="#glossary-namespaceURI">namespace URI</a> associated with this event, or <code>null</code> if no namespace.<br /></dd><dt><code class="parameter-name">eventTypeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br /></dd></dl></div></div>
<!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
</div>
- <!-- method -->
+<!-- method -->
</dd>
- <dt><code class="method-name">
- <a id="events-Events-Event-preventDefault">preventDefault</a>
+ <dt>
+ <code class="method-name">
+ <a id="events-event-type-preventDefault">preventDefault</a>
</code>
</dt>
<dd>
- <div class="method">Signifies that the event shall be to be canceled, meaning any <a href="#glossary-dt-default-action">default action</a> normally taken by the implementation as a result of the event must not occur (see also <a href="#events-Events-flow-cancelation">Default actions and cancelable events</a>). Calling this method for a non-cancelable event has no effect.
-<p class="note"><strong>Note:</strong> This method does not stop the event propagation; use <a href="#events-Events-Event-stopPropagation"><code>Event.stopPropagation()</code></a> or <a href="#events-Events-Event-stopImmediatePropagation"><code>Event.stopImmediatePropagation()</code></a> for that effect.</p>
- <div>
- <strong>No Parameters</strong>
- </div>
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
+ <div class="method">Signifies that the event shall be to be canceled, meaning any <a href="#glossary-default-action">default action</a> normally taken by the implementation as a result of the event must not occur (see also <a href="#event-flow-cancelation">Default actions and cancelable events</a>). Calling this method for a non-cancelable event has no effect.
+<p class="note"><strong>Note:</strong> This method does not stop the event propagation; use <a href="#events-event-type-stopPropagation"><code>Event.stopPropagation()</code></a> or <a href="#events-event-type-stopImmediatePropagation"><code>Event.stopImmediatePropagation()</code></a> for that effect.</p>
+ <div><strong>No Parameters</strong></div>
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
</div>
- <!-- method -->
+<!-- method -->
</dd>
- <dt><code class="method-name">
- <a id="events-Events-Event-stopImmediatePropagation">stopImmediatePropagation</a>
- </code> introduced in <strong class="since">DOM Level 3</strong></dt>
+ <dt><code class="method-name"><a id="events-event-type-stopImmediatePropagation">stopImmediatePropagation</a></code> introduced in <strong class="since">DOM Level 3</strong></dt>
<dd>
- <div class="method">Prevents other event listeners from being triggered and, unlike <a href="#events-Events-Event-stopPropagation"><code>Event.stopPropagation()</code></a> its effect shall be immediate . Once it has been called, further calls to this method have no additional effect.
-<p class="note"><strong>Note:</strong> This method does not prevent the <a href="#glossary-dt-default-action">default action</a> from being invoked; use <a href="#events-Events-Event-preventDefault"><code>Event.preventDefault()</code></a> for that effect.</p>
- <div>
- <strong>No Parameters</strong>
- </div>
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
+ <div class="method">Prevents other event listeners from being triggered and, unlike <a href="#events-event-type-stopPropagation"><code>Event.stopPropagation()</code></a> its effect shall be immediate . Once it has been called, further calls to this method have no additional effect.
+<p class="note"><strong>Note:</strong> This method does not prevent the <a href="#glossary-default-action">default action</a> from being invoked; use <a href="#events-event-type-preventDefault"><code>Event.preventDefault()</code></a> for that effect.</p>
+ <div><strong>No Parameters</strong></div>
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
</div>
- <!-- method -->
+<!-- method -->
</dd>
- <dt><code class="method-name">
- <a id="events-Events-Event-stopPropagation">stopPropagation</a>
+ <dt>
+ <code class="method-name">
+ <a id="events-event-type-stopPropagation">stopPropagation</a>
</code>
</dt>
<dd>
- <div class="method">Prevents other event listeners from being triggered but its effect shall be deferred until all event listeners attached on the <a href="#events-Events-Event-currentTarget"><code>Event.currentTarget</code></a> have been triggered . Once it has been called, further calls to this method have no additional effect.
-<p class="note"><strong>Note:</strong> This method does not prevent the <a href="#glossary-dt-default-action">default action</a> from being invoked; use <a href="#events-Events-Event-preventDefault"><code>Event.preventDefault()</code></a> for that effect.</p>
- <div>
- <strong>No Parameters</strong>
- </div>
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
+ <div class="method">Prevents other event listeners from being triggered but its effect shall be deferred until all event listeners attached on the <a href="#events-event-type-currentTarget"><code>Event.currentTarget</code></a> have been triggered . Once it has been called, further calls to this method have no additional effect.
+<p class="note"><strong>Note:</strong> This method does not prevent the <a href="#glossary-default-action">default action</a> from being invoked; use <a href="#events-event-type-preventDefault"><code>Event.preventDefault()</code></a> for that effect.</p>
+ <div><strong>No Parameters</strong></div>
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
</div>
- <!-- method -->
+<!-- method -->
</dd>
</dl>
</dd>
</dl>
</dd>
-
-
- <h3 id="interface-CustomEvent" class="div2">4.2 Interface CustomEvent</h3>
- <dt><strong>Interface <em>
- <a id="events-Events-CustomEvent">CustomEvent</a>
- </em></strong> (introduced in <strong class="since">DOM Level 3</strong>)</dt>
+ </dl>
+ <h3 id="interface-CustomEvent" class="div2">4.2 Interface CustomEvent</h3>
+ <dl>
+ <dt><strong>Interface <em><a id="events-Events-CustomEvent">CustomEvent</a></em></strong> (introduced in <strong class="since">DOM Level 3</strong>)</dt>
<dd>
<p>The CustomEvent interface is the recommended interface for application-specific event types. Unlike the <a href="#events-Events-Event"><code>Event</code></a> interface, it allows applications to provide contextual information about the event type. Application-specific event types should have an associated namespace to avoid clashes with future general-purpose event types.</p>
<p>To create an instance of the <code>CustomEvent</code> interface, use the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("CustomEvent")</code></a> method call.</p>
<dl>
<dt>
- <br/>
+ <br />
<strong>IDL Definition</strong>
</dt>
<dd>
@@ -791,11 +794,11 @@
// Introduced in DOM Level 3:
interface <a class="noxref" href="#events-Events-CustomEvent">CustomEvent</a> : <a class="noxref" href="#events-Events-Event">Event</a> {
readonly attribute DOMObject <a class="noxref" href="#events-Events-CustomEvent-detail">detail</a>;
- void <a class="noxref" href="#events-Events-Event-initCustomEvent">initCustomEvent</a>(in DOMString typeArg,
+ void <a class="noxref" href="#events-event-type-initCustomEvent">initCustomEvent</a>(in DOMString typeArg,
in boolean canBubbleArg,
in boolean cancelableArg,
in DOMObject detailArg);
- void <a class="noxref" href="#events-Events-Event-initCustomEventNS">initCustomEventNS</a>(in DOMString namespaceURIArg,
+ void <a class="noxref" href="#events-event-type-initCustomEventNS">initCustomEventNS</a>(in DOMString namespaceURIArg,
in DOMString typeArg,
in boolean canBubbleArg,
in boolean cancelableArg,
@@ -803,17 +806,15 @@
};
</pre>
</div>
- <br/>
+ <br />
</dd>
<dt>
<strong>Attributes</strong>
</dt>
<dd>
<dl>
- <dt><code class="attribute-name">
- <a id="events-Events-CustomEvent-detail">detail</a>
- </code> of type <code>DOMObject</code>, readonly</dt>
- <dd>Specifies some detail information about the <a href="#events-Events-Event"><code>Event</code></a>.<br/></dd>
+ <dt><code class="attribute-name"><a id="events-Events-CustomEvent-detail">detail</a></code> of type <code>DOMObject</code>, readonly</dt>
+ <dd>Specifies some detail information about the <a href="#events-Events-Event"><code>Event</code></a>.<br /></dd>
</dl>
</dd>
<dt>
@@ -821,87 +822,49 @@
</dt>
<dd>
<dl>
- <dt><code class="method-name">
- <a id="events-Events-Event-initCustomEvent">initCustomEvent</a>
+ <dt>
+ <code class="method-name">
+ <a id="events-event-type-initCustomEvent">initCustomEvent</a>
</code>
</dt>
<dd>
- <div class="method">Initializes attributes of a <code>CustomEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a>.
- <div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">detailArg</code> of type <code>DOMObject</code></dt>
- <dd>Specifies <a href="#events-Events-CustomEvent-detail"><code>CustomEvent.detail</code></a>. This value may be <code>null</code>.<br/></dd>
- </dl>
- </div>
- </div>
+ <div class="method">Initializes attributes of a <code>CustomEvent</code> object. This method has the same behavior as <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a>.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">detailArg</code> of type <code>DOMObject</code></dt><dd>Specifies <a href="#events-Events-CustomEvent-detail"><code>CustomEvent.detail</code></a>. This value may be <code>null</code>.<br /></dd></dl></div></div>
<!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
</div>
- <!-- method -->
+<!-- method -->
</dd>
- <dt><code class="method-name">
- <a id="events-Events-Event-initCustomEventNS">initCustomEventNS</a>
+ <dt>
+ <code class="method-name">
+ <a id="events-event-type-initCustomEventNS">initCustomEventNS</a>
</code>
</dt>
<dd>
- <div class="method">Initializes attributes of a <code>CustomEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a>.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">detailArg</code> of type <code>DOMObject</code></dt>
- <dd>Specifies <a href="#events-Events-CustomEvent-detail"><code>CustomEvent.detail</code></a>. This value may be <code>null</code>.<br/></dd>
- </dl>
- </div>
- </div>
+ <div class="method">Initializes attributes of a <code>CustomEvent</code> object. This method has the same behavior as <a href="#events-event-type-initEventNS"><code>Event.initEventNS()</code></a>.
+<div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">detailArg</code> of type <code>DOMObject</code></dt><dd>Specifies <a href="#events-Events-CustomEvent-detail"><code>CustomEvent.detail</code></a>. This value may be <code>null</code>.<br /></dd></dl></div></div>
<!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
</div>
- <!-- method -->
+<!-- method -->
</dd>
</dl>
</dd>
</dl>
</dd>
-
-
- <h3 id="interface-EventTarget" class="div2">4.3 Interface EventTarget</h3>
- <dt><strong>Interface <em>
- <a id="events-Events-EventTarget">EventTarget</a>
- </em></strong> (introduced in <strong class="since">DOM Level 2</strong>)</dt>
+ </dl>
+ <h3 id="interface-EventTarget" class="div2">4.3 Interface EventTarget</h3>
+ <dl>
+ <dt><strong>Interface <em><a id="events-Events-EventTarget">EventTarget</a></em></strong> (introduced in <strong class="since">DOM Level 2</strong>)</dt>
<dd>
- <p>The <code>EventTarget</code> interface shall be implemented by all the objects which could be <a href="#glossary-dt-event-target">event targets</a> in an implementation which supports an event flow. The interface allows registration and removal of event listeners, and dispatch of events to an event target.</p>
- <p>When used with the DOM event flow, this interface must be implemented by all <a href="#glossary-dt-target-node">target nodes</a> and target ancestors, i.e. all DOM <code>Nodes</code> of the tree support this interface when the implementation conforms to DOM Level 3 Events and, therefore, this interface can be obtained by using binding-specific casting methods on an instance of the <code>Node</code> interface.</p>
+ <p>The <code>EventTarget</code> interface shall be implemented by all the objects which could be <a href="#glossary-event-target">event targets</a> in an implementation which supports an event flow. The interface allows registration and removal of event listeners, and dispatch of events to an event target.</p>
+ <p>When used with the DOM event flow, this interface must be implemented by all <a href="#glossary-target-node">target nodes</a> and target ancestors, i.e. all DOM <code>Nodes</code> of the tree support this interface when the implementation conforms to DOM Level 3 Events and, therefore, this interface can be obtained by using binding-specific casting methods on an instance of the <code>Node</code> interface.</p>
<p>Invoking <code>addEventListener</code> or <code>addEventListenerNS</code> repeatedly on the same <code>EventTarget</code> with the same values for the parameters <code>namespaceURI</code>, <code>type</code>, <code>listener</code>, and <code>useCapture</code> has no effect. Doing so does not cause the <a href="#events-Events-EventListener"><code>EventListener</code></a> to be called more than once and does not cause a change in the triggering order.</p>
<dl>
<dt>
- <br/>
+ <br />
<strong>IDL Definition</strong>
</dt>
<dd>
@@ -932,217 +895,92 @@
};
</pre>
</div>
- <br/>
+ <br />
</dd>
<dt>
<strong>Methods</strong>
</dt>
<dd>
<dl>
- <dt><code class="method-name">
+ <dt>
+ <code class="method-name">
<a id="events-Events-EventTarget-addEventListener">addEventListener</a>
</code>
</dt>
<dd>
<div class="method">Registers an event listener, depending on the <code>useCapture</code> parameter, on the capture phase of the DOM event flow or its target and bubbling phases. Invoking this method shall be equivalent to invoking <code>addEventListenerNS</code> with the same values for the parameters <code>type</code>, <code>listener</code>, and <code>useCapture</code>, and the value <code>null</code> for the parameter <code>namespaceURI</code>. When this method is used to register an event listener, implementations may also dispatch events with the same <code>type</code> in other namespaces, for purposes of extensibility (e.g. this method may be used to dispatch <code>foo</code> event for the <code>null</code> namespace, or for a vendor-specific namespace); see <a href="#extending_events">Appendix A: Extending Events</a> for more details.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">type</code> of type <code>DOMString</code></dt>
- <dd>Specifies the <a href="#events-Events-Event-type"><code>Event.type</code></a> associated with the event for which the user is registering.<br/></dd>
- <dt><code class="parameter-name">listener</code> of type <a href="#events-Events-EventListener"><code>EventListener</code></a></dt>
- <dd>The <code>listener</code> parameter takes an object implemented by the user which implements the <a class="noxref" href="#events-Events-EventListener"><code>EventListener</code></a> interface and contains the method to be called when the event occurs.<br/></dd>
- <dt><code class="parameter-name">useCapture</code> of type <code>boolean</code></dt>
- <dd>If true, <code>useCapture</code> indicates that the user wishes to add the event listener for the <a href="#glossary-dt-capture-phase">capture phase</a> only, i.e. this event listener will not be triggered during the <a href="#glossary-dt-target-phase">target</a> and <a href="#glossary-dt-bubbling-phase">bubbling</a> phases. If <code>false</code>, the event listener must only be triggered during the target and bubbling phases.<br/></dd>
- </dl>
- </div>
- </div>
+<div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">type</code> of type <code>DOMString</code></dt><dd>Specifies the <a href="#events-event-type-type"><code>Event.type</code></a> associated with the event for which the user is registering.<br /></dd><dt><code class="parameter-name">listener</code> of type <a href="#events-Events-EventListener"><code>EventListener</code></a></dt><dd>The <code>listener</code> parameter takes an object implemented by the user which implements the <a class="noxref" href="#events-Events-EventListener"><code>EventListener</code></a> interface and contains the method to be called when the event occurs.<br /></dd><dt><code class="parameter-name">useCapture</code> of type <code>boolean</code></dt><dd>If true, <code>useCapture</code> indicates that the user wishes to add the event listener for the <a href="#glossary-capture-phase">capture phase</a> only, i.e. this event listener will not be triggered during the <a href="#glossary-target-phase">target</a> and <a href="#glossary-bubbling-phase">bubbling</a> phases. If <code>false</code>, the event listener must only be triggered during the target and bubbling phases.<br /></dd></dl></div></div>
<!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
</div>
- <!-- method -->
+<!-- method -->
</dd>
- <dt><code class="method-name">
- <a id="events-Events-EventTargetGroup-addEventListenerNS">addEventListenerNS</a>
- </code> introduced in <strong class="since">DOM Level 3</strong></dt>
+ <dt><code class="method-name"><a id="events-Events-EventTargetGroup-addEventListenerNS">addEventListenerNS</a></code> introduced in <strong class="since">DOM Level 3</strong></dt>
<dd>
<div class="method">Registers an event listener, depending on the <code>useCapture</code> parameter, on the capture phase of the DOM event flow or its target and bubbling phases.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">namespaceURI</code> of type <code>DOMString</code></dt>
- <dd>Specifies the <a href="#events-Events-Event-namespaceURI"><code>Event.namespaceURI</code></a> associated with the event for which the user is registering.<br/></dd>
- <dt><code class="parameter-name">type</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-EventTarget-addEventListener"><code>EventTarget.addEventListener()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">listener</code> of type <a href="#events-Events-EventListener"><code>EventListener</code></a></dt>
- <dd>Refer to the <a href="#events-Events-EventTarget-addEventListener"><code>EventTarget.addEventListener()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">useCapture</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-EventTarget-addEventListener"><code>EventTarget.addEventListener()</code></a> method for a description of this parameter.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
- <dt><code class="method-name">
- <a id="events-Events-EventTarget-dispatchEvent">dispatchEvent</a>
- </code> modified in <strong class="version">DOM Level 3</strong></dt>
- <dd>
- <div class="method">Dispatches an event into the implementation's event model. The <a href="#glossary-dt-event-target">event target</a> of the event shall be the <code>EventTarget</code> object on which <code>dispatchEvent</code> is called.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">evt</code> of type <a href="#events-Events-Event"><code>Event</code></a></dt>
- <dd>The event to be dispatched.<br/></dd>
- </dl>
- </div>
- </div>
+<div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">namespaceURI</code> of type <code>DOMString</code></dt><dd>Specifies the <a href="#events-event-type-namespaceURI"><code>Event.namespaceURI</code></a> associated with the event for which the user is registering.<br /></dd><dt><code class="parameter-name">type</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-Events-EventTarget-addEventListener"><code>EventTarget.addEventListener()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">listener</code> of type <a href="#events-Events-EventListener"><code>EventListener</code></a></dt><dd>Refer to the <a href="#events-Events-EventTarget-addEventListener"><code>EventTarget.addEventListener()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">useCapture</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-Events-EventTarget-addEventListener"><code>EventTarget.addEventListener()</code></a> method for a description of this parameter.<br /></dd></dl></div></div>
<!-- parameters -->
- <div class="return">
- <strong>Return Value</strong>
- <div class="returntable">
- <table
- summary="Layout table: the first cell contains the type of the return value, the second contains a short description"
- border="0">
- <tr>
- <td>
- <p><code>boolean</code>
- </p>
- </td>
- <td>
- <p>Indicates whether any of the listeners which handled the event called <a href="#events-Events-Event-preventDefault"><code>Event.preventDefault()</code></a>. If <a href="#events-Events-Event-preventDefault"><code>Event.preventDefault()</code></a> was called the returned value shall be <code>false</code>, else it shall be <code>true</code>.</p>
- </td>
- </tr>
- </table>
- </div>
- </div>
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ <dt><code class="method-name"><a id="events-Events-EventTarget-dispatchEvent">dispatchEvent</a></code> modified in <strong class="version">DOM Level 3</strong></dt>
+ <dd>
+ <div class="method">Dispatches an event into the implementation's event model. The <a href="#glossary-event-target">event target</a> of the event shall be the <code>EventTarget</code> object on which <code>dispatchEvent</code> is called.
+<div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">evt</code> of type <a href="#events-Events-Event"><code>Event</code></a></dt><dd>The event to be dispatched.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div class="return"><strong>Return Value</strong><div class="returntable"><table summary="Layout table: the first cell contains the type of the return value, the second contains a short description" border="0"><tr><td><p><code>boolean</code></p></td><td><p>Indicates whether any of the listeners which handled the event called <a href="#events-event-type-preventDefault"><code>Event.preventDefault()</code></a>. If <a href="#events-event-type-preventDefault"><code>Event.preventDefault()</code></a> was called the returned value shall be <code>false</code>, else it shall be <code>true</code>.</p></td></tr></table></div></div>
<!-- return -->
- <div class="exceptions">
- <strong>Exceptions</strong>
- <div class="exceptiontable">
- <table
- summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description"
- border="0">
- <tr>
- <td>
- <p>
- <a href="#events-Events-EventException"><code>EventException</code></a>
- </p>
- </td>
- <td>
- <p>UNSPECIFIED_EVENT_TYPE_ERR: Raised if the <a href="#events-Events-Event-type"><code>Event.type</code></a> was not specified by initializing the event before <code>dispatchEvent</code> was called. Specification of the <a class="noxref" href="#events-Events-Event-type"><code>Event.type</code></a> as <code>null</code> or an empty string must also trigger this exception.</p>
- <p>DISPATCH_REQUEST_ERR: Raised if the <a href="#events-Events-Event"><code>Event</code></a> object is already being dispatched.</p>
- </td>
- </tr>
- <tr>
- <td>
- <p><code>DOMException</code>
- </p>
- </td>
- <td>
- <p>NOT_SUPPORTED_ERR: Raised if the <a href="#events-Events-Event"><code>Event</code></a> object has not been created using <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent()</code></a>.</p>
- <p>INVALID_CHARACTER_ERR: Raised if <a href="#events-Events-Event-type"><code>Event.type</code></a> is not an <a class="normative" href="http://www.w3.org/TR/2004/REC-xml-names11-20040204/#NT-NCName">
- <em>NCName</em>
- </a> as defined in [<cite><a class="noxref normative" href="#references-Namespaces11">XML Namespaces 1.1</a></cite>].</p>
- </td>
- </tr>
- </table>
- </div>
- </div>
+ <div class="exceptions"><strong>Exceptions</strong><div class="exceptiontable"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tr><td><p><a href="#events-Events-EventException"><code>EventException</code></a></p></td><td><p>UNSPECIFIED_EVENT_TYPE_ERR: Raised if the <a href="#events-event-type-type"><code>Event.type</code></a> was not specified by initializing the event before <code>dispatchEvent</code> was called. Specification of the <a class="noxref" href="#events-event-type-type"><code>Event.type</code></a> as <code>null</code> or an empty string must also trigger this exception.</p><p>DISPATCH_REQUEST_ERR: Raised if the <a href="#events-Events-Event"><code>Event</code></a> object is already being dispatched.</p></td></tr><tr><td><p><code>DOMException</code></p></td><td><p>NOT_SUPPORTED_ERR: Raised if the <a href="#events-Events-Event"><code>Event</code></a> object has not been created using <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent()</code></a>.</p><p>INVALID_CHARACTER_ERR: Raised if <a href="#events-event-type-type"><code>Event.type</code></a> is not an <a class="normative" href="http://www.w3.org/TR/2004/REC-xml-names11-20040204/#NT-NCName"><em>NCName</em></a> as defined in [<cite><a class="noxref normative" href="#references-Namespaces11">XML Namespaces 1.1</a></cite>].</p></td></tr></table></div></div>
<!-- exceptions --></div>
- <!-- method -->
+<!-- method -->
</dd>
- <dt><code class="method-name">
+ <dt>
+ <code class="method-name">
<a id="events-Events-EventTarget-removeEventListener">removeEventListener</a>
</code>
</dt>
<dd>
- <div class="method">Removes an event listener. Calling <code>removeEventListener</code> with arguments which do not identify any currently registered <a href="#events-Events-EventListener"><code>EventListener</code></a> on the <code>EventTarget</code> has no effect. The <a href="#events-Events-Event-namespaceURI"><code>Event.namespaceURI</code></a> for which the user registered the event listener is implied and shall be <code>null</code>.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">type</code> of type <code>DOMString</code></dt>
- <dd>Specifies the <a href="#events-Events-Event-type"><code>Event.type</code></a> for which the user registered the event listener.<br/></dd>
- <dt><code class="parameter-name">listener</code> of type <a href="#events-Events-EventListener"><code>EventListener</code></a></dt>
- <dd>The <a class="noxref" href="#events-Events-EventListener"><code>EventListener</code></a> to be removed.<br/></dd>
- <dt><code class="parameter-name">useCapture</code> of type <code>boolean</code></dt>
- <dd>Specifies whether the <a class="noxref" href="#events-Events-EventListener"><code>EventListener</code></a> being removed was registered for the capture phase or not. If a listener was registered twice, once for the capture phase and once for the target and bubbling phases, each must be removed separately. Removal of an event listener registered for the capture phase does not affect the same event listener registered for the target and bubbling phases, and vice versa.<br/></dd>
- </dl>
- </div>
- </div>
+ <div class="method">Removes an event listener. Calling <code>removeEventListener</code> with arguments which do not identify any currently registered <a href="#events-Events-EventListener"><code>EventListener</code></a> on the <code>EventTarget</code> has no effect. The <a href="#events-event-type-namespaceURI"><code>Event.namespaceURI</code></a> for which the user registered the event listener is implied and shall be <code>null</code>.
+<div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">type</code> of type <code>DOMString</code></dt><dd>Specifies the <a href="#events-event-type-type"><code>Event.type</code></a> for which the user registered the event listener.<br /></dd><dt><code class="parameter-name">listener</code> of type <a href="#events-Events-EventListener"><code>EventListener</code></a></dt><dd>The <a class="noxref" href="#events-Events-EventListener"><code>EventListener</code></a> to be removed.<br /></dd><dt><code class="parameter-name">useCapture</code> of type <code>boolean</code></dt><dd>Specifies whether the <a class="noxref" href="#events-Events-EventListener"><code>EventListener</code></a> being removed was registered for the capture phase or not. If a listener was registered twice, once for the capture phase and once for the target and bubbling phases, each must be removed separately. Removal of an event listener registered for the capture phase does not affect the same event listener registered for the target and bubbling phases, and vice versa.<br /></dd></dl></div></div>
<!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
</div>
- <!-- method -->
+<!-- method -->
</dd>
- <dt><code class="method-name">
- <a id="events-Events-EventTargetGroup-removeEventListenerNS">removeEventListenerNS</a>
- </code> introduced in <strong class="since">DOM Level 3</strong></dt>
+ <dt><code class="method-name"><a id="events-Events-EventTargetGroup-removeEventListenerNS">removeEventListenerNS</a></code> introduced in <strong class="since">DOM Level 3</strong></dt>
<dd>
<div class="method">Removes an event listener. Calling <code>removeEventListenerNS</code> with arguments which do not identify any currently registered <a href="#events-Events-EventListener"><code>EventListener</code></a> on the <code>EventTarget</code> has no effect.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">namespaceURI</code> of type <code>DOMString</code></dt>
- <dd>Specifies the <a href="#events-Events-Event-namespaceURI"><code>Event.namespaceURI</code></a> associated with the event for which the user registered the event listener.<br/></dd>
- <dt><code class="parameter-name">type</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-EventTarget-removeEventListener"><code>EventTarget.removeEventListener()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">listener</code> of type <a href="#events-Events-EventListener"><code>EventListener</code></a></dt>
- <dd>Refer to the <a href="#events-Events-EventTarget-removeEventListener"><code>EventTarget.removeEventListener()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">useCapture</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-EventTarget-removeEventListener"><code>EventTarget.removeEventListener()</code></a> method for a description of this parameter.<br/></dd>
- </dl>
- </div>
- </div>
+<div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">namespaceURI</code> of type <code>DOMString</code></dt><dd>Specifies the <a href="#events-event-type-namespaceURI"><code>Event.namespaceURI</code></a> associated with the event for which the user registered the event listener.<br /></dd><dt><code class="parameter-name">type</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-Events-EventTarget-removeEventListener"><code>EventTarget.removeEventListener()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">listener</code> of type <a href="#events-Events-EventListener"><code>EventListener</code></a></dt><dd>Refer to the <a href="#events-Events-EventTarget-removeEventListener"><code>EventTarget.removeEventListener()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">useCapture</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-Events-EventTarget-removeEventListener"><code>EventTarget.removeEventListener()</code></a> method for a description of this parameter.<br /></dd></dl></div></div>
<!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
</div>
- <!-- method -->
+<!-- method -->
</dd>
</dl>
</dd>
</dl>
</dd>
-
-
- <h3 id="interface-EventListener" class="div2">4.4 Interface EventListener</h3>
- <dt><strong>Interface <em>
- <a id="events-Events-EventListener">EventListener</a>
- </em></strong> (introduced in <strong class="since">DOM Level 2</strong>)</dt>
+ </dl>
+ <h3 id="interface-EventListener" class="div2">4.4 Interface EventListener</h3>
+ <dl>
+ <dt><strong>Interface <em><a id="events-Events-EventListener">EventListener</a></em></strong> (introduced in <strong class="since">DOM Level 2</strong>)</dt>
<dd>
<p>The <code>EventListener</code> interface is the primary way for handling events. Users shall implement the <code>EventListener</code> interface and register their event listener on an <a href="#events-Events-EventTarget"><code>EventTarget</code></a>. The users should also remove their <code>EventListener</code> from its <a class="noxref" href="#events-Events-EventTarget"><code>EventTarget</code></a> after they have completed using the listener.</p>
- <p><span class='assert must'>Copying a <code>Node</code>, with methods such as <code>Node.cloneNode</code> or <code>Range.cloneContents</code>, must not copy the event listeners attached to it.</span> <span class='assert must'>Event listeners must be attached to the newly created <code>Node</code> afterwards if so desired.</span></p>
- <p><span class='assert mustnot'>Moving a <code>Node</code>, with methods <code>Document.adoptNode</code>, <code>Node.appendChild</code>, or <code>Range.extractContents</code>, shall not affect the event listeners attached to it.</span></p>
+ <p>
+ <span class="assert must">Copying a <code>Node</code>, with methods such as <code>Node.cloneNode</code> or <code>Range.cloneContents</code>, must not copy the event listeners attached to it.</span>
+ <span class="assert must">Event listeners must be attached to the newly created <code>Node</code> afterwards if so desired.</span>
+ </p>
+ <p>
+ <span class="assert mustnot">Moving a <code>Node</code>, with methods <code>Document.adoptNode</code>, <code>Node.appendChild</code>, or <code>Range.extractContents</code>, shall not affect the event listeners attached to it.</span>
+ </p>
<dl>
<dt>
- <br/>
+ <br />
<strong>IDL Definition</strong>
</dt>
<dd>
@@ -1154,50 +992,37 @@
};
</pre>
</div>
- <br/>
+ <br />
</dd>
<dt>
<strong>Methods</strong>
</dt>
<dd>
<dl>
- <dt><code class="method-name">
+ <dt>
+ <code class="method-name">
<a id="events-Events-EventListener-handleEvent">handleEvent</a>
</code>
</dt>
<dd>
<div class="method">This method shall be called whenever an event occurs of the event type for which the <code>EventListener</code> interface was registered.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">evt</code> of type <a href="#events-Events-Event"><code>Event</code></a></dt>
- <dd>The <a class="noxref" href="#events-Events-Event"><code>Event</code></a> contains contextual information about the <a href="#glossary-dt-event">event</a>.<br/></dd>
- </dl>
- </div>
- </div>
+<div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">evt</code> of type <a href="#events-Events-Event"><code>Event</code></a></dt><dd>The <a class="noxref" href="#events-Events-Event"><code>Event</code></a> contains contextual information about the <a href="#glossary-event">event</a>.<br /></dd></dl></div></div>
<!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
</div>
- <!-- method -->
+<!-- method -->
</dd>
</dl>
</dd>
</dl>
</dd>
- <dt><strong>Exception <em>
- <a id="events-Events-EventException">EventException</a>
- </em></strong> introduced in <strong class="version">DOM Level 2</strong></dt>
+ <dt><strong>Exception <em><a id="events-Events-EventException">EventException</a></em></strong> introduced in <strong class="version">DOM Level 2</strong></dt>
<dd>
<p>Event operations may throw an <a href="#events-Events-EventException"><code>EventException</code></a> as specified in their method descriptions.</p>
<dl>
<dt>
- <br/>
+ <br />
<strong>IDL Definition</strong>
</dt>
<dd>
@@ -1213,12 +1038,10 @@
const unsigned short <a class="noxref" href="#events-DISPATCH_REQUEST_ERR">DISPATCH_REQUEST_ERR</a> = 1;
</pre>
</div>
- <br/>
+ <br />
</dd>
<dt>
- <strong>Definition group <em>
- <a id="events-Events-EventException-EventExceptionCode">EventExceptionCode</a>
- </em></strong>
+ <strong>Definition group <em><a id="events-Events-EventException-EventExceptionCode">EventExceptionCode</a></em></strong>
</dt>
<dd>
<p>An integer indicating the type of error generated.</p>
@@ -1231,9 +1054,11 @@
<dt><a id="events-DISPATCH_REQUEST_ERR"><code class="constant-name">DISPATCH_REQUEST_ERR</code></a>, introduced in <strong class="version">DOM Level 3</strong>.</dt>
<dd>If the <a href="#events-Events-Event"><code>Event</code></a> object is already dispatched in the tree.</dd>
<dt>
- <a id="events-UNSPECIFIED_EVENT_TYPE_ERR"><code class="constant-name">UNSPECIFIED_EVENT_TYPE_ERR</code></a>
+ <a id="events-UNSPECIFIED_EVENT_TYPE_ERR">
+ <code class="constant-name">UNSPECIFIED_EVENT_TYPE_ERR</code>
+ </a>
</dt>
- <dd>If the <a href="#events-Events-Event-type"><code>Event.type</code></a> was not specified by initializing the event before the method was called. Specification of the <a class="noxref" href="#events-Events-Event-type"><code>Event.type</code></a> as <code>null</code> or an empty string must also trigger this exception.</dd>
+ <dd>If the <a href="#events-event-type-type"><code>Event.type</code></a> was not specified by initializing the event before the method was called. Specification of the <a class="noxref" href="#events-event-type-type"><code>Event.type</code></a> as <code>null</code> or an empty string must also trigger this exception.</dd>
</dl>
</dd>
</dl>
@@ -1241,23 +1066,15 @@
</dl>
</dd>
</dl>
-
-
<div class="div3">
- <h3 id="events-Events-document" class="div3">4.5 Event creation</h3>
- <p>In most cases, the events dispatched by the DOM Events implementation are also created by the implementation. It is however possible to simulate events such as mouse events by creating the <a href="#events-Events-Event"><code>Event</code></a> objects and dispatch them using the DOM Events implementation.</p>
- <p>Creating <a href="#events-Events-Event"><code>Event</code></a> objects that are known to the DOM Events implementation is done using <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent()</code></a>. The application must then initialize the object by calling the appropriate initialization method before invoking <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a>. The <a class="noxref" href="#events-Events-Event"><code>Event</code></a> objects created must be known by the DOM Events implementation; otherwise an event exception shall be thrown.</p>
-
- <h3 id="interface-DocumentEvent" class="div2">4.5.1 Interface DocumentEvent</h3>
+ <h3 id="interface-DocumentEvent" class="div2">4.5 Interface DocumentEvent</h3>
<dl>
- <dt><strong>Interface <em>
- <a id="events-Events-DocumentEvent">DocumentEvent</a>
- </em></strong> (introduced in <strong class="since">DOM Level 2</strong>)</dt>
+ <dt><strong>Interface <em><a id="events-Events-DocumentEvent">DocumentEvent</a></em></strong> (introduced in <strong class="since">DOM Level 2</strong>)</dt>
<dd>
<p>The <code>DocumentEvent</code> interface provides a mechanism by which the user can create an <a href="#events-Events-Event"><code>Event</code></a> object of a type supported by the implementation. If the feature "Events" is supported by the <code>Document</code> object, the <code>DocumentEvent</code> interface must be implemented on the same object. If the feature "+Events" is supported by the <code>Document</code> object, an object that supports the <code>DocumentEvent</code> interface must be returned by invoking the method <code>Node.getFeature("+Events", "3.0")</code> on the <code>Document</code> object.</p>
<dl>
<dt>
- <br/>
+ <br />
<strong>IDL Definition</strong>
</dt>
<dd>
@@ -1273,1366 +1090,1021 @@
};
</pre>
</div>
- <br/>
+ <br />
</dd>
<dt>
<strong>Methods</strong>
</dt>
<dd>
<dl>
- <dt><code class="method-name atrisk">
- <a id="events-Events-DocumentEvent-canDispatch">canDispatch</a>
- </code> introduced in <strong class="since">DOM Level 3</strong></dt>
+ <dt><code class="method-name atrisk"><a id="events-Events-DocumentEvent-canDispatch">canDispatch</a></code> introduced in <strong class="since">DOM Level 3</strong></dt>
<dd>
<div class="method atrisk">Tests if the implementation can generate events of a specified type.
- <br/><span class="issue">@@ what is the use case for this? Perhaps to test if an implementation supports a particular event, such as an event from an uncommon language, or a custom event?</span>
- <br/><span class="issue">@@ Or what does the "implementation can generate" mean? -Olli</span>
+ <br /><span class="issue">@@ what is the use case for this? Perhaps to test if an implementation supports a particular event, such as an event from an uncommon language, or a custom event?</span>
+ <br /><span class="issue">@@ Or what does the "implementation can generate" mean? -Olli</span>
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">namespaceURI</code> of type <code>DOMString</code></dt>
- <dd>Specifies the <a href="#events-Events-Event-namespaceURI"><code>Event.namespaceURI</code></a> of the event.<br/></dd>
- <dt><code class="parameter-name">type</code> of type <code>DOMString</code></dt>
- <dd>Specifies the <a href="#events-Events-Event-type"><code>Event.type</code></a> of the event.<br/></dd>
- </dl>
- </div>
- </div>
+<div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">namespaceURI</code> of type <code>DOMString</code></dt><dd>Specifies the <a href="#events-event-type-namespaceURI"><code>Event.namespaceURI</code></a> of the event.<br /></dd><dt><code class="parameter-name">type</code> of type <code>DOMString</code></dt><dd>Specifies the <a href="#events-event-type-type"><code>Event.type</code></a> of the event.<br /></dd></dl></div></div>
<!-- parameters -->
- <div class="return">
- <strong>Return Value</strong>
- <div class="returntable">
- <table
- summary="Layout table: the first cell contains the type of the return value, the second contains a short description"
- border="0">
- <tr>
- <td>
- <p><code>boolean</code>
- </p>
- </td>
- <td>
- <p><code>true</code> if the implementation can generate and dispatch this event type, <code>false</code> otherwise.</p>
- </td>
- </tr>
- </table>
- </div>
- </div>
+ <div class="return"><strong>Return Value</strong><div class="returntable"><table summary="Layout table: the first cell contains the type of the return value, the second contains a short description" border="0"><tr><td><p><code>boolean</code></p></td><td><p><code>true</code> if the implementation can generate and dispatch this event type, <code>false</code> otherwise.</p></td></tr></table></div></div>
<!-- return -->
- <div>
- <strong>No Exceptions</strong>
- </div>
+ <div><strong>No Exceptions</strong></div>
</div>
- <!-- method -->
+<!-- method -->
</dd>
- <dt><code class="method-name">
+ <dt>
+ <code class="method-name">
<a id="events-Events-DocumentEvent-createEvent">createEvent</a>
</code>
</dt>
<dd>
<div class="method">Creates an event object of the type specified.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">eventType</code> of type <code>DOMString</code></dt>
- <dd>
- <p>The <code>eventType</code> parameter specifies the name of the DOM Events interface to be supported by the created event object, e.g. <code>"Event"</code>, <code>"MouseEvent"</code>, <code>"MutationEvent"</code> and so on. If the <a href="#events-Events-Event"><code>Event</code></a> is to be dispatched via the <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method the appropriate event initialization method must be called after creation in order to initialize the <a class="noxref" href="#events-Events-Event"><code>Event</code></a>'s values.</p>
- <p>As an example, a user wishing to synthesize some kind of <a href="#events-Events-UIEvent"><code>UIEvent</code></a> would invoke <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("UIEvent")</code></a>. The <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method could then be called on the newly created <a class="noxref" href="#events-Events-UIEvent"><code>UIEvent</code></a> object to set the specific type of user interface event to be dispatched, <a href="#events-event-DOMActivate">DOMActivate</a> for example, and set its context information, e.g. <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> in this example.</p>
- <p>For backward compatibility reason, "UIEvents", "MouseEvents", "MutationEvents", and "HTMLEvents" feature names are valid values for the parameter <code>eventType</code> and represent respectively the interfaces "UIEvent", "MouseEvent", "MutationEvent", and "Event", and the characters 'a'..'z' are considered equivalent to the characters 'A'..'Z'.<br/></p>
- </dd>
- </dl>
- </div>
- </div>
+<div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">eventType</code> of type <code>DOMString</code></dt><dd><p>The <code>eventType</code> parameter specifies the name of the DOM Events interface to be supported by the created event object, e.g. <code>"Event"</code>, <code>"MouseEvent"</code>, <code>"MutationEvent"</code> and so on. If the <a href="#events-Events-Event"><code>Event</code></a> is to be dispatched via the <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method the appropriate event initialization method must be called after creation in order to initialize the <a class="noxref" href="#events-Events-Event"><code>Event</code></a>'s values.</p><p>As an example, a user wishing to synthesize some kind of <a href="#events-Events-UIEvent"><code>UIEvent</code></a> would invoke <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("UIEvent")</code></a>. The <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method could then be called on the newly created <a class="noxref" href="#events-Events-UIEvent"><code>UIEvent</code></a> object to set the specific type of user interface event to be dispatched, <a href="#event-type-DOMActivate">DOMActivate</a> for example, and set its context information, e.g. <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> in this example.</p><p>For backward compatibility reason, "UIEvents", "MouseEvents", "MutationEvents", and "HTMLEvents" feature names are valid values for the parameter <code>eventType</code> and represent respectively the interfaces "UIEvent", "MouseEvent", "MutationEvent", and "Event", and the characters 'a'..'z' are considered equivalent to the characters 'A'..'Z'.<br /></p></dd></dl></div></div>
<!-- parameters -->
- <div class="return">
- <strong>Return Value</strong>
- <div class="returntable">
- <table
- summary="Layout table: the first cell contains the type of the return value, the second contains a short description"
- border="0">
- <tr>
- <td>
- <p>
- <a href="#events-Events-Event"><code>Event</code></a>
- </p>
- </td>
- <td>
- <p>The newly created event object.</p>
- </td>
- </tr>
- </table>
- </div>
- </div>
+ <div class="return"><strong>Return Value</strong><div class="returntable"><table summary="Layout table: the first cell contains the type of the return value, the second contains a short description" border="0"><tr><td><p><a href="#events-Events-Event"><code>Event</code></a></p></td><td><p>The newly created event object.</p></td></tr></table></div></div>
<!-- return -->
- <div class="exceptions">
- <strong>Exceptions</strong>
- <div class="exceptiontable">
- <table
- summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description"
- border="0">
- <tr>
- <td>
- <p><code>DOMException</code>
- </p>
- </td>
- <td>
- <p>NOT_SUPPORTED_ERR: Raised if the implementation does not support the <a href="#events-Events-Event"><code>Event</code></a> interface requested.</p>
- </td>
- </tr>
- </table>
- </div>
- </div>
+ <div class="exceptions"><strong>Exceptions</strong><div class="exceptiontable"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tr><td><p><code>DOMException</code></p></td><td><p>NOT_SUPPORTED_ERR: Raised if the implementation does not support the <a href="#events-Events-Event"><code>Event</code></a> interface requested.</p></td></tr></table></div></div>
<!-- exceptions --></div>
- <!-- method -->
- </dd>
- </dl>
- </dd>
- </dl>
- </dd>
- </dl>
- </div>
- <!-- div3 Events-document -->
- </div>
- <!-- div2 Events-interface -->
-
-
-
- <!-- div2 Events-types -->
- <div class="div2">
- <h2 id="events-Events" class="div2">5. Events</h2>
- <h3 id="events-Event-types" class="div2">5.1 Event Types</h3>
- <p>Each event shall be associated with a type, called <em>event type</em> and available as the <a class="noxref" href="#events-Events-Event-type"><code class="interface-attribute">type</code></a> attribute on the event object. The event type shall be composed of a <a href="#glossary-dt-localname">local name</a> and a <a href="#glossary-dt-namespaceURI">namespace URI</a> as used in [<cite><a class="noxref normative" href="#references-DOMCore">DOM Level 3 Core</a></cite>]. All events defined in this specification are in the <code>null</code> namespace.</p>
- <div class="div3">
- <h4 id="events-Events-EventTypes-complete" class="div3">5.1.1 Complete List of Event Types</h4>
- <p>Depending on the level of DOM support, or the devices used for display (e.g. screen) or interaction (e.g., mouse, keyboard, touch screen, or voice), these event types can be generated by the implementation. When used with an [<cite><a class="noxref informative" href="#references-XML">XML 1.0</a></cite>] or [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] application, the specifications of those languages may restrict the semantics and scope (in particular the possible target nodes) associated with an event type. Refer to the specification defining the language used in order to find those restrictions or to find event types that are not defined in this document.</p>
- <p>The following table provides a non-normative summary of the event types defined in this specification. All event types are in no namespace and this specification refers to them by their local name only. All events must accomplish the capture and target phases, but not all of them must accomplish the bubbling phase (see also <a href="#events-Events-flow">Event dispatch and DOM event flow</a>). Some events are not <a href="#events-dt-cancelable-event">cancelable</a> (see <a href="#events-Events-flow-cancelation">Default actions and cancelable events</a>). Some events must only be dispatched to a specific set of possible targets in the DOM event flow, specified using node types. Contextual information related to the event type must be accessible using DOM interfaces.</p>
- <table border="1" cellpadding="2" cellspacing="0"
- summary="This table contains the complete list of 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>type</th>
- <th>Bubbling phase</th>
- <th>Cancelable</th>
- <th>Target node types</th>
- <th>DOM interface</th>
- </tr>
- <tr>
- <td><a href="#events-event-abort">abort</a></td>
- <td>Yes</td>
- <td>No</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-Event"><code>Event</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-blur">blur</a></td>
- <td>No</td>
- <td>No</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-UIEvent"><code>UIEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-change">change</a></td>
- <td>Yes</td>
- <td>No</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-Event"><code>Event</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-click">click</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-compositionstart">compositionstart</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-CompositionEvent"><code>CompositionEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-compositionupdate">compositionupdate</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-CompositionEvent"><code>CompositionEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-compositionend">compositionend</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-CompositionEvent"><code>CompositionEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-dblclick">dblclick</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-DOMActivate">DOMActivate</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-UIEvent"><code>UIEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-DOMAttributeNameChanged">DOMAttributeNameChanged</a></td>
- <td>Yes</td>
- <td>No</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-MutationNameEvent"><code>MutationNameEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-DOMAttrModified">DOMAttrModified</a></td>
- <td>Yes</td>
- <td>No</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-MutationEvent"><code>MutationEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-DOMCharacterDataModified">DOMCharacterDataModified</a></td>
- <td>Yes</td>
- <td>No</td>
- <td><code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>ProcessingInstruction</code></td>
- <td><a href="#events-Events-MutationEvent"><code>MutationEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-DOMElementNameChanged">DOMElementNameChanged</a></td>
- <td>Yes</td>
- <td>No</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-MutationNameEvent"><code>MutationNameEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-DOMFocusIn">DOMFocusIn</a></td>
- <td>Yes</td>
- <td>No</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-UIEvent"><code>UIEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-DOMFocusOut">DOMFocusOut</a></td>
- <td>Yes</td>
- <td>No</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-UIEvent"><code>UIEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-DOMNodeInserted">DOMNodeInserted</a></td>
- <td>Yes</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="#events-Events-MutationEvent"><code>MutationEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-DOMNodeInsertedIntoDocument">DOMNodeInsertedIntoDocument</a></td>
- <td>No</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="#events-Events-MutationEvent"><code>MutationEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-DOMNodeRemoved">DOMNodeRemoved</a></td>
- <td>Yes</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="#events-Events-MutationEvent"><code>MutationEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-DOMNodeRemovedFromDocument">DOMNodeRemovedFromDocument</a></td>
- <td>No</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="#events-Events-MutationEvent"><code>MutationEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-DOMSubtreeModified">DOMSubtreeModified</a></td>
- <td>Yes</td>
- <td>No</td>
- <td><code>Document</code>, <code>DocumentFragment</code>, <code>Element</code>, <code>Attr</code></td>
- <td><a href="#events-Events-MutationEvent"><code>MutationEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-error">error</a></td>
- <td>Yes</td>
- <td>No</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-Event"><code>Event</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-focus">focus</a></td>
- <td>No</td>
- <td>No</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-UIEvent"><code>UIEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-focusin">focusin</a></td>
- <td>Yes</td>
- <td>No</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-UIEvent"><code>UIEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-focusout">focusout</a></td>
- <td>Yes</td>
- <td>No</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-UIEvent"><code>UIEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-keydown">keydown</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-KeyboardEvent"><code>KeyboardEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-keypress">keypress</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-KeyboardEvent"><code>KeyboardEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-keyup">keyup</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-KeyboardEvent"><code>KeyboardEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-load">load</a></td>
- <td>No</td>
- <td>No</td>
- <td><code>Document</code>, <code>Element</code></td>
- <td><a href="#events-Events-Event"><code>Event</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-mousedown">mousedown</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-mouseenter">mouseenter</a></td>
- <td>No</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-mouseleave">mouseleave</a></td>
- <td>No</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-mousemove">mousemove</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-mouseout">mouseout</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-mouseover">mouseover</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-mouseup">mouseup</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-mousewheel">mousewheel</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Document</code>, <code>Element</code></td>
- <td><a href="#events-Events-MouseWheelEvent"><code>MouseWheelEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-reset">reset</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-Event"><code>Event</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-resize">resize</a></td>
- <td>Yes</td>
- <td>No</td>
- <td><code>Document</code>, <code>Element</code></td>
- <td><a href="#events-Events-UIEvent"><code>UIEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-scroll">scroll</a></td>
- <td>No</td>
- <td>No</td>
- <td><code>Document</code>, <code>Element</code></td>
- <td><a href="#events-Events-UIEvent"><code>UIEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-select">select</a></td>
- <td>Yes</td>
- <td>No</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-Event"><code>Event</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-submit">submit</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-Event"><code>Event</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-textInput">textInput</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Element</code></td>
- <td><a href="#events-Events-TextEvent"><code>TextEvent</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-unload">unload</a></td>
- <td>No</td>
- <td>No</td>
- <td><code>Document</code>, <code>Element</code></td>
- <td><a href="#events-Events-Event"><code>Event</code></a></td>
- </tr>
- <tr>
- <td><a href="#events-event-wheel">wheel</a></td>
- <td>Yes</td>
- <td>Yes</td>
- <td><code>Document</code>, <code>Element</code></td>
- <td><a href="#events-Events-WheelEvent"><code>WheelEvent</code></a></td>
- </tr>
- </table>
-
- <p>As an example, the event <a href="#events-event-load">load</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 href="#events-event-load">load</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>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 -->
- </div>
-
-
- <!-- div2 Events-definitions -->
- <div class="div2">
- <h2 id="events-Events-definitions" class="div2">5.2 Event Module Definitions</h2>
- <p>The DOM Event Model allows a DOM implementation to support multiple modules of events. The model has been designed to allow addition of new event modules if required. This document does not attempt to define all possible events. For purposes of interoperability, the DOM defines a module of user interface events including lower level device dependent events and a module of document mutation events.</p>
-
-
- <div class="div3">
- <h3 id="events-Events-eventgroupings-uievents" class="div3">5.2.1 User Interface Event Types</h3>
- <p>This module defines the feature UIEvents 3.0 and depends on the features Events 3.0 and Views 2.0.</p>
- <p>The User Interface event module contains basic event types associated with user interfaces.</p>
- <dl>
- <dt><strong>Interface <em>
- <a id="events-Events-UIEvent">UIEvent</a>
- </em></strong> (introduced in <strong class="since">DOM Level 2</strong>)</dt>
- <dd>
- <p>The <code>UIEvent</code> interface provides specific contextual information associated with User Interface events.</p>
- <p>To create an instance of the <code>UIEvent</code> interface, use the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("UIEvent")</code></a> method call.</p>
- <dl>
- <dt>
- <br/>
- <strong>IDL Definition</strong>
- </dt>
- <dd>
- <div class="idl-code">
- <pre>
-// Introduced in DOM Level 2:
-interface <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> : <a class="noxref" href="#events-Events-Event">Event</a> {
- readonly attribute views::AbstractView <a class="noxref" href="#events-Events-UIEvent-view">view</a>;
- readonly attribute long <a class="noxref" href="#events-Events-UIEvent-detail">detail</a>;
- void <a class="noxref" href="#events-Events-Event-initUIEvent">initUIEvent</a>(in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in long detailArg);
- // Introduced in DOM Level 3:
- void <a class="noxref" href="#events-Events-Event-initUIEventNS">initUIEventNS</a>(in DOMString namespaceURIArg,
- in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in long detailArg);
-};
-</pre>
- </div>
- <br/>
- </dd>
- <dt>
- <strong>Attributes</strong>
- </dt>
- <dd>
- <dl>
- <dt><code class="attribute-name">
- <a id="events-Events-UIEvent-detail">detail</a>
- </code> of type <code>long</code>, readonly</dt>
- <dd>Specifies some detail information about the <a href="#events-Events-Event"><code>Event</code></a>, depending on the type of event.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-UIEvent-view">view</a>
- </code> of type <code>views::AbstractView</code>, readonly</dt>
- <dd>The <code>view</code> attribute identifies the <code>AbstractView</code> from which the event was generated.<br/></dd>
- </dl>
- </dd>
- <dt>
- <strong>Methods</strong>
- </dt>
- <dd>
- <dl>
- <dt><code class="method-name">
- <a id="events-Events-Event-initUIEvent">initUIEvent</a>
- </code>
- </dt>
- <dd>
- <div class="method">Initializes attributes of an <code>UIEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a>.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt>
- <dd>Specifies <a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a>. This value may be <code>null</code>.<br/></dd>
- <dt><code class="parameter-name">detailArg</code> of type <code>long</code></dt>
- <dd>Specifies <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a>.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
- <dt><code class="method-name">
- <a id="events-Events-Event-initUIEventNS">initUIEventNS</a>
- </code> introduced in <strong class="since">DOM Level 3</strong></dt>
- <dd>
- <div class="method">Initializes attributes of an <code>UIEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a>.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">detailArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
+<!-- method -->
</dd>
</dl>
</dd>
</dl>
</dd>
</dl>
- <p>The User Interface event types are listed below.</p>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-DOMActivate">
- <a class="noxref" href="#events-event-DOMActivate">DOMActivate</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 bgcolor="#CFCFCF"><strong><code>DOMActivate</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></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>
-Refer to <a href="#events-Events-flow-activation">Activation requests and behavior</a>.</dd>
- </dl>
- </div>
-
- <!-- DOMFocusIn -->
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-DOMFocusIn">
- <a class="noxref" href="#events-event-DOMFocusIn">DOMFocusIn</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 bgcolor="#CFCFCF"><strong><code>DOMFocusIn</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></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>
-An <a href="#glossary-dt-event-target">event target</a> receives focus. The focus shall be given to the element before the dispatch of this event type. This event type shall be dispatched after the event type <a href="#events-event-focus">focus</a>. This event type is deprecated in favor of the equivalent event type <a class="noxref" href="#events-event-focusin">focusin</a>.</dd>
- </dl>
- </div>
-
- <!-- DOMFocusOut -->
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-DOMFocusOut">
- <a class="noxref" href="#events-event-DOMFocusOut">DOMFocusOut</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 bgcolor="#CFCFCF"><strong><code>DOMFocusOut</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></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>
-An <a href="#glossary-dt-event-target">event target</a> loses focus. The focus shall be taken from the element before the dispatch of this event type. This event type shall be dispatched after the event type <a href="#events-event-blur">blur</a>. This event type is deprecated in favor of the equivalent event type <a class="noxref" href="#events-event-focusout">focusout</a>.</dd>
- </dl>
- </div>
-
- <!-- focus -->
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-focus">
- <a class="noxref" href="#events-event-focus">focus</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 bgcolor="#CFCFCF"><strong><code>focus</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></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>
-An <a href="#glossary-dt-event-target">event target</a> receives focus. The focus shall be given to the element before the dispatch of this event type.</dd>
- </dl>
- </div>
-
-
- <!-- focusin -->
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-focusin">
- <a class="noxref" href="#events-event-DOMFocusIn">focusin</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 bgcolor="#CFCFCF"><strong><code>DOMFocusIn</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></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>
-An <a href="#glossary-dt-event-target">event target</a> receives focus. The focus shall be given to the element before the dispatch of this event type. This event type shall be dispatched after the event type <a href="#events-event-focus">focus</a>. This event type is similar to <a href="#events-event-focus">focus</a>, but it must include the <a href="#glossary-dt-bubbling-phase">bubbling phase</a>.</dd>
- </dl>
- </div>
-
- <!-- focusout -->
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-focusout">
- <a class="noxref" href="#events-event-DOMFocusOut">focusout</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 bgcolor="#CFCFCF"><strong><code>DOMFocusOut</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></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>
-An <a href="#glossary-dt-event-target">event target</a> loses focus. The focus shall be taken from the element before the dispatch of this event type. This event type shall be dispatched after the event type <a href="#events-event-blur">blur</a>. This event type is similar to <a href="#events-event-blur">blur</a>, but it must include the <a href="#glossary-dt-bubbling-phase">bubbling phase</a>.</dd>
- </dl>
- </div>
-
- <!-- blur -->
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-blur">
- <a class="noxref" href="#events-event-blur">blur</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 bgcolor="#CFCFCF"><strong><code>blur</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></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>
-An <a href="#glossary-dt-event-target">event target</a> loses focus. The focus shall be taken from the element before the dispatch of this event type.</dd>
- </dl>
- </div>
+ <h4 id="event-creation" class="div3">4.5.1 Event creation</h4>
+ <p>In most cases, the events dispatched by the DOM Events implementation are also created by the implementation. It is however possible to simulate events such as mouse events by creating the <a href="#events-Events-Event"><code>Event</code></a> objects and dispatch them using the DOM Events implementation.</p>
+ <p>Creating <a href="#events-Events-Event"><code>Event</code></a> objects that are known to the DOM Events implementation is done using <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent()</code></a>. The application must then initialize the object by calling the appropriate initialization method before invoking <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a>. The <a class="noxref" href="#events-Events-Event"><code>Event</code></a> objects created must be known by the DOM Events implementation; otherwise an event exception shall be thrown.</p>
</div>
-
-
- <!-- div3 Events-eventgroupings-basicevents -->
- <div class="div3">
- <h3 class="div3" id="events-Events-eventgroupings-basicevents">5.2.2 Basic Event Types</h3>
- <p>This event module contains basic event types associated with document manipulation. It defines the feature BasicEvents 3.0 and depends on the feature Events 3.0. The basic event types are listed below.</p>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-load">
- <a class="noxref" href="#events-event-load">load</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 bgcolor="#CFCFCF"><strong><code>load</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</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>Context info</th>
- <td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> may be in use.</td>
- </tr>
- </table>
- 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.</dd>
- </dl>
- </div>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-unload">
- <a class="noxref" href="#events-event-unload">unload</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 bgcolor="#CFCFCF"><strong><code>unload</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</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>Context info</th>
- <td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> may be in use.</td>
- </tr>
- </table>
- 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>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-abort">
- <a class="noxref" href="#events-event-abort">abort</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 bgcolor="#CFCFCF"><strong><code>abort</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></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>
- Loading of a resource has been aborted.</dd>
- </dl>
- </div>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-error">
- <a class="noxref" href="#events-event-error">error</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 bgcolor="#CFCFCF"><strong><code>error</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></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 resource failed to load, or has been loaded but cannot be interpreted according to its semantics such as an invalid image, a script execution error, or non-well-formed XML.</dd>
- </dl>
- </div>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-select">
- <a class="noxref" href="#events-event-select">select</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 bgcolor="#CFCFCF"><strong><code>select</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></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 user selects some text. DOM Level 3 Events does not provide contextual information to access the selected text. The selection occurred before the dispatch of this event type.</dd>
- </dl>
- </div>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-change">
- <a class="noxref" href="#events-event-change">change</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 bgcolor="#CFCFCF"><strong><code>change</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></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 control loses the input focus and its value has been modified since gaining focus. This event type shall be dispatched before the event type <a href="#events-event-blur">blur</a>.</dd>
- </dl>
- </div>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-submit">
- <a class="noxref" href="#events-event-submit">submit</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 bgcolor="#CFCFCF"><strong><code>submit</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></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 form, such as a [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] or [<cite><a class="noxref informative" href="#references-XHTML10">XHTML 1.0</a></cite>] form, is submitted.</dd>
- </dl>
- </div>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-reset">
- <a class="noxref" href="#events-event-reset">reset</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 bgcolor="#CFCFCF"><strong><code>reset</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></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 form, such as a [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] or [<cite><a class="noxref informative" href="#references-XHTML10">XHTML 1.0</a></cite>] form, is reset.</dd>
- </dl>
- </div>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-resize">
- <a class="noxref" href="#events-event-resize">resize</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 bgcolor="#CFCFCF"><strong><code>resize</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</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>Context info</th>
- <td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> is in use.</td>
- </tr>
- </table>
- A document view or an element has been resized. The resize occurred before the dispatch of this event type.</dd>
- </dl>
- </div>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-scroll">
- <a class="noxref" href="#events-event-scroll">scroll</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 bgcolor="#CFCFCF"><strong><code>scroll</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</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>Context info</th>
- <td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> is in use.</td>
- </tr>
- </table>
- A document view or an element has been scrolled. The scroll occurred before the dispatch of this event type.</dd>
- </dl>
- </div>
- </div>
- <!-- div3 Events-eventgroupings-basicevents -->
+<!-- div3 Events-document -->
</div>
- <!-- div2 Events-eventgroupings -->
-
-
-
-
- <!-- div3 Events-KeyboardEvents-Interfaces -->
+<!-- div2 Events-interface -->
+ </div>
+<!-- div2 Events-types -->
+ <div class="div2">
+ <h2 id="events-module" class="div2">5. Events Module</h2>
+ <h3 id="event-types" class="div2">5.1 Event Types</h3>
+ <p>Each event shall be associated with a type, called <em>event type</em> and available as the <a class="noxref" href="#events-event-type-type"><code class="interface-attribute">type</code></a> attribute on the event object. The event type shall be composed of a <a href="#glossary-localname">local name</a> and a <a href="#glossary-namespaceURI">namespace URI</a> as used in [<cite><a class="noxref normative" href="#references-DOMCore">DOM Level 3 Core</a></cite>]. All events defined in this specification are in the <code>null</code> namespace.</p>
<div class="div3">
- <h3 id="events-Events-eventgroupings-mouseevents" class="div3">5.2.3 Mouse Event Types</h3>
- <p>This module defines the feature MouseEvents 3.0 and depends on the feature UIEvents 3.0.</p>
- <p>The Mouse event module originates from the [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] <code>onclick</code>, <code>ondblclick</code>, <code>onmousedown</code>, <code>onmouseup</code>, <code>onmouseover</code>, <code>onmousemove</code>, and <code>onmouseout</code> attributes. This event module is specifically designed for use with pointing input devices, such as a mouse or a trackball.</p>
+ <h4 id="event-types-list" class="div3">5.1.1 List of DOM3 Event Types</h4>
+ <p>Depending on the level of DOM support, or the devices used for display (e.g. screen) or interaction (e.g., mouse, keyboard, touch screen, or voice), these event types can be generated by the implementation. When used with an [<cite><a class="noxref informative" href="#references-XML">XML 1.0</a></cite>] or [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] application, the specifications of those languages may restrict the semantics and scope (in particular the possible target nodes) associated with an event type. Refer to the specification defining the language used in order to find those restrictions or to find event types that are not defined in this document.</p>
+ <p>The following table provides a non-normative summary of the event types defined in this specification. All event types are in no namespace and this specification refers to them by their local name only. All events must accomplish the capture and target phases, but not all of them must accomplish the bubbling phase (see also <a href="#event-flow">Event dispatch and DOM event flow</a>). Some events are not <a href="#events-dt-cancelable-event">cancelable</a> (see <a href="#event-flow-cancelation">Default actions and cancelable events</a>). Some events must only be dispatched to a specific set of possible targets in the DOM event flow, specified using node types. Contextual information related to the event type must be accessible using DOM interfaces.</p>
+ <table border="1" cellpadding="2" cellspacing="0" summary="This table contains the complete list of 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>type</th>
+ <th>Bubbling phase</th>
+ <th>Cancelable</th>
+ <th>Target node types</th>
+ <th>DOM interface</th>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-abort">abort</a>
+ </td>
+ <td>Yes</td>
+ <td>No</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-Event">
+ <code>Event</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-blur">blur</a>
+ </td>
+ <td>No</td>
+ <td>No</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-UIEvent">
+ <code>UIEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-change">change</a>
+ </td>
+ <td>Yes</td>
+ <td>No</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-Event">
+ <code>Event</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-click">click</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-MouseEvent">
+ <code>MouseEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-compositionstart">compositionstart</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-CompositionEvent">
+ <code>CompositionEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-compositionupdate">compositionupdate</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-CompositionEvent">
+ <code>CompositionEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-compositionend">compositionend</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-CompositionEvent">
+ <code>CompositionEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-dblclick">dblclick</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-MouseEvent">
+ <code>MouseEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-DOMActivate">DOMActivate</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-UIEvent">
+ <code>UIEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-DOMAttributeNameChanged">DOMAttributeNameChanged</a>
+ </td>
+ <td>Yes</td>
+ <td>No</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-MutationNameEvent">
+ <code>MutationNameEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-DOMAttrModified">DOMAttrModified</a>
+ </td>
+ <td>Yes</td>
+ <td>No</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-MutationEvent">
+ <code>MutationEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-DOMCharacterDataModified">DOMCharacterDataModified</a>
+ </td>
+ <td>Yes</td>
+ <td>No</td>
+ <td><code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>ProcessingInstruction</code></td>
+ <td>
+ <a href="#events-Events-MutationEvent">
+ <code>MutationEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-DOMElementNameChanged">DOMElementNameChanged</a>
+ </td>
+ <td>Yes</td>
+ <td>No</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-MutationNameEvent">
+ <code>MutationNameEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-DOMFocusIn">DOMFocusIn</a>
+ </td>
+ <td>Yes</td>
+ <td>No</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-UIEvent">
+ <code>UIEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-DOMFocusOut">DOMFocusOut</a>
+ </td>
+ <td>Yes</td>
+ <td>No</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-UIEvent">
+ <code>UIEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-DOMNodeInserted">DOMNodeInserted</a>
+ </td>
+ <td>Yes</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="#events-Events-MutationEvent">
+ <code>MutationEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-DOMNodeInsertedIntoDocument">DOMNodeInsertedIntoDocument</a>
+ </td>
+ <td>No</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="#events-Events-MutationEvent">
+ <code>MutationEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-DOMNodeRemoved">DOMNodeRemoved</a>
+ </td>
+ <td>Yes</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="#events-Events-MutationEvent">
+ <code>MutationEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-DOMNodeRemovedFromDocument">DOMNodeRemovedFromDocument</a>
+ </td>
+ <td>No</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="#events-Events-MutationEvent">
+ <code>MutationEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-DOMSubtreeModified">DOMSubtreeModified</a>
+ </td>
+ <td>Yes</td>
+ <td>No</td>
+ <td><code>Document</code>, <code>DocumentFragment</code>, <code>Element</code>, <code>Attr</code></td>
+ <td>
+ <a href="#events-Events-MutationEvent">
+ <code>MutationEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-error">error</a>
+ </td>
+ <td>Yes</td>
+ <td>No</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-Event">
+ <code>Event</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-focus">focus</a>
+ </td>
+ <td>No</td>
+ <td>No</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-UIEvent">
+ <code>UIEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-focusin">focusin</a>
+ </td>
+ <td>Yes</td>
+ <td>No</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-UIEvent">
+ <code>UIEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-focusout">focusout</a>
+ </td>
+ <td>Yes</td>
+ <td>No</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-UIEvent">
+ <code>UIEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-keydown">keydown</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-KeyboardEvent">
+ <code>KeyboardEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-keypress">keypress</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-KeyboardEvent">
+ <code>KeyboardEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-keyup">keyup</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-KeyboardEvent">
+ <code>KeyboardEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-load">load</a>
+ </td>
+ <td>No</td>
+ <td>No</td>
+ <td><code>Document</code>, <code>Element</code></td>
+ <td>
+ <a href="#events-Events-Event">
+ <code>Event</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-mousedown">mousedown</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-MouseEvent">
+ <code>MouseEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-mouseenter">mouseenter</a>
+ </td>
+ <td>No</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-MouseEvent">
+ <code>MouseEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-mouseleave">mouseleave</a>
+ </td>
+ <td>No</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-MouseEvent">
+ <code>MouseEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-mousemove">mousemove</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-MouseEvent">
+ <code>MouseEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-mouseout">mouseout</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-MouseEvent">
+ <code>MouseEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-mouseover">mouseover</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-MouseEvent">
+ <code>MouseEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-mouseup">mouseup</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-MouseEvent">
+ <code>MouseEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-mousewheel">mousewheel</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td><code>Document</code>, <code>Element</code></td>
+ <td>
+ <a href="#events-Events-MouseWheelEvent">
+ <code>MouseWheelEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-reset">reset</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-Event">
+ <code>Event</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-resize">resize</a>
+ </td>
+ <td>Yes</td>
+ <td>No</td>
+ <td><code>Document</code>, <code>Element</code></td>
+ <td>
+ <a href="#events-Events-UIEvent">
+ <code>UIEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-scroll">scroll</a>
+ </td>
+ <td>No</td>
+ <td>No</td>
+ <td><code>Document</code>, <code>Element</code></td>
+ <td>
+ <a href="#events-Events-UIEvent">
+ <code>UIEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-select">select</a>
+ </td>
+ <td>Yes</td>
+ <td>No</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-Event">
+ <code>Event</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-submit">submit</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-Event">
+ <code>Event</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-textInput">textInput</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td>
+ <code>Element</code>
+ </td>
+ <td>
+ <a href="#events-Events-TextEvent">
+ <code>TextEvent</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-unload">unload</a>
+ </td>
+ <td>No</td>
+ <td>No</td>
+ <td><code>Document</code>, <code>Element</code></td>
+ <td>
+ <a href="#events-Events-Event">
+ <code>Event</code>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <a href="#event-type-wheel">wheel</a>
+ </td>
+ <td>Yes</td>
+ <td>Yes</td>
+ <td><code>Document</code>, <code>Element</code></td>
+ <td>
+ <a href="#events-Events-WheelEvent">
+ <code>WheelEvent</code>
+ </a>
+ </td>
+ </tr>
+ </table>
+ <p>As an example, the event <a href="#event-type-load">load</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 href="#event-type-load">load</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>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 -->
+ </div>
+<!-- div2 Events-definitions -->
+ <div class="div2">
+ <h2 id="event-definitions" class="div2">5.2 Event Module Definitions</h2>
+ <p>The DOM Event Model allows a DOM implementation to support multiple modules of events. The model has been designed to allow addition of new event modules if required. This document does not attempt to define all possible events. For purposes of interoperability, the DOM defines a module of user interface events including lower level device dependent events and a module of document mutation events.</p>
+ <div class="div3">
+ <h3 id="events-uievents" class="div3">5.2.1 User Interface Event Types</h3>
+ <p>This module defines the feature UIEvents 3.0 and depends on the features Events 3.0 and Views 2.0.</p>
+ <p>The User Interface event module contains basic event types associated with user interfaces.</p>
<dl>
- <dt><strong>Interface <em>
- <a id="events-Events-MouseEvent">MouseEvent</a>
- </em></strong> (introduced in <strong class="since">DOM Level 2</strong>)</dt>
+ <dt><strong>Interface <em><a id="events-Events-UIEvent">UIEvent</a></em></strong> (introduced in <strong class="since">DOM Level 2</strong>)</dt>
<dd>
- <p>The <code>MouseEvent</code> interface provides specific contextual information associated with Mouse events.</p>
- <p>In the case of nested elements mouse events are always targeted at the most deeply nested element. Ancestors of the targeted element may use bubbling to obtain notification of mouse events which occur within their descendent elements.</p>
- <p>To create an instance of the <code>MouseEvent</code> interface, use the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("MouseEvent")</code></a> method call.</p>
- <p class="note"><strong>Note:</strong> When initializing <code>MouseEvent</code> objects using <code>initMouseEvent</code> or <code>initMouseEventNS</code>, implementations should use the client coordinates <code>clientX</code> and <code>clientY</code> for calculation of other coordinates (such as target coordinates exposed by <a href="#glossary-dt-DOM-Level-0">DOM Level 0</a> implementations).</p>
+ <p>The <code>UIEvent</code> interface provides specific contextual information associated with User Interface events.</p>
+ <p>To create an instance of the <code>UIEvent</code> interface, use the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("UIEvent")</code></a> method call.</p>
<dl>
<dt>
- <br/>
+ <br />
<strong>IDL Definition</strong>
</dt>
<dd>
<div class="idl-code">
<pre>
// Introduced in DOM Level 2:
- interface <a class="noxref" href="#events-Events-MouseEvent">MouseEvent</a> : <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> {
- readonly attribute long <a class="noxref" href="#events-Events-MouseEvent-screenX">screenX</a>;
- readonly attribute long <a class="noxref" href="#events-Events-MouseEvent-screenY">screenY</a>;
- readonly attribute long <a class="noxref" href="#events-Events-MouseEvent-clientX">clientX</a>;
- readonly attribute long <a class="noxref" href="#events-Events-MouseEvent-clientY">clientY</a>;
- readonly attribute boolean <a class="noxref" href="#events-Events-MouseEvent-ctrlKey">ctrlKey</a>;
- readonly attribute boolean <a class="noxref" href="#events-Events-MouseEvent-shiftKey">shiftKey</a>;
- readonly attribute boolean <a class="noxref" href="#events-Events-MouseEvent-altKey">altKey</a>;
- readonly attribute boolean <a class="noxref" href="#events-Events-MouseEvent-metaKey">metaKey</a>;
- readonly attribute unsigned short <a class="noxref" href="#events-Events-MouseEvent-button">button</a>;
- readonly attribute <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> <a class="noxref" href="#events-Events-MouseEvent-relatedTarget">relatedTarget</a>;
- void <a class="noxref" href="#events-Events-Event-initMouseEvent">initMouseEvent</a>(in DOMString typeArg,
+ interface <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> : <a class="noxref" href="#events-Events-Event">Event</a> {
+ readonly attribute views::AbstractView <a class="noxref" href="#events-Events-UIEvent-view">view</a>;
+ readonly attribute long <a class="noxref" href="#events-Events-UIEvent-detail">detail</a>;
+ void <a class="noxref" href="#events-event-type-initUIEvent">initUIEvent</a>(in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in long detailArg);
+ // Introduced in DOM Level 3:
+ void <a class="noxref" href="#events-event-type-initUIEventNS">initUIEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in long detailArg);
+ };
+ </pre>
+ </div>
+ <br />
+ </dd>
+ <dt>
+ <strong>Attributes</strong>
+ </dt>
+ <dd>
+ <dl>
+ <dt><code class="attribute-name"><a id="events-Events-UIEvent-detail">detail</a></code> of type <code>long</code>, readonly</dt>
+ <dd>Specifies some detail information about the <a href="#events-Events-Event"><code>Event</code></a>, depending on the type of event.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-UIEvent-view">view</a></code> of type <code>views::AbstractView</code>, readonly</dt>
+ <dd>The <code>view</code> attribute identifies the <code>AbstractView</code> from which the event was generated.<br /></dd>
+ </dl>
+ </dd>
+ <dt>
+ <strong>Methods</strong>
+ </dt>
+ <dd>
+ <dl>
+ <dt>
+ <code class="method-name">
+ <a id="events-event-type-initUIEvent">initUIEvent</a>
+ </code>
+ </dt>
+ <dd>
+ <div class="method">Initializes attributes of an <code>UIEvent</code> object. This method has the same behavior as <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a>.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt><dd>Specifies <a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a>. This value may be <code>null</code>.<br /></dd><dt><code class="parameter-name">detailArg</code> of type <code>long</code></dt><dd>Specifies <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a>.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ <dt><code class="method-name"><a id="events-event-type-initUIEventNS">initUIEventNS</a></code> introduced in <strong class="since">DOM Level 3</strong></dt>
+ <dd>
+ <div class="method">Initializes attributes of an <code>UIEvent</code> object. This method has the same behavior as <a href="#events-event-type-initEventNS"><code>Event.initEventNS()</code></a>.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">detailArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+ </dl>
+ <p>The User Interface event types are listed below.</p>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-DOMActivate">
+ <a class="noxref" href="#event-type-DOMActivate">DOMActivate</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 bgcolor="#CFCFCF"><strong><code>DOMActivate</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></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>
+ Refer to <a href="#event-flow-activation">Activation requests and behavior</a>.</dd>
+ </dl>
+ </div>
+<!-- DOMFocusIn -->
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-DOMFocusIn">
+ <a class="noxref" href="#event-type-DOMFocusIn">DOMFocusIn</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 bgcolor="#CFCFCF"><strong><code>DOMFocusIn</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></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>
+ An <a href="#glossary-event-target">event target</a> receives focus. The focus shall be given to the element before the dispatch of this event type. This event type shall be dispatched after the event type <a href="#event-type-focus">focus</a>. This event type is deprecated in favor of the equivalent event type <a class="noxref" href="#event-type-focusin">focusin</a>.</dd>
+ </dl>
+ </div>
+<!-- DOMFocusOut -->
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-DOMFocusOut">
+ <a class="noxref" href="#event-type-DOMFocusOut">DOMFocusOut</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 bgcolor="#CFCFCF"><strong><code>DOMFocusOut</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></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>
+ An <a href="#glossary-event-target">event target</a> loses focus. The focus shall be taken from the element before the dispatch of this event type. This event type shall be dispatched after the event type <a href="#event-type-blur">blur</a>. This event type is deprecated in favor of the equivalent event type <a class="noxref" href="#event-type-focusout">focusout</a>.</dd>
+ </dl>
+ </div>
+<!-- focus -->
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-focus">
+ <a class="noxref" href="#event-type-focus">focus</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 bgcolor="#CFCFCF"><strong><code>focus</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>No</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></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>
+ An <a href="#glossary-event-target">event target</a> receives focus. The focus shall be given to the element before the dispatch of this event type.</dd>
+ </dl>
+ </div>
+<!-- focusin -->
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-focusin">
+ <a class="noxref" href="#event-type-DOMFocusIn">focusin</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 bgcolor="#CFCFCF"><strong><code>DOMFocusIn</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></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>
+ An <a href="#glossary-event-target">event target</a> receives focus. The focus shall be given to the element before the dispatch of this event type. This event type shall be dispatched after the event type <a href="#event-type-focus">focus</a>. This event type is similar to <a href="#event-type-focus">focus</a>, but it must include the <a href="#glossary-bubbling-phase">bubbling phase</a>.</dd>
+ </dl>
+ </div>
+<!-- focusout -->
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-focusout">
+ <a class="noxref" href="#event-type-DOMFocusOut">focusout</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 bgcolor="#CFCFCF"><strong><code>DOMFocusOut</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></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>
+ An <a href="#glossary-event-target">event target</a> loses focus. The focus shall be taken from the element before the dispatch of this event type. This event type shall be dispatched after the event type <a href="#event-type-blur">blur</a>. This event type is similar to <a href="#event-type-blur">blur</a>, but it must include the <a href="#glossary-bubbling-phase">bubbling phase</a>.</dd>
+ </dl>
+ </div>
+<!-- blur -->
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-blur">
+ <a class="noxref" href="#event-type-blur">blur</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 bgcolor="#CFCFCF"><strong><code>blur</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>No</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></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>
+ An <a href="#glossary-event-target">event target</a> loses focus. The focus shall be taken from the element before the dispatch of this event type.</dd>
+ </dl>
+ </div>
+ </div>
+<!-- div3 Events-eventgroupings-basicevents -->
+ <div class="div3">
+ <h3 class="div3" id="events-basicevents">5.2.2 Basic Event Types</h3>
+ <p>This event module contains basic event types associated with document manipulation. It defines the feature BasicEvents 3.0 and depends on the feature Events 3.0. The basic event types are listed below.</p>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-load">
+ <a class="noxref" href="#event-type-load">load</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 bgcolor="#CFCFCF"><strong><code>load</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</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>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> may be in use.</td></tr></table>
+ 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.</dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-unload">
+ <a class="noxref" href="#event-type-unload">unload</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 bgcolor="#CFCFCF"><strong><code>unload</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</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>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> may be in use.</td></tr></table>
+ 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>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-abort">
+ <a class="noxref" href="#event-type-abort">abort</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 bgcolor="#CFCFCF"><strong><code>abort</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></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>
+ Loading of a resource has been aborted.</dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-error">
+ <a class="noxref" href="#event-type-error">error</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 bgcolor="#CFCFCF"><strong><code>error</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></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 resource failed to load, or has been loaded but cannot be interpreted according to its semantics such as an invalid image, a script execution error, or non-well-formed XML.</dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-select">
+ <a class="noxref" href="#event-type-select">select</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 bgcolor="#CFCFCF"><strong><code>select</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></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 user selects some text. DOM Level 3 Events does not provide contextual information to access the selected text. The selection occurred before the dispatch of this event type.</dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-change">
+ <a class="noxref" href="#event-type-change">change</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 bgcolor="#CFCFCF"><strong><code>change</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></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 control loses the input focus and its value has been modified since gaining focus. This event type shall be dispatched before the event type <a href="#event-type-blur">blur</a>.</dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-submit">
+ <a class="noxref" href="#event-type-submit">submit</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 bgcolor="#CFCFCF"><strong><code>submit</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></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 form, such as a [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] or [<cite><a class="noxref informative" href="#references-XHTML10">XHTML 1.0</a></cite>] form, is submitted.</dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-reset">
+ <a class="noxref" href="#event-type-reset">reset</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 bgcolor="#CFCFCF"><strong><code>reset</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></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 form, such as a [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] or [<cite><a class="noxref informative" href="#references-XHTML10">XHTML 1.0</a></cite>] form, is reset.</dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-resize">
+ <a class="noxref" href="#event-type-resize">resize</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 bgcolor="#CFCFCF"><strong><code>resize</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</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>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> is in use.</td></tr></table>
+ A document view or an element has been resized. The resize occurred before the dispatch of this event type.</dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-scroll">
+ <a class="noxref" href="#event-type-scroll">scroll</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 bgcolor="#CFCFCF"><strong><code>scroll</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</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>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> is in use.</td></tr></table>
+ A document view or an element has been scrolled. The scroll occurred before the dispatch of this event type.</dd>
+ </dl>
+ </div>
+ </div>
+<!-- div3 Events-eventgroupings-basicevents -->
+ </div>
+<!-- div3 Events-KeyboardEvents-Interfaces -->
+ <div class="div3">
+ <h3 id="events-mouseevents" class="div3">5.2.3 Mouse Event Types</h3>
+ <p>This module defines the feature MouseEvents 3.0 and depends on the feature UIEvents 3.0.</p>
+ <p>The Mouse event module originates from the [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] <code>onclick</code>, <code>ondblclick</code>, <code>onmousedown</code>, <code>onmouseup</code>, <code>onmouseover</code>, <code>onmousemove</code>, and <code>onmouseout</code> attributes. This event module is specifically designed for use with pointing input devices, such as a mouse or a trackball.</p>
+ <dl>
+ <dt><strong>Interface <em><a id="events-Events-MouseEvent">MouseEvent</a></em></strong> (introduced in <strong class="since">DOM Level 2</strong>)</dt>
+ <dd>
+ <p>The <code>MouseEvent</code> interface provides specific contextual information associated with Mouse events.</p>
+ <p>In the case of nested elements mouse events are always targeted at the most deeply nested element. Ancestors of the targeted element may use bubbling to obtain notification of mouse events which occur within their descendent elements.</p>
+ <p>To create an instance of the <code>MouseEvent</code> interface, use the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("MouseEvent")</code></a> method call.</p>
+ <p class="note"><strong>Note:</strong> When initializing <code>MouseEvent</code> objects using <code>initMouseEvent</code> or <code>initMouseEventNS</code>, implementations should use the client coordinates <code>clientX</code> and <code>clientY</code> for calculation of other coordinates (such as target coordinates exposed by <a href="#glossary-DOM-Level-0">DOM Level 0</a> implementations).</p>
+ <dl>
+ <dt>
+ <br />
+ <strong>IDL Definition</strong>
+ </dt>
+ <dd>
+ <div class="idl-code">
+ <pre>
+ // Introduced in DOM Level 2:
+ interface <a class="noxref" href="#events-Events-MouseEvent">MouseEvent</a> : <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> {
+ readonly attribute long <a class="noxref" href="#events-Events-MouseEvent-screenX">screenX</a>;
+ readonly attribute long <a class="noxref" href="#events-Events-MouseEvent-screenY">screenY</a>;
+ readonly attribute long <a class="noxref" href="#events-Events-MouseEvent-clientX">clientX</a>;
+ readonly attribute long <a class="noxref" href="#events-Events-MouseEvent-clientY">clientY</a>;
+ readonly attribute boolean <a class="noxref" href="#events-Events-MouseEvent-ctrlKey">ctrlKey</a>;
+ readonly attribute boolean <a class="noxref" href="#events-Events-MouseEvent-shiftKey">shiftKey</a>;
+ readonly attribute boolean <a class="noxref" href="#events-Events-MouseEvent-altKey">altKey</a>;
+ readonly attribute boolean <a class="noxref" href="#events-Events-MouseEvent-metaKey">metaKey</a>;
+ readonly attribute unsigned short <a class="noxref" href="#events-Events-MouseEvent-button">button</a>;
+ readonly attribute <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> <a class="noxref" href="#events-Events-MouseEvent-relatedTarget">relatedTarget</a>;
+ void <a class="noxref" href="#events-event-type-initMouseEvent">initMouseEvent</a>(in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in long detailArg,
+ in long screenXArg,
+ in long screenYArg,
+ in long clientXArg,
+ in long clientYArg,
+ in boolean ctrlKeyArg,
+ in boolean altKeyArg,
+ in boolean shiftKeyArg,
+ in boolean metaKeyArg,
+ in unsigned short buttonArg,
+ in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg);
+ // Introduced in DOM Level 3:
+ boolean <a class="noxref" href="#events-Events-MouseEvent-getModifierState">getModifierState</a>(in DOMString keyIdentifierArg);
+ // Introduced in DOM Level 3:
+ void <a class="noxref" href="#events-event-type-initMouseEventNS">initMouseEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString typeArg,
in boolean canBubbleArg,
in boolean cancelableArg,
in views::AbstractView viewArg,
@@ -2641,246 +2113,96 @@
in long screenYArg,
in long clientXArg,
in long clientYArg,
- in boolean ctrlKeyArg,
- in boolean altKeyArg,
- in boolean shiftKeyArg,
- in boolean metaKeyArg,
in unsigned short buttonArg,
- in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg);
- // Introduced in DOM Level 3:
- boolean <a class="noxref" href="#events-Events-MouseEvent-getModifierState">getModifierState</a>(in DOMString keyIdentifierArg);
- // Introduced in DOM Level 3:
- void <a class="noxref" href="#events-Events-Event-initMouseEventNS">initMouseEventNS</a>(in DOMString namespaceURIArg,
- in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in long detailArg,
- in long screenXArg,
- in long screenYArg,
- in long clientXArg,
- in long clientYArg,
- in unsigned short buttonArg,
- in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
- in DOMString modifiersListArg);
- };
- </pre>
- </div>
- <br/>
- </dd>
- <dt>
- <strong>Attributes</strong>
- </dt>
- <dd>
- <dl>
- <dt><code class="attribute-name">
- <a id="events-Events-MouseEvent-altKey">altKey</a>
- </code> of type <code>boolean</code>, readonly</dt>
- <dd>Refer to the <a href="#events-Events-KeyboardEvent-altKey"><code>KeyboardEvent.altKey</code></a> attribute.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-MouseEvent-button">button</a>
- </code> of type <code>unsigned short</code>, readonly</dt>
- <dd>During mouse events caused by the depression or release of a mouse button, <code>button</code> shall be used to indicate which mouse button changed state. <code>0</code> indicates the normal button of the mouse (in general on the left or the one button on Macintosh mice, used to activate a button or select text). <code>2</code> indicates the contextual property (in general on the right, used to display a context menu) button of the mouse if present. <code>1</code> indicates the extra (in general in the middle and often combined with the mouse wheel) button. Some mice may provide or simulate more buttons, and values higher than <code>2</code> can be used to represent such buttons.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-MouseEvent-clientX">clientX</a>
- </code> of type <code>long</code>, readonly</dt>
- <dd>The horizontal coordinate at which the event occurred relative to the viewport associated with the event.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-MouseEvent-clientY">clientY</a>
- </code> of type <code>long</code>, readonly</dt>
- <dd>The vertical coordinate at which the event occurred relative to the viewport associated with the event.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-MouseEvent-ctrlKey">ctrlKey</a>
- </code> of type <code>boolean</code>, readonly</dt>
- <dd>Refer to the <a href="#events-Events-KeyboardEvent-ctrlKey"><code>KeyboardEvent.ctrlKey</code></a> attribute.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-MouseEvent-metaKey">metaKey</a>
- </code> of type <code>boolean</code>, readonly</dt>
- <dd>Refer to the <a href="#events-Events-KeyboardEvent-metaKey"><code>KeyboardEvent.metaKey</code></a> attribute.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-MouseEvent-relatedTarget">relatedTarget</a>
- </code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a>, readonly</dt>
- <dd>Used to identify a secondary <a href="#events-Events-EventTarget"><code>EventTarget</code></a> related to a UI event, depending on the type of event.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-MouseEvent-screenX">screenX</a>
- </code> of type <code>long</code>, readonly</dt>
- <dd>The horizontal coordinate at which the event occurred relative to the origin of the screen coordinate system.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-MouseEvent-screenY">screenY</a>
- </code> of type <code>long</code>, readonly</dt>
- <dd>The vertical coordinate at which the event occurred relative to the origin of the screen coordinate system.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-MouseEvent-shiftKey">shiftKey</a>
- </code> of type <code>boolean</code>, readonly</dt>
- <dd>Refer to the <a href="#events-Events-KeyboardEvent-shiftKey"><code>KeyboardEvent.shiftKey</code></a> attribute.<br/></dd>
- </dl>
- </dd>
- <dt>
- <strong>Methods</strong>
- </dt>
- <dd>
- <dl>
- <dt><code class="method-name">
- <a id="events-Events-MouseEvent-getModifierState">getModifierState</a>
- </code> introduced in <strong class="since">DOM Level 3</strong></dt>
- <dd>
- <div class="method">Queries the state of a modifier using a key identifier. See also <a href="#keyset-Modifiers">Modifier keys</a>.
- <div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">keyIdentifierArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-KeyboardEvent-getModifierState"><code>KeyboardEvent.getModifierState()</code></a> method for a description of this parameter.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div class="return">
- <strong>Return Value</strong>
- <div class="returntable">
- <table
- summary="Layout table: the first cell contains the type of the return value, the second contains a short description"
- border="0">
- <tr class="assert must">
- <td>
- <p><code>boolean</code>
- </p>
- </td>
- <td>
- <p><code>true</code> if it is a modifier key and the modifier is activated, <code>false</code> otherwise.</p>
- </td>
- </tr>
- </table>
- </div>
- </div>
- <!-- return -->
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
- <dt><code class="method-name">
- <a id="events-Events-Event-initMouseEvent">initMouseEvent</a>
- </code>
- </dt>
- <dd>
- <div class="method">Initializes attributes of a <code>MouseEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a>.
- <div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">detailArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">screenXArg</code> of type <code>long</code></dt>
- <dd>Specifies <a href="#events-Events-MouseEvent-screenX"><code>MouseEvent.screenX</code></a>.<br/></dd>
- <dt><code class="parameter-name">screenYArg</code> of type <code>long</code></dt>
- <dd>Specifies <a href="#events-Events-MouseEvent-screenY"><code>MouseEvent.screenY</code></a>.<br/></dd>
- <dt><code class="parameter-name">clientXArg</code> of type <code>long</code></dt>
- <dd>Specifies <a href="#events-Events-MouseEvent-clientX"><code>MouseEvent.clientX</code></a>.<br/></dd>
- <dt><code class="parameter-name">clientYArg</code> of type <code>long</code></dt>
- <dd>Specifies <a href="#events-Events-MouseEvent-clientY"><code>MouseEvent.clientY</code></a>.<br/></dd>
- <dt><code class="parameter-name">ctrlKeyArg</code> of type <code>boolean</code></dt>
- <dd>Specifies <a href="#events-Events-MouseEvent-ctrlKey"><code>MouseEvent.ctrlKey</code></a>.<br/></dd>
- <dt><code class="parameter-name">altKeyArg</code> of type <code>boolean</code></dt>
- <dd>Specifies <a href="#events-Events-MouseEvent-altKey"><code>MouseEvent.altKey</code></a>.<br/></dd>
- <dt><code class="parameter-name">shiftKeyArg</code> of type <code>boolean</code></dt>
- <dd>Specifies <a href="#events-Events-MouseEvent-shiftKey"><code>MouseEvent.shiftKey</code></a>.<br/></dd>
- <dt><code class="parameter-name">metaKeyArg</code> of type <code>boolean</code></dt>
- <dd>Specifies <a href="#events-Events-MouseEvent-metaKey"><code>MouseEvent.metaKey</code></a>.<br/></dd>
- <dt><code class="parameter-name">buttonArg</code> of type <code>unsigned short</code></dt>
- <dd>Specifies <a href="#events-Events-MouseEvent-button"><code>MouseEvent.button</code></a>.<br/></dd>
- <dt><code class="parameter-name">relatedTargetArg</code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a></dt>
- <dd>Specifies <a href="#events-Events-MouseEvent-relatedTarget"><code>MouseEvent.relatedTarget</code></a>. This value may be <code>null</code>.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
- <dt><code class="method-name">
- <a id="events-Events-Event-initMouseEventNS">initMouseEventNS</a>
- </code> introduced in <strong class="since">DOM Level 3</strong></dt>
- <dd>
- <div class="method">Initializes attributes of a <code>MouseEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a>.
- <div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">detailArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">screenXArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEvent"><code>MouseEvent.initMouseEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">screenYArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEvent"><code>MouseEvent.initMouseEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">clientXArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEvent"><code>MouseEvent.initMouseEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">clientYArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEvent"><code>MouseEvent.initMouseEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">buttonArg</code> of type <code>unsigned short</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEvent"><code>MouseEvent.initMouseEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">relatedTargetArg</code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEvent"><code>MouseEvent.initMouseEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">modifiersListArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-KeyboardEvent-initKeyboardEventNS"><code>KeyboardEvent.initKeyboardEventNS()</code></a> method for a description of this parameter.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
- </dl>
- </dd>
- </dl>
- </dd>
- </dl>
- <p>The Mouse event types are listed below. In the case of nested elements, mouse event types are always targeted at the most deeply nested element. Ancestors of the targeted element may use bubbling to obtain notification of mouse events which occur within its descendent elements.</p>
- <p id="events-dt-current-click-count">Implementations must maintain the <em>current click count</em> when generating mouse events. This shall be a non-negative integer indicating the number of consecutive clicks of a pointing device button during a user action. The notion of consecutive clicks depends on the environment configuration. For example, a <code><a href="#events-event-dblclick">dblclick</a></code> event type might not happen if there is a long delay between the two clicks.
- <span class="note"><strong>Note:</strong> The value of <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> for a number of clicks greater than 2 is platform-dependent. For example, on the Windows OS, the click-count series seems to be <code>1, 2, 3, 2, 3</code>, while on MacOS, the click-count series seems to be <code>1, 2, 3, 4, 5, ...</code>.</span></p>
-
-
- <!-- click -->
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-click">
- <a class="noxref" href="#events-event-click">click</a>
+ in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
+ in DOMString modifiersListArg);
+ };
+ </pre>
+ </div>
+ <br />
+ </dd>
+ <dt>
+ <strong>Attributes</strong>
</dt>
<dd>
- <p>
- <!-- <a href="#glossary-dt-topmost-event-target">topmost event target</a> -->
- <!-- || Are you asking for the spec to say something along the lines of, "The
+ <dl>
+ <dt><code class="attribute-name"><a id="events-Events-MouseEvent-altKey">altKey</a></code> of type <code>boolean</code>, readonly</dt>
+ <dd>Refer to the <a href="#events-Events-KeyboardEvent-altKey"><code>KeyboardEvent.altKey</code></a> attribute.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-MouseEvent-button">button</a></code> of type <code>unsigned short</code>, readonly</dt>
+ <dd>During mouse events caused by the depression or release of a mouse button, <code>button</code> shall be used to indicate which mouse button changed state. <code>0</code> indicates the normal button of the mouse (in general on the left or the one button on Macintosh mice, used to activate a button or select text). <code>2</code> indicates the contextual property (in general on the right, used to display a context menu) button of the mouse if present. <code>1</code> indicates the extra (in general in the middle and often combined with the mouse wheel) button. Some mice may provide or simulate more buttons, and values higher than <code>2</code> can be used to represent such buttons.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-MouseEvent-clientX">clientX</a></code> of type <code>long</code>, readonly</dt>
+ <dd>The horizontal coordinate at which the event occurred relative to the viewport associated with the event.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-MouseEvent-clientY">clientY</a></code> of type <code>long</code>, readonly</dt>
+ <dd>The vertical coordinate at which the event occurred relative to the viewport associated with the event.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-MouseEvent-ctrlKey">ctrlKey</a></code> of type <code>boolean</code>, readonly</dt>
+ <dd>Refer to the <a href="#events-Events-KeyboardEvent-ctrlKey"><code>KeyboardEvent.ctrlKey</code></a> attribute.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-MouseEvent-metaKey">metaKey</a></code> of type <code>boolean</code>, readonly</dt>
+ <dd>Refer to the <a href="#events-Events-KeyboardEvent-metaKey"><code>KeyboardEvent.metaKey</code></a> attribute.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-MouseEvent-relatedTarget">relatedTarget</a></code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a>, readonly</dt>
+ <dd>Used to identify a secondary <a href="#events-Events-EventTarget"><code>EventTarget</code></a> related to a UI event, depending on the type of event.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-MouseEvent-screenX">screenX</a></code> of type <code>long</code>, readonly</dt>
+ <dd>The horizontal coordinate at which the event occurred relative to the origin of the screen coordinate system.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-MouseEvent-screenY">screenY</a></code> of type <code>long</code>, readonly</dt>
+ <dd>The vertical coordinate at which the event occurred relative to the origin of the screen coordinate system.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-MouseEvent-shiftKey">shiftKey</a></code> of type <code>boolean</code>, readonly</dt>
+ <dd>Refer to the <a href="#events-Events-KeyboardEvent-shiftKey"><code>KeyboardEvent.shiftKey</code></a> attribute.<br /></dd>
+ </dl>
+ </dd>
+ <dt>
+ <strong>Methods</strong>
+ </dt>
+ <dd>
+ <dl>
+ <dt><code class="method-name"><a id="events-Events-MouseEvent-getModifierState">getModifierState</a></code> introduced in <strong class="since">DOM Level 3</strong></dt>
+ <dd>
+ <div class="method">Queries the state of a modifier using a key identifier. See also <a href="#keyset-Modifiers">Modifier keys</a>.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">keyIdentifierArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-Events-KeyboardEvent-getModifierState"><code>KeyboardEvent.getModifierState()</code></a> method for a description of this parameter.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div class="return"><strong>Return Value</strong><div class="returntable"><table summary="Layout table: the first cell contains the type of the return value, the second contains a short description" border="0"><tr class="assert must"><td><p><code>boolean</code></p></td><td><p><code>true</code> if it is a modifier key and the modifier is activated, <code>false</code> otherwise.</p></td></tr></table></div></div>
+ <!-- return -->
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ <dt>
+ <code class="method-name">
+ <a id="events-event-type-initMouseEvent">initMouseEvent</a>
+ </code>
+ </dt>
+ <dd>
+ <div class="method">Initializes attributes of a <code>MouseEvent</code> object. This method has the same behavior as <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a>.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">detailArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">screenXArg</code> of type <code>long</code></dt><dd>Specifies <a href="#events-Events-MouseEvent-screenX"><code>MouseEvent.screenX</code></a>.<br /></dd><dt><code class="parameter-name">screenYArg</code> of type <code>long</code></dt><dd>Specifies <a href="#events-Events-MouseEvent-screenY"><code>MouseEvent.screenY</code></a>.<br /></dd><dt><code class="parameter-name">clientXArg</code> of type <code>long</code></dt><dd>Specifies <a href="#events-Events-MouseEvent-clientX"><code>MouseEvent.clientX</code></a>.<br /></dd><dt><code class="parameter-name">clientYArg</code> of type <code>long</code></dt><dd>Specifies <a href="#events-Events-MouseEvent-clientY"><code>MouseEvent.clientY</code></a>.<br /></dd><dt><code class="parameter-name">ctrlKeyArg</code> of type <code>boolean</code></dt><dd>Specifies <a href="#events-Events-MouseEvent-ctrlKey"><code>MouseEvent.ctrlKey</code></a>.<br /></dd><dt><code class="parameter-name">altKeyArg</code> of type <code>boolean</code></dt><dd>Specifies <a href="#events-Events-MouseEvent-altKey"><code>MouseEvent.altKey</code></a>.<br /></dd><dt><code class="parameter-name">shiftKeyArg</code> of type <code>boolean</code></dt><dd>Specifies <a href="#events-Events-MouseEvent-shiftKey"><code>MouseEvent.shiftKey</code></a>.<br /></dd><dt><code class="parameter-name">metaKeyArg</code> of type <code>boolean</code></dt><dd>Specifies <a href="#events-Events-MouseEvent-metaKey"><code>MouseEvent.metaKey</code></a>.<br /></dd><dt><code class="parameter-name">buttonArg</code> of type <code>unsigned short</code></dt><dd>Specifies <a href="#events-Events-MouseEvent-button"><code>MouseEvent.button</code></a>.<br /></dd><dt><code class="parameter-name">relatedTargetArg</code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a></dt><dd>Specifies <a href="#events-Events-MouseEvent-relatedTarget"><code>MouseEvent.relatedTarget</code></a>. This value may be <code>null</code>.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ <dt><code class="method-name"><a id="events-event-type-initMouseEventNS">initMouseEventNS</a></code> introduced in <strong class="since">DOM Level 3</strong></dt>
+ <dd>
+ <div class="method">Initializes attributes of a <code>MouseEvent</code> object. This method has the same behavior as <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a>.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">detailArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">screenXArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEvent"><code>MouseEvent.initMouseEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">screenYArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEvent"><code>MouseEvent.initMouseEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">clientXArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEvent"><code>MouseEvent.initMouseEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">clientYArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEvent"><code>MouseEvent.initMouseEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">buttonArg</code> of type <code>unsigned short</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEvent"><code>MouseEvent.initMouseEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">relatedTargetArg</code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a></dt><dd>Refer to the <a href="#events-event-type-initMouseEvent"><code>MouseEvent.initMouseEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">modifiersListArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-Events-KeyboardEvent-initKeyboardEventNS"><code>KeyboardEvent.initKeyboardEventNS()</code></a> method for a description of this parameter.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+ </dl>
+ <p>The Mouse event types are listed below. In the case of nested elements, mouse event types are always targeted at the most deeply nested element. Ancestors of the targeted element may use bubbling to obtain notification of mouse events which occur within its descendent elements.</p>
+ <p id="events-dt-current-click-count">Implementations must maintain the <em>current click count</em> when generating mouse events. This shall be a non-negative integer indicating the number of consecutive clicks of a pointing device button during a user action. The notion of consecutive clicks depends on the environment configuration. For example, a <code><a href="#event-type-dblclick">dblclick</a></code> event type might not happen if there is a long delay between the two clicks.
+ <span class="note"><strong>Note:</strong> The value of <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> for a number of clicks greater than 2 is platform-dependent. For example, on the Windows OS, the click-count series seems to be <code>1, 2, 3, 2, 3</code>, while on MacOS, the click-count series seems to be <code>1, 2, 3, 4, 5, ...</code>.</span></p>
+<!-- click -->
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-click">
+ <a class="noxref" href="#event-type-click">click</a>
+ </dt>
+ <dd><p><!-- <a href="#glossary-topmost-event-target">topmost event target</a> --><!-- || Are you asking for the spec to say something along the lines of, "The
|| 'click' event is fired when the user presses a button on the pointer
|| device, or otherwise activates the pointer in a manner that simulates
|| such an action." Or something more abstract (or more concrete)?
@@ -2891,745 +2213,499 @@
following values: [...]" followed by the default action being to fire
'mouseup' or 'click' or whatever, with the same detail for that, and also
with rules for how to handle mouseover, mouseenter, mouseleave, etc. Same
- for keyboards, mousewheels, etc. Basically any user interaction event. -->
-
-
- </p>
- <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 bgcolor="#CFCFCF"><strong><code>click</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><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>, <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>, <a href="#events-Events-MouseEvent-button"><code>MouseEvent.button</code></a>, and <a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> are in use. The <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> attribute indicates the <a href="#events-dt-current-click-count">current click count</a>. The attribute value shall be <code>1</code> when the user begins this action and increments by <code>1</code> for each click.</td>
- </tr>
- </table>
- <!-- A pointing device button is clicked over an element. The definition of a click depends on the environment configuration; i.e. it may depend on the screen location or the delay between the press and release of the pointing device button. In any case, the event target must be the same between the <a href="#events-event-mousedown">mousedown</a>, <a href="#events-event-mouseup">mouseup</a>, and <a href="#events-event-click">click</a>. The sequence of these events is: <a href="#events-event-mousedown">mousedown</a>, <a href="#events-event-mouseup">mouseup</a>, and <a href="#events-event-click">click</a>. It depends on the environment configuration whether the event type <a href="#events-event-click">click</a> can occur if one or more of the event types <a href="#events-event-mouseover">mouseover</a>, <a href="#events-event-mousemove">mousemove</a>, and <a href="#events-event-mouseout">mouseout</a> occur between the press and release of the pointing device button. In addition, the event type is dispatched as described in <a href="#events-Events-flow-activation">Activation requests and behavior</a>. -->
- The <a href="#events-event-click"><code>click</code></a> event must be dispatched on the <a href="#glossary-dt-topmost-event-target">topmost event target</a> indicated by the pointer, when the user presses down and releases the pointer button, or otherwise activates the pointer in a manner that simulates such an action. Activation of the button may depend upon the pointer device and the environment configuration, e.g. it may depend on the screen location or the delay between the press and release of the pointing device button. The <a href="#events-event-click"><code>click</code></a> event may be preceded by the <a href="#events-event-mousedown"><code>mousedown</code></a> and <a href="#events-event-mouseup"><code>mouseup</code></a> events on the same element. Depending upon the environment configuration, the <a href="#events-event-click"><code>click</code></a> event may be dispatched if one or more of the event types <a href="#events-event-mouseover"><code>mouseover</code></a>, <a href="#events-event-mousemove"><code>mousemove</code></a>, and <a href="#events-event-mouseout"><code>mouseout</code></a> occur between the press and release of the pointing device button. The <a href="#events-event-click"><code>click</code></a> event may also be followed by the <a href="#events-event-dblclick"><code>dblclick</code></a> event. The <a href="#events-event-click"><code>click</code></a> event type must be dispatched as described in <a href="#events-Events-flow-activation">Activation requests and behavior</a>.
+ for keyboards, mousewheels, etc. Basically any user interaction event. --></p><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 bgcolor="#CFCFCF"><strong><code>click</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><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>, <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>, <a href="#events-Events-MouseEvent-button"><code>MouseEvent.button</code></a>, and <a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> are in use. The <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> attribute indicates the <a href="#events-dt-current-click-count">current click count</a>. The attribute value shall be <code>1</code> when the user begins this action and increments by <code>1</code> for each click.</td></tr></table><!-- A pointing device button is clicked over an element. The definition of a click depends on the environment configuration; i.e. it may depend on the screen location or the delay between the press and release of the pointing device button. In any case, the event target must be the same between the <a href="#event-type-mousedown">mousedown</a>, <a href="#event-type-mouseup">mouseup</a>, and <a href="#event-type-click">click</a>. The sequence of these events is: <a href="#event-type-mousedown">mousedown</a>, <a href="#event-type-mouseup">mouseup</a>, and <a href="#event-type-click">click</a>. It depends on the environment configuration whether the event type <a href="#event-type-click">click</a> can occur if one or more of the event types <a href="#event-type-mouseover">mouseover</a>, <a href="#event-type-mousemove">mousemove</a>, and <a href="#event-type-mouseout">mouseout</a> occur between the press and release of the pointing device button. In addition, the event type is dispatched as described in <a href="#event-flow-activation">Activation requests and behavior</a>. -->
+ The <a href="#event-type-click"><code>click</code></a> event must be dispatched on the <a href="#glossary-topmost-event-target">topmost event target</a> indicated by the pointer, when the user presses down and releases the pointer button, or otherwise activates the pointer in a manner that simulates such an action. Activation of the button may depend upon the pointer device and the environment configuration, e.g. it may depend on the screen location or the delay between the press and release of the pointing device button. The <a href="#event-type-click"><code>click</code></a> event may be preceded by the <a href="#event-type-mousedown"><code>mousedown</code></a> and <a href="#event-type-mouseup"><code>mouseup</code></a> events on the same element. Depending upon the environment configuration, the <a href="#event-type-click"><code>click</code></a> event may be dispatched if one or more of the event types <a href="#event-type-mouseover"><code>mouseover</code></a>, <a href="#event-type-mousemove"><code>mousemove</code></a>, and <a href="#event-type-mouseout"><code>mouseout</code></a> occur between the press and release of the pointing device button. The <a href="#event-type-click"><code>click</code></a> event may also be followed by the <a href="#event-type-dblclick"><code>dblclick</code></a> event. The <a href="#event-type-click"><code>click</code></a> event type must be dispatched as described in <a href="#event-flow-activation">Activation requests and behavior</a>.
</dd>
- </dl>
- </div>
-
- <!-- dblclick -->
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-dblclick">
- <a class="noxref" href="#events-event-dblclick">dblclick</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 bgcolor="#CFCFCF"><strong><code>dblclick</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><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>, <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>, <a href="#events-Events-MouseEvent-button"><code>MouseEvent.button</code></a>, and <a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> are in use. The <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> attribute indicates the <a href="#events-dt-current-click-count">current click count</a>.</td>
- </tr>
- </table>
- A pointing device button is clicked twice over an element. The definition of a double click depends on the environment configuration, except that the event target must be the same between <a href="#events-event-mousedown">mousedown</a>, <a href="#events-event-mouseup">mouseup</a>, and <a href="#events-event-dblclick">dblclick</a>. This event type must be dispatched after the event type <a href="#events-event-click">click</a> if a click and double click occur simultaneously, and after the event type <a href="#events-event-mouseup">mouseup</a> otherwise.
- <p class="note"><strong>Note:</strong> Canceling the <a href="#events-event-click">click</a> event must not not affect the firing of a <a href="#events-event-dblclick">dblclick</a> event.</p>
- </dd>
- </dl>
- </div>
-
- <!-- mousedown -->
- <div class="event-definition assert must">
+ </dl>
+ </div>
+<!-- dblclick -->
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-dblclick">
+ <a class="noxref" href="#event-type-dblclick">dblclick</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 bgcolor="#CFCFCF"><strong><code>dblclick</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><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>, <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>, <a href="#events-Events-MouseEvent-button"><code>MouseEvent.button</code></a>, and <a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> are in use. The <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> attribute indicates the <a href="#events-dt-current-click-count">current click count</a>.</td></tr></table>
+ A pointing device button is clicked twice over an element. The definition of a double click depends on the environment configuration, except that the event target must be the same between <a href="#event-type-mousedown">mousedown</a>, <a href="#event-type-mouseup">mouseup</a>, and <a href="#event-type-dblclick">dblclick</a>. This event type must be dispatched after the event type <a href="#event-type-click">click</a> if a click and double click occur simultaneously, and after the event type <a href="#event-type-mouseup">mouseup</a> otherwise.
+ <p class="note"><strong>Note:</strong> Canceling the <a href="#event-type-click">click</a> event must not not affect the firing of a <a href="#event-type-dblclick">dblclick</a> event.</p></dd>
+ </dl>
+ </div>
+<!-- mousedown -->
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-mousedown">
+ <a class="noxref" href="#event-type-mousedown">mousedown</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 bgcolor="#CFCFCF"><strong><code>mousedown</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><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>, <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>, <a href="#events-Events-MouseEvent-button"><code>MouseEvent.button</code></a>, and <a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> are in use. The <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> attribute indicates the <a href="#events-dt-current-click-count">current click count</a> incremented by one. For example, if no click happened before the mousedown, <a class="noxref" href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> must contain the value <code>1</code>.</td></tr></table>
+ A pointing device button must be pressed over an element.</dd>
+ </dl>
+ </div>
+<!-- mouseenter -->
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-mouseover">
+ <a class="noxref" href="#event-type-mouseenter">mouseenter</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 bgcolor="#CFCFCF"><strong><code>mouseenter</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>No</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><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>, <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-relatedTarget"><code>MouseEvent.relatedTarget</code></a> indicates the <a href="#glossary-event-target">event target</a> a pointing device is exiting, if any.</td></tr></table>
+ A pointing device is moved onto an element. This event type is similar to <a class="noxref" href="#event-type-mouseover">mouseover</a>, but for <a class="noxref" href="#event-type-mouseenter">mouseenter</a>, the <a href="#glossary-propagation-path">propagation path</a> must end at the <a href="#glossary-event-target">event target</a> element, and must not include the target element's child nodes as <a href="#glossary-event-target">event targets</a>.
+
+ <p class="note"><strong>Note:</strong> This is the event type equivalent of the CSS <a href="http://www.w3.org/TR/CSS2/selector.html#dynamic-pseudo-classes" title="Selectors"><code>:hover</code> pseudo-class</a><a href="#references-CSS2">[CSS2]</a>. This matches the <a class="noxref" href="#event-type-mouseleave">mouseleave</a> event type in its <a href="#glossary-propagation-path">propagation path</a> behavior.</p></dd>
+ </dl>
+ </div>
+<!-- mouseleave -->
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-mouseleave">
+ <a class="noxref" href="#event-type-mouseleave">mouseleave</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 bgcolor="#CFCFCF"><strong><code>mouseout</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>No</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><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>, <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-relatedTarget"><code>MouseEvent.relatedTarget</code></a> indicates the <a href="#glossary-event-target">event target</a> a pointing device is entering, if any.</td></tr></table>
+
+ A pointing device is moved away from an element. This event type is similar to <a class="noxref" href="#event-type-mouseout">mouseout</a>, but for <a class="noxref" href="#event-type-mouseleave">mouseleave</a>, the <a href="#glossary-propagation-path">propagation path</a> must end at the <a href="#glossary-event-target">event target</a> element, and must not include the target element's child nodes as <a href="#glossary-event-target">event targets</a>.
+ <p class="note"><strong>Note:</strong> This matches the <a class="noxref" href="#event-type-mouseenter">mouseenter</a> event type in its <a href="#glossary-propagation-path">propagation path</a> behavior.</p></dd>
+ </dl>
+ </div>
+<!-- mousemove -->
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-mousemove">
+ <a class="noxref" href="#event-type-mousemove">mousemove</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 bgcolor="#CFCFCF"><strong><code>mousemove</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><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>, <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.</td></tr></table>
+
+ A pointing device is moved while it is over an element.</dd>
+ </dl>
+ </div>
+<!-- mouseup -->
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-mouseup">
+ <a class="noxref" href="#event-type-mouseup">mouseup</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 bgcolor="#CFCFCF"><strong><code>mouseup</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><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>, <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>, <a href="#events-Events-MouseEvent-button"><code>MouseEvent.button</code></a>, and <a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> are in use. The <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> attribute indicates the <a href="#events-dt-current-click-count">current click count</a> incremented by one.</td></tr></table>
+
+ A pointing device button is released over an element.</dd>
+ </dl>
+ </div>
+<!-- mouseout -->
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-mouseout">
+ <a class="noxref" href="#event-type-mouseout">mouseout</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 bgcolor="#CFCFCF"><strong><code>mouseout</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><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>, <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-relatedTarget"><code>MouseEvent.relatedTarget</code></a> indicates the <a href="#glossary-event-target">event target</a> a pointing device is entering, if any.</td></tr></table>
+ A pointing device is moved away from an element.
+ This event type is similar to <a class="noxref" href="#event-type-mouseleave">mouseleave</a>, but for <a class="noxref" href="#event-type-mouseout">mouseout</a>, the <a href="#glossary-propagation-path">propagation path</a> must include the target element's child nodes as <a href="#glossary-event-target">event targets</a>. The <a class="noxref" href="#event-type-mouseout">mouseout</a> event type matches the <a class="noxref" href="#event-type-mouseover">mouseover</a> event type in its <a href="#glossary-propagation-path">propagation path</a> behavior.
+ </dd>
+ </dl>
+ </div>
+ </div>
+<!-- div2 Events-eventgroupings -->
+<!-- div3 Events-eventgroupings-wheelevents -->
+ <div class="div3">
+ <h3 id="events-mousewheelevents" class="div3">5.2.4 Mouse Wheel Event Types</h3>
+ <p>This module defines the feature MouseWheelEvents 3.0 and depends on the feature MouseEvents 3.0.</p>
+ <p>Mouse wheel events are included for specification of legacy support, but are deprecated. Authors are encouraged to use <a href="#events-wheelevents">Wheel event types</a> instead.</p>
+<!--
+ <p>Mouse wheel events are a subset of mouse multi wheel events. See <a href='#events-wheelevents'>Wheel event types</a> for additional information.</p>
+ -->
+ <dl>
+ <dt><strong>Interface <em><a id="events-Events-MouseWheelEvent">MouseWheelEvent</a></em></strong> (introduced in <strong class="since">DOM Level 3</strong>)</dt>
+ <dd>
+ <p>The <code>MouseWheelEvent</code> interface provides specific contextual information associated with mouse wheel events.</p>
+ <p>To create an instance of the <code>MouseWheelEvent</code> interface, use the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("MouseWheelEvent")</code></a> method call.</p>
<dl>
- <dt id="events-event-mousedown">
- <a class="noxref" href="#events-event-mousedown">mousedown</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 bgcolor="#CFCFCF"><strong><code>mousedown</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><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>, <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>, <a href="#events-Events-MouseEvent-button"><code>MouseEvent.button</code></a>, and <a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> are in use. The <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> attribute indicates the <a href="#events-dt-current-click-count">current click count</a> incremented by one. For example, if no click happened before the mousedown, <a class="noxref" href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> must contain the value <code>1</code>.</td>
- </tr>
- </table>
- A pointing device button must be pressed over an element.</dd>
- </dl>
- </div>
-
-
-
- <!-- mouseenter -->
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-mouseover">
- <a class="noxref" href="#events-event-mouseenter">mouseenter</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 bgcolor="#CFCFCF"><strong><code>mouseenter</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><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>, <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-relatedTarget"><code>MouseEvent.relatedTarget</code></a> indicates the <a href="#glossary-dt-event-target">event target</a> a pointing device is exiting, if any.</td>
- </tr>
- </table>
- A pointing device is moved onto an element. This event type is similar to <a class="noxref" href="#events-event-mouseover">mouseover</a>, but for <a class="noxref" href="#events-event-mouseenter">mouseenter</a>, the <a href="#glossary-dt-propagation-path">propagation path</a> must end at the <a href="#glossary-dt-event-target">event target</a> element, and must not include the target element's child nodes as <a href="#glossary-dt-event-target">event targets</a>.
-
- <p class="note"><strong>Note:</strong> This is the event type equivalent of the CSS <a href="http://www.w3.org/TR/CSS2/selector.html#dynamic-pseudo-classes" title="Selectors"><code>:hover</code> pseudo-class</a> <a href="#references-CSS2">[CSS2]</a>. This matches the <a class="noxref" href="#events-event-mouseleave">mouseleave</a> event type in its <a href="#glossary-dt-propagation-path">propagation path</a> behavior.</p>
- </dd>
- </dl>
- </div>
-
-
- <!-- mouseleave -->
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-mouseout">
- <a class="noxref" href="#events-event-mouseleave">mouseleave</a>
+ <dt>
+ <br />
+ <strong>IDL Definition</strong>
</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 bgcolor="#CFCFCF"><strong><code>mouseout</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><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>, <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-relatedTarget"><code>MouseEvent.relatedTarget</code></a> indicates the <a href="#glossary-dt-event-target">event target</a> a pointing device is entering, if any.</td>
- </tr>
- </table>
- A pointing device is moved away from an element. This event type is similar to <a class="noxref" href="#events-event-mouseout">mouseout</a>, but for <a class="noxref" href="#events-event-mouseleave">mouseleave</a>, the <a href="#glossary-dt-propagation-path">propagation path</a> must end at the <a href="#glossary-dt-event-target">event target</a> element, and must not include the target element's child nodes as <a href="#glossary-dt-event-target">event targets</a>.
- <p class="note"><strong>Note:</strong> This matches the <a class="noxref" href="#events-event-mouseenter">mouseenter</a> event type in its <a href="#glossary-dt-propagation-path">propagation path</a> behavior.</p>
+ <div class="idl-code">
+ <pre>
+ // Introduced in DOM Level 3:
+ interface <a class="noxref" href="#events-Events-MouseWheelEvent">MouseWheelEvent</a> : <a class="noxref" href="#events-Events-MouseEvent">MouseEvent</a> {
+ readonly attribute long <a class="noxref" href="#events-Events-MouseWheelEvent-wheelDelta">wheelDelta</a>;
+ void <a class="noxref" href="#events-event-type-initMouseWheelEvent">initMouseWheelEvent</a>(in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in long detailArg,
+ in long screenXArg,
+ in long screenYArg,
+ in long clientXArg,
+ in long clientYArg,
+ in unsigned short buttonArg,
+ in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
+ in DOMString modifiersListArg,
+ in long wheelDeltaArg);
+ void <a class="noxref" href="#events-event-type-initMouseWheelEventNS">initMouseWheelEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in long detailArg,
+ in long screenXArg,
+ in long screenYArg,
+ in long clientXArg,
+ in long clientYArg,
+ in unsigned short buttonArg,
+ in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
+ in DOMString modifiersListArg,
+ in long wheelDeltaArg);
+ };
+ </pre>
+ </div>
+ <br />
</dd>
- </dl>
- </div>
- </div>
-
-
- <!-- mousemove -->
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-mousemove">
- <a class="noxref" href="#events-event-mousemove">mousemove</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 bgcolor="#CFCFCF"><strong><code>mousemove</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><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>, <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.</td>
- </tr>
- </table>
- A pointing device is moved while it is over an element.</dd>
- </dl>
- </div>
-
-
- <!-- mouseout -->
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-mouseout">
- <a class="noxref" href="#events-event-mouseout">mouseout</a>
+ <dt>
+ <strong>Attributes</strong>
</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 bgcolor="#CFCFCF"><strong><code>mouseout</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><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>, <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-relatedTarget"><code>MouseEvent.relatedTarget</code></a> indicates the <a href="#glossary-dt-event-target">event target</a> a pointing device is entering, if any.</td>
- </tr>
- </table>
- A pointing device is moved away from an element.
- This event type is similar to <a class="noxref" href="#events-event-mouseleave">mouseleave</a>, but for <a class="noxref" href="#events-event-mouseout">mouseout</a>, the <a href="#glossary-dt-propagation-path">propagation path</a> must include the target element's child nodes as <a href="#glossary-dt-event-target">event targets</a>. The <a class="noxref" href="#events-event-mouseout">mouseout</a> event type matches the <a class="noxref" href="#events-event-mouseover">mouseover</a> event type in its <a href="#glossary-dt-propagation-path">propagation path</a> behavior.</dd>
-
+ <dl>
+ <dt><code class="attribute-name"><a id="events-Events-MouseWheelEvent-wheelDelta">wheelDelta</a></code> of type <code>long</code>, readonly</dt>
+ <dd>The distance the wheel has rotated around the y-axis. Because this is a legacy event type, the units or number of these units in <code>wheelDelta</code> are implementation-specific.<br /></dd>
+ </dl>
</dd>
- </dl>
- </div>
- </div>
-
-
- <!-- mouseover -->
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-mouseover">
- <a class="noxref" href="#events-event-mouseover">mouseover</a>
+ <dt>
+ <strong>Methods</strong>
</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 bgcolor="#CFCFCF"><strong><code>mouseover</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><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>, <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-relatedTarget"><code>MouseEvent.relatedTarget</code></a> indicates the <a href="#glossary-dt-event-target">event target</a> a pointing device is exiting, if any.</td>
- </tr>
- </table>
- A pointing device is moved onto an element. This event type is similar to <a class="noxref" href="#events-event-mouseenter">mouseenter</a>, but for <a class="noxref" href="#events-event-mouseover">mouseover</a>, the <a href="#glossary-dt-propagation-path">propagation path</a> must include the target element's child nodes as <a href="#glossary-dt-event-target">event targets</a>. The <a class="noxref" href="#events-event-mouseover">mouseover</a> event type matches the <a class="noxref" href="#events-event-mouseout">mouseout</a> event type in its <a href="#glossary-dt-propagation-path">propagation path</a> behavior.</dd>
+ <dl>
+ <dt><code class="method-name"><a id="events-event-type-initMouseWheelEvent">initMouseWheelEvent</a></code> introduced in <strong class="since">DOM Level 3</strong></dt>
+ <dd>
+ <div class="method">Initializes attributes of a <code>MouseWheelEvent</code> object. This method has the same behavior as <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a>.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">detailArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">screenXArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">screenYArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">clientXArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">clientYArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">buttonArg</code> of type <code>unsigned short</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">relatedTargetArg</code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">modifiersListArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">wheelDeltaArg</code> of type <code>long</code></dt><dd>Specifies <a href="#events-Events-MouseWheelEvent-wheelDelta"><code>MouseWheelEvent.wheelDelta</code></a>.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ <dt><code class="method-name"><a id="events-event-type-initMouseWheelEventNS">initMouseWheelEventNS</a></code> introduced in <strong class="since">DOM Level 3</strong></dt>
+ <dd>
+ <div class="method">Initializes attributes of a <code>MouseWheelEvent</code> object. This method has the same behavior as <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a>.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">detailArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">screenXArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">screenYArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">clientXArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">clientYArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">buttonArg</code> of type <code>unsigned short</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">relatedTargetArg</code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">modifiersListArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">wheelDeltaArg</code> of type <code>long</code></dt><dd>Specifies <a href="#events-Events-MouseWheelEvent-wheelDelta"><code>MouseWheelEvent.wheelDelta</code></a>.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ </dl>
+ </dd>
</dl>
- </div>
-
-
-
- <!-- mouseup -->
- <div class="event-definition assert must">
+ </dd>
+ </dl>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-mousewheel">
+ <a class="noxref" href="#event-type-mousewheel">mousewheel</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 bgcolor="#CFCFCF"><strong><code>mousewheel</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>Yes</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>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 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 mouse wheel has been rotated around the y-axis.</dd>
+ </dl>
+ </div>
+ </div>
+<!-- div3 Events-eventgroupings-mousewheelevents -->
+<!-- div3 Events-eventgroupings-mouseevents -->
+ <div class="div3">
+ <h3 id="events-wheelevents" class="div3">5.2.5 Wheel Event Types</h3>
+ <p>This module defines the feature WheelEvents 3.0 and depends on the feature MouseEvents 3.0.</p>
+ <p>Wheels are devices that can be rotated in one or more spatial dimensions, and which may or may not be associated with a pointer device. The coordinate system depends on the environment configuration. As an example, the environment may be configured to associate vertical scrolling with rotation along the y-axis, horizontal scrolling with rotation along the x-axis, and zooming with rotation along the z-axis. The deltax, deltaY, and deltaX attributes of <a href="#events-Events-WheelEvent"><code>WheelEvent</code></a> objects indicate the distance of the rotation, as specified in the <a class="def-term" href="events-Events-WheelEvent-delta">delta</a> definition. <!--The delta attributes of <a href='#events-Events-WheelEvent'><code>WheelEvent</code></a> objects indicate the distance of the rotation. The measurement unit depends on the environment configuration. The sign of the delta value should indicate the direction of the rotation.--></p>
+ <dl>
+ <dt>
+ <code class="def-term" id="events-Events-WheelEvent-delta">delta</code>
+ </dt>
+ <dd>
+ <p>The distance the wheel has rotated around the its axis.</p>
+ <p>The value of a <a class="def-term" href="events-Events-WheelEvent-delta">delta</a> shall be a integer indicating a distance, measured as the number of <a class="def-term" href="events-Events-WheelEvent-roll">rolls</a> the wheel has been <a class="def-term" href="events-Events-WheelEvent-rotation">rotated</a>. A positive value shall indicate that the wheel has been <a class="def-term" href="events-Events-WheelEvent-rotation">rotated</a> away from the user on vertically-aligned devices or in a left-hand manner on horizontally aligned devices, and a negative value shall indicate that the wheel has been <a class="def-term" href="events-Events-WheelEvent-rotation">rotated</a> towards the user on vertically-aligned devices or in a right-hand manner on horizontally-aligned devices. The default value of a delta attribute shall be 0.</p>
+ </dd>
+ <dt>
+ <code class="def-term" id="events-Events-WheelEvent-roll">roll</code>
+ </dt>
+ <dd>A unit of <a class="def-term" href="events-Events-WheelEvent-rotation">rotation</a> for a device using the <a href="events-wheelevents">WheelEvent</a> interface. On some devices this may be a finite physical step. On devices with smooth <a class="def-term" href="events-Events-WheelEvent-rotation">rotation</a>, a <a class="def-term" href="events-Events-WheelEvent-roll">roll</a> becomes the smallest reported amount of <a class="def-term" href="events-Events-WheelEvent-rotation">rotation</a>.</dd>
+ <dt>
+ <code class="def-term" id="events-Events-WheelEvent-rotation">rotation</code>
+ </dt>
+ <dd>An indication of incremental change. On some devices this may be a literal rotation of a wheel, while on others, it may be
+ movement along a flat surface, or pressure on a particular button.</dd>
+ </dl>
+ <dl>
+ <dt><strong>Interface <em><a id="events-Events-WheelEvent">WheelEvent</a></em></strong> (introduced in <strong class="since">DOM Level 3</strong>)</dt>
+ <dd>
+ <p>The <code>WheelEvent</code> interface provides specific contextual information associated with omnidirectional mouse wheel events.</p>
+ <p>To create an instance of the <code>WheelEvent</code> interface, use the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("WheelEvent")</code></a> method call.</p>
<dl>
- <dt id="events-event-mouseup">
- <a class="noxref" href="#events-event-mouseup">mouseup</a>
+ <dt>
+ <br />
+ <strong>IDL Definition</strong>
</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 bgcolor="#CFCFCF"><strong><code>mouseup</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><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>, <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>, <a href="#events-Events-MouseEvent-button"><code>MouseEvent.button</code></a>, and <a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a> are in use. The <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> attribute indicates the <a href="#events-dt-current-click-count">current click count</a> incremented by one.</td>
- </tr>
- </table>A pointing device button is released over an element.</dd>
+ <div class="idl-code">
+ <pre>
+ // Introduced in DOM Level 3:
+ interface <a class="noxref" href="#events-Events-WheelEvent">WheelEvent</a> : <a class="noxref" href="#events-Events-MouseEvent">MouseEvent</a> {
+
+ // DeltaModeCode
+ const unsigned long <a class="noxref" href="#events-DOM_DELTA_PIXEL">DOM_DELTA_PIXEL</a> = 0x00;
+ const unsigned long <a class="noxref" href="#events-DOM_DELTA_LINE">DOM_DELTA_LINE</a> = 0x01;
+ const unsigned long <a class="noxref" href="#events-DOM_DELTA_PAGE">DOM_DELTA_PAGE</a> = 0x02;
+
+ readonly attribute long <a class="noxref" href="#events-Events-WheelEvent-deltaX">deltaX</a>;
+ readonly attribute long <a class="noxref" href="#events-Events-WheelEvent-deltaY">deltaY</a>;
+ readonly attribute long <a class="noxref" href="#events-Events-WheelEvent-deltaZ">deltaZ</a>;
+ readonly attribute unsigned long <a class="noxref" href="#events-Events-WheelEvent-deltaMode">deltaMode</a>;
+ void <a class="noxref" href="#events-event-type-initWheelEvent">initWheelEvent</a>(in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in long detailArg,
+ in long screenXArg,
+ in long screenYArg,
+ in long clientXArg,
+ in long clientYArg,
+ in unsigned short buttonArg,
+ in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
+ in DOMString modifiersListArg,
+ in long deltaXArg,
+ in long deltaYArg,
+ in long deltaZArg,
+ in unsigned long deltaMode);
+ void <a class="noxref" href="#events-event-type-initWheelEventNS">initWheelEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in long detailArg,
+ in long screenXArg,
+ in long screenYArg,
+ in long clientXArg,
+ in long clientYArg,
+ in unsigned short buttonArg,
+ in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
+ in DOMString modifiersListArg,
+ in long deltaXArg,
+ in long deltaYArg,
+ in long deltaZArg,
+ in unsigned long deltaMode);
+ };
+ </pre>
+ </div>
+ <br />
+ </dd>
+ <dt>
+ <strong>Definition group <em><a id="events-ID-WheelEvent-DeltaModeCode">DeltaModeCode</a></em></strong>
+ </dt>
+ <dd>
+ <p>This set of constants shall be used to indicate the units of measurement for the <a href="#events-Events-WheelEvent-delta"><code>delta</code></a> values. The precise measurement is specific to device, operating system, and application configurations.</p>
+ <dl>
+ <dt>
+ <strong>Defined Constants</strong>
+ </dt>
+ <dd>
+ <dl>
+ <dt>
+ <a id="events-DOM_DELTA_PIXEL">
+ <code class="constant-name">DOM_DELTA_PIXEL</code>
+ </a>
+ </dt>
+ <dd>The units of measurement for the <a href="#events-Events-WheelEvent-delta"><code>delta</code></a> shall be pixels. This is the most typical case in most operating system and implementation configurations.</dd>
+ <dt>
+ <a id="events-DOM_DELTA_LINE">
+ <code class="constant-name">DOM_DELTA_LINE</code>
+ </a>
+ </dt>
+ <dd>The units of measurement for the <a href="#events-Events-WheelEvent-delta"><code>delta</code></a> shall be individual lines of text. This is the case for many form controls.</dd>
+ <dt>
+ <a id="events-DOM_DELTA_PAGE">
+ <code class="constant-name">DOM_DELTA_PAGE</code>
+ </a>
+ </dt>
+ <dd>The units of measurement for the <a href="#events-Events-WheelEvent-delta"><code>delta</code></a> shall be pages, either defined as a single screen or as a demarcated page.</dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+ <dt>
+ <strong>Attributes</strong>
+ </dt>
+ <dd>
+ <dl>
+ <dt><code class="attribute-name"><a id="events-Events-WheelEvent-deltaX">deltaX</a></code> of type <code>long</code>, readonly</dt>
+ <dd>The distance the wheel has rotated around the x-axis.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-WheelEvent-deltaY">deltaY</a></code> of type <code>long</code>, readonly</dt>
+ <dd>The distance the wheel has rotated around the y-axis.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-WheelEvent-deltaZ">deltaZ</a></code> of type <code>long</code>, readonly</dt>
+ <dd>The distance the wheel has rotated around the z-axis.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-WheelEvent-deltaMode">deltaMode</a></code> of type <code>unsigned long</code>, readonly</dt>
+ <dd>The <code>deltaMode</code> attribute contains an indication of to indicate the units of measurement for the <a href="#events-Events-WheelEvent-delta"><code>delta</code></a> values. The default value is <a href="#events-DOM_DELTA_PIXEL"><code class="constant-name">DOM_DELTA_PIXEL</code></a> (pixels). The value of <code>deltaMode</code> may be different for each of <code class="attribute-name"><a href="#events-Events-WheelEvent-deltaX">deltaX</a></code>, <code class="attribute-name"><a href="#events-Events-WheelEvent-deltaY">deltaY</a></code>, and <code class="attribute-name"><a href="#events-Events-WheelEvent-deltaZ">deltaZ</a></code>, based on system configuration.<br />
+
+ <p class="issue">@@ deltaMode is the proposed solution for <a href="http://www.w3.org/2008/webapps/track/issues/9" title="ISSUE-9 - Web Applications Working Group Tracker">ISSUE-9</a>.</p>
+
+ </dd>
+ </dl>
+ </dd>
+ <dt>
+ <strong>Methods</strong>
+ </dt>
+ <dd>
+ <dl>
+ <dt><code class="method-name"><a id="events-event-type-initWheelEvent">initWheelEvent</a></code> introduced in <strong class="since">DOM Level 3</strong></dt>
+ <dd>
+ <div class="method">Initializes attributes of a <code>WheelEvent</code> object. This method has the same behavior as <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a>.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">detailArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">screenXArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">screenYArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">clientXArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">clientYArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">buttonArg</code> of type <code>unsigned short</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">relatedTargetArg</code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">modifiersListArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">deltaXArg</code> of type <code>long</code></dt><dd>Specifies <a href="#events-Events-WheelEvent-deltaX"><code>WheelEvent.deltaX</code></a>.<br /></dd><dt><code class="parameter-name">deltaYArg</code> of type <code>long</code></dt><dd>Specifies <a href="#events-Events-WheelEvent-deltaY"><code>WheelEvent.deltaY</code></a>.<br /></dd><dt><code class="parameter-name">deltaZArg</code> of type <code>long</code></dt><dd>Specifies <a href="#events-Events-WheelEvent-deltaZ"><code>WheelEvent.deltaZ</code></a>.<br /></dd><dt><code class="parameter-name">deltaModeArg</code> of type <code>unsigned long</code></dt><dd>Specifies <a href="#events-Events-WheelEvent-deltaMode"><code>WheelEvent.deltaMode</code></a>.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ <dt><code class="method-name"><a id="events-event-type-initWheelEventNS">initWheelEventNS</a></code> introduced in <strong class="since">DOM Level 3</strong></dt>
+ <dd>
+ <div class="method">Initializes attributes of a <code>WheelEvent</code> object. This method has the same behavior as <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a>.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">detailArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">screenXArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">screenYArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">clientXArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">clientYArg</code> of type <code>long</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">buttonArg</code> of type <code>unsigned short</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">relatedTargetArg</code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">modifiersListArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">deltaXArg</code> of type <code>long</code></dt><dd>Specifies <a href="#events-Events-WheelEvent-deltaX"><code>WheelEvent.deltaX</code></a>.<br /></dd><dt><code class="parameter-name">deltaYArg</code> of type <code>long</code></dt><dd>Specifies <a href="#events-Events-WheelEvent-deltaY"><code>WheelEvent.deltaY</code></a>.<br /></dd><dt><code class="parameter-name">deltaZArg</code> of type <code>long</code></dt><dd>Specifies <a href="#events-Events-WheelEvent-deltaZ"><code>WheelEvent.deltaZ</code></a>.<br /></dd><dt><code class="parameter-name">deltaModeArg</code> of type <code>unsigned long</code></dt><dd>Specifies <a href="#events-Events-WheelEvent-deltaMode"><code>WheelEvent.deltaMode</code></a>.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ </dl>
+ </dd>
</dl>
- </div>
-
- <!-- div3 Events-eventgroupings-wheelevents -->
+ </dd>
+ </dl>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-wheel">
+ <a class="noxref" href="#event-type-wheel">wheel</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 bgcolor="#CFCFCF"><strong><code>wheel</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>Yes</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>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 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 mouse wheel has been rotated. A <a href="#glossary-default-action">default action</a> of user agent generated event objects of this type causes implementations to dispatch a <code>mousewheel</code> event iff it supports that event type and <a href="#events-Events-WheelEvent-deltaY"><code>WheelEvent.deltaY</code></a> is non-zero.</dd>
+ </dl>
+ </div>
+<!-- div3 Events-eventgroupings-uievents -->
<div class="div3">
- <h3 id="events-Events-eventgroupings-mousewheelevents" class="div3">5.2.4 Mouse Wheel Event Types</h3>
- <p>This module defines the feature MouseWheelEvents 3.0 and depends on the feature MouseEvents 3.0.</p>
- <p>Mouse wheel events are included for specification of legacy support, but are deprecated. Authors are encouraged to use <a href="#events-Events-eventgroupings-wheelevents">Wheel event types</a> instead.</p>
- <!--
- <p>Mouse wheel events are a subset of mouse multi wheel events. See <a href='#events-Events-eventgroupings-wheelevents'>Wheel event types</a> for additional information.</p>
- -->
+ <h3 class="div3" id="events-textevents">5.2.6 Text Events Types</h3>
+ <p>This module defines the feature TextEvents 3.0 and depends on the feature UIEvents 3.0.</p>
+ <p>The text event module originates from the [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] <code>onkeypress</code> attribute. Unlike this attribute, the event type <a href="#event-type-textInput">textInput</a> applies only to characters and is designed for use with any text input devices, not just keyboards. Refer to <a href="#keyset">Keyboard events and key identifiers</a> for examples on how text events are used in combination with keyboard events.</p>
<dl>
- <dt><strong>Interface <em>
- <a id="events-Events-MouseWheelEvent">MouseWheelEvent</a>
- </em></strong> (introduced in <strong class="since">DOM Level 3</strong>)</dt>
+ <dt><strong>Interface <em><a id="events-Events-TextEvent">TextEvent</a></em></strong> (introduced in <strong class="since">DOM Level 3</strong>)</dt>
<dd>
- <p>The <code>MouseWheelEvent</code> interface provides specific contextual information associated with mouse wheel events.</p>
- <p>To create an instance of the <code>MouseWheelEvent</code> interface, use the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("MouseWheelEvent")</code></a> method call.</p>
+ <p>The <code>TextEvent</code> interface provides specific contextual information associated with Text Events.</p>
+ <p>To create an instance of the <code>TextEvent</code> interface, use the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("TextEvent")</code></a> method call.</p>
<dl>
<dt>
- <br/>
+ <br />
<strong>IDL Definition</strong>
</dt>
<dd>
<div class="idl-code">
<pre>
- // Introduced in DOM Level 3:
- interface <a class="noxref" href="#events-Events-MouseWheelEvent">MouseWheelEvent</a> : <a class="noxref" href="#events-Events-MouseEvent">MouseEvent</a> {
- readonly attribute long <a class="noxref" href="#events-Events-MouseWheelEvent-wheelDelta">wheelDelta</a>;
- void <a class="noxref" href="#events-Events-Event-initMouseWheelEvent">initMouseWheelEvent</a>(in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in long detailArg,
- in long screenXArg,
- in long screenYArg,
- in long clientXArg,
- in long clientYArg,
- in unsigned short buttonArg,
- in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
- in DOMString modifiersListArg,
- in long wheelDeltaArg);
- void <a class="noxref" href="#events-Events-Event-initMouseWheelEventNS">initMouseWheelEventNS</a>(in DOMString namespaceURIArg,
- in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in long detailArg,
- in long screenXArg,
- in long screenYArg,
- in long clientXArg,
- in long clientYArg,
- in unsigned short buttonArg,
- in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
- in DOMString modifiersListArg,
- in long wheelDeltaArg);
- };
- </pre>
+// Introduced in DOM Level 3:
+interface <a class="noxref" href="#events-Events-TextEvent">TextEvent</a> : <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> {
+
+// InputModeCode
+const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_UNKNOWN">DOM_INPUT_METHOD_UNKNOWN</a> = 0x00;
+const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_KEYBOARD">DOM_INPUT_METHOD_KEYBOARD</a> = 0x01;
+const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_PASTE">DOM_INPUT_METHOD_PASTE</a> = 0x02;
+const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_DROP">DOM_INPUT_METHOD_DROP</a> = 0x03;
+const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_IME">DOM_INPUT_METHOD_IME</a> = 0x04;
+const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_OPTION">DOM_INPUT_METHOD_OPTION</a> = 0x05;
+const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_HANDWRITING">DOM_INPUT_METHOD_HANDWRITING</a> = 0x06;
+const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_VOICE">DOM_INPUT_METHOD_VOICE</a> = 0x07;
+const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_MULTIMODAL">DOM_INPUT_METHOD_MULTIMODAL</a> = 0x08;
+const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_SCRIPT">DOM_INPUT_METHOD_SCRIPT</a> = 0x09;
+
+readonly attribute DOMString <a class="noxref" href="#events-Events-TextEvent-data">data</a>;
+readonly attribute unsigned long <a class="noxref" href="#events-Events-TextEvent-inputMode">inputMode</a>;
+void <a class="noxref" href="#events-event-type-initTextEvent">initTextEvent</a>(in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in DOMString dataArg,
+ in unsigned long inputMode);
+void <a class="noxref" href="#events-event-type-initTextEventNS">initTextEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in DOMString dataArg,
+ in unsigned long inputMode);
+};
+</pre>
</div>
- <br/>
+ <br />
</dd>
<dt>
- <strong>Attributes</strong>
- </dt>
- <dd>
- <dl>
- <dt><code class="attribute-name">
- <a id="events-Events-MouseWheelEvent-wheelDelta">wheelDelta</a>
- </code> of type <code>long</code>, readonly</dt>
- <dd>The distance the wheel has rotated around the y-axis. Because this is a legacy event type, the units or number of these units in <code>wheelDelta</code> are implementation-specific.<br/></dd>
- </dl>
- </dd>
- <dt>
- <strong>Methods</strong>
+ <strong>Definition group <em><a id="events-ID-TextEvent-InputModeCode">InputModeCode</a></em></strong>
</dt>
<dd>
- <dl>
- <dt><code class="method-name">
- <a id="events-Events-Event-initMouseWheelEvent">initMouseWheelEvent</a>
- </code> introduced in <strong class="since">DOM Level 3</strong>
- </dt>
- <dd>
- <div class="method">Initializes attributes of a <code>MouseWheelEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a>.
- <div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">detailArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">screenXArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">screenYArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">clientXArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">clientYArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">buttonArg</code> of type <code>unsigned short</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">relatedTargetArg</code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">modifiersListArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">wheelDeltaArg</code> of type <code>long</code></dt>
- <dd>Specifies <a href="#events-Events-MouseWheelEvent-wheelDelta"><code>MouseWheelEvent.wheelDelta</code></a>.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
-
- <dt><code class="method-name">
- <a id="events-Events-Event-initMouseWheelEventNS">initMouseWheelEventNS</a>
- </code> introduced in <strong class="since">DOM Level 3</strong>
- </dt>
- <dd>
- <div class="method">Initializes attributes of a <code>MouseWheelEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a>.
- <div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">detailArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">screenXArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">screenYArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">clientXArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">clientYArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">buttonArg</code> of type <code>unsigned short</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">relatedTargetArg</code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">modifiersListArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">wheelDeltaArg</code> of type <code>long</code></dt>
- <dd>Specifies <a href="#events-Events-MouseWheelEvent-wheelDelta"><code>MouseWheelEvent.wheelDelta</code></a>.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
- </dl>
- </dd>
- </dl>
- </dd>
- </dl>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-mousewheel">
- <a class="noxref" href="#events-event-mousewheel">mousewheel</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 bgcolor="#CFCFCF"><strong><code>mousewheel</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>Yes</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>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 href="#glossary-dt-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 mouse wheel has been rotated around the y-axis.</dd>
- </dl>
- </div>
- </div>
- <!-- div3 Events-eventgroupings-mousewheelevents -->
-
-
-
- <!-- div3 Events-eventgroupings-mouseevents -->
- <div class="div3">
- <h3 id="events-Events-eventgroupings-wheelevents" class="div3">5.2.5 Wheel Event Types</h3>
- <p>This module defines the feature WheelEvents 3.0 and depends on the feature MouseEvents 3.0.</p>
- <p>Wheels are devices that can be rotated in one or more spatial dimensions, and which may or may not be associated with a pointer device. The coordinate system depends on the environment configuration. As an example, the environment may be configured to associate vertical scrolling with rotation along the y-axis, horizontal scrolling with rotation along the x-axis, and zooming with rotation along the z-axis. The deltax, deltaY, and deltaX attributes of <a href="#events-Events-WheelEvent"><code>WheelEvent</code></a> objects indicate the distance of the rotation, as specified in the <a class="def-term" href="events-Events-WheelEvent-delta">delta</a> definition. <!--The delta attributes of <a href='#events-Events-WheelEvent'><code>WheelEvent</code></a> objects indicate the distance of the rotation. The measurement unit depends on the environment configuration. The sign of the delta value should indicate the direction of the rotation.--></p>
-
- <dl>
- <dt><code class="def-term" id="events-Events-WheelEvent-delta">delta</code>
- </dt>
- <dd>
- <p>The distance the wheel has rotated around the its axis.</p>
- <p>The value of a <a class="def-term" href="events-Events-WheelEvent-delta">delta</a> shall be a integer indicating a distance, measured as the number of <a class="def-term" href="events-Events-WheelEvent-roll">rolls</a> the wheel has been <a class="def-term" href="events-Events-WheelEvent-rotation">rotated</a>. A positive value shall indicate that the wheel has been <a class="def-term" href="events-Events-WheelEvent-rotation">rotated</a> away from the user on vertically-aligned devices or in a left-hand manner on horizontally aligned devices, and a negative value shall indicate that the wheel has been <a class="def-term" href="events-Events-WheelEvent-rotation">rotated</a> towards the user on vertically-aligned devices or in a right-hand manner on horizontally-aligned devices. The default value of a delta attribute shall be 0.</p>
- </dd>
- <dt><code class="def-term" id="events-Events-WheelEvent-roll">roll</code>
- </dt>
- <dd>A unit of <a class="def-term" href="events-Events-WheelEvent-rotation">rotation</a> for a device using the <a href="events-Events-eventgroupings-wheelevents">WheelEvent</a> interface. On some devices this may be a finite physical step. On devices with smooth <a class="def-term" href="events-Events-WheelEvent-rotation">rotation</a>, a <a class="def-term" href="events-Events-WheelEvent-roll">roll</a> becomes the smallest reported amount of <a class="def-term" href="events-Events-WheelEvent-rotation">rotation</a>.</dd>
- <dt><code class="def-term" id="events-Events-WheelEvent-rotation">rotation</code>
- </dt>
- <dd>An indication of incremental change. On some devices this may be a literal rotation of a wheel, while on others, it may be
- movement along a flat surface, or pressure on a particular button.</dd>
- </dl>
-
- <dl>
- <dt><strong>Interface <em>
- <a id="events-Events-WheelEvent">WheelEvent</a>
- </em></strong> (introduced in <strong class="since">DOM Level 3</strong>)</dt>
- <dd>
- <p>The <code>WheelEvent</code> interface provides specific contextual information associated with omnidirectional mouse wheel events.</p>
- <p>To create an instance of the <code>WheelEvent</code> interface, use the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("WheelEvent")</code></a> method call.</p>
- <dl>
- <dt>
- <br/>
- <strong>IDL Definition</strong>
- </dt>
- <dd>
- <div class="idl-code">
- <pre>
- // Introduced in DOM Level 3:
- interface <a class="noxref" href="#events-Events-WheelEvent">WheelEvent</a> : <a class="noxref" href="#events-Events-MouseEvent">MouseEvent</a> {
-
- // DeltaModeCode
- const unsigned long <a class="noxref" href="#events-DOM_DELTA_PIXEL">DOM_DELTA_PIXEL</a> = 0x00;
- const unsigned long <a class="noxref" href="#events-DOM_DELTA_LINE">DOM_DELTA_LINE</a> = 0x01;
- const unsigned long <a class="noxref" href="#events-DOM_DELTA_PAGE">DOM_DELTA_PAGE</a> = 0x02;
-
- readonly attribute long <a class="noxref" href="#events-Events-WheelEvent-deltaX">deltaX</a>;
- readonly attribute long <a class="noxref" href="#events-Events-WheelEvent-deltaY">deltaY</a>;
- readonly attribute long <a class="noxref" href="#events-Events-WheelEvent-deltaZ">deltaZ</a>;
- readonly attribute unsigned long <a class="noxref" href="#events-Events-WheelEvent-deltaMode">deltaMode</a>;
- void <a class="noxref" href="#events-Events-Event-initWheelEvent">initWheelEvent</a>(in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in long detailArg,
- in long screenXArg,
- in long screenYArg,
- in long clientXArg,
- in long clientYArg,
- in unsigned short buttonArg,
- in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
- in DOMString modifiersListArg,
- in long deltaXArg,
- in long deltaYArg,
- in long deltaZArg,
- in unsigned long deltaMode);
- void <a class="noxref" href="#events-Events-Event-initWheelEventNS">initWheelEventNS</a>(in DOMString namespaceURIArg,
- in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in long detailArg,
- in long screenXArg,
- in long screenYArg,
- in long clientXArg,
- in long clientYArg,
- in unsigned short buttonArg,
- in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
- in DOMString modifiersListArg,
- in long deltaXArg,
- in long deltaYArg,
- in long deltaZArg,
- in unsigned long deltaMode);
- };
- </pre>
- </div>
- <br/>
- </dd>
- <dt>
- <strong>Definition group <em>
- <a id="events-ID-WheelEvent-DeltaModeCode">DeltaModeCode</a>
- </em></strong>
- </dt>
- <dd>
- <p>This set of constants shall be used to indicate the units of measurement for the <a href="#events-Events-WheelEvent-delta"><code>delta</code></a> values. The precise measurement is specific to device, operating system, and application configurations.</p>
+ <p>This set of constants shall be used to indicate the origin of the text input. In case a DOM implementation wishes to provide a new location information, a value different from the following constant values must be used.</p>
<dl>
<dt>
<strong>Defined Constants</strong>
</dt>
<dd>
<dl>
- <dt><a id="events-DOM_DELTA_PIXEL"><code class="constant-name">DOM_DELTA_PIXEL</code></a></dt>
- <dd>The units of measurement for the <a href="#events-Events-WheelEvent-delta"><code>delta</code></a> shall be pixels. This is the most typical case in most operating system and implementation configurations.</dd>
-
- <dt><a id="events-DOM_DELTA_LINE"><code class="constant-name">DOM_DELTA_LINE</code></a></dt>
- <dd>The units of measurement for the <a href="#events-Events-WheelEvent-delta"><code>delta</code></a> shall be individual lines of text. This is the case for many form controls.</dd>
-
- <dt><a id="events-DOM_DELTA_PAGE"><code class="constant-name">DOM_DELTA_PAGE</code></a></dt>
- <dd>The units of measurement for the <a href="#events-Events-WheelEvent-delta"><code>delta</code></a> shall be pages, either defined as a single screen or as a demarcated page.</dd>
+ <dt>
+ <a id="events-DOM_INPUT_METHOD_UNKNOWN">
+ <code class="constant-name">DOM_INPUT_METHOD_UNKNOWN</code>
+ </a>
+ </dt>
+ <dd>The text string was input by an unknown means.</dd>
+ <dt>
+ <a id="events-DOM_INPUT_METHOD_KEYBOARD">
+ <code class="constant-name">DOM_INPUT_METHOD_KEYBOARD</code>
+ </a>
+ </dt>
+ <dd>The text string was input through a keyboard. This may be associated with one or more of <code>keypress</code>, <code>keydown</code>, or <code>keyup</code> events.</dd>
+ <dt>
+ <a id="events-DOM_INPUT_METHOD_PASTE">
+ <code class="constant-name">DOM_INPUT_METHOD_PASTE</code>
+ </a>
+ </dt>
+ <dd>The text string was pasted in from a clipboard. This may be associated with a <code>paste</code> event, specified elsewhere.</dd>
+ <dt>
+ <a id="events-DOM_INPUT_METHOD_DROP">
+ <code class="constant-name">DOM_INPUT_METHOD_DROP</code>
+ </a>
+ </dt>
+ <dd>The text string was inserted as part of a drag-and-drop operation. This may be associated with a <code>drop</code> event, specified elsewhere.</dd>
+ <dt>
+ <a id="events-DOM_INPUT_METHOD_IME">
+ <code class="constant-name">DOM_INPUT_METHOD_IME</code>
+ </a>
+ </dt>
+ <dd>The text string was entered through an Input Method Editor. This may be associated with a <code>compositionend</code> event.</dd>
+ <dt>
+ <a id="events-DOM_INPUT_METHOD_OPTION">
+ <code class="constant-name">DOM_INPUT_METHOD_OPTION</code>
+ </a>
+ </dt>
+ <dd>The text string was selected from a set of options presented, such as from a form. This may be associated with various other events, specified elsewhere.</dd>
+ <dt>
+ <a id="events-DOM_INPUT_METHOD_HANDWRITING">
+ <code class="constant-name">DOM_INPUT_METHOD_HANDWRITING</code>
+ </a>
+ </dt>
+ <dd>The text string was input through a pen/tablet device and processed by handwriting recognition software. This may be associated with a specific event defined elsewhere.</dd>
+ <dt>
+ <a id="events-DOM_INPUT_METHOD_VOICE">
+ <code class="constant-name">DOM_INPUT_METHOD_VOICE</code>
+ </a>
+ </dt>
+ <dd>The text string was input by a voice device and interpreted by speech recognition software. This may be associated with a specific event defined elsewhere.</dd>
+ <dt>
+ <a id="events-DOM_INPUT_METHOD_MULTIMODAL">
+ <code class="constant-name">DOM_INPUT_METHOD_MULTIMODAL</code>
+ </a>
+ </dt>
+ <dd>The text string was inserted as part of an operation involving multiple input modalities in combination, such as pointer-enhanced speech. This may be associated with various other events, specified elsewhere.</dd>
+ <dt>
+ <a id="events-DOM_INPUT_METHOD_SCRIPT">
+ <code class="constant-name">DOM_INPUT_METHOD_SCRIPT</code>
+ </a>
+ </dt>
+ <dd>The text string was inserted via a script operation on the DOM. This may be associated with one or more <code>mutation</code> events.</dd>
</dl>
</dd>
</dl>
@@ -3639,26 +2715,10 @@
</dt>
<dd>
<dl>
- <dt><code class="attribute-name">
- <a id="events-Events-WheelEvent-deltaX">deltaX</a>
- </code> of type <code>long</code>, readonly</dt>
- <dd>The distance the wheel has rotated around the x-axis.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-WheelEvent-deltaY">deltaY</a>
- </code> of type <code>long</code>, readonly</dt>
- <dd>The distance the wheel has rotated around the y-axis.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-WheelEvent-deltaZ">deltaZ</a>
- </code> of type <code>long</code>, readonly</dt>
- <dd>The distance the wheel has rotated around the z-axis.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-WheelEvent-deltaMode">deltaMode</a>
- </code> of type <code>unsigned long</code>, readonly</dt>
- <dd>The <code>deltaMode</code> attribute contains an indication of to indicate the units of measurement for the <a href="#events-Events-WheelEvent-delta"><code>delta</code></a> values. The default value is <a href="#events-DOM_DELTA_PIXEL"><code class="constant-name">DOM_DELTA_PIXEL</code></a> (pixels). The value of <code>deltaMode</code> may be different for each of <code class="attribute-name"><a href="#events-Events-WheelEvent-deltaX">deltaX</a></code>, <code class="attribute-name"><a href="#events-Events-WheelEvent-deltaY">deltaY</a></code>, and <code class="attribute-name"><a href="#events-Events-WheelEvent-deltaZ">deltaZ</a></code>, based on system configuration.<br/>
-
- <p class="issue">@@ deltaMode is the proposed solution for <a href="http://www.w3.org/2008/webapps/track/issues/9" title="ISSUE-9 - Web Applications Working Group Tracker">ISSUE-9</a>.</p>
-
- </dd>
+ <dt><code class="attribute-name"><a id="events-Events-TextEvent-data">data</a></code> of type <code>DOMString</code>, readonly</dt>
+ <dd><code>data</code> holds the value of the characters generated by the character device. This may be a single Unicode character or a non-empty sequence of Unicode characters [<cite><a class="noxref normative" href="#references-Unicode">Unicode</a></cite>]. Characters should be normalized as defined by the Unicode normalization form <em>NFC</em>, defined in [<cite><a class="noxref normative" href="#references-UnicodeNormalization">UAX #15</a></cite>]. This attribute cannot be null or contain the empty string.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-TextEvent-inputMode">inputMode</a></code> of type <code>unsigned long</code>, readonly</dt>
+ <dd>The <code>inputMode</code> attribute contains an indication of the origin of the text input, as described in <a href="#events-ID-TextEvent-InputModeCode">InputModeCode</a>.<br /></dd>
</dl>
</dd>
<dt>
@@ -3666,453 +2726,71 @@
</dt>
<dd>
<dl>
- <dt><code class="method-name">
- <a id="events-Events-Event-initWheelEvent">initWheelEvent</a>
- </code> introduced in <strong class="since">DOM Level 3</strong>
+ <dt>
+ <code class="method-name">
+ <a id="events-event-type-initTextEvent">initTextEvent</a>
+ </code>
</dt>
<dd>
- <div class="method">Initializes attributes of a <code>WheelEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a>.
- <div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">detailArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">screenXArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">screenYArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">clientXArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">clientYArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">buttonArg</code> of type <code>unsigned short</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">relatedTargetArg</code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">modifiersListArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">deltaXArg</code> of type <code>long</code></dt>
- <dd>Specifies <a href="#events-Events-WheelEvent-deltaX"><code>WheelEvent.deltaX</code></a>.<br/></dd>
- <dt><code class="parameter-name">deltaYArg</code> of type <code>long</code></dt>
- <dd>Specifies <a href="#events-Events-WheelEvent-deltaY"><code>WheelEvent.deltaY</code></a>.<br/></dd>
- <dt><code class="parameter-name">deltaZArg</code> of type <code>long</code></dt>
- <dd>Specifies <a href="#events-Events-WheelEvent-deltaZ"><code>WheelEvent.deltaZ</code></a>.<br/></dd>
- <dt><code class="parameter-name">deltaModeArg</code> of type <code>unsigned long</code></dt>
- <dd>Specifies <a href="#events-Events-WheelEvent-deltaMode"><code>WheelEvent.deltaMode</code></a>.<br/></dd>
- </dl>
- </div>
- </div>
+ <div class="method">Initializes attributes of a <code>TextEvent</code> object. This method has the same behavior as <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a>. The value of <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> remains undefined.
+<div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">dataArg</code> of type <code>DOMString</code></dt><dd>Specifies <a href="#events-Events-TextEvent-data"><code>TextEvent.data</code></a>.<br /></dd><dt><code class="parameter-name">inputModeArg</code> of type <code>unsigned long</code></dt><dd>Specifies <a href="#events-Events-TextEvent-inputMode"><code>TextEvent.inputMode</code></a>.<br /></dd></dl></div></div>
<!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
</div>
- <!-- method -->
+<!-- method -->
</dd>
-
-
- <dt><code class="method-name">
- <a id="events-Events-Event-initWheelEventNS">initWheelEventNS</a>
- </code> introduced in <strong class="since">DOM Level 3</strong>
+ <dt>
+ <code class="method-name">
+ <a id="events-event-type-initTextEventNS">initTextEventNS</a>
+ </code>
</dt>
<dd>
- <div class="method">Initializes attributes of a <code>WheelEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a>.
- <div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">detailArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">screenXArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">screenYArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">clientXArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">clientYArg</code> of type <code>long</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">buttonArg</code> of type <code>unsigned short</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">relatedTargetArg</code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">modifiersListArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">deltaXArg</code> of type <code>long</code></dt>
- <dd>Specifies <a href="#events-Events-WheelEvent-deltaX"><code>WheelEvent.deltaX</code></a>.<br/></dd>
- <dt><code class="parameter-name">deltaYArg</code> of type <code>long</code></dt>
- <dd>Specifies <a href="#events-Events-WheelEvent-deltaY"><code>WheelEvent.deltaY</code></a>.<br/></dd>
- <dt><code class="parameter-name">deltaZArg</code> of type <code>long</code></dt>
- <dd>Specifies <a href="#events-Events-WheelEvent-deltaZ"><code>WheelEvent.deltaZ</code></a>.<br/></dd>
- <dt><code class="parameter-name">deltaModeArg</code> of type <code>unsigned long</code></dt>
- <dd>Specifies <a href="#events-Events-WheelEvent-deltaMode"><code>WheelEvent.deltaMode</code></a>.<br/></dd>
- </dl>
- </div>
- </div>
+ <div class="method">Initializes attributes of a <code>TextEvent</code> object. This method has the same behavior as <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a>. The value of <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> remains undefined.
+<div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">dataArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initTextEvent"><code>TextEvent.initTextEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">inputModeArg</code> of type <code>unsigned long</code></dt><dd>Specifies <a href="#events-Events-TextEvent-inputMode"><code>TextEvent.inputMode</code></a>.<br /></dd></dl></div></div>
<!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
</div>
- <!-- method -->
+<!-- method -->
</dd>
</dl>
</dd>
</dl>
</dd>
</dl>
+ <p>The text event type is listed below.</p>
<div class="event-definition assert must">
<dl>
- <dt id="events-event-wheel">
- <a class="noxref" href="#events-event-wheel">wheel</a>
+ <dt id="event-type-textInput">
+ <a class="noxref" href="#event-type-textInput">textInput</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 bgcolor="#CFCFCF"><strong><code>wheel</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>Yes</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>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 href="#glossary-dt-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 mouse wheel has been rotated. A <a href="#glossary-dt-default-action">default action</a> of user agent generated event objects of this type causes implementations to dispatch a <code>mousewheel</code> event iff it supports that event type and <a href="#events-Events-WheelEvent-deltaY"><code>WheelEvent.deltaY</code></a> is non-zero.</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 bgcolor="#CFCFCF"><strong><code>textInput</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-TextEvent"><code>TextEvent</code></a></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a>, <a href="#events-Events-TextEvent-data"><code>TextEvent.data</code></a>, and <a href="#events-Events-TextEvent-inputMode"><code>TextEvent.inputMode</code></a> are in use.</td></tr></table>
+One or more characters have been entered. The characters can originate from a variety of sources. For example, it could be characters resulting from a key being pressed or released on a keyboard device, characters resulting from the processing of an <a href="#glossary-ime">input method editor</a>, or resulting from a voice command. Where a "paste" operation generates a simple sequence of characters, i.e. a text without any structure or style information, this event type should be generated as well.</dd>
</dl>
</div>
</div>
-
-
-
- <!-- div3 Events-eventgroupings-uievents -->
- <div class="div3">
- <h3 class="div3" id="events-Events-TextEvents-Interfaces">5.2.6 Text Events Types</h3>
- <p>This module defines the feature TextEvents 3.0 and depends on the feature UIEvents 3.0.</p>
- <p>The text event module originates from the [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] <code>onkeypress</code> attribute. Unlike this attribute, the event type <a href="#events-event-textInput">textInput</a> applies only to characters and is designed for use with any text input devices, not just keyboards. Refer to <a href="#keyset-KeySet">Keyboard events and key identifiers</a> for examples on how text events are used in combination with keyboard events.</p>
- <dl>
- <dt><strong>Interface <em>
- <a id="events-Events-TextEvent">TextEvent</a>
- </em></strong> (introduced in <strong class="since">DOM Level 3</strong>)</dt>
- <dd>
- <p>The <code>TextEvent</code> interface provides specific contextual information associated with Text Events.</p>
- <p>To create an instance of the <code>TextEvent</code> interface, use the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("TextEvent")</code></a> method call.</p>
- <dl>
- <dt>
- <br/>
- <strong>IDL Definition</strong>
- </dt>
- <dd>
- <div class="idl-code">
-
- <pre>
-// Introduced in DOM Level 3:
-interface <a class="noxref" href="#events-Events-TextEvent">TextEvent</a> : <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> {
-
- // InputModeCode
- const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_UNKNOWN">DOM_INPUT_METHOD_UNKNOWN</a> = 0x00;
- const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_KEYBOARD">DOM_INPUT_METHOD_KEYBOARD</a> = 0x01;
- const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_PASTE">DOM_INPUT_METHOD_PASTE</a> = 0x02;
- const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_DROP">DOM_INPUT_METHOD_DROP</a> = 0x03;
- const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_IME">DOM_INPUT_METHOD_IME</a> = 0x04;
- const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_OPTION">DOM_INPUT_METHOD_OPTION</a> = 0x05;
- const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_HANDWRITING">DOM_INPUT_METHOD_HANDWRITING</a> = 0x06;
- const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_VOICE">DOM_INPUT_METHOD_VOICE</a> = 0x07;
- const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_MULTIMODAL">DOM_INPUT_METHOD_MULTIMODAL</a> = 0x08;
- const unsigned long <a class="noxref" href="#events-DOM_INPUT_METHOD_SCRIPT">DOM_INPUT_METHOD_SCRIPT</a> = 0x09;
-
- readonly attribute DOMString <a class="noxref" href="#events-Events-TextEvent-data">data</a>;
- readonly attribute unsigned long <a class="noxref" href="#events-Events-TextEvent-inputMode">inputMode</a>;
- void <a class="noxref" href="#events-Events-Event-initTextEvent">initTextEvent</a>(in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in DOMString dataArg,
- in unsigned long inputMode);
- void <a class="noxref" href="#events-Events-Event-initTextEventNS">initTextEventNS</a>(in DOMString namespaceURIArg,
- in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in DOMString dataArg,
- in unsigned long inputMode);
-};
-</pre>
- </div>
- <br/>
- </dd>
- <dt>
- <strong>Definition group <em>
- <a id="events-ID-TextEvent-InputModeCode">InputModeCode</a>
- </em></strong>
- </dt>
- <dd>
- <p>This set of constants shall be used to indicate the origin of the text input. In case a DOM implementation wishes to provide a new location information, a value different from the following constant values must be used.</p>
- <dl>
- <dt>
- <strong>Defined Constants</strong>
- </dt>
- <dd>
- <dl>
- <dt>
- <a id="events-DOM_INPUT_METHOD_UNKNOWN"><code class="constant-name">DOM_INPUT_METHOD_UNKNOWN</code></a>
- </dt>
- <dd>The text string was input by an unknown means.</dd>
- <dt>
- <a id="events-DOM_INPUT_METHOD_KEYBOARD"><code class="constant-name">DOM_INPUT_METHOD_KEYBOARD</code></a>
- </dt>
- <dd>The text string was input through a keyboard. This may be associated with one or more of <code>keypress</code>, <code>keydown</code>, or <code>keyup</code> events.</dd>
- <dt>
- <a id="events-DOM_INPUT_METHOD_PASTE"><code class="constant-name">DOM_INPUT_METHOD_PASTE</code></a>
- </dt>
- <dd>The text string was pasted in from a clipboard. This may be associated with a <code>paste</code> event, specified elsewhere.</dd>
- <dt>
- <a id="events-DOM_INPUT_METHOD_DROP"><code class="constant-name">DOM_INPUT_METHOD_DROP</code></a>
- </dt>
- <dd>The text string was inserted as part of a drag-and-drop operation. This may be associated with a <code>drop</code> event, specified elsewhere.</dd>
- <dt>
- <dt>
- <a id="events-DOM_INPUT_METHOD_IME"><code class="constant-name">DOM_INPUT_METHOD_IME</code></a>
- </dt>
- <dd>The text string was entered through an Input Method Editor. This may be associated with a <code>compositionend</code> event.</dd>
- <dt>
- <a id="events-DOM_INPUT_METHOD_OPTION"><code class="constant-name">DOM_INPUT_METHOD_OPTION</code></a>
- </dt>
- <dd>The text string was selected from a set of options presented, such as from a form. This may be associated with various other events, specified elsewhere.</dd>
- <dt>
- <a id="events-DOM_INPUT_METHOD_HANDWRITING"><code class="constant-name">DOM_INPUT_METHOD_HANDWRITING</code></a>
- </dt>
- <dd>The text string was input through a pen/tablet device and processed by handwriting recognition software. This may be associated with a specific event defined elsewhere.</dd>
- <dt>
- <a id="events-DOM_INPUT_METHOD_VOICE"><code class="constant-name">DOM_INPUT_METHOD_VOICE</code></a>
- </dt>
- <dd>The text string was input by a voice device and interpreted by speech recognition software. This may be associated with a specific event defined elsewhere.</dd>
- <dt>
- <a id="events-DOM_INPUT_METHOD_MULTIMODAL"><code class="constant-name">DOM_INPUT_METHOD_MULTIMODAL</code></a>
- </dt>
- <dd>The text string was inserted as part of an operation involving multiple input modalities in combination, such as pointer-enhanced speech. This may be associated with various other events, specified elsewhere.</dd>
- <dt>
- <a id="events-DOM_INPUT_METHOD_SCRIPT"><code class="constant-name">DOM_INPUT_METHOD_SCRIPT</code></a>
- </dt>
- <dd>The text string was inserted via a script operation on the DOM. This may be associated with one or more <code>mutation</code> events.</dd>
- <dt>
- </dl>
- </dd>
- </dl>
- </dd>
- <dt>
- <strong>Attributes</strong>
- </dt>
- <dd>
- <dl>
- <dt><code class="attribute-name">
- <a id="events-Events-TextEvent-data">data</a>
- </code> of type <code>DOMString</code>, readonly</dt>
- <dd><code>data</code> holds the value of the characters generated by the character device. This may be a single Unicode character or a non-empty sequence of Unicode characters [<cite><a class="noxref normative" href="#references-Unicode">Unicode</a></cite>]. Characters should be normalized as defined by the Unicode normalization form <em>NFC</em>, defined in [<cite><a class="noxref normative" href="#references-UnicodeNormalization">UAX #15</a></cite>]. This attribute cannot be null or contain the empty string.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-TextEvent-inputMode">inputMode</a>
- </code> of type <code>unsigned long</code>, readonly</dt>
- <dd>The <code>inputMode</code> attribute contains an indication of the origin of the text input, as described in <a href="#events-ID-TextEvent-InputModeCode">InputModeCode</a>.<br/></dd>
- </dl>
- </dd>
- <dt>
- <strong>Methods</strong>
- </dt>
- <dd>
- <dl>
- <dt><code class="method-name">
- <a id="events-Events-Event-initTextEvent">initTextEvent</a>
- </code>
- </dt>
- <dd>
- <div class="method">Initializes attributes of a <code>TextEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a>. The value of <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> remains undefined.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">dataArg</code> of type <code>DOMString</code></dt>
- <dd>Specifies <a href="#events-Events-TextEvent-data"><code>TextEvent.data</code></a>.<br/></dd>
- <dt><code class="parameter-name">inputModeArg</code> of type <code>unsigned long</code></dt>
- <dd>Specifies <a href="#events-Events-TextEvent-inputMode"><code>TextEvent.inputMode</code></a>.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
- <dt><code class="method-name">
- <a id="events-Events-Event-initTextEventNS">initTextEventNS</a>
- </code>
- </dt>
- <dd>
- <div class="method">Initializes attributes of a <code>TextEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a>. The value of <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> remains undefined.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">dataArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initTextEvent"><code>TextEvent.initTextEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">inputModeArg</code> of type <code>unsigned long</code></dt>
- <dd>Specifies <a href="#events-Events-TextEvent-inputMode"><code>TextEvent.inputMode</code></a>.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
- </dl>
- </dd>
- </dl>
- </dd>
- </dl>
- <p>The text event type is listed below.</p>
- <div class="event-definition assert must">
+<!-- div3 Events-TextEvents-Interfaces -->
+ <div class="div3">
+ <h3 id="events-keyboardevents" class="div3">5.2.7 Keyboard Event Types</h3>
+ <p>This module defines the feature KeyboardEvents 3.0 and depends on the feature UIEvents 3.0.</p>
+ <p>Keyboard events are device dependent, i.e. they rely on the capabilities of the input devices and how they are mapped in the operating systems. It is therefore highly recommended to rely on <a href="#events-Events-TextEvent">Text events types</a> when dealing with character input. Refer to <a href="#keyset">Keyboard events and key identifiers</a> for more details, including examples on how Keyboard Events are used in combination with Composition Events.</p>
+ <dl>
+ <dt><strong>Interface <em><a id="events-Events-KeyboardEvent">KeyboardEvent</a></em></strong> (introduced in <strong class="since">DOM Level 3</strong>)</dt>
+ <dd>
+ <p>The <code>KeyboardEvent</code> interface provides specific contextual information associated with keyboard devices. Each keyboard event references a key using an identifier. Keyboard events are commonly directed at the element that has the focus.</p>
+ <p>The <code>KeyboardEvent</code> interface provides convenient attributes for some common modifiers keys: <a href="#events-Events-KeyboardEvent-ctrlKey"><code>KeyboardEvent.ctrlKey</code></a>, <a href="#events-Events-KeyboardEvent-shiftKey"><code>KeyboardEvent.shiftKey</code></a>, <a href="#events-Events-KeyboardEvent-altKey"><code>KeyboardEvent.altKey</code></a>, <a href="#events-Events-KeyboardEvent-metaKey"><code>KeyboardEvent.metaKey</code></a>. These attributes are equivalent to using the method <a href="#events-Events-KeyboardEvent-getModifierState"><code>KeyboardEvent.getModifierState(keyIdentifierArg)</code></a> with <code class="value">'Control'</code>, <code class="value">'Shift'</code>, <code class="value">'Alt'</code>, or <code class="value">'Meta'</code> respectively.</p>
+ <p>To create an instance of the <code>KeyboardEvent</code> interface, use the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("KeyboardEvent")</code></a> method call.</p>
<dl>
- <dt id="events-event-textInput">
- <a class="noxref" href="#events-event-textInput">textInput</a>
+ <dt>
+ <br />
+ <strong>IDL Definition</strong>
</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 bgcolor="#CFCFCF"><strong><code>textInput</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-TextEvent"><code>TextEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a>, <a href="#events-Events-TextEvent-data"><code>TextEvent.data</code></a>, and <a href="#events-Events-TextEvent-inputMode"><code>TextEvent.inputMode</code></a> are in use.</td>
- </tr>
- </table>
-One or more characters have been entered. The characters can originate from a variety of sources. For example, it could be characters resulting from a key being pressed or released on a keyboard device, characters resulting from the processing of an <a href="#glossary-dt-ime">input method editor</a>, or resulting from a voice command. Where a "paste" operation generates a simple sequence of characters, i.e. a text without any structure or style information, this event type should be generated as well.</dd>
- </dl>
- </div>
- </div>
-
-
-
-
- <!-- div3 Events-TextEvents-Interfaces -->
- <div class="div3">
- <h3 id="events-Events-KeyboardEvents-Interfaces" class="div3">5.2.7 Keyboard Event Types</h3>
-
- <p>This module defines the feature KeyboardEvents 3.0 and depends on the feature UIEvents 3.0.</p>
- <p>Keyboard events are device dependent, i.e. they rely on the capabilities of the input devices and how they are mapped in the operating systems. It is therefore highly recommended to rely on <a href="#events-Events-TextEvent">Text events types</a> when dealing with character input. Refer to <a href="#keyset-KeySet">Keyboard events and key identifiers</a> for more details, including examples on how Keyboard Events are used in combination with Composition Events.</p>
- <dl>
- <dt><strong>Interface <em>
- <a id="events-Events-KeyboardEvent">KeyboardEvent</a>
- </em></strong> (introduced in <strong class="since">DOM Level 3</strong>)</dt>
- <dd>
- <p>The <code>KeyboardEvent</code> interface provides specific contextual information associated with keyboard devices. Each keyboard event references a key using an identifier. Keyboard events are commonly directed at the element that has the focus.</p>
- <p>The <code>KeyboardEvent</code> interface provides convenient attributes for some common modifiers keys: <a href="#events-Events-KeyboardEvent-ctrlKey"><code>KeyboardEvent.ctrlKey</code></a>, <a href="#events-Events-KeyboardEvent-shiftKey"><code>KeyboardEvent.shiftKey</code></a>, <a href="#events-Events-KeyboardEvent-altKey"><code>KeyboardEvent.altKey</code></a>, <a href="#events-Events-KeyboardEvent-metaKey"><code>KeyboardEvent.metaKey</code></a>. These attributes are equivalent to using the method <a href="#events-Events-KeyboardEvent-getModifierState"><code>KeyboardEvent.getModifierState(keyIdentifierArg)</code></a> with <code class="value">'Control'</code>, <code class="value">'Shift'</code>, <code class="value">'Alt'</code>, or <code class="value">'Meta'</code> respectively.</p>
- <p>To create an instance of the <code>KeyboardEvent</code> interface, use the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("KeyboardEvent")</code></a> method call.</p>
- <dl>
- <dt>
- <br/>
- <strong>IDL Definition</strong>
- </dt>
- <dd>
- <div class="idl-code">
- <pre>
-// Introduced in DOM Level 3:
-interface <a class="noxref" href="#events-Events-KeyboardEvent">KeyboardEvent</a> : <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> {
+ <div class="idl-code">
+ <pre>
+ // Introduced in DOM Level 3:
+ interface <a class="noxref" href="#events-Events-KeyboardEvent">KeyboardEvent</a> : <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> {
// KeyLocationCode
const unsigned long <a class="noxref" href="#events-DOM_KEY_LOCATION_STANDARD">DOM_KEY_LOCATION_STANDARD</a> = 0x00;
@@ -4131,6 +2809,15 @@
readonly attribute boolean <a class="noxref" href="#events-Events-KeyboardEvent-repeat">repeat</a>;
boolean <a class="noxref" href="#events-Events-KeyboardEvent-getModifierState">getModifierState</a>(in DOMString keyIdentifierArg);
void <a class="noxref" href="#events-Events-KeyboardEvent-initKeyboardEvent">initKeyboardEvent</a>(in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in DOMString keyIdentifierArg,
+ in unsigned long keyLocationArg,
+ in DOMString modifiersListArg,
+ in boolean repeat);
+ void <a class="noxref" href="#events-Events-KeyboardEvent-initKeyboardEventNS">initKeyboardEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString typeArg,
in boolean canBubbleArg,
in boolean cancelableArg,
in views::AbstractView viewArg,
@@ -4138,2684 +2825,2712 @@
in unsigned long keyLocationArg,
in DOMString modifiersListArg,
in boolean repeat);
- void <a class="noxref" href="#events-Events-KeyboardEvent-initKeyboardEventNS">initKeyboardEventNS</a>(in DOMString namespaceURIArg,
- in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in DOMString keyIdentifierArg,
- in unsigned long keyLocationArg,
- in DOMString modifiersListArg,
- in boolean repeat);
-};
-</pre>
- </div>
- <br/>
- </dd>
- <dt>
- <strong>Definition group <em>
- <a id="events-ID-KeyboardEvent-KeyLocationCode">KeyLocationCode</a>
- </em></strong>
- </dt>
- <dd>
- <p>This set of constants shall be used to indicate the location of a key on the device. In case a DOM implementation wishes to provide a new location information, a value different from the following constant values must be used.</p>
- <dl>
- <dt>
- <strong>Defined Constants</strong>
- </dt>
- <dd>
- <dl>
- <dt>
- <a id="events-DOM_KEY_LOCATION_LEFT"><code class="constant-name">DOM_KEY_LOCATION_LEFT</code></a>
- </dt>
- <dd>The key activated shall be in the left key location (there is more than one possible location for this key). Example: the left <code class="value">'Control'</code> key on a PC 101 Key US keyboard.</dd>
- <dt>
- <a id="events-DOM_KEY_LOCATION_NUMPAD"><code class="constant-name">DOM_KEY_LOCATION_NUMPAD</code></a>
- </dt>
- <dd>The key activation originated on the numeric keypad or with a virtual key corresponding to the numeric keypad. Example: the <code class="value">'1'</code> key on a PC 101 Key US keyboard located on the numeric pad.</dd>
- <dt>
- <a id="events-DOM_KEY_LOCATION_RIGHT"><code class="constant-name">DOM_KEY_LOCATION_RIGHT</code></a>
- </dt>
- <dd>The key activation shall be in the right key location (there is more than one possible location for this key). Example: the right <code class="value">'Shift'</code> key on a PC 101 Key US keyboard.</dd>
- <dt>
- <a id="events-DOM_KEY_LOCATION_STANDARD"><code class="constant-name">DOM_KEY_LOCATION_STANDARD</code></a>
- </dt>
- <dd>The key activation shall not be distinguished as the left or right version of the key, and did not originate from the numeric keypad (or did not originate with a virtual key corresponding to the numeric keypad). Example: the <code class="value">'Q'</code> key on a PC 101 Key US keyboard.</dd>
- <dt>
- <a id="events-DOM_KEY_LOCATION_MOBILE"><code class="constant-name">DOM_KEY_LOCATION_MOBILE</code></a>
- </dt>
- <dd>The key activation originated on a mobile device, either on a physical keypad or a virtual keyboard. Example: the <code class="value">'#'</code> key or softkey on a mobile device.</dd>
- <dt>
- <a id="events-DOM_KEY_LOCATION_JOYSTICK"><code class="constant-name">DOM_KEY_LOCATION_JOYSTICK</code></a>
- </dt>
- <dd>The key activation originated on a game controller or a joystick on a mobile device. Example: the <code class="value">'DownLeft'</code> key on a game controller.</dd>
- </dl>
- </dd>
- </dl>
- </dd>
- <dt>
- <strong>Attributes</strong>
- </dt>
- <dd>
- <dl>
- <dt><code class="attribute-name">
- <a id="events-Events-KeyboardEvent-altKey">altKey</a>
- </code> of type <code>boolean</code>, readonly</dt>
- <dd><code>true</code> if the alternative (Alt) key modifier is activated.
-<p class="note"><strong>Note:</strong> The Option key modifier on Macintosh systems must be represented using this key modifier.</p>
- </dd>
- <dt><code class="attribute-name">
- <a id="events-Events-KeyboardEvent-ctrlKey">ctrlKey</a>
- </code> of type <code>boolean</code>, readonly</dt>
- <dd><code>true</code> if the control (Ctrl) key modifier is activated.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-KeyboardEvent-keyIdentifier">keyIdentifier</a>
- </code> of type <code>DOMString</code>, readonly</dt>
- <dd><code>keyIdentifier</code> holds the identifier of the key. The key identifiers are defined in <a href="#keyset-KeySet-Set">Key identifiers set</a>. Implementations that are unable to identify a key must use the key identifier <code class="value">'Unidentified'</code>.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-KeyboardEvent-keylocation">keyLocation</a>
- </code> of type <code>unsigned long</code>, readonly</dt>
- <dd>The <code>keyLocation</code> attribute contains an indication of the location of the key on the device, as described in <a href="#events-ID-KeyboardEvent-KeyLocationCode">Keyboard event types</a>.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-KeyboardEvent-metaKey">metaKey</a>
- </code> of type <code>boolean</code>, readonly</dt>
- <dd><code>true</code> if the meta (Meta) key modifier is activated.
-<p class="note"><strong>Note:</strong> The Command key modifier on Macintosh systems must be represented using this key modifier.</p>
- </dd>
- <dt><code class="attribute-name">
- <a id="events-Events-KeyboardEvent-shiftKey">shiftKey</a>
- </code> of type <code>boolean</code>, readonly</dt>
- <dd><code>true</code> if the shift (Shift) key modifier is activated.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-KeyboardEvent-repeat">repeat</a>
- </code> of type <code>boolean</code>, readonly</dt>
- <dd><code>true</code> if the key has been pressed in a sustained manner. Depending on the system configuration, holding down a key results may result in multiple consecutive <a href="#events-event-keydown">keydown</a> events, <a href="#events-event-keypress">keypress</a> events, and <a href="#events-event-textInput">textInput</a> events, for appropriate keys. For mobile devices which have <em>long-key-press</em> behavior, the first key event with a <a href="#events-Events-KeyboardEvent-repeat">repeat</a> attribute value of <code>'true'</code> shall serve as an indication of a <em>long-key-press</em>. The length of time that the key must be pressed in order to begin repeating is configuration-dependent.</dd>
- </dl>
- </dd>
- <dt>
- <strong>Methods</strong>
- </dt>
- <dd>
- <dl>
- <dt><code class="method-name">
- <a id="events-Events-KeyboardEvent-getModifierState">getModifierState</a>
- </code>
- </dt>
- <dd>
- <div class="method">Queries the state of a modifier using a key identifier. See also <a href="#keyset-Modifiers">Modifier keys</a>.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">keyIdentifierArg</code> of type <code>DOMString</code></dt>
- <dd>A modifier key identifier. Common modifier keys are <code class="value">'Alt'</code>, <code class="value">'AltGraph'</code>, <code class="value">'CapsLock'</code>, <code class="value">'Control'</code>, <code class="value">'Meta'</code>, <code class="value">'NumLock'</code>, <code class="value">'Scroll'</code>, or <code class="value">'Shift'</code>.
-<p class="note"><strong>Note:</strong> If an application wishes to distinguish between right and left modifiers, this information could be deduced using keyboard events and <a href="#events-Events-KeyboardEvent-keylocation"><code>KeyboardEvent.keyLocation</code></a>.</p>
- </dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div class="return">
- <strong>Return Value</strong>
- <div class="returntable">
- <table
- summary="Layout table: the first cell contains the type of the return value, the second contains a short description"
- border="0">
- <tr>
- <td>
- <p><code>boolean</code>
- </p>
- </td>
- <td>
- <p><code>true</code> if it is a modifier key and the modifier is activated, <code>false</code> otherwise.</p>
- </td>
- </tr>
- </table>
- </div>
- </div>
- <!-- return -->
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
- <dt><code class="method-name">
- <a id="events-Events-KeyboardEvent-initKeyboardEvent">initKeyboardEvent</a>
- </code>
- </dt>
- <dd>
- <div class="method">Initializes attributes of a <code>KeyboardEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a>. The value of <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> remains undefined.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">keyIdentifierArg</code> of type <code>DOMString</code></dt>
- <dd>Specifies <a href="#events-Events-KeyboardEvent-keyIdentifier"><code>KeyboardEvent.keyIdentifier</code></a>.<br/></dd>
- <dt><code class="parameter-name">keyLocationArg</code> of type <code>unsigned long</code></dt>
- <dd>Specifies <a href="#events-Events-KeyboardEvent-keylocation"><code>KeyboardEvent.keyLocation</code></a>.<br/></dd>
- <dt><code class="parameter-name">modifiersListArg</code> of type <code>DOMString</code></dt>
- <dd>A <a class="normative" href="http://www.w3.org/TR/2004/REC-xml-20040204/#NT-S">
- <em>white space</em>
- </a> separated list of modifier key identifiers to be activated on this object. As an example, <code>"Control Alt"</code> must mark the control and alt modifiers as activated.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
- <dt><code class="method-name">
- <a id="events-Events-KeyboardEvent-initKeyboardEventNS">initKeyboardEventNS</a>
- </code>
- </dt>
- <dd>
- <div class="method">Initializes attributes of a <code>KeyboardEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a>. The value of <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> remains undefined.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">keyIdentifierArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-KeyboardEvent-initKeyboardEvent"><code>KeyboardEvent.initKeyboardEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">keyLocationArg</code> of type <code>unsigned long</code></dt>
- <dd>Refer to the <a href="#events-Events-KeyboardEvent-initKeyboardEvent"><code>KeyboardEvent.initKeyboardEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">modifiersListArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-KeyboardEvent-initKeyboardEvent"><code>KeyboardEvent.initKeyboardEvent()</code></a> method for a description of this parameter.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
- </dl>
- </dd>
- </dl>
- </dd>
- </dl>
- <p>Depending on the character generation device, keyboard events may or may not be generated.</p>
- <p>The keyboard event types are listed below.</p>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-keydown">
- <a class="noxref" href="#events-event-keydown">keydown</a>
+ };
+ </pre>
+ </div>
+ <br />
+ </dd>
+ <dt>
+ <strong>Definition group <em><a id="events-ID-KeyboardEvent-KeyLocationCode">KeyLocationCode</a></em></strong>
</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 bgcolor="#CFCFCF"><strong><code>keydown</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-KeyboardEvent"><code>KeyboardEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a>, <a href="#events-Events-KeyboardEvent-keyIdentifier"><code>KeyboardEvent.keyIdentifier</code></a>, <a href="#events-Events-KeyboardEvent-keylocation"><code>KeyboardEvent.keyLocation</code></a>, <a href="#events-Events-KeyboardEvent-altKey"><code>KeyboardEvent.altKey</code></a>, <a href="#events-Events-KeyboardEvent-shiftKey"><code>KeyboardEvent.shiftKey</code></a>, <a href="#events-Events-KeyboardEvent-ctrlKey"><code>KeyboardEvent.ctrlKey</code></a>, <a href="#events-Events-KeyboardEvent-metaKey"><code>KeyboardEvent.metaKey</code></a>, and <a href="#events-Events-KeyboardEvent-repeat"><code>KeyboardEvent.repeat</code></a> are in use.</td>
- </tr>
- </table>
-A key is pressed down. This 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 shall be generated after the keyboard mapping but before the processing of an <a href="#glossary-dt-ime">input method editor</a>. This event should logically happen before the event <a href="#events-event-keyup">keyup</a> is produced. Whether a <a href="#events-event-keydown">keydown</a> contributes or not to the generation of a text event is implementation dependent.
-
- <p class="note"><strong>Note:</strong> the <a href="#events-event-keydown">keydown</a> and <a href="#events-event-keyup">keyup</a> events are traditionally associated with detecting a physical key rather than a character value.</p>
+ <p>This set of constants shall be used to indicate the location of a key on the device. In case a DOM implementation wishes to provide a new location information, a value different from the following constant values must be used.</p>
+ <dl>
+ <dt>
+ <strong>Defined Constants</strong>
+ </dt>
+ <dd>
+ <dl>
+ <dt>
+ <a id="events-DOM_KEY_LOCATION_LEFT">
+ <code class="constant-name">DOM_KEY_LOCATION_LEFT</code>
+ </a>
+ </dt>
+ <dd>The key activated shall be in the left key location (there is more than one possible location for this key). Example: the left <code class="value">'Control'</code> key on a PC 101 Key US keyboard.</dd>
+ <dt>
+ <a id="events-DOM_KEY_LOCATION_NUMPAD">
+ <code class="constant-name">DOM_KEY_LOCATION_NUMPAD</code>
+ </a>
+ </dt>
+ <dd>The key activation originated on the numeric keypad or with a virtual key corresponding to the numeric keypad. Example: the <code class="value">'1'</code> key on a PC 101 Key US keyboard located on the numeric pad.</dd>
+ <dt>
+ <a id="events-DOM_KEY_LOCATION_RIGHT">
+ <code class="constant-name">DOM_KEY_LOCATION_RIGHT</code>
+ </a>
+ </dt>
+ <dd>The key activation shall be in the right key location (there is more than one possible location for this key). Example: the right <code class="value">'Shift'</code> key on a PC 101 Key US keyboard.</dd>
+ <dt>
+ <a id="events-DOM_KEY_LOCATION_STANDARD">
+ <code class="constant-name">DOM_KEY_LOCATION_STANDARD</code>
+ </a>
+ </dt>
+ <dd>The key activation shall not be distinguished as the left or right version of the key, and did not originate from the numeric keypad (or did not originate with a virtual key corresponding to the numeric keypad). Example: the <code class="value">'Q'</code> key on a PC 101 Key US keyboard.</dd>
+ <dt>
+ <a id="events-DOM_KEY_LOCATION_MOBILE">
+ <code class="constant-name">DOM_KEY_LOCATION_MOBILE</code>
+ </a>
+ </dt>
+ <dd>The key activation originated on a mobile device, either on a physical keypad or a virtual keyboard. Example: the <code class="value">'#'</code> key or softkey on a mobile device.</dd>
+ <dt>
+ <a id="events-DOM_KEY_LOCATION_JOYSTICK">
+ <code class="constant-name">DOM_KEY_LOCATION_JOYSTICK</code>
+ </a>
+ </dt>
+ <dd>The key activation originated on a game controller or a joystick on a mobile device. Example: the <code class="value">'DownLeft'</code> key on a game controller.</dd>
+ </dl>
+ </dd>
+ </dl>
</dd>
- </dl>
- </div>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-keypress">
- <a class="noxref" href="#events-event-keypress">keypress</a>
+ <dt>
+ <strong>Attributes</strong>
</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 bgcolor="#CFCFCF"><strong><code>keypress</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-KeyboardEvent"><code>KeyboardEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a>, <a href="#events-Events-KeyboardEvent-keyIdentifier"><code>KeyboardEvent.keyIdentifier</code></a>, <a href="#events-Events-KeyboardEvent-keylocation"><code>KeyboardEvent.keyLocation</code></a>, <a href="#events-Events-KeyboardEvent-altKey"><code>KeyboardEvent.altKey</code></a>, <a href="#events-Events-KeyboardEvent-shiftKey"><code>KeyboardEvent.shiftKey</code></a>, <a href="#events-Events-KeyboardEvent-ctrlKey"><code>KeyboardEvent.ctrlKey</code></a>, <a href="#events-Events-KeyboardEvent-metaKey"><code>KeyboardEvent.metaKey</code></a>, and <a href="#events-Events-KeyboardEvent-repeat"><code>KeyboardEvent.repeat</code></a> are in use.</td>
- </tr>
- </table>
-A key is pressed down. This 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 shall be generated after the keyboard mapping but before the processing of an <a href="#glossary-dt-ime">input method editor</a>. This event should logically happen before the event <a href="#events-event-keyup">keyup</a> is produced. Whether a <a href="#events-event-keypress">keypress</a> contributes or not to the generation of a text event is implementation dependent.
-
- <p class="note"><strong>Note:</strong> the <a href="#events-event-keypress">keypress</a> event is traditionally associated with detecting a character value rather than a physical key, and may not be available on all keys in some configurations.</p>
-
- <p class="warning"><strong>Warning:</strong> the <a href="#events-event-keypress">keypress</a> event type is defined in this specification for reference and completeness, but this specification <a href="#glossary-dt-deprecated">deprecates</a> the use of this event type.</p>
+ <dl>
+ <dt><code class="attribute-name"><a id="events-Events-KeyboardEvent-altKey">altKey</a></code> of type <code>boolean</code>, readonly</dt>
+ <dd><code>true</code> if the alternative (Alt) key modifier is activated.
+ <p class="note"><strong>Note:</strong> The Option key modifier on Macintosh systems must be represented using this key modifier.</p></dd>
+ <dt><code class="attribute-name"><a id="events-Events-KeyboardEvent-ctrlKey">ctrlKey</a></code> of type <code>boolean</code>, readonly</dt>
+ <dd><code>true</code> if the control (Ctrl) key modifier is activated.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-KeyboardEvent-keyIdentifier">keyIdentifier</a></code> of type <code>DOMString</code>, readonly</dt>
+ <dd><code>keyIdentifier</code> holds the identifier of the key. The key identifiers are defined in <a href="#keyset-keyidentifiers">Key identifiers set</a>. Implementations that are unable to identify a key must use the key identifier <code class="value">'Unidentified'</code>.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-KeyboardEvent-keylocation">keyLocation</a></code> of type <code>unsigned long</code>, readonly</dt>
+ <dd>The <code>keyLocation</code> attribute contains an indication of the location of the key on the device, as described in <a href="#events-ID-KeyboardEvent-KeyLocationCode">Keyboard event types</a>.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-KeyboardEvent-metaKey">metaKey</a></code> of type <code>boolean</code>, readonly</dt>
+ <dd><code>true</code> if the meta (Meta) key modifier is activated.
+ <p class="note"><strong>Note:</strong> The Command key modifier on Macintosh systems must be represented using this key modifier.</p></dd>
+ <dt><code class="attribute-name"><a id="events-Events-KeyboardEvent-shiftKey">shiftKey</a></code> of type <code>boolean</code>, readonly</dt>
+ <dd><code>true</code> if the shift (Shift) key modifier is activated.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-KeyboardEvent-repeat">repeat</a></code> of type <code>boolean</code>, readonly</dt>
+ <dd><code>true</code> if the key has been pressed in a sustained manner. Depending on the system configuration, holding down a key results may result in multiple consecutive <a href="#event-type-keydown">keydown</a> events, <a href="#event-type-keypress">keypress</a> events, and <a href="#event-type-textInput">textInput</a> events, for appropriate keys. For mobile devices which have <em>long-key-press</em> behavior, the first key event with a <a href="#events-Events-KeyboardEvent-repeat">repeat</a> attribute value of <code>'true'</code> shall serve as an indication of a <em>long-key-press</em>. The length of time that the key must be pressed in order to begin repeating is configuration-dependent.</dd>
+ </dl>
</dd>
- </dl>
- </div>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-keyup">
- <a class="noxref" href="#events-event-keyup">keyup</a>
+ <dt>
+ <strong>Methods</strong>
</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 bgcolor="#CFCFCF"><strong><code>keyup</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-KeyboardEvent"><code>KeyboardEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a>, <a href="#events-Events-KeyboardEvent-keyIdentifier"><code>KeyboardEvent.keyIdentifier</code></a>, and <a href="#events-Events-KeyboardEvent-keylocation"><code>KeyboardEvent.keyLocation</code></a> are in use. <a href="#events-Events-KeyboardEvent-altKey"><code>KeyboardEvent.altKey</code></a>, <a href="#events-Events-KeyboardEvent-shiftKey"><code>KeyboardEvent.shiftKey</code></a>, <a href="#events-Events-KeyboardEvent-ctrlKey"><code>KeyboardEvent.ctrlKey</code></a>, and <a href="#events-Events-KeyboardEvent-metaKey"><code>KeyboardEvent.metaKey</code></a> are in use unless the <a class="noxref" href="#events-Events-KeyboardEvent-keyIdentifier"><code>KeyboardEvent.keyIdentifier</code></a> corresponds to the key modifier itself.</td>
- </tr>
- </table>
- A key is released. This 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 shall be generated after the keyboard mapping but before the processing of an <a href="#glossary-dt-ime">input method editor</a>. This event should logically happen after the event <a href="#events-event-keydown">keydown</a> shall be produced. Whether a keyup contributes or not to the generation of a text event is implementation dependent.
-
- <p class="note"><strong>Note:</strong> the <a href="#events-event-keydown">keydown</a> and <a href="#events-event-keyup">keyup</a> events are traditionally associated with detecting a physical key rather than a character value.</p>
+ <dl>
+ <dt>
+ <code class="method-name">
+ <a id="events-Events-KeyboardEvent-getModifierState">getModifierState</a>
+ </code>
+ </dt>
+ <dd>
+ <div class="method">Queries the state of a modifier using a key identifier. See also <a href="#keyset-Modifiers">Modifier keys</a>.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">keyIdentifierArg</code> of type <code>DOMString</code></dt><dd>A modifier key identifier. Common modifier keys are <code class="value">'Alt'</code>, <code class="value">'AltGraph'</code>, <code class="value">'CapsLock'</code>, <code class="value">'Control'</code>, <code class="value">'Meta'</code>, <code class="value">'NumLock'</code>, <code class="value">'Scroll'</code>, or <code class="value">'Shift'</code>.
+ <p class="note"><strong>Note:</strong> If an application wishes to distinguish between right and left modifiers, this information could be deduced using keyboard events and <a href="#events-Events-KeyboardEvent-keylocation"><code>KeyboardEvent.keyLocation</code></a>.</p>
+ </dd></dl></div></div>
+ <!-- parameters -->
+ <div class="return"><strong>Return Value</strong><div class="returntable"><table summary="Layout table: the first cell contains the type of the return value, the second contains a short description" border="0"><tr><td><p><code>boolean</code></p></td><td><p><code>true</code> if it is a modifier key and the modifier is activated, <code>false</code> otherwise.</p></td></tr></table></div></div>
+ <!-- return -->
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ <dt>
+ <code class="method-name">
+ <a id="events-Events-KeyboardEvent-initKeyboardEvent">initKeyboardEvent</a>
+ </code>
+ </dt>
+ <dd>
+ <div class="method">Initializes attributes of a <code>KeyboardEvent</code> object. This method has the same behavior as <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a>. The value of <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> remains undefined.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">keyIdentifierArg</code> of type <code>DOMString</code></dt><dd>Specifies <a href="#events-Events-KeyboardEvent-keyIdentifier"><code>KeyboardEvent.keyIdentifier</code></a>.<br /></dd><dt><code class="parameter-name">keyLocationArg</code> of type <code>unsigned long</code></dt><dd>Specifies <a href="#events-Events-KeyboardEvent-keylocation"><code>KeyboardEvent.keyLocation</code></a>.<br /></dd><dt><code class="parameter-name">modifiersListArg</code> of type <code>DOMString</code></dt><dd>A <a class="normative" href="http://www.w3.org/TR/2004/REC-xml-20040204/#NT-S"><em>white space</em></a> separated list of modifier key identifiers to be activated on this object. As an example, <code>"Control Alt"</code> must mark the control and alt modifiers as activated.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ <dt>
+ <code class="method-name">
+ <a id="events-Events-KeyboardEvent-initKeyboardEventNS">initKeyboardEventNS</a>
+ </code>
+ </dt>
+ <dd>
+ <div class="method">Initializes attributes of a <code>KeyboardEvent</code> object. This method has the same behavior as <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a>. The value of <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> remains undefined.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">keyIdentifierArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-Events-KeyboardEvent-initKeyboardEvent"><code>KeyboardEvent.initKeyboardEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">keyLocationArg</code> of type <code>unsigned long</code></dt><dd>Refer to the <a href="#events-Events-KeyboardEvent-initKeyboardEvent"><code>KeyboardEvent.initKeyboardEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">modifiersListArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-Events-KeyboardEvent-initKeyboardEvent"><code>KeyboardEvent.initKeyboardEvent()</code></a> method for a description of this parameter.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ </dl>
</dd>
</dl>
- </div>
- </div>
-
-
-
-
-
- <!-- div3 Events-eventgroupings-uievents -->
- <div class="div3">
- <h3 class="div3" id="events-Events-CompositionEvents-Interfaces">5.2.8 Composition Events Types</h3>
- <p>This module defines the feature CompositionEvents 3.0 and depends on the feature UIEvents 3.0.</p>
- <p>Composition Events provide a means for inputing text in a supplementary or alternate manner than by Keyboard Events, in order to allow the use of characters that may not be commonly available on keyboard. For examples, Composition events may be used to add accents to characters despite their absence from standard US keyboards, to build up logograms of many Asian languages from their base components or categories, to select word choices from a combination of key presses on a mobile device keyboard, or to convert voice commands into text using a speech recognition processor. Refer to <a href="#keyset-KeySet">Keyboard events and key identifiers</a> for examples on how Composition Events are used in combination with keyboard events.</p>
- <p>Conceptually, a composition session consists of one <a href="#events-event-compositionstart">compositionstart</a> event, one or more <a href="#events-event-compositionupdate">compositionupdate</a> events, and one <a href="#events-event-compositionend">compositionend</a> event, with the value of the <a id="events-Events-CompositionEvent-data">data</a> attribute persisting between each "stage" of this event chain during each session.</p>
- <p>Not all IME systems or devices expose the necessary data to the DOM, so the active composition string (the "Reading Window" or "candidate selection menu option") may not be available through this interface, in which case the selection may be represented by the empty string.</p>
+ </dd>
+ </dl>
+ <p>Depending on the character generation device, keyboard events may or may not be generated.</p>
+ <p>The keyboard event types are listed below.</p>
+ <div class="event-definition assert must">
<dl>
- <dt><strong>Interface <em>
- <a id="events-Events-CompositionEvent">CompositionEvent</a>
- </em></strong> (introduced in <strong class="since">DOM Level 3</strong>)</dt>
- <dd>
- <p>The <code>CompositionEvent</code> interface provides specific contextual information associated with Composition Events.</p>
- <p>To create an instance of the <code>CompositionEvent</code> interface, use the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("CompositionEvent")</code></a> method call.</p>
- <dl>
- <dt>
- <br/>
- <strong>IDL Definition</strong>
- </dt>
- <dd>
- <div class="idl-code">
-
- <pre>
- // Introduced in DOM Level 3:
- interface <a class="noxref" href="#events-Events-CompositionEvent">CompositionEvent</a> : <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> {
-
- readonly attribute DOMString <a class="noxref" href="#events-Events-CompositionEvent-data">data</a>;
- void <a class="noxref" href="#events-Events-Event-initCompositionEvent">initCompositionEvent</a>(in DOMString typeArg,
+ <dt id="event-type-keydown">
+ <a class="noxref" href="#event-type-keydown">keydown</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 bgcolor="#CFCFCF"><strong><code>keydown</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-KeyboardEvent"><code>KeyboardEvent</code></a></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a>, <a href="#events-Events-KeyboardEvent-keyIdentifier"><code>KeyboardEvent.keyIdentifier</code></a>, <a href="#events-Events-KeyboardEvent-keylocation"><code>KeyboardEvent.keyLocation</code></a>, <a href="#events-Events-KeyboardEvent-altKey"><code>KeyboardEvent.altKey</code></a>, <a href="#events-Events-KeyboardEvent-shiftKey"><code>KeyboardEvent.shiftKey</code></a>, <a href="#events-Events-KeyboardEvent-ctrlKey"><code>KeyboardEvent.ctrlKey</code></a>, <a href="#events-Events-KeyboardEvent-metaKey"><code>KeyboardEvent.metaKey</code></a>, and <a href="#events-Events-KeyboardEvent-repeat"><code>KeyboardEvent.repeat</code></a> are in use.</td></tr></table>
+ A key is pressed down. This 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 shall be generated after the keyboard mapping but before the processing of an <a href="#glossary-ime">input method editor</a>. This event should logically happen before the event <a href="#event-type-keyup">keyup</a> is produced. Whether a <a href="#event-type-keydown">keydown</a> contributes or not to the generation of a text event is implementation dependent.
+
+ <p class="note"><strong>Note:</strong> the <a href="#event-type-keydown">keydown</a> and <a href="#event-type-keyup">keyup</a> events are traditionally associated with detecting a physical key rather than a character value.</p></dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-keypress">
+ <a class="noxref" href="#event-type-keypress">keypress</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 bgcolor="#CFCFCF"><strong><code>keypress</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-KeyboardEvent"><code>KeyboardEvent</code></a></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a>, <a href="#events-Events-KeyboardEvent-keyIdentifier"><code>KeyboardEvent.keyIdentifier</code></a>, <a href="#events-Events-KeyboardEvent-keylocation"><code>KeyboardEvent.keyLocation</code></a>, <a href="#events-Events-KeyboardEvent-altKey"><code>KeyboardEvent.altKey</code></a>, <a href="#events-Events-KeyboardEvent-shiftKey"><code>KeyboardEvent.shiftKey</code></a>, <a href="#events-Events-KeyboardEvent-ctrlKey"><code>KeyboardEvent.ctrlKey</code></a>, <a href="#events-Events-KeyboardEvent-metaKey"><code>KeyboardEvent.metaKey</code></a>, and <a href="#events-Events-KeyboardEvent-repeat"><code>KeyboardEvent.repeat</code></a> are in use.</td></tr></table>
+ A key is pressed down. This 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 shall be generated after the keyboard mapping but before the processing of an <a href="#glossary-ime">input method editor</a>. This event should logically happen before the event <a href="#event-type-keyup">keyup</a> is produced. Whether a <a href="#event-type-keypress">keypress</a> contributes or not to the generation of a text event is implementation dependent.
+
+ <p class="note"><strong>Note:</strong> the <a href="#event-type-keypress">keypress</a> event is traditionally associated with detecting a character value rather than a physical key, and may not be available on all keys in some configurations.</p><p class="warning"><strong>Warning:</strong> the <a href="#event-type-keypress">keypress</a> event type is defined in this specification for reference and completeness, but this specification <a href="#glossary-deprecated">deprecates</a> the use of this event type.</p></dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-keyup">
+ <a class="noxref" href="#event-type-keyup">keyup</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 bgcolor="#CFCFCF"><strong><code>keyup</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-KeyboardEvent"><code>KeyboardEvent</code></a></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a>, <a href="#events-Events-KeyboardEvent-keyIdentifier"><code>KeyboardEvent.keyIdentifier</code></a>, and <a href="#events-Events-KeyboardEvent-keylocation"><code>KeyboardEvent.keyLocation</code></a> are in use. <a href="#events-Events-KeyboardEvent-altKey"><code>KeyboardEvent.altKey</code></a>, <a href="#events-Events-KeyboardEvent-shiftKey"><code>KeyboardEvent.shiftKey</code></a>, <a href="#events-Events-KeyboardEvent-ctrlKey"><code>KeyboardEvent.ctrlKey</code></a>, and <a href="#events-Events-KeyboardEvent-metaKey"><code>KeyboardEvent.metaKey</code></a> are in use unless the <a class="noxref" href="#events-Events-KeyboardEvent-keyIdentifier"><code>KeyboardEvent.keyIdentifier</code></a> corresponds to the key modifier itself.</td></tr></table>
+ A key is released. This 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 shall be generated after the keyboard mapping but before the processing of an <a href="#glossary-ime">input method editor</a>. This event should logically happen after the event <a href="#event-type-keydown">keydown</a> shall be produced. Whether a keyup contributes or not to the generation of a text event is implementation dependent.
+
+ <p class="note"><strong>Note:</strong> the <a href="#event-type-keydown">keydown</a> and <a href="#event-type-keyup">keyup</a> events are traditionally associated with detecting a physical key rather than a character value.</p></dd>
+ </dl>
+ </div>
+ </div>
+<!-- div3 Events-eventgroupings-uievents -->
+ <div class="div3">
+ <h3 class="div3" id="events-compositionevents">5.2.8 Composition Events Types</h3>
+ <p>This module defines the feature CompositionEvents 3.0 and depends on the feature UIEvents 3.0.</p>
+ <p>Composition Events provide a means for inputing text in a supplementary or alternate manner than by Keyboard Events, in order to allow the use of characters that may not be commonly available on keyboard. For examples, Composition events may be used to add accents to characters despite their absence from standard US keyboards, to build up logograms of many Asian languages from their base components or categories, to select word choices from a combination of key presses on a mobile device keyboard, or to convert voice commands into text using a speech recognition processor. Refer to <a href="#keyset">Keyboard events and key identifiers</a> for examples on how Composition Events are used in combination with keyboard events.</p>
+ <p>Conceptually, a composition session consists of one <a href="#event-type-compositionstart">compositionstart</a> event, one or more <a href="#event-type-compositionupdate">compositionupdate</a> events, and one <a href="#event-type-compositionend">compositionend</a> event, with the value of the <a href="#events-Events-CompositionEvent-data">data</a> attribute persisting between each "stage" of this event chain during each session.</p>
+ <p>Not all IME systems or devices expose the necessary data to the DOM, so the active composition string (the "Reading Window" or "candidate selection menu option") may not be available through this interface, in which case the selection may be represented by the empty string.</p>
+ <dl>
+ <dt><strong>Interface <em><a id="events-Events-CompositionEvent">CompositionEvent</a></em></strong> (introduced in <strong class="since">DOM Level 3</strong>)</dt>
+ <dd>
+ <p>The <code>CompositionEvent</code> interface provides specific contextual information associated with Composition Events.</p>
+ <p>To create an instance of the <code>CompositionEvent</code> interface, use the <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("CompositionEvent")</code></a> method call.</p>
+ <dl>
+ <dt>
+ <br />
+ <strong>IDL Definition</strong>
+ </dt>
+ <dd>
+ <div class="idl-code">
+ <pre>
+ // Introduced in DOM Level 3:
+ interface <a class="noxref" href="#events-Events-CompositionEvent">CompositionEvent</a> : <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> {
+
+ readonly attribute DOMString <a class="noxref" href="#events-Events-CompositionEvent-data">data</a>;
+ void <a class="noxref" href="#events-event-type-initCompositionEvent">initCompositionEvent</a>(in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in DOMString dataArg);
+ void <a class="noxref" href="#events-event-type-initCompositionEventNS">initCompositionEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString typeArg,
in boolean canBubbleArg,
in boolean cancelableArg,
in views::AbstractView viewArg,
in DOMString dataArg);
- void <a class="noxref" href="#events-Events-Event-initCompositionEventNS">initCompositionEventNS</a>(in DOMString namespaceURIArg,
- in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in DOMString dataArg);
- };
- </pre>
- </div>
- <br/>
- </dd>
- <dt>
- <strong>Attributes</strong>
- </dt>
- <dd>
- <dl>
- <dt><code class="attribute-name">
- <a id="events-Events-CompositionEvent-data">data</a>
- </code> of type <code>DOMString</code>, readonly
- </dt>
- <dd><code>data</code> holds the value of the characters generated by an input method. This may be a single Unicode character or a non-empty sequence of Unicode characters [<cite><a class="noxref normative" href="#references-Unicode">Unicode</a></cite>]. Characters should be normalized as defined by the Unicode normalization form <em>NFC</em>, defined in [<cite><a class="noxref normative" href="#references-UnicodeNormalization">UAX #15</a></cite>]. This attribute may be null or contain the empty string.<br/>
- </dd>
- </dl>
- </dd>
- <dt>
- <strong>Methods</strong>
- </dt>
- <dd>
- <dl>
- <dt><code class="method-name">
- <a id="events-Events-Event-initCompositionEvent">initCompositionEvent</a>
- </code>
- </dt>
- <dd>
- <div class="method">Initializes attributes of a <code>CompositionEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a>. The value of <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> remains undefined.
- <div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">dataArg</code> of type <code>DOMString</code></dt>
- <dd>Specifies <a href="#events-Events-CompositionEvent-data"><code>CompositionEvent.data</code></a>.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
- <dt><code class="method-name">
- <a id="events-Events-Event-initCompositionEventNS">initCompositionEventNS</a>
- </code>
- </dt>
- <dd>
- <div class="method">Initializes attributes of a <code>CompositionEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a>. The value of <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> remains undefined.
- <div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">dataArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initCompositionEvent"><code>CompositionEvent.initCompositionEvent()</code></a> method for a description of this parameter.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
- </dl>
- </dd>
- </dl>
- </dd>
- </dl>
- <p>The composition event types are listed below.</p>
-
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-compositionstart">
- <a class="noxref" href="#events-event-compositionstart">compositionstart</a>
+ };
+ </pre>
+ </div>
+ <br />
+ </dd>
+ <dt>
+ <strong>Attributes</strong>
</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 bgcolor="#CFCFCF"><strong><code>compositionstart</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-CompositionEvent"><code>CompositionEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a>, and <a href="#events-Events-CompositionEvent-data"><code>CompositionEvent.data</code></a>.</td>
- </tr>
- </table>
- A <a href="#glossary-dt-text-composition-system">text composition system</a> begins composing a passage of text. This event type is device-dependent, and may rely upon the capabilities of the text conversion system and how it is mapped into the operating system. When a keyboard is used to feed an input method editor, this event type is generated after a <code>keydown</code> event, but speech or handwriting recognition systems may send this event type without keyboard events. Some implemenations may populate the <a href="#events-Events-CompositionEvent-data"><code>data</code></a> attribute of the <a href="#events-event-compositionstart">compositionstart</a> event with the text currently selected in the document (for editing and replacement); otherwise, the value of the <a href="#events-Events-CompositionEvent-data"><code>data</code></a> attribute shall be <code>null</code>. (<span class="issue">@@ see <a href="http://lists.w3.org/Archives/Public/www-dom/2009JulSep/0143.html" title="Extra notes on composition events from Daniel Danilatos on 2009-08-07 (www-dom@w3.org from July to September 2009)">Extra notes on composition events</a> for more details.</span>)
+ <dl>
+ <dt><code class="attribute-name"><a id="events-Events-CompositionEvent-data">data</a></code> of type <code>DOMString</code>, readonly
+ </dt>
+ <dd><code>data</code> holds the value of the characters generated by an input method. This may be a single Unicode character or a non-empty sequence of Unicode characters [<cite><a class="noxref normative" href="#references-Unicode">Unicode</a></cite>]. Characters should be normalized as defined by the Unicode normalization form <em>NFC</em>, defined in [<cite><a class="noxref normative" href="#references-UnicodeNormalization">UAX #15</a></cite>]. This attribute may be null or contain the empty string.<br /></dd>
+ </dl>
</dd>
- </dl>
- </div>
-
-
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-compositionupdate">
- <a class="noxref" href="#events-event-compositionupdate">compositionupdate</a>
+ <dt>
+ <strong>Methods</strong>
</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 bgcolor="#CFCFCF"><strong><code>compositionupdate</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-CompositionEvent"><code>CompositionEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a>, and <a href="#events-Events-CompositionEvent-data"><code>CompositionEvent.data</code></a>.</td>
- </tr>
- </table>
- A <a href="#glossary-dt-text-composition-system">text composition system</a> updates its active text passage with a new character, which is added to the string in <a href="#events-Events-CompositionEvent-data"><code>CompositionEvent.data</code></a>. Note that some <a href="#glossary-dt-text-composition-system">text composition systems</a> may not expose this information to the DOM, in which case this event will not fire during the composition process. If the composition process is canceled, this event will be fired immediately before the <a class="noxref" href="#events-event-compositionend">compositionend</a> event, and the <a href="#events-Events-CompositionEvent-data"><code>CompositionEvent.data</code> attribute will be set to <code>null</code> <span class="issue">(@@ "null" or "empty string"? What's the distinction?)</span>.</a>
- </dd>
- </dl>
- </div>
-
-
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-compositionend">
- <a class="noxref" href="#events-event-compositionend">compositionend</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 bgcolor="#CFCFCF"><strong><code>compositionend</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-CompositionEvent"><code>CompositionEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a>, and <a href="#events-Events-CompositionEvent-data"><code>CompositionEvent.data</code></a>.</td>
- </tr>
- </table>
- A <a href="#glossary-dt-text-composition-system">text composition system</a> completes the composition of its active text passage, or cancels the composition process. If the result of the <a href="#glossary-dt-text-composition-system">text composition system</a> is not null and does not contain the empty string, this event type will be followed by a <a href="#events-event-textInput">textInput</a> event type with the appropriate <a href="#events-Events-TextEvent-inputMode">inputMode</a> value, such as <a href="#events-DOM_INPUT_METHOD_IME">DOM_INPUT_METHOD_IME</a>, <a href="#events-DOM_INPUT_METHOD_HANDWRITING">DOM_INPUT_METHOD_HANDWRITING</a>, <a href="#events-DOM_INPUT_METHOD_VOICE">DOM_INPUT_METHOD_VOICE</a>, or <a href="#events-DOM_INPUT_METHOD_MULTIMODAL">DOM_INPUT_METHOD_MULTIMODAL</a>.
- <br/><br/>
- <span class="issue">@@ original text: A <a href="#glossary-dt-text-composition-system">text composition system</a> completes the composition of its active text passage. This event type is similar to a TextInput event but is also sent when an input method cancels composing a text.</span>
+ <dl>
+ <dt>
+ <code class="method-name">
+ <a id="events-event-type-initCompositionEvent">initCompositionEvent</a>
+ </code>
+ </dt>
+ <dd>
+ <div class="method">Initializes attributes of a <code>CompositionEvent</code> object. This method has the same behavior as <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a>. The value of <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> remains undefined.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt><dd>Refer to the <a href="#events-event-type-initUIEvent"><code>UIEvent.initUIEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">dataArg</code> of type <code>DOMString</code></dt><dd>Specifies <a href="#events-Events-CompositionEvent-data"><code>CompositionEvent.data</code></a>.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ <dt>
+ <code class="method-name">
+ <a id="events-event-type-initCompositionEventNS">initCompositionEventNS</a>
+ </code>
+ </dt>
+ <dd>
+ <div class="method">Initializes attributes of a <code>CompositionEvent</code> object. This method has the same behavior as <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a>. The value of <a href="#events-Events-UIEvent-detail"><code>UIEvent.detail</code></a> remains undefined.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">viewArg</code> of type <code>views::AbstractView</code></dt><dd>Refer to the <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">dataArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initCompositionEvent"><code>CompositionEvent.initCompositionEvent()</code></a> method for a description of this parameter.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ </dl>
</dd>
</dl>
- </div>
-
- <div class="div3">
- <h4 id="handwriting" class="adiv3">5.2.8.1 Handwriting Recognition Systems</h4>
-
- <p>The following example describes a possible sequence of events when composing a text passage "text" with a handwriting recognition system, such as on a pen tablet, as modeled using Composition Events.</p>
- <p class="issue">@@ needs more investigation, particularly with regard to pen-tablet events.</p>
- <ol>
- <li><code>"compositionstart"</code>: <code class="value">''</code></li>
- <li><code>"compositionupdate"</code>: <code class="value">'test'</code> <span class="issue">@@ what's going on here? is there a "reject" option that's being exemplified?</span></li>
- <li><code>"compositionupdate"</code>: <code class="value">'text'</code></li>
- <li><code>"compositionend"</code>: <code class="value">'text'</code></li>
- <li><code>"textInput"</code>: <code class="value">'text'</code> (<code>"inputMode"</code>: <code class="value">'DOM_INPUT_METHOD_HANDWRITING'</code>)</li>
- </ol>
- </div>
-
-
- </div>
-
-
- <div class="div3">
- <h3 id="events-Events-eventgroupings-mutationevents" class="div3">5.2.9 Mutation Events</h3>
- <p>This module defines the feature MutationEvents 3.0 and depends on the feature Events 3.0.</p>
- <p class="note"><strong>Note:</strong> The <code>MutationEvent</code> interface was introduced in DOM Level 2 Events, but has not yet been completely and interoperably implemented across user agents. In addition, there have been critiques that the interface, as designed, introduces a performance and implementation challenge. A new specification is under development with the aim of addressing the use cases that mutation events solves, but in more performant manner. Thus, this specification describes mutation events for completeness, but deprecates the use of both the <code>MutationEvent</code> interface and the <code>MutationNameEvent</code> interface.</p>
- <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. It may be noted that none of the event types associated with the modules 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 class="issue">Note that nodes that are not in the document, such as elements freshly created, or elements removed from the DOM, shall not fire mutation events when changed. For example, if an element is created but not yet inserted into the document, then an existing element located in the document shall be moved from its current location to be a child of the new element, there must be one mutation event, for removing the existing element from its previous location, but no event must fire for insertion of the element into the new element, regardless of any assigned mutation event listeners.</p>
- <p class="issue">?What happens to event listeners on an element when it is removed from the tree, or moved elsewhere in the tree?</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>
+ </dd>
+ </dl>
+ <p>The composition event types are listed below.</p>
+ <div class="event-definition assert must">
<dl>
- <dt><strong>Interface <em>
- <a id="events-Events-MutationEvent">MutationEvent</a>
- </em></strong> (introduced in <strong class="since">DOM Level 2</strong>)</dt>
- <dd>
- <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="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("MutationEvent")</code></a> method call.</p>
- <dl>
- <dt>
- <br/>
- <strong>IDL Definition</strong>
- </dt>
- <dd>
- <div class="idl-code">
- <pre>
-// Introduced in DOM Level 2:
-interface <a class="noxref" href="#events-Events-MutationEvent">MutationEvent</a> : <a class="noxref" href="#events-Events-Event">Event</a> {
-
- // attrChangeType
- const unsigned short <a class="noxref" href="#events-MODIFICATION">MODIFICATION</a> = 1;
- const unsigned short <a class="noxref" href="#events-ADDITION">ADDITION</a> = 2;
- const unsigned short <a class="noxref" href="#events-REMOVAL">REMOVAL</a> = 3;
-
- readonly attribute Node <a class="noxref" href="#events-Events-MutationEvent-relatedNode">relatedNode</a>;
- readonly attribute DOMString <a class="noxref" href="#events-Events-MutationEvent-prevValue">prevValue</a>;
- readonly attribute DOMString <a class="noxref" href="#events-Events-MutationEvent-newValue">newValue</a>;
- readonly attribute DOMString <a class="noxref" href="#events-Events-MutationEvent-attrName">attrName</a>;
- readonly attribute unsigned short <a class="noxref" href="#events-Events-MutationEvent-attrChange">attrChange</a>;
- void <a class="noxref" href="#events-Events-Event-initMutationEvent">initMutationEvent</a>(in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in Node relatedNodeArg,
- in DOMString prevValueArg,
- in DOMString newValueArg,
- in DOMString attrNameArg,
- in unsigned short attrChangeArg);
- // Introduced in DOM Level 3:
- void <a class="noxref" href="#events-Events-Event-initMutationEventNS">initMutationEventNS</a>(in DOMString namespaceURIArg,
- in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in Node relatedNodeArg,
- in DOMString prevValueArg,
- in DOMString newValueArg,
- in DOMString attrNameArg,
- in unsigned short attrChangeArg);
-};
-</pre>
- </div>
- <br/>
- </dd>
- <dt>
- <strong>Definition group <em>
- <a id="events-Events-MutationEvent-attrChangeType">attrChangeType</a>
- </em></strong>
- </dt>
- <dd>
- <p>An integer indicating in which way the <code>Attr</code> was changed.</p>
- <dl>
- <dt>
- <strong>Defined Constants</strong>
- </dt>
- <dd>
- <dl>
- <dt>
- <a id="events-ADDITION"><code class="constant-name">ADDITION</code></a>
- </dt>
- <dd>The <code>Attr</code> was just added.</dd>
- <dt>
- <a id="events-MODIFICATION"><code class="constant-name">MODIFICATION</code></a>
- </dt>
- <dd>The <code>Attr</code> was modified in place.</dd>
- <dt>
- <a id="events-REMOVAL"><code class="constant-name">REMOVAL</code></a>
- </dt>
- <dd>The <code>Attr</code> was just removed.</dd>
- </dl>
- </dd>
- </dl>
- </dd>
- <dt>
- <strong>Attributes</strong>
- </dt>
- <dd>
- <dl>
- <dt><code class="attribute-name">
- <a id="events-Events-MutationEvent-attrChange">attrChange</a>
- </code> of type <code>unsigned short</code>, readonly</dt>
- <dd><code>attrChange</code> indicates the type of change which triggered the <a href="#events-event-DOMAttrModified">DOMAttrModified</a> event. The values can be <code>MODIFICATION</code>, <code>ADDITION</code>, or <code>REMOVAL</code>.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-MutationEvent-attrName">attrName</a>
- </code> of type <code>DOMString</code>, readonly</dt>
- <dd><code>attrName</code> indicates the name of the changed <code>Attr</code> node in a <a href="#events-event-DOMAttrModified">DOMAttrModified</a> event.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-MutationEvent-newValue">newValue</a>
- </code> of type <code>DOMString</code>, readonly</dt>
- <dd><code>newValue</code> indicates the new value of the <code>Attr</code> node in <a href="#events-event-DOMAttrModified">DOMAttrModified</a> events, and of the <code>CharacterData</code> node in <a href="#events-event-DOMCharacterDataModified">DOMCharacterDataModified</a> events.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-MutationEvent-prevValue">prevValue</a>
- </code> of type <code>DOMString</code>, readonly</dt>
- <dd><code>prevValue</code> indicates the previous value of the <code>Attr</code> node in <a href="#events-event-DOMAttrModified">DOMAttrModified</a> events, and of the <code>CharacterData</code> node in <a href="#events-event-DOMCharacterDataModified">DOMCharacterDataModified</a> events.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-MutationEvent-relatedNode">relatedNode</a>
- </code> of type <code>Node</code>, readonly</dt>
- <dd><code>relatedNode</code> shall 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> shall be the changed parent. If an event is instead dispatched to a subtree indicating a node was changed within it, the <code>relatedNode</code> shall be the changed node. In the case of the <a href="#events-event-DOMAttrModified">DOMAttrModified</a> event it indicates the <code>Attr</code> node which was modified, added, or removed.<br/></dd>
- </dl>
- </dd>
- <dt>
- <strong>Methods</strong>
- </dt>
- <dd>
- <dl>
- <dt><code class="method-name">
- <a id="events-Events-Event-initMutationEvent">initMutationEvent</a>
- </code>
- </dt>
- <dd>
- <div class="method">Initializes attributes of a <code>MutationEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a>.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">relatedNodeArg</code> of type <code>Node</code></dt>
- <dd>Specifies <a href="#events-Events-MutationEvent-relatedNode"><code>MutationEvent.relatedNode</code></a>.<br/></dd>
- <dt><code class="parameter-name">prevValueArg</code> of type <code>DOMString</code></dt>
- <dd>Specifies <a href="#events-Events-MutationEvent-prevValue"><code>MutationEvent.prevValue</code></a>. This value may be null.<br/></dd>
- <dt><code class="parameter-name">newValueArg</code> of type <code>DOMString</code></dt>
- <dd>Specifies <a href="#events-Events-MutationEvent-newValue"><code>MutationEvent.newValue</code></a>. This value may be null.<br/></dd>
- <dt><code class="parameter-name">attrNameArg</code> of type <code>DOMString</code></dt>
- <dd>Specifies <a href="#events-Events-MutationEvent-attrName"><code>MutationEvent.attrName</code></a>. This value may be null.<br/></dd>
- <dt><code class="parameter-name">attrChangeArg</code> of type <code>unsigned short</code></dt>
- <dd>Specifies <a href="#events-Events-MutationEvent-attrChange"><code>MutationEvent.attrChange</code></a>. This value may be null.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
- <dt><code class="method-name">
- <a id="events-Events-Event-initMutationEventNS">initMutationEventNS</a>
- </code> introduced in <strong class="since">DOM Level 3</strong></dt>
- <dd>
- <div class="method">Initializes attributes of a <code>MutationEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a>.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">relatedNodeArg</code> of type <code>Node</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">prevValueArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">newValueArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">attrNameArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">attrChangeArg</code> of type <code>unsigned short</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
- </dl>
- </dd>
- </dl>
+ <dt id="event-type-compositionstart">
+ <a class="noxref" href="#event-type-compositionstart">compositionstart</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 bgcolor="#CFCFCF"><strong><code>compositionstart</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-CompositionEvent"><code>CompositionEvent</code></a></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a>, and <a href="#events-Events-CompositionEvent-data"><code>CompositionEvent.data</code></a>.</td></tr></table>
+ A <a href="#glossary-text-composition-system">text composition system</a> begins composing a passage of text. This event type is device-dependent, and may rely upon the capabilities of the text conversion system and how it is mapped into the operating system. When a keyboard is used to feed an input method editor, this event type is generated after a <code>keydown</code> event, but speech or handwriting recognition systems may send this event type without keyboard events. Some implemenations may populate the <a href="#events-Events-CompositionEvent-data"><code>data</code></a> attribute of the <a href="#event-type-compositionstart">compositionstart</a> event with the text currently selected in the document (for editing and replacement); otherwise, the value of the <a href="#events-Events-CompositionEvent-data"><code>data</code></a> attribute shall be <code>null</code>. (<span class="issue">@@ see <a href="http://lists.w3.org/Archives/Public/www-dom/2009JulSep/0143.html" title="Extra notes on composition events from Daniel Danilatos on 2009-08-07 (www-dom@w3.org from July to September 2009)">Extra notes on composition events</a> for more details.</span>)
</dd>
</dl>
- <p>The mutation event types are listed below.</p>
- <div class="event-definition assert must">
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-compositionupdate">
+ <a class="noxref" href="#event-type-compositionupdate">compositionupdate</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 bgcolor="#CFCFCF"><strong><code>compositionupdate</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-CompositionEvent"><code>CompositionEvent</code></a></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a>, and <a href="#events-Events-CompositionEvent-data"><code>CompositionEvent.data</code></a>.</td></tr></table>
+ A <a href="#glossary-text-composition-system">text composition system</a> updates its active text passage with a new character, which is added to the string in <a href="#events-Events-CompositionEvent-data"><code>CompositionEvent.data</code></a>. Note that some <a href="#glossary-text-composition-system">text composition systems</a> may not expose this information to the DOM, in which case this event will not fire during the composition process. If the composition process is canceled, this event will be fired immediately before the <a class="noxref" href="#event-type-compositionend">compositionend</a> event, and the <a href="#events-Events-CompositionEvent-data"><code>CompositionEvent.data</code> attribute will be set to <code>null</code><span class="issue">(@@ "null" or "empty string"? What's the distinction?)</span>.</a></dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-compositionend">
+ <a class="noxref" href="#event-type-compositionend">compositionend</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 bgcolor="#CFCFCF"><strong><code>compositionend</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-CompositionEvent"><code>CompositionEvent</code></a></td></tr><tr class="assert must"><th>Cancelable</th><td>Yes</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-UIEvent-view"><code>UIEvent.view</code></a>, and <a href="#events-Events-CompositionEvent-data"><code>CompositionEvent.data</code></a>.</td></tr></table>
+ A <a href="#glossary-text-composition-system">text composition system</a> completes the composition of its active text passage, or cancels the composition process. If the result of the <a href="#glossary-text-composition-system">text composition system</a> is not null and does not contain the empty string, this event type will be followed by a <a href="#event-type-textInput">textInput</a> event type with the appropriate <a href="#events-Events-TextEvent-inputMode">inputMode</a> value, such as <a href="#events-DOM_INPUT_METHOD_IME">DOM_INPUT_METHOD_IME</a>, <a href="#events-DOM_INPUT_METHOD_HANDWRITING">DOM_INPUT_METHOD_HANDWRITING</a>, <a href="#events-DOM_INPUT_METHOD_VOICE">DOM_INPUT_METHOD_VOICE</a>, or <a href="#events-DOM_INPUT_METHOD_MULTIMODAL">DOM_INPUT_METHOD_MULTIMODAL</a>.
+ <br /><br /><span class="issue">@@ original text: A <a href="#glossary-text-composition-system">text composition system</a> completes the composition of its active text passage. This event type is similar to a TextInput event but is also sent when an input method cancels composing a text.</span></dd>
+ </dl>
+ </div>
+ <div class="div3">
+ <h4 id="handwriting" class="adiv3">5.2.8.1 Handwriting Recognition Systems</h4>
+ <p>The following example describes a possible sequence of events when composing a text passage "text" with a handwriting recognition system, such as on a pen tablet, as modeled using Composition Events.</p>
+ <p class="issue">@@ needs more investigation, particularly with regard to pen-tablet events.</p>
+ <ol>
+ <li><code>"compositionstart"</code>: <code class="value">''</code></li>
+ <li><code>"compositionupdate"</code>: <code class="value">'test'</code><span class="issue">@@ what's going on here? is there a "reject" option that's being exemplified?</span></li>
+ <li><code>"compositionupdate"</code>: <code class="value">'text'</code></li>
+ <li><code>"compositionend"</code>: <code class="value">'text'</code></li>
+ <li><code>"textInput"</code>: <code class="value">'text'</code> (<code>"inputMode"</code>: <code class="value">'DOM_INPUT_METHOD_HANDWRITING'</code>)</li>
+ </ol>
+ </div>
+ </div>
+ <div class="div3">
+ <h3 id="events-mutationevents" class="div3">5.2.9 Mutation Events</h3>
+ <p>This module defines the feature MutationEvents 3.0 and depends on the feature Events 3.0.</p>
+ <p class="note"><strong>Note:</strong> The <code>MutationEvent</code> interface was introduced in DOM Level 2 Events, but has not yet been completely and interoperably implemented across user agents. In addition, there have been critiques that the interface, as designed, introduces a performance and implementation challenge. A new specification is under development with the aim of addressing the use cases that mutation events solves, but in more performant manner. Thus, this specification describes mutation events for completeness, but deprecates the use of both the <code>MutationEvent</code> interface and the <code>MutationNameEvent</code> interface.</p>
+ <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. It may be noted that none of the event types associated with the modules 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 class="issue">Note that nodes that are not in the document, such as elements freshly created, or elements removed from the DOM, shall not fire mutation events when changed. For example, if an element is created but not yet inserted into the document, then an existing element located in the document shall be moved from its current location to be a child of the new element, there must be one mutation event, for removing the existing element from its previous location, but no event must fire for insertion of the element into the new element, regardless of any assigned mutation event listeners.</p>
+ <p class="issue">?What happens to event listeners on an element when it is removed from the tree, or moved elsewhere in the tree?</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>
+ <dl>
+ <dt><strong>Interface <em><a id="events-Events-MutationEvent">MutationEvent</a></em></strong> (introduced in <strong class="since">DOM Level 2</strong>)</dt>
+ <dd>
+ <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="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent("MutationEvent")</code></a> method call.</p>
<dl>
- <dt id="events-event-DOMSubtreeModified">
- <a class="noxref" href="#events-event-DOMSubtreeModified">DOMSubtreeModified</a>
+ <dt>
+ <br />
+ <strong>IDL Definition</strong>
</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 bgcolor="#CFCFCF"><strong><code>DOMSubtreeModified</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</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>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.</dd>
- </dl>
- </div>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-DOMNodeInserted">
- <a class="noxref" href="#events-event-DOMNodeInserted">DOMNodeInserted</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 bgcolor="#CFCFCF"><strong><code>DOMNodeInserted</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <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 class="assert must">
- <th>Context info</th>
- <td><a href="#events-Events-MutationEvent-relatedNode"><code>MutationEvent.relatedNode</code></a> holds the parent node of the node that has been inserted or, in case of <code>Attr</code> nodes, the <code>ownerElement</code> of the <code>Attr</code> node.</td>
- </tr>
- </table>
-A node has been added as a child of another node or, in case of <code>Attr</code> nodes, has been added to an <code>Element</code>. This event shall be dispatched after the insertion has taken place. The <a href="#glossary-dt-target-node">target node</a> of this event shall be the node being inserted.</dd>
- </dl>
- </div>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-DOMNodeRemoved">
- <a class="noxref" href="#events-event-DOMNodeRemoved">DOMNodeRemoved</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 bgcolor="#CFCFCF"><strong><code>DOMNodeRemoved</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <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 class="assert must">
- <th>Context info</th>
- <td><a href="#events-Events-MutationEvent-relatedNode"><code>MutationEvent.relatedNode</code></a> holds the parent node of the node being removed or, in case of <code>Attr</code> nodes, the <code>ownerElement</code> of the <code>Attr</code> node.</td>
- </tr>
- </table>
-A node is being removed from its parent node or, in case of <code>Attr</code> nodes, removed from its <code>ownerElement</code>. This event shall be dispatched before the removal takes place. The <a href="#glossary-dt-target-node">target node</a> of this event shall be the node being removed.</dd>
- </dl>
- </div>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-DOMNodeRemovedFromDocument">
- <a class="noxref" href="#events-event-DOMNodeRemovedFromDocument">DOMNodeRemovedFromDocument</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 bgcolor="#CFCFCF"><strong><code>DOMNodeRemovedFromDocument</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <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 class="assert must">
- <th>Context info</th>
- <td>None</td>
- </tr>
- </table>
-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; <code>Attr</code> nodes are considered part of an <code>Element</code>'s subtree. This event shall be dispatched before the removal takes place. The <a href="#glossary-dt-target-node">target node</a> of this event type shall be the node being removed. If the node is being directly removed, the event type <a href="#events-event-DOMNodeRemoved">DOMNodeRemoved</a> must occur before this event type.</dd>
- </dl>
- </div>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-DOMNodeInsertedIntoDocument">
- <a class="noxref" href="#events-event-DOMNodeInsertedIntoDocument">DOMNodeInsertedIntoDocument</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 bgcolor="#CFCFCF"><strong><code>DOMNodeInsertedIntoDocument</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <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 class="assert must">
- <th>Context info</th>
- <td>None</td>
- </tr>
- </table>
-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; <code>Attr</code> nodes are considered part of an <code>Element</code>'s subtree. This event shall be dispatched after the insertion has taken place. The <a href="#glossary-dt-target-node">target node</a> of this event shall be the node being inserted. If the node is being directly inserted, the event type <a href="#events-event-DOMNodeInserted">DOMNodeInserted</a> must occur before this event type.</dd>
- </dl>
- </div>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-DOMAttrModified">
- <a class="noxref" href="#events-event-DOMAttrModified">DOMAttrModified</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 bgcolor="#CFCFCF"><strong><code>DOMAttrModified</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><a href="#events-Events-MutationEvent-attrName"><code>MutationEvent.attrName</code></a> and <a href="#events-Events-MutationEvent-attrChange"><code>MutationEvent.attrChange</code></a> are in use. The value of <a href="#events-Events-MutationEvent-relatedNode"><code>MutationEvent.relatedNode</code></a> indicates the <code>Attr</code> node that has been modified, added, or removed. If the <code>Attr</code> node has been added, <a href="#events-Events-MutationEvent-newValue"><code>MutationEvent.newValue</code></a> shall be in use. If the <code>Attr</code> node has been removed, <a href="#events-Events-MutationEvent-prevValue"><code>MutationEvent.prevValue</code></a> shall be in use. If the <code>Attr</code> node has been modified, <a class="noxref" href="#events-Events-MutationEvent-newValue"><code>MutationEvent.newValue</code></a> and <a class="noxref" href="#events-Events-MutationEvent-prevValue"><code>MutationEvent.prevValue</code></a> are in use.</td>
- </tr>
- </table>
-Occurs after <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 href="#glossary-dt-target-node">target node</a> of this event shall 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>.</dd>
- </dl>
- </div>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-DOMCharacterDataModified">
- <a class="noxref" href="#events-event-DOMCharacterDataModified">DOMCharacterDataModified</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 bgcolor="#CFCFCF"><strong><code>DOMCharacterDataModified</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></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>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>ProcessingInstruction</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><a href="#events-Events-MutationEvent-prevValue"><code>MutationEvent.prevValue</code></a>, and <a href="#events-Events-MutationEvent-newValue"><code>MutationEvent.newValue</code></a> are in use.</td>
- </tr>
- </table>
-Occurs 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 href="#glossary-dt-target-node">target node</a> of this event shall be the <code>CharacterData</code> node or the <code>ProcessingInstruction</code> node.</dd>
- </dl>
- </div>
- </div>
-
- <!-- div3 Events-eventgroupings-mutationevents -->
- <div class="div3">
- <h3 class="div3" id="events-Events-eventgroupings-mutationnameevents">5.2.10 Mutation Name Event Types</h3>
- <p>This module defines the feature MutationNameEvents 3.0 and depends on the features MutationEvents 3.0 and Core 3.0.</p>
- <p class="note"><strong>Note:</strong> The <code>MutationNameEvents</code> interface, introduced in an earlier draft of this specification, derives from the <a href="#events-Events-eventgroupings-mutationevents"><code>MutationEvent</code></a> interface, which is deprecated in this specification. Thus, this specification describes the mutation name event types for completeness, but deprecates their use.</p>
- <dl>
- <dt><strong>Interface <em>
- <a id="events-Events-MutationNameEvent">MutationNameEvent</a>
- </em></strong> (introduced in <strong class="since">DOM Level 3</strong>)</dt>
- <dd>
- <p>The <code>MutationNameEvent</code> interface provides specific contextual information associated with Mutation name event types.</p>
- <p>To create an instance of the <code>MutationNameEvent</code> interface, use the <code>Document.createEvent("MutationNameEvent")</code> method call.</p>
- <dl>
- <dt>
- <br/>
- <strong>IDL Definition</strong>
- </dt>
- <dd>
- <div class="idl-code">
- <pre>
-// Introduced in DOM Level 3:
-interface <a class="noxref" href="#events-Events-MutationNameEvent">MutationNameEvent</a> : <a class="noxref" href="#events-Events-MutationEvent">MutationEvent</a> {
- readonly attribute DOMString <a class="noxref" href="#events-Events-MutationNameEvent-prevNamespaceURI">prevNamespaceURI</a>;
- readonly attribute DOMString <a class="noxref" href="#events-Events-MutationNameEvent-prevNodeName">prevNodeName</a>;
- // Introduced in DOM Level 3:
- void <a class="noxref" href="#events-Events-Event-initMutationNameEvent">initMutationNameEvent</a>(in DOMString typeArg,
+ <div class="idl-code">
+ <pre>
+ // Introduced in DOM Level 2:
+ interface <a class="noxref" href="#events-Events-MutationEvent">MutationEvent</a> : <a class="noxref" href="#events-Events-Event">Event</a> {
+
+ // attrChangeType
+ const unsigned short <a class="noxref" href="#events-MODIFICATION">MODIFICATION</a> = 1;
+ const unsigned short <a class="noxref" href="#events-ADDITION">ADDITION</a> = 2;
+ const unsigned short <a class="noxref" href="#events-REMOVAL">REMOVAL</a> = 3;
+
+ readonly attribute Node <a class="noxref" href="#events-Events-MutationEvent-relatedNode">relatedNode</a>;
+ readonly attribute DOMString <a class="noxref" href="#events-Events-MutationEvent-prevValue">prevValue</a>;
+ readonly attribute DOMString <a class="noxref" href="#events-Events-MutationEvent-newValue">newValue</a>;
+ readonly attribute DOMString <a class="noxref" href="#events-Events-MutationEvent-attrName">attrName</a>;
+ readonly attribute unsigned short <a class="noxref" href="#events-Events-MutationEvent-attrChange">attrChange</a>;
+ void <a class="noxref" href="#events-event-type-initMutationEvent">initMutationEvent</a>(in DOMString typeArg,
in boolean canBubbleArg,
in boolean cancelableArg,
in Node relatedNodeArg,
- in DOMString prevNamespaceURIArg,
- in DOMString prevNodeNameArg);
- // Introduced in DOM Level 3:
- void <a class="noxref" href="#events-Events-Event-initMutationNameEventNS">initMutationNameEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString prevValueArg,
+ in DOMString newValueArg,
+ in DOMString attrNameArg,
+ in unsigned short attrChangeArg);
+ // Introduced in DOM Level 3:
+ void <a class="noxref" href="#events-event-type-initMutationEventNS">initMutationEventNS</a>(in DOMString namespaceURIArg,
in DOMString typeArg,
in boolean canBubbleArg,
in boolean cancelableArg,
in Node relatedNodeArg,
- in DOMString prevNamespaceURIArg,
- in DOMString prevNodeNameArg);
-};
-</pre>
- </div>
- <br/>
- </dd>
- <dt>
- <strong>Attributes</strong>
- </dt>
- <dd>
- <dl>
- <dt><code class="attribute-name">
- <a id="events-Events-MutationNameEvent-prevNamespaceURI">prevNamespaceURI</a>
- </code> of type <code>DOMString</code>, readonly</dt>
- <dd>The previous value of the <code>relatedNode</code>'s <code>namespaceURI</code>.<br/></dd>
- <dt><code class="attribute-name">
- <a id="events-Events-MutationNameEvent-prevNodeName">prevNodeName</a>
- </code> of type <code>DOMString</code>, readonly</dt>
- <dd>The previous value of the <code>relatedNode</code>'s <code>nodeName</code>.<br/></dd>
- </dl>
- </dd>
- <dt>
- <strong>Methods</strong>
- </dt>
- <dd>
- <dl>
- <dt><code class="method-name">
- <a id="events-Events-Event-initMutationNameEvent">initMutationNameEvent</a>
- </code> introduced in <strong class="since">DOM Level 3</strong></dt>
- <dd>
- <div class="method">Initializes attributes of a <code>MutationNameEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a>.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">relatedNodeArg</code> of type <code>Node</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">prevNamespaceURIArg</code> of type <code>DOMString</code></dt>
- <dd>Specifies <a href="#events-Events-MutationNameEvent-prevNamespaceURI"><code>MutationNameEvent.prevNamespaceURI</code></a>. This value may be <code>null</code>.<br/></dd>
- <dt><code class="parameter-name">prevNodeNameArg</code> of type <code>DOMString</code></dt>
- <dd>Specifies <a href="#events-Events-MutationNameEvent-prevNodeName"><code>MutationNameEvent.prevNodeName</code></a>.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
- <dt><code class="method-name">
- <a id="events-Events-Event-initMutationNameEventNS">initMutationNameEventNS</a>
- </code> introduced in <strong class="since">DOM Level 3</strong></dt>
- <dd>
- <div class="method">Initializes attributes of a <code>MutationNameEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initMutationEventNS"><code>MutationEvent.initMutationEventNS()</code></a>.
-<div class="parameters">
- <strong>Parameters</strong>
- <div class="paramtable">
- <dl>
- <dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMutationEventNS"><code>MutationEvent.initMutationEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMutationEventNS"><code>MutationEvent.initMutationEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMutationEventNS"><code>MutationEvent.initMutationEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMutationEventNS"><code>MutationEvent.initMutationEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">relatedNodeArg</code> of type <code>Node</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMutationEventNS"><code>MutationEvent.initMutationEventNS()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">prevNamespaceURIArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br/></dd>
- <dt><code class="parameter-name">prevNodeNameArg</code> of type <code>DOMString</code></dt>
- <dd>Refer to the <a href="#events-Events-Event-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br/></dd>
- </dl>
- </div>
- </div>
- <!-- parameters -->
- <div>
- <strong>No Return Value</strong>
- </div>
- <div>
- <strong>No Exceptions</strong>
- </div>
- </div>
- <!-- method -->
- </dd>
- </dl>
- </dd>
- </dl>
- </dd>
- </dl>
- <p>The mutation name event types are listed below.</p>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-DOMElementNameChanged">
- <a class="noxref" href="#events-event-DOMElementNameChanged">DOMElementNameChanged</a>
+ in DOMString prevValueArg,
+ in DOMString newValueArg,
+ in DOMString attrNameArg,
+ in unsigned short attrChangeArg);
+ };
+ </pre>
+ </div>
+ <br />
+ </dd>
+ <dt>
+ <strong>Definition group <em><a id="events-Events-MutationEvent-attrChangeType">attrChangeType</a></em></strong>
</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 bgcolor="#CFCFCF"><strong><code>DOMElementNameChanged</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-MutationNameEvent"><code>MutationNameEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><a href="#events-Events-MutationNameEvent-prevNamespaceURI"><code>MutationNameEvent.prevNamespaceURI</code></a>, and <a href="#events-Events-MutationNameEvent-prevNodeName"><code>MutationNameEvent.prevNodeName</code></a> are in use.</td>
- </tr>
- </table>
-Occurs after the <code>namespaceURI</code> and/or the <code>nodeName</code> of an <code>Element</code> node have been modified (e.g., the element was renamed using <code>Document.renameNode()</code>). The <a href="#glossary-dt-target-node">target node</a> of this event shall be the renamed <code>Element</code> node.</dd>
- </dl>
- </div>
- <div class="event-definition assert must">
- <dl>
- <dt id="events-event-DOMAttributeNameChanged">
- <a class="noxref" href="#events-event-DOMAttributeNameChanged">DOMAttributeNameChanged</a>
+ <p>An integer indicating in which way the <code>Attr</code> was changed.</p>
+ <dl>
+ <dt>
+ <strong>Defined Constants</strong>
+ </dt>
+ <dd>
+ <dl>
+ <dt>
+ <a id="events-ADDITION">
+ <code class="constant-name">ADDITION</code>
+ </a>
+ </dt>
+ <dd>The <code>Attr</code> was just added.</dd>
+ <dt>
+ <a id="events-MODIFICATION">
+ <code class="constant-name">MODIFICATION</code>
+ </a>
+ </dt>
+ <dd>The <code>Attr</code> was modified in place.</dd>
+ <dt>
+ <a id="events-REMOVAL">
+ <code class="constant-name">REMOVAL</code>
+ </a>
+ </dt>
+ <dd>The <code>Attr</code> was just removed.</dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+ <dt>
+ <strong>Attributes</strong>
</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 bgcolor="#CFCFCF"><strong><code>DOMAttributeNameChanged</code></strong></td>
- </tr>
- <tr class="assert must">
- <th>Namespace</th>
- <td><code>None</code></td>
- </tr>
- <tr class="assert must">
- <th>Interface</th>
- <td><a href="#events-Events-MutationNameEvent"><code>MutationNameEvent</code></a></td>
- </tr>
- <tr class="assert must">
- <th>Cancelable</th>
- <td>No</td>
- </tr>
- <tr class="assert must">
- <th>Bubbles</th>
- <td>Yes</td>
- </tr>
- <tr class="assert must">
- <th>Target</th>
- <td><code>Element</code></td>
- </tr>
- <tr class="assert must">
- <th>Context info</th>
- <td><a href="#events-Events-MutationNameEvent-prevNamespaceURI"><code>MutationNameEvent.prevNamespaceURI</code></a>, and <a href="#events-Events-MutationNameEvent-prevNodeName"><code>MutationNameEvent.prevNodeName</code></a> are in use. The value of <a href="#events-Events-MutationEvent-relatedNode"><code>MutationEvent.relatedNode</code></a> contains the renamed <code>Attr</code> node.</td>
- </tr>
- </table>
-Occurs after the <code>namespaceURI</code> and/or the <code>nodeName</code> of a <code>Attr</code> node have been modified (e.g., the attribute was renamed using <code>Document.renameNode()</code>). The <a href="#glossary-dt-target-node">target node</a> of this event shall be the <code>Element</code> node whose <code>Attr</code> has been renamed.</dd>
+ <dl>
+ <dt><code class="attribute-name"><a id="events-Events-MutationEvent-attrChange">attrChange</a></code> of type <code>unsigned short</code>, readonly</dt>
+ <dd><code>attrChange</code> indicates the type of change which triggered the <a href="#event-type-DOMAttrModified">DOMAttrModified</a> event. The values can be <code>MODIFICATION</code>, <code>ADDITION</code>, or <code>REMOVAL</code>.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-MutationEvent-attrName">attrName</a></code> of type <code>DOMString</code>, readonly</dt>
+ <dd><code>attrName</code> indicates the name of the changed <code>Attr</code> node in a <a href="#event-type-DOMAttrModified">DOMAttrModified</a> event.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-MutationEvent-newValue">newValue</a></code> of type <code>DOMString</code>, readonly</dt>
+ <dd><code>newValue</code> indicates the new value of the <code>Attr</code> node in <a href="#event-type-DOMAttrModified">DOMAttrModified</a> events, and of the <code>CharacterData</code> node in <a href="#event-type-DOMCharacterDataModified">DOMCharacterDataModified</a> events.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-MutationEvent-prevValue">prevValue</a></code> of type <code>DOMString</code>, readonly</dt>
+ <dd><code>prevValue</code> indicates the previous value of the <code>Attr</code> node in <a href="#event-type-DOMAttrModified">DOMAttrModified</a> events, and of the <code>CharacterData</code> node in <a href="#event-type-DOMCharacterDataModified">DOMCharacterDataModified</a> events.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-MutationEvent-relatedNode">relatedNode</a></code> of type <code>Node</code>, readonly</dt>
+ <dd><code>relatedNode</code> shall 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> shall be the changed parent. If an event is instead dispatched to a subtree indicating a node was changed within it, the <code>relatedNode</code> shall be the changed node. In the case of the <a href="#event-type-DOMAttrModified">DOMAttrModified</a> event it indicates the <code>Attr</code> node which was modified, added, or removed.<br /></dd>
+ </dl>
+ </dd>
+ <dt>
+ <strong>Methods</strong>
+ </dt>
+ <dd>
+ <dl>
+ <dt>
+ <code class="method-name">
+ <a id="events-event-type-initMutationEvent">initMutationEvent</a>
+ </code>
+ </dt>
+ <dd>
+ <div class="method">Initializes attributes of a <code>MutationEvent</code> object. This method has the same behavior as <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a>.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initEvent"><code>Event.initEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">relatedNodeArg</code> of type <code>Node</code></dt><dd>Specifies <a href="#events-Events-MutationEvent-relatedNode"><code>MutationEvent.relatedNode</code></a>.<br /></dd><dt><code class="parameter-name">prevValueArg</code> of type <code>DOMString</code></dt><dd>Specifies <a href="#events-Events-MutationEvent-prevValue"><code>MutationEvent.prevValue</code></a>. This value may be null.<br /></dd><dt><code class="parameter-name">newValueArg</code> of type <code>DOMString</code></dt><dd>Specifies <a href="#events-Events-MutationEvent-newValue"><code>MutationEvent.newValue</code></a>. This value may be null.<br /></dd><dt><code class="parameter-name">attrNameArg</code> of type <code>DOMString</code></dt><dd>Specifies <a href="#events-Events-MutationEvent-attrName"><code>MutationEvent.attrName</code></a>. This value may be null.<br /></dd><dt><code class="parameter-name">attrChangeArg</code> of type <code>unsigned short</code></dt><dd>Specifies <a href="#events-Events-MutationEvent-attrChange"><code>MutationEvent.attrChange</code></a>. This value may be null.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ <dt><code class="method-name"><a id="events-event-type-initMutationEventNS">initMutationEventNS</a></code> introduced in <strong class="since">DOM Level 3</strong></dt>
+ <dd>
+ <div class="method">Initializes attributes of a <code>MutationEvent</code> object. This method has the same behavior as <a href="#events-event-type-initEventNS"><code>Event.initEventNS()</code></a>.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initEventNS"><code>Event.initEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">relatedNodeArg</code> of type <code>Node</code></dt><dd>Refer to the <a href="#events-event-type-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">prevValueArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">newValueArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">attrNameArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">attrChangeArg</code> of type <code>unsigned short</code></dt><dd>Refer to the <a href="#events-event-type-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+ </dl>
+ <p>The mutation event types are listed below.</p>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-DOMSubtreeModified">
+ <a class="noxref" href="#event-type-DOMSubtreeModified">DOMSubtreeModified</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 bgcolor="#CFCFCF"><strong><code>DOMSubtreeModified</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</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>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.</dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-DOMNodeInserted">
+ <a class="noxref" href="#event-type-DOMNodeInserted">DOMNodeInserted</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 bgcolor="#CFCFCF"><strong><code>DOMNodeInserted</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><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 class="assert must"><th>Context info</th><td><a href="#events-Events-MutationEvent-relatedNode"><code>MutationEvent.relatedNode</code></a> holds the parent node of the node that has been inserted or, in case of <code>Attr</code> nodes, the <code>ownerElement</code> of the <code>Attr</code> node.</td></tr></table>
+ A node has been added as a child of another node or, in case of <code>Attr</code> nodes, has been added to an <code>Element</code>. This event shall be dispatched after the insertion has taken place. The <a href="#glossary-target-node">target node</a> of this event shall be the node being inserted.</dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-DOMNodeRemoved">
+ <a class="noxref" href="#event-type-DOMNodeRemoved">DOMNodeRemoved</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 bgcolor="#CFCFCF"><strong><code>DOMNodeRemoved</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><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 class="assert must"><th>Context info</th><td><a href="#events-Events-MutationEvent-relatedNode"><code>MutationEvent.relatedNode</code></a> holds the parent node of the node being removed or, in case of <code>Attr</code> nodes, the <code>ownerElement</code> of the <code>Attr</code> node.</td></tr></table>
+ A node is being removed from its parent node or, in case of <code>Attr</code> nodes, removed from its <code>ownerElement</code>. This event shall be dispatched before the removal takes place. The <a href="#glossary-target-node">target node</a> of this event shall be the node being removed.</dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-DOMNodeRemovedFromDocument">
+ <a class="noxref" href="#event-type-DOMNodeRemovedFromDocument">DOMNodeRemovedFromDocument</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 bgcolor="#CFCFCF"><strong><code>DOMNodeRemovedFromDocument</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>No</td></tr><tr class="assert must"><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 class="assert must"><th>Context info</th><td>None</td></tr></table>
+ 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; <code>Attr</code> nodes are considered part of an <code>Element</code>'s subtree. This event shall be dispatched before the removal takes place. The <a href="#glossary-target-node">target node</a> of this event type shall be the node being removed. If the node is being directly removed, the event type <a href="#event-type-DOMNodeRemoved">DOMNodeRemoved</a> must occur before this event type.</dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-DOMNodeInsertedIntoDocument">
+ <a class="noxref" href="#event-type-DOMNodeInsertedIntoDocument">DOMNodeInsertedIntoDocument</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 bgcolor="#CFCFCF"><strong><code>DOMNodeInsertedIntoDocument</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>No</td></tr><tr class="assert must"><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 class="assert must"><th>Context info</th><td>None</td></tr></table>
+ 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; <code>Attr</code> nodes are considered part of an <code>Element</code>'s subtree. This event shall be dispatched after the insertion has taken place. The <a href="#glossary-target-node">target node</a> of this event shall be the node being inserted. If the node is being directly inserted, the event type <a href="#event-type-DOMNodeInserted">DOMNodeInserted</a> must occur before this event type.</dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-DOMAttrModified">
+ <a class="noxref" href="#event-type-DOMAttrModified">DOMAttrModified</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 bgcolor="#CFCFCF"><strong><code>DOMAttrModified</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-MutationEvent-attrName"><code>MutationEvent.attrName</code></a> and <a href="#events-Events-MutationEvent-attrChange"><code>MutationEvent.attrChange</code></a> are in use. The value of <a href="#events-Events-MutationEvent-relatedNode"><code>MutationEvent.relatedNode</code></a> indicates the <code>Attr</code> node that has been modified, added, or removed. If the <code>Attr</code> node has been added, <a href="#events-Events-MutationEvent-newValue"><code>MutationEvent.newValue</code></a> shall be in use. If the <code>Attr</code> node has been removed, <a href="#events-Events-MutationEvent-prevValue"><code>MutationEvent.prevValue</code></a> shall be in use. If the <code>Attr</code> node has been modified, <a class="noxref" href="#events-Events-MutationEvent-newValue"><code>MutationEvent.newValue</code></a> and <a class="noxref" href="#events-Events-MutationEvent-prevValue"><code>MutationEvent.prevValue</code></a> are in use.</td></tr></table>
+ Occurs after <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 href="#glossary-target-node">target node</a> of this event shall 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>.</dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-DOMCharacterDataModified">
+ <a class="noxref" href="#event-type-DOMCharacterDataModified">DOMCharacterDataModified</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 bgcolor="#CFCFCF"><strong><code>DOMCharacterDataModified</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></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>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Text</code>, <code>Comment</code>, <code>CDATASection</code>, <code>ProcessingInstruction</code></td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-MutationEvent-prevValue"><code>MutationEvent.prevValue</code></a>, and <a href="#events-Events-MutationEvent-newValue"><code>MutationEvent.newValue</code></a> are in use.</td></tr></table>
+ Occurs 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 href="#glossary-target-node">target node</a> of this event shall be the <code>CharacterData</code> node or the <code>ProcessingInstruction</code> node.</dd>
+ </dl>
+ </div>
+ </div>
+<!-- div3 Events-eventgroupings-mutationevents -->
+ <div class="div3">
+ <h3 class="div3" id="events-mutationnameevents">5.2.10 Mutation Name Event Types</h3>
+ <p>This module defines the feature MutationNameEvents 3.0 and depends on the features MutationEvents 3.0 and Core 3.0.</p>
+ <p class="note"><strong>Note:</strong> The <code>MutationNameEvents</code> interface, introduced in an earlier draft of this specification, derives from the <a href="#events-mutationevents"><code>MutationEvent</code></a> interface, which is deprecated in this specification. Thus, this specification describes the mutation name event types for completeness, but deprecates their use.</p>
+ <dl>
+ <dt><strong>Interface <em><a id="events-Events-MutationNameEvent">MutationNameEvent</a></em></strong> (introduced in <strong class="since">DOM Level 3</strong>)</dt>
+ <dd>
+ <p>The <code>MutationNameEvent</code> interface provides specific contextual information associated with Mutation name event types.</p>
+ <p>To create an instance of the <code>MutationNameEvent</code> interface, use the <code>Document.createEvent("MutationNameEvent")</code> method call.</p>
+ <dl>
+ <dt>
+ <br />
+ <strong>IDL Definition</strong>
+ </dt>
+ <dd>
+ <div class="idl-code">
+ <pre>
+ // Introduced in DOM Level 3:
+ interface <a class="noxref" href="#events-Events-MutationNameEvent">MutationNameEvent</a> : <a class="noxref" href="#events-Events-MutationEvent">MutationEvent</a> {
+ readonly attribute DOMString <a class="noxref" href="#events-Events-MutationNameEvent-prevNamespaceURI">prevNamespaceURI</a>;
+ readonly attribute DOMString <a class="noxref" href="#events-Events-MutationNameEvent-prevNodeName">prevNodeName</a>;
+ // Introduced in DOM Level 3:
+ void <a class="noxref" href="#events-event-type-initMutationNameEvent">initMutationNameEvent</a>(in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in Node relatedNodeArg,
+ in DOMString prevNamespaceURIArg,
+ in DOMString prevNodeNameArg);
+ // Introduced in DOM Level 3:
+ void <a class="noxref" href="#events-event-type-initMutationNameEventNS">initMutationNameEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in Node relatedNodeArg,
+ in DOMString prevNamespaceURIArg,
+ in DOMString prevNodeNameArg);
+ };
+ </pre>
+ </div>
+ <br />
+ </dd>
+ <dt>
+ <strong>Attributes</strong>
+ </dt>
+ <dd>
+ <dl>
+ <dt><code class="attribute-name"><a id="events-Events-MutationNameEvent-prevNamespaceURI">prevNamespaceURI</a></code> of type <code>DOMString</code>, readonly</dt>
+ <dd>The previous value of the <code>relatedNode</code>'s <code>namespaceURI</code>.<br /></dd>
+ <dt><code class="attribute-name"><a id="events-Events-MutationNameEvent-prevNodeName">prevNodeName</a></code> of type <code>DOMString</code>, readonly</dt>
+ <dd>The previous value of the <code>relatedNode</code>'s <code>nodeName</code>.<br /></dd>
+ </dl>
+ </dd>
+ <dt>
+ <strong>Methods</strong>
+ </dt>
+ <dd>
+ <dl>
+ <dt><code class="method-name"><a id="events-event-type-initMutationNameEvent">initMutationNameEvent</a></code> introduced in <strong class="since">DOM Level 3</strong></dt>
+ <dd>
+ <div class="method">Initializes attributes of a <code>MutationNameEvent</code> object. This method has the same behavior as <a href="#events-event-type-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a>.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">relatedNodeArg</code> of type <code>Node</code></dt><dd>Refer to the <a href="#events-event-type-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">prevNamespaceURIArg</code> of type <code>DOMString</code></dt><dd>Specifies <a href="#events-Events-MutationNameEvent-prevNamespaceURI"><code>MutationNameEvent.prevNamespaceURI</code></a>. This value may be <code>null</code>.<br /></dd><dt><code class="parameter-name">prevNodeNameArg</code> of type <code>DOMString</code></dt><dd>Specifies <a href="#events-Events-MutationNameEvent-prevNodeName"><code>MutationNameEvent.prevNodeName</code></a>.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ <dt><code class="method-name"><a id="events-event-type-initMutationNameEventNS">initMutationNameEventNS</a></code> introduced in <strong class="since">DOM Level 3</strong></dt>
+ <dd>
+ <div class="method">Initializes attributes of a <code>MutationNameEvent</code> object. This method has the same behavior as <a href="#events-event-type-initMutationEventNS"><code>MutationEvent.initMutationEventNS()</code></a>.
+ <div class="parameters"><strong>Parameters</strong><div class="paramtable"><dl><dt><code class="parameter-name">namespaceURIArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initMutationEventNS"><code>MutationEvent.initMutationEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initMutationEventNS"><code>MutationEvent.initMutationEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initMutationEventNS"><code>MutationEvent.initMutationEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt><dd>Refer to the <a href="#events-event-type-initMutationEventNS"><code>MutationEvent.initMutationEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">relatedNodeArg</code> of type <code>Node</code></dt><dd>Refer to the <a href="#events-event-type-initMutationEventNS"><code>MutationEvent.initMutationEventNS()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">prevNamespaceURIArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br /></dd><dt><code class="parameter-name">prevNodeNameArg</code> of type <code>DOMString</code></dt><dd>Refer to the <a href="#events-event-type-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.<br /></dd></dl></div></div>
+ <!-- parameters -->
+ <div><strong>No Return Value</strong></div>
+ <div><strong>No Exceptions</strong></div>
+ </div>
+<!-- method -->
+ </dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+ </dl>
+ <p>The mutation name event types are listed below.</p>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-DOMElementNameChanged">
+ <a class="noxref" href="#event-type-DOMElementNameChanged">DOMElementNameChanged</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 bgcolor="#CFCFCF"><strong><code>DOMElementNameChanged</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-MutationNameEvent"><code>MutationNameEvent</code></a></td></tr><tr class="assert must"><th>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-MutationNameEvent-prevNamespaceURI"><code>MutationNameEvent.prevNamespaceURI</code></a>, and <a href="#events-Events-MutationNameEvent-prevNodeName"><code>MutationNameEvent.prevNodeName</code></a> are in use.</td></tr></table>
+ Occurs after the <code>namespaceURI</code> and/or the <code>nodeName</code> of an <code>Element</code> node have been modified (e.g., the element was renamed using <code>Document.renameNode()</code>). The <a href="#glossary-target-node">target node</a> of this event shall be the renamed <code>Element</code> node.</dd>
+ </dl>
+ </div>
+ <div class="event-definition assert must">
+ <dl>
+ <dt id="event-type-DOMAttributeNameChanged">
+ <a class="noxref" href="#event-type-DOMAttributeNameChanged">DOMAttributeNameChanged</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 bgcolor="#CFCFCF"><strong><code>DOMAttributeNameChanged</code></strong></td></tr><tr class="assert must"><th>Namespace</th><td><code>None</code></td></tr><tr class="assert must"><th>Interface</th><td><a href="#events-Events-MutationNameEvent"><code>MutationNameEvent</code></a></td></tr><tr class="assert must"><th>Cancelable</th><td>No</td></tr><tr class="assert must"><th>Bubbles</th><td>Yes</td></tr><tr class="assert must"><th>Target</th><td><code>Element</code></td></tr><tr class="assert must"><th>Context info</th><td><a href="#events-Events-MutationNameEvent-prevNamespaceURI"><code>MutationNameEvent.prevNamespaceURI</code></a>, and <a href="#events-Events-MutationNameEvent-prevNodeName"><code>MutationNameEvent.prevNodeName</code></a> are in use. The value of <a href="#events-Events-MutationEvent-relatedNode"><code>MutationEvent.relatedNode</code></a> contains the renamed <code>Attr</code> node.</td></tr></table>
+ Occurs after the <code>namespaceURI</code> and/or the <code>nodeName</code> of a <code>Attr</code> node have been modified (e.g., the attribute was renamed using <code>Document.renameNode()</code>). The <a href="#glossary-target-node">target node</a> of this event shall be the <code>Element</code> node whose <code>Attr</code> has been renamed.</dd>
+ </dl>
+ </div>
+ </div>
+<!-- div3 Events-eventgroupings-mutationnameevents -->
+ </div>
+<!-- div1 Events -->
+
+
+
+
+ <div class="div1">
+ <h2 id="keyset" class="adiv1">6. Keyboard events and key identifiers</h2>
+ <p>This section contains necessary information regarding keyboard events:</p>
+ <ul>
+ <li>Relations between keys, such as dead keys or modifiers keys.</li>
+ <li>Relations between keyboard events, their default actions, and text events.</li>
+ <li>The set of key identifiers, and guidelines on how to extend this set.</li>
+ </ul>
+ <p class="note"><strong>Note:</strong> This section uses serbian and kanji characters which are not always available (or are misrepresented) in the alternative versions or printed versions of this specification.</p>
+
+
+ <div class="div2">
+ <h3 id="keyboard-input" class="adiv2">6.1 Keyboard Input</h3>
+ <p>The relationship of each key to the complete keyboard has three separate aspects, each of which vary among different models and configurations of keyboards, particularly for locale-specific reasons:</p>
+ <ul>
+ <li><strong>Mechanical layout:</strong> the dimensions, size, and placement of the physical keys on the keyboard</li>
+ <li><strong>Visual markings:</strong> the labels (or <em>legends</em>) that mark each key</li>
+ <li><strong>Functional mapping:</strong> the abstract key-identifier association of each key.</li>
+ </ul>
+
+ <p>This specification only defines the functional mapping, in terms of key identifiers. The visual marking has no bearing on the digital representation of the keys, and in many configurations may be completely inaccurate.</p>
+
+ <h4 id="keyboard-layout" class="adiv2">6.1.1 Keyboard Layout</h4>
+ <p>The physical layout of the keys may be of interest to authors developing games or other applications wherein the location of the keys has an ergonomic relationship as the desired user interface controls, with little or no attention paid to the representational value of the key itself. For example, many games may use the keys <code class="value">'A'</code>, <code class="value">'S'</code>, <code class="value">'D'</code>, and <code class="value">'W'</code> for <code class="value">'left'</code>, <code class="value">'down'</code>, <code class="value">'right'</code>, and <code class="value">'up'</code> respectively. Authors should provide a means for the user to assign the controller keys to a custom setting appropriate to their keyboard configurations.</p>
+
+ <h5 id="keyboard-desktop" class="adiv2">6.1.1.1 Desktop and Laptop Keyboards</h5>
+ <p>In the case where an author wishes to rely on the mechanical layout of a desktop or laptop keyboard, this specification recommends the keyboard configuration specified in ISO/IEC-9995-3-FCD:2009A as a common layout appropriate to some international uses.</p>
+
+ <p class="note"><strong>Note:</strong> This keyboard layout is still, in essence, a QWERTY keyboard, and will not match the keyboards or configurations of many users. Authors cannot rely upon any particular configuration, and should create content in an internationalized and localizable manner.</p>
+
+ <div class="figure" style="text-align: center">
+ <object type="image/svg+xml" data="images/ISOIEC-9995-3-FCD-2009A.svg" width="900" height="300">
+ <img src="images/ISOIEC-9995-3-FCD-2009A.png" alt="A graphical depiction of an ISO standard defining layouts of computer keyboards, ISO/IEC 9995-3:2009A"/>
+ </object>
+ <p style="text-align:left"><em>Figure: A graphical depiction of an ISO standard defining layouts of computer keyboards, ISO/IEC 9995-3:2009A</em></p>
+ </div>
+
+ <h5 id="keyboard-mobile" class="adiv2">6.1.1.2 Mobile Keypads</h5>
+ <p>In the case where an author wishes to rely on the mechanical layout of a mobile keypad, this specification recommends the keyboard configuration specified in ISO/IEC 9995-8:2006 as a common layout appropriate to some international uses.</p>
+
+ <p class="note"><strong>Note:</strong> This keypad layout, and in particular the distribution of letters is for Western devices, and will not match the keypads or configurations of many users. Authors cannot rely upon any particular configuration, and should create content in an internationalized and localizable manner.</p>
+
+ <div class="figure" style="text-align: center">
+ <object type="image/svg+xml" data="images/ISOIEC-9995-8-2006.svg" width="180" height="240">
+ <img src="images/ISOIEC-9995-8-2006.svg" alt="A graphical depiction of an ISO standard defining layouts of numeric keypads, with distribution of letters on the keys, ISO/IEC 9995-8:2006"/>
+ </object>
+ <p style="text-align:left"><em>Figure: A graphical depiction of an ISO standard defining layouts of numeric keypads, with distribution of letters on the keys, ISO/IEC 9995-8:2006</em></p>
+ </div>
+
+
+
+ <h3 id="keyset-comp-input" class="adiv2">6.2 Compositional Keyboard Input</h3>
+
+ <p class="1st">Each keyboard event references a key using a <code>DOMString</code> key identifier. The set contained in this appendix is based on the sets of keycodes from:</p>
+ <ul>
+ <li>the interface <code>java.awt.event.KeyEvent</code> of the Java 2 Platform v1.4 [<cite><a class="noxref informative" href="#references-KeyEvent">KeyEvent for Java</a></cite>];</li>
+ <li>the enumeration <code>System.Windows.Forms.Keys</code> of the Microsoft .NET Framework 1.0 [<cite><a class="noxref informative" href="#references-Keys">Keys enumeration for .Net</a></cite>].</li>
+ </ul>
+
+ <p>Key identifiers are strings used for uniquely addressing keyboard buttons, and intended for use in two primary scenarios: as attributes for a keyboard event; or as string values for markup attributes, such as so-called "hotkeys" (or keyboard shortcuts). As attributes on an event, the key identifier shall be a single canonical value. As author-generated content, the key identifier may be one of three equivalent string values, which all evaluate to the same key identifier; the string may be a character string (a single character, such as a letter or symbol), a key name (a multi-character string, such as <code>enter</code> or <code>tab</code>, for control or dead keys, or certain symbols), or a Unicode codepoint ("U+" followed by a hexadecimal character index). The event attribute must always be the most author-friendly of these, in the following order: character string, key name, or Unicode codepoint.</p>
+
+ <p>There are several use cases for keyboard events. The first use case is to retrieve the value of the key itself, in whichever mode that key currently represents (i.e. the value of a key as an upper- or lower-case letter, or a symbol or number, depending upon the current modifier keys, or as a key name); this may be used for monitoring particular input strings, or for modifier key input, or for author-generated virtual keyboards, and does not not depend upon the location of the key in the physical layout of the device, which may be mapped to different configurations based on user or system preference. The second use case is for keyboard shortcuts, where the string itself may be of secondary importance, and where they key used should default to the most appropriate key for the function, language, operating system, device, and other environmental factors (such as <code>ctrl+c</code> for copy operations). The final use case is completely independent of the value of the key identifier, and relies solely on the physical layout of the input device itself (such as for game controls); this is highly variable device-dependent functionality, and is not within the scope of this specification. Implementations should provide an option for users to establish their own preferential mapping for keyboard layout, and may rely upon ISO 9995-3, which defines a common layout for primary and secondary key mappings on a typical alphanumeric keyboard, or on ISO 9995-8, which defines a numeric keypad layout and secondary assignment of Unicode characters in the range <abbr title="a-z">U+0061..U+007A</abbr> to the number keys <code>2</code> through <code>9</code>.</p>
+
+ <!--
+ <p>There are several primary use cases for Key Identifiers, roughly divided into cases for output and input. For output,
+
+ <Travis> Use case: simulate a keyboard on a webpage.
+
+ DS: May be useful to have use cases
+
+ AvK: Games
+
+ DS: We will be unable to define location on a keyboard
+ ... Anyone making a game, wise to have user define key mapping
+
+
+ <Travis> access keys.
+
+ AvK: Scripts care about actual value - keyboard shortcuts
+
+ <Travis> (Accessibility uses)
+
+ DS: Hotkeys
+ ... A little broken, commands used with browser not accessable to
+ script authors. Will be overrideen
+ ... There was an interesting proposal for allowing script authors to
+ have hotkeys
+ ... control-shift-?? is a way to access hotkeys
+
+ :)
+
+ <smaug> :)
+
+ DS: Web app, want to hit control-S, same as they are used to with
+ desktop app
+
+ TL: Browser as application vs web page as an application
+
+ <smaug> Does anyone have a link to that proposal?
+
+ DS: May be useful to specify how browsers should deal with hotkeys
+ ... Part of a dedicated specification - rather a different topic
+
+ <chaals> [/me notes that the use cases boil down to something like
+ "make the interface match what people expect", "make the keys used
+ be a comfortable layout (especially important in games)" and "ensure
+ that the keys are actually available and not overriding some
+ important functionality the user had" ...]
+
+ <Travis> Also, the drag/drop spec overlaps with this stuff.
+
+ DS: Another use case is grab actual text values
+ ... Does not care about location, just the end value
+ </p>
+ -->
+
+ <p>While implementations are recommended to use the most relevant identifier for a key independently of the platform or keyboard layout mappings, DOM applications should not make assumption on the ability of keyboard devices to generate them. When using keyboard events, <cite>"consider using numbers and function keys (F4, F5, and so on) instead of letters in shortcut-key combinations"</cite> ([<cite><a class="noxref informative" href="#references-DWW95">DWW95</a></cite>]) given that most keyboard layouts will provide keys for those.</p>
+ <p><code class="value">'U+0000'</code>, <code class="value">'U+0001'</code>, ..., <code class="value">'U+10FFFF'</code> are Unicode based key identifiers ([<cite><a class="noxref normative" href="#references-Unicode">Unicode</a></cite>]). When a key cannot be mapped to Unicode, a specific identifier shall be used (see also <a href="#keyset-Guide">Guidelines for defining key identifiers</a>). In any case, no assumption should be made between the sequence of keyboard events and the text events. The following three examples illustrate the concept of keyboard layout mappings and its relation with keyboard events (following the <a href="#keyset-Guide">Guidelines for defining key identifiers</a>, the 'Q' key shall be mapped to the Latin Capital Letter Q key).</p>
+ <p>The keystroke <code class="value">'U+0051'</code> (Latin Capital Letter Q key) must produce (on a PC/AT US keyboard using a US keyboard layout mapping and without any modifier activated) the Unicode character <code>q</code> (Latin Small Letter Q):</p>
+ <ol>
+ <li><code>"keydown"</code>: <code class="value">'U+0051'</code> (Latin Capital Letter Q key)</li>
+ <li><code>"textInput"</code>: <code class="value">'q'</code></li>
+ <li><code>"keyup"</code>: <code class="value">'U+0051'</code></li>
+ </ol>
+ <p>If the keyboard layout mapping is switched to a french mapping, pressing the same key must produce:</p>
+ <ol>
+ <li><code>"keydown"</code>: <code class="value">'U+0041'</code> (Latin Capital Letter A key)</li>
+ <li><code>"textInput"</code>: <code class="value">'a'</code></li>
+ <li><code>"keyup"</code>: <code class="value">'U+0041'</code></li>
+ </ol>
+ <p>If the keyboard layout mapping is switched to a serbian (cyrillic) mapping, pressing the same key must produce:</p>
+ <ol>
+ <li><code>"keydown"</code>: <code class="value">'U+0409'</code> (Cyrillic Capital Letter LJE)</li>
+ <li><code>"textInput"</code>: <code class="value">'љ'</code></li>
+ <li><code>"keyup"</code>: <code class="value">'U+0409'</code></li>
+ </ol>
+ <p class="note"><strong>Note:</strong> The order between the text event and keyboard events may differ depending on the keyboard devices.</p>
+ <div class="div3">
+ <h4 id="keyset-Modifiers" class="adiv3">6.2.1 Modifier keys</h4>
+ <p>Keyboard input uses modifier keys to change the normal behavior of a key. Keys associated with modifiers generate, like other keys, <a href="#event-type-keydown">keydown</a> and <a href="#event-type-keyup">keyup</a> events as shown in the example below. Some modifiers are activated while the key is being pressed down or maintained pressed such as <code class="value">'Alt'</code>, <code class="value">'Control'</code>, <code class="value">'Shift'</code>, <code class="value">'AltGraph'</code>, or <code class="value">'Meta'</code>. Others modifiers are activated depending on their state such as <code class="value">'CapsLock'</code>, <code class="value">'NumLock'</code>, or <code class="value">'Scroll'</code>. Change in the state happens when the modifier key is being pressed down. The <a href="#events-Events-KeyboardEvent"><code>KeyboardEvent</code></a> interface provides convenient attributes for some common modifiers keys: <a href="#events-Events-KeyboardEvent-ctrlKey"><code>KeyboardEvent.ctrlKey</code></a>, <a href="#events-Events-KeyboardEvent-shiftKey"><code>KeyboardEvent.shiftKey</code></a>, <a href="#events-Events-KeyboardEvent-altKey"><code>KeyboardEvent.altKey</code></a>, <a href="#events-Events-KeyboardEvent-metaKey"><code>KeyboardEvent.metaKey</code></a>. Some operating systems simulate the <code class="value">'AltGraph'</code> modifier key with the combination of the <code>"Alt</code> and <code class="value">'Control'</code> modifier keys. Implementations are encouraged to use the <code class="value">'AltGraph'</code> modifier key.</p>
+ <p>The following example describes a possible sequence of keys to generate the Unicode character Q (Latin Capital Letter Q) on a PC/AT US keyboard using a US mapping:</p>
+ <ol>
+ <li><code>"keydown"</code>: <code class="value">'Shift'</code>, shiftKey</li>
+ <li><code>"keydown"</code>: <code class="value">'U+0051'</code> (Latin Capital Letter Q key), shiftKey</li>
+ <li><code>"textInput"</code>: <code class="value">'Q'</code></li>
+ <li><code>"keyup"</code>: <code class="value">'U+0051'</code>, shiftKey</li>
+ <li><code>"keyup"</code>: <code class="value">'Shift'</code></li>
+ </ol>
+ <p>The following example describes a possible sequence of keys that does not generate a Unicode character (using the same configuration):</p>
+ <ol>
+ <li><code>"keydown"</code>: <code class="value">'Control'</code>, ctrlKey</li>
+ <li><code>"keydown"</code>: <code class="value">'U+0056'</code> (Latin Capital Letter V key), ctrlKey</li>
+ <li><code>"keyup"</code>: <code class="value">'U+0056'</code>, ctrlKey</li>
+ <li><code>"keyup"</code>: <code class="value">'Control'</code></li>
+ </ol>
+
+ <p>In some cases, modifier keys change the key identifier value for a key event. For example, on some MacOS keyboards, the key labeled <code class="value">'delete'</code> functions the same as the <code class="value">'Backspace'</code> key on the Windows OS when unmodified, but when modified by the <code class="value">'Fn'</code> key, acts as the <code class="value">'Del'</code> key, and the value of the key identifier must match the most appropriate function of the key in its current modified state.</p>
+ </div>
+
+ <!-- div3 Modifiers -->
+ <div class="div3">
+ <h4 id="keyset-DeadKeys" class="adiv3">6.2.2 Dead keys</h4>
+ <p>Some keyboard input uses dead keys for the input of composed character sequences. Unlike the handwriting sequence, in which users enter the base character first, keyboard input requires to enter a special state when a dead key is pressed and emit the character(s) only when one of a limited number of "legal" base character is entered. (NOTE: the MacOS and Linux operating systems use input methods to process dead keys.)
+ </p>
+ <p>The dead keys are represented in the key identifiers set using combining diacritical marks. The sequence of keystrokes "U+0302" (Combining Circumflex Accent key) and "U+0045" (Latin Capital Letter E key) will likely produce (on a PC/AT french keyboard using a french mapping and without any modifier activated) the Unicode character ê (Latin Small Letter E With Circumflex), as preferred by the Unicode Normalization Form <em>NFC</em>:</p>
+ <ol>
+ <li><code>"keydown"</code>: <code class="value">'U+0302'</code> (Combining Circumflex Accent key)</li>
+ <li><code>"compositionstart"</code>: <code class="value">''</code></li>
+ <li><code>"compositionupdate"</code>: <code class="value">''</code> <span class="issue">@@ (value undefined - to be discussed)</span></li>
+ <li><code>"keyup"</code>: <code class="value">'U+0302'</code></li>
+ <li><code>"keydown"</code>: <code class="value">'U+0045'</code> (Latin Capital Letter E key)</li>
+ <li><code>"compositionend"</code>: <code class="value">'é'</code> <span class="issue">@@ should compositionend come before or after textInput</span></li>
+ <li><code>"textInput"</code>: <code class="value">'é'</code> (<code>"inputMode"</code>: <code class="value">'DOM_INPUT_METHOD_IME'</code>)</li>
+ <li><code>"keyup"</code>: <code class="value">'U+0045'</code></li>
+ </ol>
+
+ <p>This process may be aborted when a user types an unsupported base character (that is, a base character for which the which the active diacritical mark is not available) after pressing a dead key:</p>
+ <ol>
+ <li><code>"keydown"</code>: <code class="value">'U+0302'</code> (Combining Circumflex Accent key)</li>
+ <li><code>"compositionstart"</code>: <code class="value">''</code></li>
+ <li><code>"compositionupdate"</code>: <code class="value">''</code> <span class="issue">@@ (undefined - to be discussed)</span></li>
+ <li><code>"keyup"</code>: <code class="value">'U+0302'</code></li>
+ <li><code>"keydown"</code>: <code class="value">'U+0051'</code> (Latin Capital Letter Q key)</li>
+ <li><code>"compositionend"</code>: <code class="value">''</code></li>
+ <li><code>"textInput"</code>: <code class="value">'q'</code> (<code>"inputMode"</code>: <code class="value">'DOM_INPUT_METHOD_KEYBOARD'</code>)</li>
+ <li><code>"keyup"</code>: <code class="value">'U+0051'</code></li>
+ </ol>
+
+ </div>
+
+
+ <!-- div3 DeadKeys -->
+ <div class="div3">
+ <h4 id="keyset-IME" class="adiv3">6.2.3 Input Method Editors</h4>
+
+ <p>This specification includes a model for <a href="#glossary-ime">input method editors (IMEs)</a>, through the <a href="#events-compositionevents">CompositionEvent</a> interface and events. However, composition events and keyboard events do not necessarily map as a one-to-one relationship. As an example, receiving a <a href="#event-type-keydown">keydown</a> for the "Accept" key identifier does not necessarily imply that the text currently selected in the IME is being accepted, but indicates only that a keystroke happened, disconnected from the IME Accept functionality (which would normally result in a <code>"compositionend"</code> event in most IME systems). Keyboard events cannot be used to determine the current state of the input method editor, which should be obtained through the <a href="#events-Events-CompositionEvent-data"><code>data</code></a> attribute of the <a href="#events-compositionevents">CompositionEvent</a> interface. Additionally, IME systems and devices vary in their functionality, and in which keys are used for activating that functionality, such that the <code class="value">'Convert'</code> and <code class="value">'Accept'</code> keys may be represented by other available keys.</p>
+ <p>Keyboard events correspond to the events generated by the input device after the keyboard layout mapping but before the processing of the input method editor.</p>
+ <p>The following example describes a possible sequence of keys to generate the Unicode character 市 (Kanji character, part of CJK Unified Ideographs) using Japanese input methods. This example assumes that the input method editor is activated and in the Japanese-Romaji input mode. The keys <code class="value">'Convert'</code> and <code class="value">'Accept'</code> may be replaced by others depending on the input device in use and the configuration of the IME, e.g. it could be respectively <code class="value">'U+0020'</code> (Space key) and <code class="value">'Enter'</code>.</p>
+ <ol>
+ <li><code>"keydown"</code>: <code class="value">'U+0053'</code> (Latin Capital Letter S key)</li>
+ <li><code>"compositionstart"</code>: <code class="value">''</code></li>
+ <li><code>"keyup"</code>: <code class="value">'U+0053'</code> (Latin Capital Letter S key)</li>
+ <li><code>"keydown"</code>: <code class="value">'U+0049'</code> (Latin Capital Letter I key)</li>
+ <li><code>"keyup"</code>: <code class="value">'U+0049'</code> (Latin Capital Letter I key)</li>
+ <li><code>"keydown"</code>: <code class="value">'Convert'</code></li>
+ <li><code>"compositionupdate"</code>: <code class="value">'詩'</code></li>
+ <li><code>"keyup"</code>: <code class="value">'Convert'</code></li>
+ <li><code>"keydown"</code>: <code class="value">'Convert'</code></li>
+ <li><code>"compositionupdate"</code>: <code class="value">'市'</code></li>
+ <li><code>"keyup"</code>: <code class="value">'Convert'</code></li>
+ <li><code>"keydown"</code>: <code class="value">'Accept'</code></li>
+ <li><code>"compositionend"</code>: <code class="value">'市'</code></li>
+ <li><code>"textInput"</code>: <code class="value">'市'</code> (<code>"inputMode"</code>: <code class="value">'DOM_INPUT_METHOD_IME'</code>)</li>
+ <li><code>"keyup"</code>: <code class="value">'Accept'</code></li>
+ </ol>
+
+ <p>IME composition may also be canceled as in the following example, with conditions identical to the previous example. The key "Cancel" may also be replaced by others depending on the input device in use and the configuration of the IME, e.g. it could be "U+001B" (Escape key).</p>
+ <ol>
+ <li><code>"keydown"</code>: <code class="value">'U+0053'</code> (Latin Capital Letter S key)</li>
+ <li><code>"compositionstart"</code>: <code class="value">''</code></li>
+ <li><code>"keyup"</code>: <code class="value">'U+0053'</code> (Latin Capital Letter S key)</li>
+ <li><code>"keydown"</code>: <code class="value">'U+0049'</code> (Latin Capital Letter I key)</li>
+ <li><code>"keyup"</code>: <code class="value">'U+0049'</code> (Latin Capital Letter I key)</li>
+ <li><code>"keydown"</code>: <code class="value">'Convert'</code></li>
+ <li><code>"compositionupdate"</code>: <code class="value">'詩'</code></li>
+ <li><code>"keyup"</code>: <code class="value">'Convert'</code></li>
+ <li><code>"keydown"</code>: <code class="value">'Convert'</code></li>
+ <li><code>"compositionupdate"</code>: <code class="value">'市'</code></li>
+ <li><code>"keyup"</code>: <code class="value">'Convert'</code></li>
+ <li><code>"keydown"</code>: <code class="value">'Cancel'</code></li>
+ <li><code>"compositionupdate"</code>: <code class="value">''</code></li>
+ <li><code>"compositionend"</code>: <code class="value">''</code></li>
+ <li><code>"keyup"</code>: <code class="value">'Cancel'</code></li>
+ </ol>
+
+ <p>NOTE: Some <a href="#glossary-ime">input method editors</a> (such as on the MacOS operating system) may set an empty string to the composition data attribute before canceling a composition.</p>
+
+ <h5 id="keyset-IME_keys" class="adiv4">6.2.3.1 Input Method Editor mode keys</h5>
+ <p>Some keys on certain devices are intended to activate <a href="#glossary-ime">input method editor</a> functionality, or to change the mode of an active <a href="#glossary-ime">input method editor</a>. Custom keys for this purpose may be defined for different devices or language modes; the keys defined in this specification for this purpose are: <code>Alphanumeric</code>, <code>CodeInput</code>, <code>FinalMode</code>, <code>HangulMode</code>, <code>HanjaMode</code>, <code>Hiragana</code>, <code>JapaneseHiragana</code>, <code>JapaneseKatakana</code>, <code>JapaneseRomaji</code>, <code>JunjaMode</code>, <code>KanaMode</code>, <code>KanjiMode</code>, <code>Katakana</code>, and <code>RomanCharacters</code>. When one of these keys is pressed, and no <a href="#glossary-ime">IME</a> is currently active, the appropriate <a href="#glossary-ime">IME</a>, shall be activated in the mode indicated by the key (if available); if an <a href="#glossary-ime">IME</a> is already active when the key is pressed, the active <a href="#glossary-ime">IME</a> may change to the indicated mode, or a different <a href="#glossary-ime">IME</a> may be launched, or the key may be ignored, on a device- and application-specific basis.</p>
+
+ <p>This specification also defines other keys which are intended for operation specifically with <a href="#glossary-ime">input method editors</a>: <code>Accept</code>, <code>AllCandidates</code>, <code>Cancel</code>, <code>Convert</code>, <code>Compose</code>, <code>FullWidth</code>, <code>HalfWidth</code>, <code>NextCandidate</code>, <code>Nonconvert</code>, and <code>PreviousCandidate</code>. The functions of these keys are not defined in this specification; refer to other resources for details on <a href="#glossary-ime">input method editor</a> functionality.</p>
+
+ <p>Note that keys with <a href="#glossary-ime">input method editor</a> functions are note restricted to that purpose, and may have other device- or implementation-specific purposes, as well.</p>
+
+ </div>
+
+
+ <!-- div3 IME -->
+ <div class="div3">
+ <h4 id="keyset-cancelable_keys" class="adiv3">6.2.4 Default actions and cancelable keyboard events</h4>
+ <p>Canceling the <a href="#glossary-default-action">default action</a> of a <a href="#event-type-keydown">keydown</a> event does not affect its respective <a href="#event-type-keyup">keyup</a> event; it must however prevent the respective <a href="#event-type-textInput">textInput</a> event from being generated. The following example describes a possible sequence of keys to generate the Unicode character Q (Latin Capital Letter Q) on a PC/AT US keyboard using a US mapping:</p>
+ <ol>
+ <li><code>"keydown"</code>: <code class="value">'U+0051'</code> (Latin Capital Letter Q key), shiftKey<br/>
+ the <a href="#glossary-default-action">default action</a> of the <a href="#event-type-keydown">keydown</a> event is prevented, e.g. by invoking <a href="#events-event-type-preventDefault"><code>Event.preventDefault()</code></a> during the dispatch of the keydown event object.</li>
+ <li>No <code>"textInput"</code> shall be generated.</li>
+ <li><code>"keyup"</code>: <code class="value">'U+0051'</code>, shiftKey</li>
+ </ol>
+ <p>If the key is a modifier key, the keystroke shall be taken into account for the modifiers states. The following example describes a possible sequence of keys to generate the Unicode character Q (Latin Capital Letter Q) on a PC/AT US keyboard using a US mapping:</p>
+ <ol>
+ <li><code>"keydown"</code>: <code class="value">'Shift'</code>, shiftKey<br/>
+ the <a href="#glossary-default-action">default action</a> of the keydown event shall be prevented.</li>
+ <li><code>"keydown"</code>: <code class="value">'U+0051'</code> (Latin Capital Letter Q key), shiftKey</li>
+ <li><code>"textInput"</code>: <code class="value">'Q'</code></li>
+ <li><code>"keyup"</code>: <code class="value">'U+0051'</code>, shiftKey</li>
+ <li><code>"keyup"</code>: <code class="value">'Shift'</code></li>
+ </ol>
+ <p>If the key is part of a sequence of several keystrokes, whether it is a dead key or it is contributing to an Input Method Editor sequence, the keystroke shall be ignored (not taken into account) only if the <a href="#glossary-default-action">default action</a> is canceled on the <a href="#event-type-keydown">keydown</a> event. Canceling a dead key on a <a href="#event-type-keyup">keyup</a> event has not effect on <a href="#event-type-textInput">textInput</a> events. The following example uses the keystrokes <code class="value">'U+0302'</code> (Combining Circumflex Accent key) and <code class="value">'U+0045'</code> (Latin Capital Letter E key) (on a PC/AT french keyboard using a french mapping and without any modifier activated):</p>
+ <ol>
+ <li><code>"keydown"</code>: <code class="value">'U+0302'</code> (Combining Circumflex Accent key)<br/>
+ the <a href="#glossary-default-action">default action</a> of the keydown event shall be prevented</li>
+ <li><code>"keyup"</code>: <code class="value">'U+0302'</code></li>
+ <li><code>"keydown"</code>: <code class="value">'U+0045'</code> (Latin Capital Letter E key)</li>
+ <li><code>"textInput"</code>: <code class="value">'a'</code></li>
+ <li><code>"keyup"</code>: <code class="value">'U+0045'</code></li>
+ </ol>
+ </div>
+ <!-- div3 cancelable_keys -->
+
+
+ </div>
+
+ <ul>
+ <li class="issue">Add a "power" key?</li>
+ <li class="issue">In the case of markup and attribute values, should the Key Identifiers for character keys be case-insensitive?</li>
+ </ul>
+
+ <!-- div3 Guide -->
+ </div>
+ <!-- div2 KeySet-intro -->
+ <div class="div2">
+ <h3 id="keyset-keyidentifiers" class="adiv2">6.3 Key identifiers set</h3>
+
+ <div class="div3">
+ <h4 id="keyset-Guide" class="adiv3">6.3.1 Guidelines for defining key identifiers</h4>
+ <!-- <div class="atrisk">
+ <p class="issue">This section is the original guideline. We are considering making a more detailed, normative guideline, below.</p>
+ <p class="note"><strong>Note:</strong> This section is non-normative.</p>
+ <p>The list of key identifiers contained in this appendix 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>Determine a representation for the key by looking at the keyboard layout mapping in use (and not the keyboard device in use). This representation should be unique, as human friendly as possible, platform independent, and consistent. For example, on PC/AT US keyboards with a US mapping, the 'Q' key shall be mapped to the key identifier "U+0051" (Latin Capital Letter Q key), the '1/!' key shall be mapped to the key identifier "U+0031" (Digit One key), the key '`/~' shall be mapped to the key identifier "U+0060" (Grave Accent key), and the 'Enter' key shall be mapped to the key identifier "Enter".</li>
+ <li>Find an appropriate mapping in the Unicode character set. There might not always be an appropriate and obvious mapping: the Unicode set contains characters and symbols, the key might generate different characters depending on the operating system, ... In general, unless the representation of the key can be mapped to a unique Unicode character, it is better to create a new one.</li>
+ <li>If no appropriate mapping was found, create a key identifier as human friendly as possible. The key identifier must not contain white spaces. As an example, the Enter key shall be mapped to the key identifier "Enter" and not to "U+000A" (Line Feed), given that this key generates the character "U+000A" on Unix operating systems and the characters "U+000D" and "U+000A" on Windows operating systems.</li>
+ </ol>
+ </div> -->
+
+
+ <p class="note"><strong>Note:</strong> This section is normative.</p>
+ <p>The list of key identifiers contained in this appendix 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 primary function of the key (i.e., without 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.
+ <ol>
+ <li> If the primary function of the key is to generate a character, and that character is in one of the <a href="#glossary-Unicode-character-categories">Unicode character categories</a>, then the key identifier shall be a string consisting of just that character. 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:
+ <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 Unicode codepoint, 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 Unicode codepoint, and that key identifier is in one of the <a href="#glossary-Unicode-character-categories">Unicode character categories</a>, then the character value itself for 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 Unicode codepoint, and that key identifier is not in one of the <a href="#glossary-Unicode-character-categories">Unicode character categories</a>, then the Unicode codepoint string for 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>, that key identifier must be used for the value of the <a href="#events-Events-TextEvent-data"><code class="attr-value">data</code></a> attribute of a <a class="noxref" href="#events-Events-TextEvent"><code class="interface">TextEvent</code></a>. The value of a markup attribute must use one of the canonical values from the <a href="#keyset-keyidentifiers">key identifiers set</a>, but may use the named key identifier, the Unicode codepoint value, or the literal character, as appropriate.</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 Unicode codepoint 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>
+ </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">U+0030..U+0039</abbr>, <abbr title="A-Z">U+0041..U+005A</abbr>, or <abbr title="a-z">U+0061..U+007A</abbr>, and must begin with a character in the range <abbr title="A-Z">U+0041..U+005A</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 US keyboard mapping, the primary function (unmodified) of the 'Q' key is to generate the character U+0071. Since this character is in general category Ll, and there is a single corresponding character in Lu, U+0051, this character is used instead. Thus, the key identifier is "Q". <br/><span class="issue">What is the use case here? Why are uppercase letters being given priority? 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> On a PC/AT US keyboard with a two-handed Dvorak keyboard mapping, the 'Q' key maps to the '5/%' key. The primary function of this key is to generate the character U+0035. Since this character is in general category Nd, the key identifier shall be "5". </li>
+ <li> On a French PC keyboard with a standard French mapping, the primary function of the '^' key is as a dead key for the circumflex diacritical mark. This corresponds to the combining Unicode character U+0302. Since this character is in general category Mn, the key identifier shall be "U+0302". </li>
+ <li> On a Korean PC keyboard with a standard Korean mapping, the primary function of the 'Ha/En' key is to switch between Hangul and English input. The predefined key identifier list has an appropriate entry for this key, "HangulMode", so this shall be the key identifier. </li>
+ <li> On some models of PDAs, the primary function of the key with a picture of a calendar on it is to launch the calendaring program. Since there is no Unicode character that corresponds to this function, and there is no appropriate entry in the predefined key identifier list, a new identifier may be devised, such as "Calendar".
+ </li>
+ </ul>
+
+ <!--
+ If these are equivalent to U+0030 to U+0039 then they certainly
+ shouldn't be prefixed with Dial, since that's not appropriate for
+ computer keyboards. If you wanted to avoid the "U+...." naming scheme
+ for the key identifiers altogether, the "Guidelines for defining key
+ identifiers" section could be rewritten to achieve this. Actually, I
+ would prefer this. Currently the only requirement is that the
+ identifier not include any whitespace. I don't see any problem with
+ using the actual characters (for those keys that map to non-control
+ Unicode characters and aren't combining characters).
+
+ A.1.5 Guidelines for defining key identifiers
+
+ The list of key identifiers contained in this appendix 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:
+
+ 1. Consider the primary function of the key (i.e., without
+ 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 there exists
+ multiple Unicode characters that correspond to the primary
+ function of the key, the Unicode character with the lowest
+ codepoint must be used.
+
+ 1.1. If the primary function of the key is to generate a
+ character, and that character is in one of the Unicode
+ general categories Lu, Ll, Lt, Lm, Lo, Nd, Nl, No, Pc, Pd,
+ Ps, Pe, Pi, Pf, Po, Sm, Sc, Sk or So, then the key
+ identifier is a string consisting of just that character.
+ If the primary function of the key is to generate a
+ character in class Ll for which there exists an equivalent,
+ single character in class Lu, the uppercase character should
+ be used instead.
+
+ 1.2. 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:
+
+ 1.2.1. If there exists an appropriate key identifier in the
+ list in section A.2 below, that key identifier must
+ be used.
+
+ 1.2.2. If there is no appropriate key identifier in A.2,
+ then the key identifier is a string beginning with
+ "U+" and followed by the Unicode codepoint 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.
+
+ 2. 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
+ U+0030..U+0039, U+0041..U+005A, U+0061..U+007A and must begin
+ with a character in the range U+0041..U+005A.
+
+ Examples:
+
+ * On a PC/AT US keyboard with a US keyboard mapping, the primary
+ function (unmodified) of the 'Q' key is to generate the character
+ U+0071. Since this character is in general category Ll, and there
+ is a single corresponding character in Lu, U+0051, this character
+ is used instead. Thus, the key identifier is "Q".
+
+ * On a PC/AT US keyboard with a two-handed Dvorak keyboard mapping,
+ the 'Q' key maps to the '5/%' key. The primary function of this
+ key is to generate the character U+0035. Since this character is
+ in general category Nd, the key identifier is "5".
+
+ * On a French PC keyboard with a standard French mapping, the primary
+ function of the '^' key is as a dead key for the circumflex
+ diacritical mark. This corresponds to the combining Unicode
+ character U+0302. Since this character is in general category Mn,
+ the key identifier is "U+0302".
+
+ * On a Korean PC keyboard with a standard Korean mapping, the
+ primary function of the 'Ha/En' key is to switch between Hangul
+ and English input. The predefined key identifier list has an
+ appropriate entry for this key, "HangulMode", so this is the key
+ identifier.
+
+ * On some models of PDAs, the primary function of the key with a
+ picture of a calendar on it is to launch the calendaring program.
+ Since there is no Unicode character that corresponds to this
+ function, and there is no appropriate entry in the predefined key
+ identifier list, an new identifier can be devised, such as
+ "Calendar".
+
+ It may be a good idea to survey recent phone and PDA models and include
+ some extra key identifiers in the list to avoid different names being
+ invented for the same key.
+
+ -->
+
+ <p>Future versions of this specification may include key identifiers not included here, which have become common since the publication of this specification.</p>
+ </div>
+
+ <div>
+ <h4 id="keyset-key-identifiers" class="adiv3">6.3.2 Key Identifiers Set</h4>
+ <p class="note"><strong>Note:</strong> The keycodes <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> are not part of this set. Use <a href="#events-Events-KeyboardEvent-keylocation"><code>KeyboardEvent.keyLocation</code></a> to know if a key originated from the numeric keypad.</p>
+
+ <dl>
+ <dt><a id="keyset-key-Accept"><code class="value">'Accept'</code></a></dt>
+ <dd>The Accept (Commit, OK) key.</dd>
+ <dt><a id="keyset-key-Add"><code class="value">'Add'</code></a></dt>
+ <dd>The Add key.</dd>
+ <dt><a id="keyset-key-Again"><code class="value">'Again'</code></a></dt>
+ <dd>The Again key.</dd>
+ <dt><a id="keyset-key-AllCandidates"><code class="value">'AllCandidates'</code></a></dt>
+ <dd>The All Candidates key.</dd>
+ <dt><a id="keyset-key-Alphanumeric"><code class="value">'Alphanumeric'</code></a></dt>
+ <dd>The Alphanumeric key.</dd>
+ <dt><a id="keyset-key-Alt"><code class="value">'Alt'</code></a></dt>
+ <dd>The Alt (Menu) key.</dd>
+ <dt><a id="keyset-key-AltGraph"><code class="value">'AltGraph'</code></a></dt>
+ <dd>The Alt-Graph key.</dd>
+ <dt><a id="keyset-key-Apps"><code class="value">'Apps'</code></a></dt>
+ <dd>The Application key.</dd>
+ <dt><a id="keyset-key-Attn"><code class="value">'Attn'</code></a></dt>
+ <dd>The ATTN key.</dd>
+ <dt><a id="keyset-key-BrowserBack"><code class="value">'BrowserBack'</code></a></dt>
+ <dd>The Browser Back key.</dd>
+ <dt><a id="keyset-key-BrowserFavorites"><code class="value">'BrowserFavorites'</code></a></dt>
+ <dd>The Browser Favorites key.</dd>
+ <dt><a id="keyset-key-BrowserForward"><code class="value">'BrowserForward'</code></a></dt>
+ <dd>The Browser Forward key.</dd>
+ <dt><a id="keyset-key-BrowserHome"><code class="value">'BrowserHome'</code></a></dt>
+ <dd>The Browser Home key.</dd>
+ <dt><a id="keyset-key-BrowserRefresh"><code class="value">'BrowserRefresh'</code></a></dt>
+ <dd>The Browser Refresh key.</dd>
+ <dt><a id="keyset-key-BrowserSearch"><code class="value">'BrowserSearch'</code></a></dt>
+ <dd>The Browser Search key.</dd>
+ <dt><a id="keyset-key-BrowserStop"><code class="value">'BrowserStop'</code></a></dt>
+ <dd>The Browser Stop key.</dd>
+ <dt><a id="keyset-key-CapsLock"><code class="value">'CapsLock'</code></a></dt>
+ <dd>The Caps Lock (Capital) key.</dd>
+ <dt><a id="keyset-key-Clear"><code class="value">'Clear'</code></a></dt>
+ <dd>The Clear key.</dd>
+ <dt><a id="keyset-key-CodeInput"><code class="value">'CodeInput'</code></a></dt>
+ <dd>The Code Input key.</dd>
+ <dt><a id="keyset-key-Compose"><code class="value">'Compose'</code></a></dt>
+ <dd>The Compose key.</dd>
+ <dt><a id="keyset-key-Control"><code class="value">'Control'</code></a></dt>
+ <dd>The Control (Ctrl) key.</dd>
+ <dt><a id="keyset-key-Crsel"><code class="value">'Crsel'</code></a></dt>
+ <dd>The Crsel key.</dd>
+ <dt><a id="keyset-key-Convert"><code class="value">'Convert'</code></a></dt>
+ <dd>The Convert key.</dd>
+ <dt><a id="keyset-key-Copy"><code class="value">'Copy'</code></a></dt>
+ <dd>The Copy key.</dd>
+ <dt><a id="keyset-key-Cut"><code class="value">'Cut'</code></a></dt>
+ <dd>The Cut key.</dd>
+ <dt><a id="keyset-key-Decimal"><code class="value">'Decimal'</code></a></dt>
+ <dd>The Decimal key.</dd>
+ <dt><a id="keyset-key-Divide"><code class="value">'Divide'</code></a></dt>
+ <dd>The Divide key.</dd>
+ <dt><a id="keyset-key-Down"><code class="value">'Down'</code></a></dt>
+ <dd>The Down Arrow key.</dd>
+ <dt><a id="keyset-key-DownLeft"><code class="value">'DownLeft'</code></a></dt>
+ <dd>The diagonal Down-Left Arrow key.</dd>
+ <dt><a id="keyset-key-DownRight"><code class="value">'DownRight'</code></a></dt>
+ <dd>The diagonal Down-Right Arrow key.</dd>
+ <dt><a id="keyset-key-End"><code class="value">'End'</code></a></dt>
+ <dd>The End key.</dd>
+ <dt><a id="keyset-key-Enter"><code class="value">'Enter'</code></a></dt>
+ <dd>The Enter key.
+ <span class="note"><strong>Note:</strong> This key identifier shall be also used for the Return (Macintosh numpad) key.</span>
+ </dd>
+ <dt><a id="keyset-key-EraseEof"><code class="value">'EraseEof'</code></a></dt>
+ <dd>The Erase EOF key.</dd>
+ <dt><a id="keyset-key-Execute"><code class="value">'Execute'</code></a></dt>
+ <dd>The Execute key.</dd>
+ <dt><a id="keyset-key-Exsel"><code class="value">'Exsel'</code></a></dt>
+ <dd>The Exsel key.</dd>
+ <dt><a id="keyset-key-Fn"><code class="value">'Fn'</code></a></dt>
+ <dd>The Function switch key.</dd>
+ <dt><a id="keyset-key-F1"><code class="value">'F1'</code></a></dt>
+ <dd>The F1 key.</dd>
+ <dt><a id="keyset-key-F2"><code class="value">'F2'</code></a></dt>
+ <dd>The F2 key.</dd>
+ <dt><a id="keyset-key-F3"><code class="value">'F3'</code></a></dt>
+ <dd>The F3 key.</dd>
+ <dt><a id="keyset-key-F4"><code class="value">'F4'</code></a></dt>
+ <dd>The F4 key.</dd>
+ <dt><a id="keyset-key-F5"><code class="value">'F5'</code></a></dt>
+ <dd>The F5 key.</dd>
+ <dt><a id="keyset-key-F6"><code class="value">'F6'</code></a></dt>
+ <dd>The F6 key.</dd>
+ <dt><a id="keyset-key-F7"><code class="value">'F7'</code></a></dt>
+ <dd>The F7 key.</dd>
+ <dt><a id="keyset-key-F8"><code class="value">'F8'</code></a></dt>
+ <dd>The F8 key.</dd>
+ <dt><a id="keyset-key-F9"><code class="value">'F9'</code></a></dt>
+ <dd>The F9 key.</dd>
+ <dt><a id="keyset-key-F10"><code class="value">'F10'</code></a></dt>
+ <dd>The F10 key.</dd>
+ <dt><a id="keyset-key-F11"><code class="value">'F11'</code></a></dt>
+ <dd>The F11 key.</dd>
+ <dt><a id="keyset-key-F12"><code class="value">'F12'</code></a></dt>
+ <dd>The F12 key.</dd>
+ <dt><a id="keyset-key-F13"><code class="value">'F13'</code></a></dt>
+ <dd>The F13 key.</dd>
+ <dt><a id="keyset-key-F14"><code class="value">'F14'</code></a></dt>
+ <dd>The F14 key.</dd>
+ <dt><a id="keyset-key-F15"><code class="value">'F15'</code></a></dt>
+ <dd>The F15 key.</dd>
+ <dt><a id="keyset-key-F16"><code class="value">'F16'</code></a></dt>
+ <dd>The F16 key.</dd>
+ <dt><a id="keyset-key-F17"><code class="value">'F17'</code></a></dt>
+ <dd>The F17 key.</dd>
+ <dt><a id="keyset-key-F18"><code class="value">'F18'</code></a></dt>
+ <dd>The F18 key.</dd>
+ <dt><a id="keyset-key-F19"><code class="value">'F19'</code></a></dt>
+ <dd>The F19 key.</dd>
+ <dt><a id="keyset-key-F20"><code class="value">'F20'</code></a></dt>
+ <dd>The F20 key.</dd>
+ <dt><a id="keyset-key-F21"><code class="value">'F21'</code></a></dt>
+ <dd>The F21 key.</dd>
+ <dt><a id="keyset-key-F22"><code class="value">'F22'</code></a></dt>
+ <dd>The F22 key.</dd>
+ <dt><a id="keyset-key-F23"><code class="value">'F23'</code></a></dt>
+ <dd>The F23 key.</dd>
+ <dt><a id="keyset-key-F24"><code class="value">'F24'</code></a></dt>
+ <dd>The F24 key.</dd>
+ <dt><a id="keyset-key-FinalMode"><code class="value">'FinalMode'</code></a></dt>
+ <dd>The Final Mode (Final) key used on some asian keyboards.</dd>
+ <dt><a id="keyset-key-Find"><code class="value">'Find'</code></a></dt>
+ <dd>The Find key.</dd>
+ <dt><a id="keyset-key-FullWidth"><code class="value">'FullWidth'</code></a></dt>
+ <dd>The Full-Width Characters key.</dd>
+ <dt><a id="keyset-key-HalfWidth"><code class="value">'HalfWidth'</code></a></dt>
+ <dd>The Half-Width Characters key.</dd>
+ <dt><a id="keyset-key-HangulMode"><code class="value">'HangulMode'</code></a></dt>
+ <dd>The Hangul (Korean characters) Mode key.</dd>
+ <dt><a id="keyset-key-HanjaMode"><code class="value">'HanjaMode'</code></a></dt>
+ <dd>The Hanja (Korean characters) Mode key.</dd>
+ <dt><a id="keyset-key-Help"><code class="value">'Help'</code></a></dt>
+ <dd>The Help key.</dd>
+ <dt><a id="keyset-key-Hiragana"><code class="value">'Hiragana'</code></a></dt>
+ <dd>The Hiragana (Japanese Kana characters) key.</dd>
+ <dt><a id="keyset-key-Home"><code class="value">'Home'</code></a></dt>
+ <dd>The Home key.</dd>
+ <dt><a id="keyset-key-Insert"><code class="value">'Insert'</code></a></dt>
+ <dd>The Insert (Ins) key.</dd>
+ <dt><a id="keyset-key-JapaneseHiragana"><code class="value">'JapaneseHiragana'</code></a></dt>
+ <dd>The Japanese-Hiragana key.</dd>
+ <dt><a id="keyset-key-JapaneseKatakana"><code class="value">'JapaneseKatakana'</code></a></dt>
+ <dd>The Japanese-Katakana key.</dd>
+ <dt><a id="keyset-key-JapaneseRomaji"><code class="value">'JapaneseRomaji'</code></a></dt>
+ <dd>The Japanese-Romaji key.</dd>
+ <dt><a id="keyset-key-JunjaMode"><code class="value">'JunjaMode'</code></a></dt>
+ <dd>The Junja Mode key.</dd>
+ <dt><a id="keyset-key-KanaMode"><code class="value">'KanaMode'</code></a></dt>
+ <dd>The Kana Mode (Kana Lock) key.</dd>
+ <dt><a id="keyset-key-KanjiMode"><code class="value">'KanjiMode'</code></a></dt>
+ <dd>The Kanji (Japanese name for ideographic characters of Chinese origin) Mode key.</dd>
+ <dt><a id="keyset-key-Katakana"><code class="value">'Katakana'</code></a></dt>
+ <dd>The Katakana (Japanese Kana characters) key.</dd>
+ <dt><a id="keyset-key-LaunchApplication1"><code class="value">'LaunchApplication1'</code></a></dt>
+ <dd>The Start Application One key.</dd>
+ <dt><a id="keyset-key-LaunchApplication2"><code class="value">'LaunchApplication2'</code></a></dt>
+ <dd>The Start Application Two key.</dd>
+ <dt><a id="keyset-key-LaunchMail"><code class="value">'LaunchMail'</code></a></dt>
+ <dd>The Start Mail key.</dd>
+ <dt><a id="keyset-key-Left"><code class="value">'Left'</code></a></dt>
+ <dd>The Left Arrow key.</dd>
+ <dt><a id="keyset-key-Menu"><code class="value">'Menu'</code></a></dt>
+ <dd>The Menu key.</dd>
+ <dt><a id="keyset-key-Meta"><code class="value">'Meta'</code></a></dt>
+ <dd>The Meta key.</dd>
+ <dt><a id="keyset-key-MediaNextTrack"><code class="value">'MediaNextTrack'</code></a></dt>
+ <dd>The Media Next Track key.</dd>
+ <dt><a id="keyset-key-MediaPlayPause"><code class="value">'MediaPlayPause'</code></a></dt>
+ <dd>The Media Play Pause key.</dd>
+ <dt><a id="keyset-key-MediaPreviousTrack"><code class="value">'MediaPreviousTrack'</code></a></dt>
+ <dd>The Media Previous Track key.</dd>
+ <dt><a id="keyset-key-MediaStop"><code class="value">'MediaStop'</code></a></dt>
+ <dd>The Media Stop key.</dd>
+ <dt><a id="keyset-key-ModeChange"><code class="value">'ModeChange'</code></a></dt>
+ <dd>The Mode Change key.</dd>
+ <dt><a id="keyset-key-Multiply"><code class="value">'Multiply'</code></a></dt>
+ <dd>The Multiply key.</dd>
+ <dt><a id="keyset-key-NextCandidate"><code class="value">'NextCandidate'</code></a></dt>
+ <dd>The Next Candidate function key.</dd>
+ <dt><a id="keyset-key-Nonconvert"><code class="value">'Nonconvert'</code></a></dt>
+ <dd>The Nonconvert (Don't Convert) key.</dd>
+ <dt><a id="keyset-key-NumLock"><code class="value">'NumLock'</code></a></dt>
+ <dd>The Number Lock key.</dd>
+ <dt><a id="keyset-key-PageDown"><code class="value">'PageDown'</code></a></dt>
+ <dd>The Page Down (Next) key.</dd>
+ <dt><a id="keyset-key-PageUp"><code class="value">'PageUp'</code></a></dt>
+ <dd>The Page Up key.</dd>
+ <dt><a id="keyset-key-Paste"><code class="value">'Paste'</code></a></dt>
+ <dd>The Paste key.</dd>
+ <dt><a id="keyset-key-Pause"><code class="value">'Pause'</code></a></dt>
+ <dd>The Pause key.</dd>
+ <dt><a id="keyset-key-Play"><code class="value">'Play'</code></a></dt>
+ <dd>The Play key.</dd>
+ <dt><a id="keyset-key-PreviousCandidate"><code class="value">'PreviousCandidate'</code></a></dt>
+ <dd>The Previous Candidate function key.</dd>
+ <dt><a id="keyset-key-PrintScreen"><code class="value">'PrintScreen'</code></a></dt>
+ <dd>The Print Screen (PrintScrn, SnapShot) key.</dd>
+ <dt><a id="keyset-key-Process"><code class="value">'Process'</code></a></dt>
+ <dd>The Process key.</dd>
+ <dt><a id="keyset-key-Props"><code class="value">'Props'</code></a></dt>
+ <dd>The Props key.</dd>
+ <dt><a id="keyset-key-Right"><code class="value">'Right'</code></a></dt>
+ <dd>The Right Arrow key.</dd>
+ <dt><a id="keyset-key-RomanCharacters"><code class="value">'RomanCharacters'</code></a></dt>
+ <dd>The Roman Characters function key.</dd>
+ <dt><a id="keyset-key-Scroll"><code class="value">'Scroll'</code></a></dt>
+ <dd>The Scroll Lock key.</dd>
+ <dt><a id="keyset-key-Select"><code class="value">'Select'</code></a></dt>
+ <dd>The Select key.</dd>
+ <dt><a id="keyset-key-SelectMedia"><code class="value">'SelectMedia'</code></a></dt>
+ <dd>The Select Media key.</dd>
+ <dt><a id="keyset-key-Separator"><code class="value">'Separator'</code></a></dt>
+ <dd>The Separator key.</dd>
+ <dt><a id="keyset-key-Shift"><code class="value">'Shift'</code></a></dt>
+ <dd>The Shift key.</dd>
+ <dt><a id="keyset-key-Soft1"><code class="value">'Soft1'</code></a></dt>
+ <dd>The Soft1 key.</dd>
+ <dt><a id="keyset-key-Soft2"><code class="value">'Soft2'</code></a></dt>
+ <dd>The Soft2 key.</dd>
+ <dt><a id="keyset-key-Soft3"><code class="value">'Soft3'</code></a></dt>
+ <dd>The Soft3 key.</dd>
+ <dt><a id="keyset-key-Soft4"><code class="value">'Soft4'</code></a></dt>
+ <dd>The Soft4 key.</dd>
+ <dt><a id="keyset-key-Stop"><code class="value">'Stop'</code></a></dt>
+ <dd>The Stop key.</dd>
+ <dt><a id="keyset-key-Subtract"><code class="value">'Subtract'</code></a></dt>
+ <dd>The Subtract key.</dd>
+ <dt><a id="keyset-key-Up"><code class="value">'Up'</code></a></dt>
+ <dd>The Up Arrow key.</dd>
+ <dt><a id="keyset-key-UpLeft"><code class="value">'UpLeft'</code></a></dt>
+ <dd>The diagonal Up-Left Arrow key.</dd>
+ <dt><a id="keyset-key-UpRight"><code class="value">'UpRight'</code></a></dt>
+ <dd>The diagonal Up-Right Arrow key.</dd>
+ <dt><a id="keyset-key-Undo"><code class="value">'Undo'</code></a></dt>
+ <dd>The Undo key.</dd>
+ <dt><a id="keyset-key-VolumeDown"><code class="value">'VolumeDown'</code></a></dt>
+ <dd>The Volume Down key.</dd>
+ <dt><a id="keyset-key-VolumeMute"><code class="value">'VolumeMute'</code></a></dt>
+ <dd>The Volume Mute key.</dd>
+ <dt><a id="keyset-key-VolumeUp"><code class="value">'VolumeUp'</code></a></dt>
+ <dd>The Volume Up key.</dd>
+ <dt><a id="keyset-key-Win"><code class="value">'Win'</code></a></dt>
+ <dd>The Windows Logo key.</dd>
+ <dt><a id="keyset-key-Zoom"><code class="value">'Zoom'</code></a></dt>
+ <dd>The Zoom key.</dd>
+ <dt><a id="keyset-key-Backspace"><code class="value">'Backspace'</code></a></dt>
+ <dt><a id="keyset-key-U-0008"><code class="value">'U+0008'</code></a></dt>
+ <dd>The Backspace (Back) key.
+ <span class="note"><strong>Note:</strong> This key identifier shall be also used for the key labeled <code class="value">'delete'</code> MacOS keyboards when not modified by the <code class="value">'Fn'</code> key.</span>
+ </dd>
+ <dt><a id="keyset-key-Tab"><code class="value">'Tab'</code></a></dt>
+ <dt><a id="keyset-key-U-0009"><code class="value">'U+0009'</code></a></dt>
+ <dd>The Horizontal Tabulation (Tab) key.</dd>
+ <dt><a id="keyset-key-Cancel"><code class="value">'Cancel'</code></a></dt>
+ <dt><a id="keyset-key-U-0018"><code class="value">'U+0018'</code></a></dt>
+ <dd>The Cancel key.</dd>
+ <dt><a id="keyset-key-Esc"><code class="value">'Esc'</code></a></dt>
+ <dt><a id="keyset-key-U-001B"><code class="value">'U+001B'</code></a></dt>
+ <dd>The Escape (Esc) key.</dd>
+ <dt><a id="keyset-key-Spacebar"><code class="value">'Spacebar'</code></a></dt>
+ <dt><a id="keyset-key-U-0020"><code class="value">'U+0020'</code></a></dt>
+ <dd>The Space (Spacebar) key.</dd>
+ <dt><a id="keyset-key-ExclamationChar"><code class="value">'!'</code></a></dt>
+ <dt><a id="keyset-key-Exclamation"><code class="value">'Exclamation'</code></a></dt>
+ <dt><a id="keyset-key-U-0021"><code class="value">'U+0021'</code></a></dt>
+ <dd>The Exclamation Mark (Factorial, Bang) key (!).</dd>
+ <dt><a id="keyset-key-DoubleQuote"><code class="value">'DoubleQuote'</code></a></dt>
+ <dt><a id="keyset-key-U-0022"><code class="value">'U+0022'</code></a></dt>
+ <dd>The Quotation Mark (Quote Double) key (").</dd>
+ <dt><a id="keyset-key-HashChar"><code class="value">'#'</code></a></dt>
+ <dt><a id="keyset-key-Hash"><code class="value">'Hash'</code></a></dt>
+ <dt><a id="keyset-key-U-0023"><code class="value">'U+0023'</code></a></dt>
+ <dd>The Number Sign (Pound Sign, Hash, Crosshatch, Octothorpe) key (#).</dd>
+ <dt><a id="keyset-key-DollarChar"><code class="value">'$'</code></a></dt>
+ <dt><a id="keyset-key-Dollar"><code class="value">'Dollar'</code></a></dt>
+ <dt><a id="keyset-key-U-0024"><code class="value">'U+0024'</code></a></dt>
+ <dd>The Dollar Sign (milreis, escudo) key ($).</dd>
+ <dt><a id="keyset-key-AmpersandChar"><code class="value">'&'</code></a></dt>
+ <dt><a id="keyset-key-Ampersand"><code class="value">'Ampersand'</code></a></dt>
+ <dt><a id="keyset-key-U-0026"><code class="value">'U+0026'</code></a></dt>
+ <dd>The Ampersand key (&).</dd>
+ <dt><a id="keyset-key-Apostrophe"><code class="value">'Apostrophe'</code></a></dt>
+ <dt><a id="keyset-key-U-0027"><code class="value">'U+0027'</code></a></dt>
+ <dd>The Apostrophe (Apostrophe-Quote, APL Quote) key (').</dd>
+ <dt><a id="keyset-key-LeftParenChar"><code class="value">'('</code></a></dt>
+ <dt><a id="keyset-key-LeftParen"><code class="value">'LeftParen'</code></a></dt>
+ <dt><a id="keyset-key-U-0028"><code class="value">'U+0028'</code></a></dt>
+ <dd>The Left Parenthesis (Opening Parenthesis) key (().</dd>
+ <dt><a id="keyset-key-RightParenChar"><code class="value">')'</code></a></dt>
+ <dt><a id="keyset-key-RightParen"><code class="value">'RightParen'</code></a></dt>
+ <dt><a id="keyset-key-U-0029"><code class="value">'U+0029'</code></a></dt>
+ <dd>The Right Parenthesis (Closing Parenthesis) key ()).</dd>
+ <dt><a id="keyset-key-AsteriskChar"><code class="value">'*'</code></a></dt>
+ <dt><a id="keyset-key-Asterisk"><code class="value">'Asterisk'</code></a></dt>
+ <dt><a id="keyset-key-U-002A"><code class="value">'U+002A'</code></a></dt>
+ <dd>The Asterisk (Star) key (*).</dd>
+ <dt><a id="keyset-key-PlusChar"><code class="value">'+'</code></a></dt>
+ <dt><a id="keyset-key-Plus"><code class="value">'Plus'</code></a></dt>
+ <dt><a id="keyset-key-U-002B"><code class="value">'U+002B'</code></a></dt>
+ <dd>The Plus Sign (Plus) key (+).</dd>
+ <dt><a id="keyset-key-PercentChar"><code class="value">'%'</code></a></dt>
+ <dt><a id="keyset-key-Percent"><code class="value">'Percent'</code></a></dt>
+ <dt><a id="keyset-key-U-0025"><code class="value">'U+0025'</code></a></dt>
+ <dd>The Percent Sign (Percent) key (+).</dd>
+ <dt><a id="keyset-key-CommaChar"><code class="value">','</code></a></dt>
+ <dt><a id="keyset-key-Comma"><code class="value">'Comma'</code></a></dt>
+ <dt><a id="keyset-key-U-002C"><code class="value">'U+002C'</code></a></dt>
+ <dd>The Comma (decimal separator) sign key (,).</dd>
+ <dt><a id="keyset-key-HyphenMinusChar"><code class="value">'-'</code></a></dt>
+ <dt><a id="keyset-key-HyphenMinus"><code class="value">'HyphenMinus'</code></a></dt>
+ <dt><a id="keyset-key-U-002D"><code class="value">'U+002D'</code></a></dt>
+ <dd>The Hyphen-minus (hyphen or minus sign) key (-).</dd>
+ <dt><a id="keyset-key-PeriodChar"><code class="value">'.'</code></a></dt>
+ <dt><a id="keyset-key-Period"><code class="value">'Period'</code></a></dt>
+ <dt><a id="keyset-key-U-002E"><code class="value">'U+002E'</code></a></dt>
+ <dd>The Full Stop (period, dot, decimal point) key (.).</dd>
+ <dt><a id="keyset-key-SolidusChar"><code class="value">'/'</code></a></dt>
+ <dt><a id="keyset-key-Solidus"><code class="value">'Solidus'</code></a></dt>
+ <dt><a id="keyset-key-U-002F"><code class="value">'U+002F'</code></a></dt>
+ <dd>The Solidus (slash, virgule, shilling) key (/).</dd>
+ <dt><a id="keyset-key-0"><code class="value">'0'</code></a></dt>
+ <dt><a id="keyset-key-U-0030"><code class="value">'U+0030'</code></a></dt>
+ <dd>The Digit Zero key (0).</dd>
+ <dt><a id="keyset-key-1"><code class="value">'1'</code></a></dt>
+ <dt><a id="keyset-key-U-0031"><code class="value">'U+0031'</code></a></dt>
+ <dd>The Digit One key (1).</dd>
+ <dt><a id="keyset-key-2"><code class="value">'2'</code></a></dt>
+ <dt><a id="keyset-key-U-0032"><code class="value">'U+0032'</code></a></dt>
+ <dd>The Digit Two key (2).</dd>
+ <dt><a id="keyset-key-3"><code class="value">'3'</code></a></dt>
+ <dt><a id="keyset-key-U-0033"><code class="value">'U+0033'</code></a></dt>
+ <dd>The Digit Three key (3).</dd>
+ <dt><a id="keyset-key-4"><code class="value">'4'</code></a></dt>
+ <dt><a id="keyset-key-U-0034"><code class="value">'U+0034'</code></a></dt>
+ <dd>The Digit Four key (4).</dd>
+ <dt><a id="keyset-key-5"><code class="value">'5'</code></a></dt>
+ <dt><a id="keyset-key-U-0035"><code class="value">'U+0035'</code></a></dt>
+ <dd>The Digit Five key (5).</dd>
+ <dt><a id="keyset-key-6"><code class="value">'6'</code></a></dt>
+ <dt><a id="keyset-key-U-0036"><code class="value">'U+0036'</code></a></dt>
+ <dd>The Digit Six key (6).</dd>
+ <dt><a id="keyset-key-7"><code class="value">'7'</code></a></dt>
+ <dt><a id="keyset-key-U-0037"><code class="value">'U+0037'</code></a></dt>
+ <dd>The Digit Seven key (7).</dd>
+ <dt><a id="keyset-key-8"><code class="value">'8'</code></a></dt>
+ <dt><a id="keyset-key-U-0038"><code class="value">'U+0038'</code></a></dt>
+ <dd>The Digit Eight key (8).</dd>
+ <dt><a id="keyset-key-9"><code class="value">'9'</code></a></dt>
+ <dt><a id="keyset-key-U-0039"><code class="value">'U+0039'</code></a></dt>
+ <dd>The Digit Nine key (9).</dd>
+ <dt><a id="keyset-key-ColonChar"><code class="value">':'</code></a></dt>
+ <dt><a id="keyset-key-Colon"><code class="value">'Colon'</code></a></dt>
+ <dt><a id="keyset-key-U-003A"><code class="value">'U+003A'</code></a></dt>
+ <dd>The Colon key (:).</dd>
+ <dt><a id="keyset-key-SemicolonChar"><code class="value">';'</code></a></dt>
+ <dt><a id="keyset-key-Semicolon"><code class="value">'Semicolon'</code></a></dt>
+ <dt><a id="keyset-key-U-003B"><code class="value">'U+003B'</code></a></dt>
+ <dd>The Semicolon key (;).</dd>
+ <dt><a id="keyset-key-LessThan"><code class="value">'LessThan'</code></a></dt>
+ <dt><a id="keyset-key-U-003C"><code class="value">'U+003C'</code></a></dt>
+ <dd>The Less-Than Sign key (<).</dd>
+ <dt><a id="keyset-key-EqualsChar"><code class="value">'='</code></a></dt>
+ <dt><a id="keyset-key-Equals"><code class="value">'Equals'</code></a></dt>
+ <dt><a id="keyset-key-U-003D"><code class="value">'U+003D'</code></a></dt>
+ <dd>The Equals Sign key (=).</dd>
+ <dt><a id="keyset-key-"><code class="value">'GreaterThan'</code></a></dt>
+ <dt><a id="keyset-key-U-003E"><code class="value">'U+003E'</code></a></dt>
+ <dd>The Greater-Than Sign key (>).</dd>
+ <dt><a id="keyset-key-QuestionMarkChar"><code class="value">'?'</code></a></dt>
+ <dt><a id="keyset-key-QuestionMark"><code class="value">'QuestionMark'</code></a></dt>
+ <dt><a id="keyset-key-U-003F"><code class="value">'U+003F'</code></a></dt>
+ <dd>The Question Mark key (?).</dd>
+ <dt><a id="keyset-key-AtChar"><code class="value">'@'</code></a></dt>
+ <dt><a id="keyset-key-At"><code class="value">'At'</code></a></dt>
+ <dt><a id="keyset-key-U-0040"><code class="value">'U+0040'</code></a></dt>
+ <dd>The Commercial At (@) key.</dd>
+ <dt><a id="keyset-key-A"><code class="value">'A'</code></a></dt>
+ <dt><a id="keyset-key-U-0041"><code class="value">'U+0041'</code></a></dt>
+ <dd>The Latin Capital Letter A key (A).</dd>
+ <dt><a id="keyset-key-B"><code class="value">'B'</code></a></dt>
+ <dt><a id="keyset-key-U-0042"><code class="value">'U+0042'</code></a></dt>
+ <dd>The Latin Capital Letter B key (B).</dd>
+ <dt><a id="keyset-key-C"><code class="value">'C'</code></a></dt>
+ <dt><a id="keyset-key-U-0043"><code class="value">'U+0043'</code></a></dt>
+ <dd>The Latin Capital Letter C key (C).</dd>
+ <dt><a id="keyset-key-D"><code class="value">'D'</code></a></dt>
+ <dt><a id="keyset-key-U-0044"><code class="value">'U+0044'</code></a></dt>
+ <dd>The Latin Capital Letter D key (D).</dd>
+ <dt><a id="keyset-key-E"><code class="value">'E'</code></a></dt>
+ <dt><a id="keyset-key-U-0045"><code class="value">'U+0045'</code></a></dt>
+ <dd>The Latin Capital Letter E key (E).</dd>
+ <dt><a id="keyset-key-F"><code class="value">'F'</code></a></dt>
+ <dt><a id="keyset-key-U-0046"><code class="value">'U+0046'</code></a></dt>
+ <dd>The Latin Capital Letter F key (F).</dd>
+ <dt><a id="keyset-key-G"><code class="value">'G'</code></a></dt>
+ <dt><a id="keyset-key-U-0047"><code class="value">'U+0047'</code></a></dt>
+ <dd>The Latin Capital Letter G key (G).</dd>
+ <dt><a id="keyset-key-H"><code class="value">'H'</code></a></dt>
+ <dt><a id="keyset-key-U-0048"><code class="value">'U+0048'</code></a></dt>
+ <dd>The Latin Capital Letter H key (H).</dd>
+ <dt><a id="keyset-key-I"><code class="value">'I'</code></a></dt>
+ <dt><a id="keyset-key-U-0049"><code class="value">'U+0049'</code></a></dt>
+ <dd>The Latin Capital Letter I key (I).</dd>
+ <dt><a id="keyset-key-J"><code class="value">'J'</code></a></dt>
+ <dt><a id="keyset-key-U-004A"><code class="value">'U+004A'</code></a></dt>
+ <dd>The Latin Capital Letter J key (J).</dd>
+ <dt><a id="keyset-key-K"><code class="value">'K'</code></a></dt>
+ <dt><a id="keyset-key-U-004B"><code class="value">'U+004B'</code></a></dt>
+ <dd>The Latin Capital Letter K key (K).</dd>
+ <dt><a id="keyset-key-L"><code class="value">'L'</code></a></dt>
+ <dt><a id="keyset-key-U-004C"><code class="value">'U+004C'</code></a></dt>
+ <dd>The Latin Capital Letter L key (L).</dd>
+ <dt><a id="keyset-key-M"><code class="value">'M'</code></a></dt>
+ <dt><a id="keyset-key-U-004D"><code class="value">'U+004D'</code></a></dt>
+ <dd>The Latin Capital Letter M key (M).</dd>
+ <dt><a id="keyset-key-N"><code class="value">'N'</code></a></dt>
+ <dt><a id="keyset-key-U-004E"><code class="value">'U+004E'</code></a></dt>
+ <dd>The Latin Capital Letter N key (N).</dd>
+ <dt><a id="keyset-key-O"><code class="value">'O'</code></a></dt>
+ <dt><a id="keyset-key-U-004F"><code class="value">'U+004F'</code></a></dt>
+ <dd>The Latin Capital Letter O key (O).</dd>
+ <dt><a id="keyset-key-P"><code class="value">'P'</code></a></dt>
+ <dt><a id="keyset-key-U-0050"><code class="value">'U+0050'</code></a></dt>
+ <dd>The Latin Capital Letter P key (P).</dd>
+ <dt><a id="keyset-key-Q"><code class="value">'Q'</code></a></dt>
+ <dt><a id="keyset-key-U-0051"><code class="value">'U+0051'</code></a></dt>
+ <dd>The Latin Capital Letter Q key (Q).</dd>
+ <dt><a id="keyset-key-R"><code class="value">'R'</code></a></dt>
+ <dt><a id="keyset-key-U-0052"><code class="value">'U+0052'</code></a></dt>
+ <dd>The Latin Capital Letter R key (R).</dd>
+ <dt><a id="keyset-key-S"><code class="value">'S'</code></a></dt>
+ <dt><a id="keyset-key-U-0053"><code class="value">'U+0053'</code></a></dt>
+ <dd>The Latin Capital Letter S key (S).</dd>
+ <dt><a id="keyset-key-T"><code class="value">'T'</code></a></dt>
+ <dt><a id="keyset-key-U-0054"><code class="value">'U+0054'</code></a></dt>
+ <dd>The Latin Capital Letter T key (T).</dd>
+ <dt><a id="keyset-key-U"><code class="value">'U'</code></a></dt>
+ <dt><a id="keyset-key-U-0055"><code class="value">'U+0055'</code></a></dt>
+ <dd>The Latin Capital Letter U key (U).</dd>
+ <dt><a id="keyset-key-V"><code class="value">'V'</code></a></dt>
+ <dt><a id="keyset-key-U-0056"><code class="value">'U+0056'</code></a></dt>
+ <dd>The Latin Capital Letter V key (V).</dd>
+ <dt><a id="keyset-key-W"><code class="value">'W'</code></a></dt>
+ <dt><a id="keyset-key-U-0057"><code class="value">'U+0057'</code></a></dt>
+ <dd>The Latin Capital Letter W key (W).</dd>
+ <dt><a id="keyset-key-X"><code class="value">'X'</code></a></dt>
+ <dt><a id="keyset-key-U-0058"><code class="value">'U+0058'</code></a></dt>
+ <dd>The Latin Capital Letter X key (X).</dd>
+ <dt><a id="keyset-key-Y"><code class="value">'Y'</code></a></dt>
+ <dt><a id="keyset-key-U-0059"><code class="value">'U+0059'</code></a></dt>
+ <dd>The Latin Capital Letter Y key (Y).</dd>
+ <dt><a id="keyset-key-Z"><code class="value">'Z'</code></a></dt>
+ <dt><a id="keyset-key-U-005A"><code class="value">'U+005A'</code></a></dt>
+ <dd>The Latin Capital Letter Z key (Z).</dd>
+ <dt><a id="keyset-key-LeftSquareBracketChar"><code class="value">'['</code></a></dt>
+ <dt><a id="keyset-key-LeftSquareBracket"><code class="value">'LeftSquareBracket'</code></a></dt>
+ <dt><a id="keyset-key-U-005B"><code class="value">'U+005B'</code></a></dt>
+ <dd>The Left Square Bracket (Opening Square Bracket) key ([).</dd>
+ <dt><a id="keyset-key-BackslashChar"><code class="value">'\'</code></a></dt>
+ <dt><a id="keyset-key-Backslash"><code class="value">'Backslash'</code></a></dt>
+ <dt><a id="keyset-key-U-005C"><code class="value">'U+005C'</code></a></dt>
+ <dd>The Reverse Solidus (Backslash) key (\).</dd>
+ <dt><a id="keyset-key-RightSquareBracketChar"><code class="value">']'</code></a></dt>
+ <dt><a id="keyset-key-RightSquareBracket"><code class="value">'RightSquareBracket'</code></a></dt>
+ <dt><a id="keyset-key-U-005D"><code class="value">'U+005D'</code></a></dt>
+ <dd>The Right Square Bracket (Closing Square Bracket) key (]).</dd>
+ <dt><a id="keyset-key-CircumflexChar"><code class="value">'^'</code></a></dt>
+ <dt><a id="keyset-key-Circumflex"><code class="value">'Circumflex'</code></a></dt>
+ <dt><a id="keyset-key-U-005E"><code class="value">'U+005E'</code></a></dt>
+ <dd>The Circumflex Accent key (^).</dd>
+ <dt><a id="keyset-key-UnderscoreChar"><code class="value">'_'</code></a></dt>
+ <dt><a id="keyset-key-Underscore"><code class="value">'Underscore'</code></a></dt>
+ <dt><a id="keyset-key-U-005F"><code class="value">'U+005F'</code></a></dt>
+ <dd>The Low Sign (Spacing Underscore, Underscore) key (_).</dd>
+ <dt><a id="keyset-key-GraveChar"><code class="value">'`'</code></a></dt>
+ <dt><a id="keyset-key-Grave"><code class="value">'Grave'</code></a></dt>
+ <dt><a id="keyset-key-U-0060"><code class="value">'U+0060'</code></a></dt>
+ <dd>The Grave Accent (Back Quote) key (`).</dd>
+ <dt><a id="keyset-key-LeftCurlyBracketChar"><code class="value">'{'</code></a></dt>
+ <dt><a id="keyset-key-LeftCurlyBracket"><code class="value">'LeftCurlyBracket'</code></a></dt>
+ <dt><a id="keyset-key-U-007B"><code class="value">'U+007B'</code></a></dt>
+ <dd>The Left Curly Bracket (Opening Curly Bracket, Opening Brace, Brace Left) key ({).</dd>
+ <dt><a id="keyset-key-PipeChar"><code class="value">'|'</code></a></dt>
+ <dt><a id="keyset-key-Pipe"><code class="value">'Pipe'</code></a></dt>
+ <dt><a id="keyset-key-U-007C"><code class="value">'U+007C'</code></a></dt>
+ <dd>The Vertical Line (Vertical Bar, Pipe) key (|).</dd>
+ <dt><a id="keyset-key-RightCurlyBracketChar"><code class="value">'}'</code></a></dt>
+ <dt><a id="keyset-key-RightCurlyBracket"><code class="value">'RightCurlyBracket'</code></a></dt>
+ <dt><a id="keyset-key-U-007D"><code class="value">'U+007D'</code></a></dt>
+ <dd>The Right Curly Bracket (Closing Curly Bracket, Closing Brace, Brace Right) key (}).</dd>
+ <dt><a id="keyset-key-Del"><code class="value">'Del'</code></a></dt>
+ <dt><a id="keyset-key-U-007F"><code class="value">'U+007F'</code></a></dt>
+ <dd>The Delete (Del) Key.
+ <span class="note"><strong>Note:</strong> This key identifier shall be also used for the key labeled <code class="value">'delete'</code> MacOS keyboards when modified by the <code class="value">'Fn'</code> key.</span>
+ </dd>
+ <dt><a id="keyset-key-InvertedExclamationChar"><code class="value">'¡'</code></a></dt>
+ <dt><a id="keyset-key-InvertedExclamation"><code class="value">'InvertedExclamation'</code></a></dt>
+ <dt><a id="keyset-key-U-00A1"><code class="value">'U+00A1'</code></a></dt>
+ <dd>The Inverted Exclamation Mark key (¡).</dd>
+ <dt><a id="keyset-key-DeadGrave"><code class="value">'DeadGrave'</code></a></dt>
+ <dt><a id="keyset-key-U-0300"><code class="value">'U+0300'</code></a></dt>
+ <dd>The Combining Grave Accent (Greek Varia, Dead Grave) key.</dd>
+ <dt><a id="keyset-key-DeadEacute"><code class="value">'DeadEacute'</code></a></dt>
+ <dt><a id="keyset-key-U-0301"><code class="value">'U+0301'</code></a></dt>
+ <dd>The Combining Acute Accent (Stress Mark, Greek Oxia, Tonos, Dead Eacute) key.</dd>
+ <dt><a id="keyset-key-DeadCircumflex"><code class="value">'DeadCircumflex'</code></a></dt>
+ <dt><a id="keyset-key-U-0302"><code class="value">'U+0302'</code></a></dt>
+ <dd>The Combining Circumflex Accent (Hat, Dead Circumflex) key.</dd>
+ <dt><a id="keyset-key-DeadTilde"><code class="value">'DeadTilde'</code></a></dt>
+ <dt><a id="keyset-key-U-0303"><code class="value">'U+0303'</code></a></dt>
+ <dd>The Combining Tilde (Dead Tilde) key.</dd>
+ <dt><a id="keyset-key-DeadMacron"><code class="value">'DeadMacron'</code></a></dt>
+ <dt><a id="keyset-key-U-0304"><code class="value">'U+0304'</code></a></dt>
+ <dd>The Combining Macron (Long, Dead Macron) key.</dd>
+ <dt><a id="keyset-key-DeadBreve"><code class="value">'DeadBreve'</code></a></dt>
+ <dt><a id="keyset-key-U-0306"><code class="value">'U+0306'</code></a></dt>
+ <dd>The Combining Breve (Short, Dead Breve) key.</dd>
+ <dt><a id="keyset-key-DeadAboveDot"><code class="value">'DeadAboveDot'</code></a></dt>
+ <dt><a id="keyset-key-U-0307"><code class="value">'U+0307'</code></a></dt>
+ <dd>The Combining Dot Above (Derivative, Dead Above Dot) key.</dd>
+ <dt><a id="keyset-key-DeadUmlaut"><code class="value">'DeadUmlaut'</code></a></dt>
+ <dt><a id="keyset-key-U-0308"><code class="value">'U+0308'</code></a></dt>
+ <dd>The Combining Diaeresis (Double Dot Abode, Umlaut, Greek Dialytika, Double Derivative, Dead Diaeresis) key.</dd>
+ <dt><a id="keyset-key-DeadAboveRing"><code class="value">'DeadAboveRing'</code></a></dt>
+ <dt><a id="keyset-key-U-030A"><code class="value">'U+030A'</code></a></dt>
+ <dd>The Combining Ring Above (Dead Above Ring) key.</dd>
+ <dt><a id="keyset-key-DeadDoubleacute"><code class="value">'DeadDoubleacute'</code></a></dt>
+ <dt><a id="keyset-key-U-030B"><code class="value">'U+030B'</code></a></dt>
+ <dd>The Combining Double Acute Accent (Dead Doubleacute) key.</dd>
+ <dt><a id="keyset-key-DeadCaron"><code class="value">'DeadCaron'</code></a></dt>
+ <dt><a id="keyset-key-U-030C"><code class="value">'U+030C'</code></a></dt>
+ <dd>The Combining Caron (Hacek, V Above, Dead Caron) key.</dd>
+ <dt><a id="keyset-key-DeadCedilla"><code class="value">'DeadCedilla'</code></a></dt>
+ <dt><a id="keyset-key-U-0327"><code class="value">'U+0327'</code></a></dt>
+ <dd>The Combining Cedilla (Dead Cedilla) key.</dd>
+ <dt><a id="keyset-key-DeadOgonek"><code class="value">'DeadOgonek'</code></a></dt>
+ <dt><a id="keyset-key-U-0328"><code class="value">'U+0328'</code></a></dt>
+ <dd>The Combining Ogonek (Nasal Hook, Dead Ogonek) key.</dd>
+ <dt><a id="keyset-key-DeadIota"><code class="value">'DeadIota'</code></a></dt>
+ <dt><a id="keyset-key-U-0345"><code class="value">'U+0345'</code></a></dt>
+ <dd>The Combining Greek Ypogegrammeni (Greek Non-Spacing Iota Below, Iota Subscript, Dead Iota) key.</dd>
+ <dt><a id="keyset-key-EuroChar"><code class="value">'€'</code></a></dt>
+ <dt><a id="keyset-key-Euro"><code class="value">'Euro'</code></a></dt>
+ <dt><a id="keyset-key-U-20AC"><code class="value">'U+20AC'</code></a></dt>
+ <dd>The Euro Currency Sign key (€).</dd>
+ <dt><a id="keyset-key-DeadVoicedSound"><code class="value">'DeadVoicedSound'</code></a></dt>
+ <dt><a id="keyset-key-U-3099"><code class="value">'U+3099'</code></a></dt>
+ <dd>The Combining Katakana-Hiragana Voiced Sound Mark (Dead Voiced Sound) key.</dd>
+ <dt><a id="keyset-key-DeadSemivoicedSound"><code class="value">'DeadSemivoicedSound'</code></a></dt>
+ <dt><a id="keyset-key-U-309A"><code class="value">'U+309A'</code></a></dt>
+ <dd>The Combining Katakana-Hiragana Semi-Voiced Sound Mark (Dead Semivoiced Sound) key.</dd>
</dl>
</div>
- </div>
- <!-- div3 Events-eventgroupings-mutationnameevents -->
-
- </div>
- <!-- div1 Events -->
-
-
-
-
- <div class="div1">
- <h1 id="keyset-KeySet" class="adiv1">6. Keyboard events and key identifiers</h1>
- <p>This section contains necessary information regarding keyboard events:</p>
- <ul>
- <li>Relations between keys, such as dead keys or modifiers keys.</li>
- <li>Relations between keyboard events, their default actions, and text events.</li>
- <li>The set of key identifiers, and guidelines on how to extend this set.</li>
- </ul>
- <p class="note"><strong>Note:</strong> This section uses serbian and kanji characters which are not always available (or are misrepresented) in the alternative versions or printed versions of this specification.</p>
- <div class="div2">
- <h2 id="keyset-KeySet-intro" class="adiv2">6.1 Introduction</h2>
- <p>The relationship of each key to the complete keyboard has three separate aspects, each of which vary among different models and configurations of keyboards, particularly for locale-specific reasons:</p>
- <ul>
- <li><strong>Mechanical layout:</strong> the dimensions, size, and placement of the physical keys on the keyboard</li>
- <li><strong>Visual markings:</strong> the labels (or <em>legends</em>) that mark each key</li>
- <li><strong>Functional mapping:</strong> the abstract key-identifier association of each key.</li>
- </ul>
-
- <p>This specification only defines the functional mapping, in terms of key identifiers. The visual marking has no bearing on the digital representation of the keys, and in many configurations may be completely inaccurate.</p>
-
- <p>The physical layout of the keys may be of interest to authors developing games or other applications wherein the location of the keys has an ergonomic relationship as the desired user interface controls, with little or no attention paid to the representational value of the key itself. For example, many games may use the keys <code class="value">'A'</code>, <code class="value">'S'</code>, <code class="value">'D'</code>, and <code class="value">'W'</code> for <code class="value">'left'</code>, <code class="value">'down'</code>, <code class="value">'right'</code>, and <code class="value">'up'</code> respectively. Authors should provide a means for the user to assign the controller keys to a custom setting appropriate to their keyboard configurations. In the case where an author wishes to rely on the mechanical layout of a desktop or laptop keyboard, this specification recommends the keyboard configuration specified in ISO/IEC-9995-3-FCD:2009A as a common layout appropriate to some international uses.</p>
-
- <p class="note"><strong>Note:</strong> This keyboard layout is still, in essence, a QWERTY keyboard, and will not match the keyboards or configurations of many users. Authors cannot rely upon any particular configuration, and should create content in an internationalized and localizable manner.</p>
-
- <div class="figure" style="text-align: center">
- <object type="image/svg+xml" data="images/ISOIEC-9995-3-FCD-2009A.svg" width="900" height="300">
- <img src="images/ISOIEC-9995-3-FCD-2009A.png" alt="A graphical depiction of an ISO standard defining layouts of computer keyboards, ISO/IEC 9995-3:2009A"/>
- </object>
- <p style="text-align:left"><em>Figure: A graphical depiction of an ISO standard defining layouts of computer keyboards, ISO/IEC 9995-3:2009A</em></p>
- </div>
-
- <p>In the case where an author wishes to rely on the mechanical layout of a mobile keypad, this specification recommends the keyboard configuration specified in ISO/IEC 9995-8:2006 as a common layout appropriate to some international uses.</p>
-
- <p class="note"><strong>Note:</strong> This keypad layout, and in particular the distribution of letters is for Western devices, and will not match the keypads or configurations of many users. Authors cannot rely upon any particular configuration, and should create content in an internationalized and localizable manner.</p>
-
- <div class="figure" style="text-align: center">
- <object type="image/svg+xml" data="images/ISOIEC-9995-8-2006.svg" width="180" height="240">
- <img src="images/ISOIEC-9995-8-2006.svg" alt="A graphical depiction of an ISO standard defining layouts of numeric keypads, with distribution of letters on the keys, ISO/IEC 9995-8:2006"/>
- </object>
- <p style="text-align:left"><em>Figure: A graphical depiction of an ISO standard defining layouts of numeric keypads, with distribution of letters on the keys, ISO/IEC 9995-8:2006</em></p>
- </div>
-
-
- <p class="1st">Each keyboard event references a key using a <code>DOMString</code> key identifier. The set contained in this appendix is based on the sets of keycodes from:</p>
- <ul>
- <li>the interface <code>java.awt.event.KeyEvent</code> of the Java 2 Platform v1.4 [<cite><a class="noxref informative" href="#references-KeyEvent">KeyEvent for Java</a></cite>];</li>
- <li>the enumeration <code>System.Windows.Forms.Keys</code> of the Microsoft .NET Framework 1.0 [<cite><a class="noxref informative" href="#references-Keys">Keys enumeration for .Net</a></cite>].</li>
- </ul>
-
- <p>Key identifiers are strings used for uniquely addressing keyboard buttons, and intended for use in two primary scenarios: as attributes for a keyboard event; or as string values for markup attributes, such as so-called "hotkeys" (or keyboard shortcuts). As attributes on an event, the key identifier shall be a single canonical value. As author-generated content, the key identifier may be one of three equivalent string values, which all evaluate to the same key identifier; the string may be a character string (a single character, such as a letter or symbol), a key name (a multi-character string, such as <code>enter</code> or <code>tab</code>, for control or dead keys, or certain symbols), or a Unicode codepoint ("U+" followed by a hexadecimal character index). The event attribute must always be the most author-friendly of these, in the following order: character string, key name, or Unicode codepoint.</p>
-
- <p>There are several use cases for keyboard events. The first use case is to retrieve the value of the key itself, in whichever mode that key currently represents (i.e. the value of a key as an upper- or lower-case letter, or a symbol or number, depending upon the current modifier keys, or as a key name); this may be used for monitoring particular input strings, or for modifier key input, or for author-generated virtual keyboards, and does not not depend upon the location of the key in the physical layout of the device, which may be mapped to different configurations based on user or system preference. The second use case is for keyboard shortcuts, where the string itself may be of secondary importance, and where they key used should default to the most appropriate key for the function, language, operating system, device, and other environmental factors (such as <code>ctrl+c</code> for copy operations). The final use case is completely independent of the value of the key identifier, and relies solely on the physical layout of the input device itself (such as for game controls); this is highly variable device-dependent functionality, and is not within the scope of this specification. Implementations should provide an option for users to establish their own preferential mapping for keyboard layout, and may rely upon ISO 9995-3, which defines a common layout for primary and secondary key mappings on a typical alphanumeric keyboard, or on ISO 9995-8, which defines a numeric keypad layout and secondary assignment of Unicode characters in the range <abbr title="a-z">U+0061..U+007A</abbr> to the number keys <code>2</code> through <code>9</code>.</p>
-
-<!--
-<p>There are several primary use cases for Key Identifiers, roughly divided into cases for output and input. For output,
-
- <Travis> Use case: simulate a keyboard on a webpage.
-
- DS: May be useful to have use cases
-
- AvK: Games
-
- DS: We will be unable to define location on a keyboard
- ... Anyone making a game, wise to have user define key mapping
-
-
- <Travis> access keys.
-
- AvK: Scripts care about actual value - keyboard shortcuts
-
- <Travis> (Accessibility uses)
-
- DS: Hotkeys
- ... A little broken, commands used with browser not accessable to
- script authors. Will be overrideen
- ... There was an interesting proposal for allowing script authors to
- have hotkeys
- ... control-shift-?? is a way to access hotkeys
-
- :)
-
- <smaug> :)
-
- DS: Web app, want to hit control-S, same as they are used to with
- desktop app
-
- TL: Browser as application vs web page as an application
-
- <smaug> Does anyone have a link to that proposal?
-
- DS: May be useful to specify how browsers should deal with hotkeys
- ... Part of a dedicated specification - rather a different topic
-
- <chaals> [/me notes that the use cases boil down to something like
- "make the interface match what people expect", "make the keys used
- be a comfortable layout (especially important in games)" and "ensure
- that the keys are actually available and not overriding some
- important functionality the user had" ...]
-
- <Travis> Also, the drag/drop spec overlaps with this stuff.
-
- DS: Another use case is grab actual text values
- ... Does not care about location, just the end value
-</p>
- -->
-
- <p>While implementations are recommended to use the most relevant identifier for a key independently of the platform or keyboard layout mappings, DOM applications should not make assumption on the ability of keyboard devices to generate them. When using keyboard events, <cite>"consider using numbers and function keys (F4, F5, and so on) instead of letters in shortcut-key combinations"</cite> ([<cite><a class="noxref informative" href="#references-DWW95">DWW95</a></cite>]) given that most keyboard layouts will provide keys for those.</p>
- <p><code class="value">'U+0000'</code>, <code class="value">'U+0001'</code>, ..., <code class="value">'U+10FFFF'</code> are Unicode based key identifiers ([<cite><a class="noxref normative" href="#references-Unicode">Unicode</a></cite>]). When a key cannot be mapped to Unicode, a specific identifier shall be used (see also <a href="#keyset-Guide">Guidelines for defining key identifiers</a>). In any case, no assumption should be made between the sequence of keyboard events and the text events. The following three examples illustrate the concept of keyboard layout mappings and its relation with keyboard events (following the <a href="#keyset-Guide">Guidelines for defining key identifiers</a>, the 'Q' key shall be mapped to the Latin Capital Letter Q key).</p>
- <p>The keystroke <code class="value">'U+0051'</code> (Latin Capital Letter Q key) must produce (on a PC/AT US keyboard using a US keyboard layout mapping and without any modifier activated) the Unicode character <code>q</code> (Latin Small Letter Q):</p>
- <ol>
- <li><code>"keydown"</code>: <code class="value">'U+0051'</code> (Latin Capital Letter Q key)</li>
- <li><code>"textInput"</code>: <code class="value">'q'</code></li>
- <li><code>"keyup"</code>: <code class="value">'U+0051'</code></li>
- </ol>
- <p>If the keyboard layout mapping is switched to a french mapping, pressing the same key must produce:</p>
- <ol>
- <li><code>"keydown"</code>: <code class="value">'U+0041'</code> (Latin Capital Letter A key)</li>
- <li><code>"textInput"</code>: <code class="value">'a'</code></li>
- <li><code>"keyup"</code>: <code class="value">'U+0041'</code></li>
- </ol>
- <p>If the keyboard layout mapping is switched to a serbian (cyrillic) mapping, pressing the same key must produce:</p>
- <ol>
- <li><code>"keydown"</code>: <code class="value">'U+0409'</code> (Cyrillic Capital Letter LJE)</li>
- <li><code>"textInput"</code>: <code class="value">'љ'</code></li>
- <li><code>"keyup"</code>: <code class="value">'U+0409'</code></li>
- </ol>
- <p class="note"><strong>Note:</strong> The order between the text event and keyboard events may differ depending on the keyboard devices.</p>
- <div class="div3">
- <h3 id="keyset-Modifiers" class="adiv3">6.1.1 Modifier keys</h3>
- <p>Keyboard input uses modifier keys to change the normal behavior of a key. Keys associated with modifiers generate, like other keys, <a href="#events-event-keydown">keydown</a> and <a href="#events-event-keyup">keyup</a> events as shown in the example below. Some modifiers are activated while the key is being pressed down or maintained pressed such as <code class="value">'Alt'</code>, <code class="value">'Control'</code>, <code class="value">'Shift'</code>, <code class="value">'AltGraph'</code>, or <code class="value">'Meta'</code>. Others modifiers are activated depending on their state such as <code class="value">'CapsLock'</code>, <code class="value">'NumLock'</code>, or <code class="value">'Scroll'</code>. Change in the state happens when the modifier key is being pressed down. The <a href="#events-Events-KeyboardEvent"><code>KeyboardEvent</code></a> interface provides convenient attributes for some common modifiers keys: <a href="#events-Events-KeyboardEvent-ctrlKey"><code>KeyboardEvent.ctrlKey</code></a>, <a href="#events-Events-KeyboardEvent-shiftKey"><code>KeyboardEvent.shiftKey</code></a>, <a href="#events-Events-KeyboardEvent-altKey"><code>KeyboardEvent.altKey</code></a>, <a href="#events-Events-KeyboardEvent-metaKey"><code>KeyboardEvent.metaKey</code></a>. Some operating systems simulate the <code class="value">'AltGraph'</code> modifier key with the combination of the <code>"Alt</code> and <code class="value">'Control'</code> modifier keys. Implementations are encouraged to use the <code class="value">'AltGraph'</code> modifier key.</p>
- <p>The following example describes a possible sequence of keys to generate the Unicode character Q (Latin Capital Letter Q) on a PC/AT US keyboard using a US mapping:</p>
- <ol>
- <li><code>"keydown"</code>: <code class="value">'Shift'</code>, shiftKey</li>
- <li><code>"keydown"</code>: <code class="value">'U+0051'</code> (Latin Capital Letter Q key), shiftKey</li>
- <li><code>"textInput"</code>: <code class="value">'Q'</code></li>
- <li><code>"keyup"</code>: <code class="value">'U+0051'</code>, shiftKey</li>
- <li><code>"keyup"</code>: <code class="value">'Shift'</code></li>
- </ol>
- <p>The following example describes a possible sequence of keys that does not generate a Unicode character (using the same configuration):</p>
- <ol>
- <li><code>"keydown"</code>: <code class="value">'Control'</code>, ctrlKey</li>
- <li><code>"keydown"</code>: <code class="value">'U+0056'</code> (Latin Capital Letter V key), ctrlKey</li>
- <li><code>"keyup"</code>: <code class="value">'U+0056'</code>, ctrlKey</li>
- <li><code>"keyup"</code>: <code class="value">'Control'</code></li>
- </ol>
-
- <p>In some cases, modifier keys change the key identifier value for a key event. For example, on some MacOS keyboards, the key labeled <code class="value">'delete'</code> functions the same as the <code class="value">'Backspace'</code> key on the Windows OS when unmodified, but when modified by the <code class="value">'Fn'</code> key, acts as the <code class="value">'Del'</code> key, and the value of the key identifier must match the most appropriate function of the key in its current modified state.</p>
- </div>
-
- <!-- div3 Modifiers -->
- <div class="div3">
- <h3 id="keyset-DeadKeys" class="adiv3">6.1.2 Dead keys</h3>
- <p>Some keyboard input uses dead keys for the input of composed character sequences. Unlike the handwriting sequence, in which users enter the base character first, keyboard input requires to enter a special state when a dead key is pressed and emit the character(s) only when one of a limited number of "legal" base character is entered. (NOTE: the MacOS and Linux operating systems use input methods to process dead keys.)
- </p>
- <p>The dead keys are represented in the key identifiers set using combining diacritical marks. The sequence of keystrokes "U+0302" (Combining Circumflex Accent key) and "U+0045" (Latin Capital Letter E key) will likely produce (on a PC/AT french keyboard using a french mapping and without any modifier activated) the Unicode character ê (Latin Small Letter E With Circumflex), as preferred by the Unicode Normalization Form <em>NFC</em>:</p>
- <ol>
- <li><code>"keydown"</code>: <code class="value">'U+0302'</code> (Combining Circumflex Accent key)</li>
- <li><code>"compositionstart"</code>: <code class="value">''</code></li>
- <li><code>"compositionupdate"</code>: <code class="value">''</code> <span class="issue">@@ (value undefined - to be discussed)</span></li>
- <li><code>"keyup"</code>: <code class="value">'U+0302'</code></li>
- <li><code>"keydown"</code>: <code class="value">'U+0045'</code> (Latin Capital Letter E key)</li>
- <li><code>"compositionend"</code>: <code class="value">'é'</code> <span class="issue">@@ should compositionend come before or after textInput</span></li>
- <li><code>"textInput"</code>: <code class="value">'é'</code> (<code>"inputMode"</code>: <code class="value">'DOM_INPUT_METHOD_IME'</code>)</li>
- <li><code>"keyup"</code>: <code class="value">'U+0045'</code></li>
- </ol>
-
- <p>This process may be aborted when a user types an unsupported base character (that is, a base character for which the which the active diacritical mark is not available) after pressing a dead key:</p>
- <ol>
- <li><code>"keydown"</code>: <code class="value">'U+0302'</code> (Combining Circumflex Accent key)</li>
- <li><code>"compositionstart"</code>: <code class="value">''</code></li>
- <li><code>"compositionupdate"</code>: <code class="value">''</code> <span class="issue">@@ (undefined - to be discussed)</span></li>
- <li><code>"keyup"</code>: <code class="value">'U+0302'</code></li>
- <li><code>"keydown"</code>: <code class="value">'U+0051'</code> (Latin Capital Letter Q key)</li>
- <li><code>"compositionend"</code>: <code class="value">''</code></li>
- <li><code>"textInput"</code>: <code class="value">'q'</code> (<code>"inputMode"</code>: <code class="value">'DOM_INPUT_METHOD_KEYBOARD'</code>)</li>
- <li><code>"keyup"</code>: <code class="value">'U+0051'</code></li>
- </ol>
-
- </div>
-
-
- <!-- div3 DeadKeys -->
- <div class="div3">
- <h3 id="keyset-IME" class="adiv3">6.1.3 Input Method Editors</h3>
-
- <p>This specification includes a model for <a href="#glossary-dt-ime">input method editors (IMEs)</a>, through the <a href="#events-Events-CompositionEvents-Interfaces">CompositionEvent</a> interface and events. However, composition events and keyboard events do not necessarily map as a one-to-one relationship. As an example, receiving a <a href="#events-event-keydown">keydown</a> for the "Accept" key identifier does not necessarily imply that the text currently selected in the IME is being accepted, but indicates only that a keystroke happened, disconnected from the IME Accept functionality (which would normally result in a <code>"compositionend"</code> event in most IME systems). Keyboard events cannot be used to determine the current state of the input method editor, which should be obtained through the <a href="#events-Events-CompositionEvent-data"><code>data</code></a> attribute of the <a href="#events-Events-CompositionEvents-Interfaces">CompositionEvent</a> interface. Additionally, IME systems and devices vary in their functionality, and in which keys are used for activating that functionality, such that the <code class="value">'Convert'</code> and <code class="value">'Accept'</code> keys may be represented by other available keys.</p>
- <p>Keyboard events correspond to the events generated by the input device after the keyboard layout mapping but before the processing of the input method editor.</p>
- <p>The following example describes a possible sequence of keys to generate the Unicode character 市 (Kanji character, part of CJK Unified Ideographs) using Japanese input methods. This example assumes that the input method editor is activated and in the Japanese-Romaji input mode. The keys <code class="value">'Convert'</code> and <code class="value">'Accept'</code> may be replaced by others depending on the input device in use and the configuration of the IME, e.g. it could be respectively <code class="value">'U+0020'</code> (Space key) and <code class="value">'Enter'</code>.</p>
- <ol>
- <li><code>"keydown"</code>: <code class="value">'U+0053'</code> (Latin Capital Letter S key)</li>
- <li><code>"compositionstart"</code>: <code class="value">''</code></li>
- <li><code>"keyup"</code>: <code class="value">'U+0053'</code> (Latin Capital Letter S key)</li>
- <li><code>"keydown"</code>: <code class="value">'U+0049'</code> (Latin Capital Letter I key)</li>
- <li><code>"keyup"</code>: <code class="value">'U+0049'</code> (Latin Capital Letter I key)</li>
- <li><code>"keydown"</code>: <code class="value">'Convert'</code></li>
- <li><code>"compositionupdate"</code>: <code class="value">'詩'</code></li>
- <li><code>"keyup"</code>: <code class="value">'Convert'</code></li>
- <li><code>"keydown"</code>: <code class="value">'Convert'</code></li>
- <li><code>"compositionupdate"</code>: <code class="value">'市'</code></li>
- <li><code>"keyup"</code>: <code class="value">'Convert'</code></li>
- <li><code>"keydown"</code>: <code class="value">'Accept'</code></li>
- <li><code>"compositionend"</code>: <code class="value">'市'</code></li>
- <li><code>"textInput"</code>: <code class="value">'市'</code> (<code>"inputMode"</code>: <code class="value">'DOM_INPUT_METHOD_IME'</code>)</li>
- <li><code>"keyup"</code>: <code class="value">'Accept'</code></li>
- </ol>
-
- <p>IME composition may also be canceled as in the following example, with conditions identical to the previous example. The key "Cancel" may also be replaced by others depending on the input device in use and the configuration of the IME, e.g. it could be "U+001B" (Escape key).</p>
- <ol>
- <li><code>"keydown"</code>: <code class="value">'U+0053'</code> (Latin Capital Letter S key)</li>
- <li><code>"compositionstart"</code>: <code class="value">''</code></li>
- <li><code>"keyup"</code>: <code class="value">'U+0053'</code> (Latin Capital Letter S key)</li>
- <li><code>"keydown"</code>: <code class="value">'U+0049'</code> (Latin Capital Letter I key)</li>
- <li><code>"keyup"</code>: <code class="value">'U+0049'</code> (Latin Capital Letter I key)</li>
- <li><code>"keydown"</code>: <code class="value">'Convert'</code></li>
- <li><code>"compositionupdate"</code>: <code class="value">'詩'</code></li>
- <li><code>"keyup"</code>: <code class="value">'Convert'</code></li>
- <li><code>"keydown"</code>: <code class="value">'Convert'</code></li>
- <li><code>"compositionupdate"</code>: <code class="value">'市'</code></li>
- <li><code>"keyup"</code>: <code class="value">'Convert'</code></li>
- <li><code>"keydown"</code>: <code class="value">'Cancel'</code></li>
- <li><code>"compositionupdate"</code>: <code class="value">''</code></li>
- <li><code>"compositionend"</code>: <code class="value">''</code></li>
- <li><code>"keyup"</code>: <code class="value">'Cancel'</code></li>
- </ol>
-
- <p>NOTE: Some <a href="#glossary-dt-ime">input method editors</a> (such as on the MacOS operating system) may set an empty string to the composition data attribute before canceling a composition.</p>
-
- <h4 id="keyset-IME_keys" class="adiv4">6.1.3.1 Input Method Editor mode keys</h4>
- <p>Some keys on certain devices are intended to activate <a href="#glossary-dt-ime">input method editor</a> functionality, or to change the mode of an active <a href="#glossary-dt-ime">input method editor</a>. Custom keys for this purpose may be defined for different devices or language modes; the keys defined in this specification for this purpose are: <code>Alphanumeric</code>, <code>CodeInput</code>, <code>FinalMode</code>, <code>HangulMode</code>, <code>HanjaMode</code>, <code>Hiragana</code>, <code>JapaneseHiragana</code>, <code>JapaneseKatakana</code>, <code>JapaneseRomaji</code>, <code>JunjaMode</code>, <code>KanaMode</code>, <code>KanjiMode</code>, <code>Katakana</code>, and <code>RomanCharacters</code>. When one of these keys is pressed, and no <a href="#glossary-dt-ime">IME</a> is currently active, the appropriate <a href="#glossary-dt-ime">IME</a>, shall be activated in the mode indicated by the key (if available); if an <a href="#glossary-dt-ime">IME</a> is already active when the key is pressed, the active <a href="#glossary-dt-ime">IME</a> may change to the indicated mode, or a different <a href="#glossary-dt-ime">IME</a> may be launched, or the key may be ignored, on a device- and application-specific basis.</p>
-
- <p>This specification also defines other keys which are intended for operation specifically with <a href="#glossary-dt-ime">input method editors</a>: <code>Accept</code>, <code>AllCandidates</code>, <code>Cancel</code>, <code>Convert</code>, <code>Compose</code>, <code>FullWidth</code>, <code>HalfWidth</code>, <code>NextCandidate</code>, <code>Nonconvert</code>, and <code>PreviousCandidate</code>. The functions of these keys are not defined in this specification; refer to other resources for details on <a href="#glossary-dt-ime">input method editor</a> functionality.</p>
-
- <p>Note that keys with <a href="#glossary-dt-ime">input method editor</a> functions are note restricted to that purpose, and may have other device- or implementation-specific purposes, as well.</p>
-
- </div>
-
-
- <!-- div3 IME -->
- <div class="div3">
- <h3 id="keyset-cancelable_keys" class="adiv3">6.1.4 Default actions and cancelable keyboard events</h3>
- <p>Canceling the <a href="#glossary-dt-default-action">default action</a> of a <a href="#events-event-keydown">keydown</a> event does not affect its respective <a href="#events-event-keyup">keyup</a> event; it must however prevent the respective <a href="#events-event-textInput">textInput</a> event from being generated. The following example describes a possible sequence of keys to generate the Unicode character Q (Latin Capital Letter Q) on a PC/AT US keyboard using a US mapping:</p>
- <ol>
- <li><code>"keydown"</code>: <code class="value">'U+0051'</code> (Latin Capital Letter Q key), shiftKey<br/>
-the <a href="#glossary-dt-default-action">default action</a> of the <a href="#events-event-keydown">keydown</a> event is prevented, e.g. by invoking <a href="#events-Events-Event-preventDefault"><code>Event.preventDefault()</code></a> during the dispatch of the keydown event object.</li>
- <li>No <code>"textInput"</code> shall be generated.</li>
- <li><code>"keyup"</code>: <code class="value">'U+0051'</code>, shiftKey</li>
- </ol>
- <p>If the key is a modifier key, the keystroke shall be taken into account for the modifiers states. The following example describes a possible sequence of keys to generate the Unicode character Q (Latin Capital Letter Q) on a PC/AT US keyboard using a US mapping:</p>
- <ol>
- <li><code>"keydown"</code>: <code class="value">'Shift'</code>, shiftKey<br/>
-the <a href="#glossary-dt-default-action">default action</a> of the keydown event shall be prevented.</li>
- <li><code>"keydown"</code>: <code class="value">'U+0051'</code> (Latin Capital Letter Q key), shiftKey</li>
- <li><code>"textInput"</code>: <code class="value">'Q'</code></li>
- <li><code>"keyup"</code>: <code class="value">'U+0051'</code>, shiftKey</li>
- <li><code>"keyup"</code>: <code class="value">'Shift'</code></li>
- </ol>
- <p>If the key is part of a sequence of several keystrokes, whether it is a dead key or it is contributing to an Input Method Editor sequence, the keystroke shall be ignored (not taken into account) only if the <a href="#glossary-dt-default-action">default action</a> is canceled on the <a href="#events-event-keydown">keydown</a> event. Canceling a dead key on a <a href="#events-event-keyup">keyup</a> event has not effect on <a href="#events-event-textInput">textInput</a> events. The following example uses the keystrokes <code class="value">'U+0302'</code> (Combining Circumflex Accent key) and <code class="value">'U+0045'</code> (Latin Capital Letter E key) (on a PC/AT french keyboard using a french mapping and without any modifier activated):</p>
- <ol>
- <li><code>"keydown"</code>: <code class="value">'U+0302'</code> (Combining Circumflex Accent key)<br/>
-the <a href="#glossary-dt-default-action">default action</a> of the keydown event shall be prevented</li>
- <li><code>"keyup"</code>: <code class="value">'U+0302'</code></li>
- <li><code>"keydown"</code>: <code class="value">'U+0045'</code> (Latin Capital Letter E key)</li>
- <li><code>"textInput"</code>: <code class="value">'a'</code></li>
- <li><code>"keyup"</code>: <code class="value">'U+0045'</code></li>
- </ol>
+ <!-- div2 KeySet-Set -->
+
+<div>
+ <h4 id="keyset-keyCode-charCode" class="adiv3">6.3.3 Key identifiers, keyCode, and charCode</h4>
+ <p class="note"><strong>Note:</strong> This section is non-normative.</p>
+ <p>Browser support for keyboards has traditionally relied on two ad-hoc attributes, <code class="attr-name">keyCode</code>, and <code class="attr-name">charCode</code>. The values for these attributes, and the availability of the attribute, is inconsistent across platforms, keyboard languages and layouts, User Agents, versions, and even event types. A significant amount of legacy content, including script libraries, relies upon detecting the User Agent and acting accordingly, and any changes to <code class="attr-name">keyCode</code>, or <code class="attr-name">charCode</code> risk breaking as much content as they fix or enable. Additionally, these attributes are not suitable for international usage, or accessibility concerns. Therefore, this specification does not normatively define the <code class="attr-name">keyCode</code>, and <code class="attr-name">charCode</code> attributes, relying instead only on the more robust key identifiers, which can be used safely and consistently in any User Agent which conforms to this specification. However, for the purpose of documenting the current state of these attributes and their relation to equivalent key identifiers, this specification contains the following table, which is to be used as an informative reference only, and does not document the full range of values for <code class="attr-name">keyCode</code>, and <code class="attr-name">charCode</code>.</p>
+ <table id="tbl-keyIdentifiers-keyCode-charCode">
+ <caption><strong>Key Identifiers Set with keyCode and charCode Equivalents for Major Browsers</strong><br/>(<code>keycode</code> labeled <em>key</em>, <code>charcode</code> labeled <em>char</em>)</caption>
+ <tr>
+ <th rowspan="3">Character String</th>
+ <th rowspan="3">Key Name</th>
+ <th rowspan="3">Unicode Codepoint</th>
+ <th rowspan="3">Description</th>
+ <th colspan="6">Internet Explorer 7</th>
+ <th colspan="6">Firefox 3</th>
+ <th colspan="6">Safari 3.1</th>
+ <th colspan="6">Opera 9.5</th></tr>
+ <tr>
+ <th colspan="2">keydown</th>
+ <th colspan="2">keypress</th>
+ <th colspan="2">keyup</th>
+ <th colspan="2">keydown</th>
+ <th colspan="2">keypress</th>
+ <th colspan="2">keyup</th>
+ <th colspan="2">keydown</th>
+ <th colspan="2">keypress</th>
+ <th colspan="2">keyup</th>
+ <th colspan="2">keydown</th>
+ <th colspan="2">keypress</th>
+ <th colspan="2">keyup</th></tr>
+ <tr class="smallRow"><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Accept" class="value">'Accept'</code>
+ </td><td> </td><td>The Accept (Commit, OK) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Add" class="value">'Add'</code>
+ </td><td> </td><td>The Add key.</td><td>107</td><td>-</td><td>107</td><td>-</td><td>107</td><td>-</td><td>107</td><td>-</td><td>0</td><td>107</td><td>107</td><td>-</td><td>107</td><td>-</td><td>107</td><td>107</td><td>107</td><td>-</td><td>107</td><td>-</td><td>107</td><td>-</td><td>107</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Again" class="value">'Again'</code>
+ </td><td> </td><td>The Again key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-AllCandidates" class="value">'AllCandidates'</code>
+ </td><td> </td><td>The All Candidates key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Alphanumeric" class="value">'Alphanumeric'</code>
+ </td><td> </td><td>The Alphanumeric key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Alt" class="value">'Alt'</code>
+ </td><td> </td><td>The Alt (Menu) key.</td><td>18</td><td>-</td><td>-</td><td>-</td><td>18</td><td>-</td><td>18</td><td>-</td><td>-</td><td>-</td><td>18</td><td>-</td><td>18</td><td>-</td><td>-</td><td>-</td><td>18</td><td>-</td><td>18</td><td>-</td><td>18</td><td>-</td><td>-</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-AltGraph" class="value">'AltGraph'</code>
+ </td><td> </td><td>The Alt-Graph key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Apps" class="value">'Apps'</code>
+ </td><td> </td><td>The Application key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Attn" class="value">'Attn'</code>
+ </td><td> </td><td>The ATTN key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-BrowserBack" class="value">'BrowserBack'</code>
+ </td><td> </td><td>The Browser Back key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-BrowserFavorites" class="value">'BrowserFavorites'</code>
+ </td><td> </td><td>The Browser Favorites key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-BrowserForward" class="value">'BrowserForward'</code>
+ </td><td> </td><td>The Browser Forward key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-BrowserHome" class="value">'BrowserHome'</code>
+ </td><td> </td><td>The Browser Home key.</td><td>36</td><td>-</td><td>-</td><td>-</td><td>36</td><td>-</td><td>36</td><td>-</td><td>36</td><td>-</td><td>36</td><td>-</td><td>36</td><td>-</td><td>-</td><td>-</td><td>36</td><td>-</td><td>36</td><td>-</td><td>36</td><td>-</td><td>36</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-BrowserRefresh" class="value">'BrowserRefresh'</code>
+ </td><td> </td><td>The Browser Refresh key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-BrowserSearch" class="value">'BrowserSearch'</code>
+ </td><td> </td><td>The Browser Search key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-BrowserStop" class="value">'BrowserStop'</code>
+ </td><td> </td><td>The Browser Stop key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-CapsLock" class="value">'CapsLock'</code>
+ </td><td> </td><td>The Caps Lock (Capital) key.</td><td>20</td><td>-</td><td>-</td><td>-</td><td>20</td><td>-</td><td>20</td><td>-</td><td>-</td><td>-</td><td>20</td><td>-</td><td>20</td><td>-</td><td>-</td><td>-</td><td>20</td><td>-</td><td>20</td><td>-</td><td>-</td><td>-</td><td>20</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Clear" class="value">'Clear'</code>
+ </td><td> </td><td>The Clear key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-CodeInput" class="value">'CodeInput'</code>
+ </td><td> </td><td>The Code Input key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Compose" class="value">'Compose'</code>
+ </td><td> </td><td>The Compose key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Control" class="value">'Control'</code>
+ </td><td> </td><td>The Control (Ctrl) key.</td><td>17</td><td>-</td><td>-</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td><td>-</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td><td>-</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Crsel" class="value">'Crsel'</code>
+ </td><td> </td><td>The Crsel key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Convert" class="value">'Convert'</code>
+ </td><td> </td><td>The Convert key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Copy" class="value">'Copy'</code>
+ </td><td> </td><td>The Copy key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Cut" class="value">'Cut'</code>
+ </td><td> </td><td>The Cut key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Decimal" class="value">'Decimal'</code>
+ </td><td> </td><td>The Decimal key.</td><td>110</td><td>-</td><td>110</td><td>-</td><td>110</td><td>-</td><td>110</td><td>-</td><td>0</td><td>110</td><td>110</td><td>-</td><td>110</td><td>-</td><td>110</td><td>110</td><td>110</td><td>-</td><td>110</td><td>-</td><td>110</td><td>-</td><td>110</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Divide" class="value">'Divide'</code>
+ </td><td> </td><td>The Divide key.</td><td>111</td><td>-</td><td>111</td><td>-</td><td>111</td><td>-</td><td>111</td><td>-</td><td>0</td><td>111</td><td>111</td><td>-</td><td>111</td><td>-</td><td>111</td><td>111</td><td>111</td><td>-</td><td>111</td><td>-</td><td>111</td><td>-</td><td>111</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Down" class="value">'Down'</code>
+ </td><td> </td><td>The Down Arrow key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DownLeft" class="value">'DownLeft'</code>
+ </td><td> </td><td>The diagonal Down-Left Arrow key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DownRight" class="value">'DownRight'</code>
+ </td><td> </td><td>The diagonal Down-Right Arrow key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-End" class="value">'End'</code>
+ </td><td> </td><td>The End key.</td><td>35</td><td>-</td><td>-</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>-</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Enter" class="value">'Enter'</code>
+ </td><td> </td><td>The Enter key. <em><strong>Note:</strong> This key identifier shall be also used for the Return (Macintosh numpad) key.</em></td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>13</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-EraseEof" class="value">'EraseEof'</code>
+ </td><td> </td><td>The Erase EOF key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Execute" class="value">'Execute'</code>
+ </td><td> </td><td>The Execute key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Exsel" class="value">'Exsel'</code>
+ </td><td> </td><td>The Exsel key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Fn" class="value">'Fn'</code>
+ </td><td> </td><td>The Function switch key.</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F1" class="value">'F1'</code>
+ </td><td> </td><td>The F1 key.</td><td>112</td><td>-</td><td>-</td><td>-</td><td>112</td><td>-</td><td>112</td><td>-</td><td>112</td><td>-</td><td>112</td><td>-</td><td>112</td><td>-</td><td>-</td><td>-</td><td>112</td><td>-</td><td>112</td><td>-</td><td>112</td><td>-</td><td>112</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F2" class="value">'F2'</code>
+ </td><td> </td><td>The F2 key.</td><td>113</td><td>-</td><td>-</td><td>-</td><td>113</td><td>-</td><td>113</td><td>-</td><td>113</td><td>-</td><td>113</td><td>-</td><td>113</td><td>-</td><td>-</td><td>-</td><td>113</td><td>-</td><td>113</td><td>-</td><td>113</td><td>-</td><td>113</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F3" class="value">'F3'</code>
+ </td><td> </td><td>The F3 key.</td><td>114</td><td>-</td><td>-</td><td>-</td><td>114</td><td>-</td><td>114</td><td>-</td><td>114</td><td>-</td><td>114</td><td>-</td><td>114</td><td>-</td><td>-</td><td>-</td><td>114</td><td>-</td><td>114</td><td>-</td><td>114</td><td>-</td><td>114</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F4" class="value">'F4'</code>
+ </td><td> </td><td>The F4 key.</td><td>115</td><td>-</td><td>-</td><td>-</td><td>115</td><td>-</td><td>115</td><td>-</td><td>115</td><td>-</td><td>115</td><td>-</td><td>115</td><td>-</td><td>-</td><td>-</td><td>115</td><td>-</td><td>115</td><td>-</td><td>115</td><td>-</td><td>115</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F5" class="value">'F5'</code>
+ </td><td> </td><td>The F5 key.</td><td>116</td><td>-</td><td>-</td><td>-</td><td>116</td><td>-</td><td>116</td><td>-</td><td>116</td><td>-</td><td>116</td><td>-</td><td>116</td><td>-</td><td>-</td><td>-</td><td>116</td><td>-</td><td>116</td><td>-</td><td>116</td><td>-</td><td>116</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F6" class="value">'F6'</code>
+ </td><td> </td><td>The F6 key.</td><td>117</td><td>-</td><td>-</td><td>-</td><td>117</td><td>-</td><td>117</td><td>-</td><td>117</td><td>-</td><td>117</td><td>-</td><td>117</td><td>-</td><td>-</td><td>-</td><td>117</td><td>-</td><td>117</td><td>-</td><td>117</td><td>-</td><td>117</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F7" class="value">'F7'</code>
+ </td><td> </td><td>The F7 key.</td><td>118</td><td>-</td><td>-</td><td>-</td><td>118</td><td>-</td><td>118</td><td>-</td><td>118</td><td>-</td><td>118</td><td>-</td><td>118</td><td>-</td><td>-</td><td>-</td><td>118</td><td>-</td><td>118</td><td>-</td><td>118</td><td>-</td><td>118</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F8" class="value">'F8'</code>
+ </td><td> </td><td>The F8 key.</td><td>119</td><td>-</td><td>-</td><td>-</td><td>119</td><td>-</td><td>119</td><td>-</td><td>119</td><td>-</td><td>119</td><td>-</td><td>119</td><td>-</td><td>-</td><td>-</td><td>119</td><td>-</td><td>119</td><td>-</td><td>119</td><td>-</td><td>119</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F9" class="value">'F9'</code>
+ </td><td> </td><td>The F9 key.</td><td>120</td><td>-</td><td>-</td><td>-</td><td>120</td><td>-</td><td>120</td><td>-</td><td>120</td><td>-</td><td>120</td><td>-</td><td>120</td><td>-</td><td>-</td><td>-</td><td>120</td><td>-</td><td>120</td><td>-</td><td>120</td><td>-</td><td>120</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F10" class="value">'F10'</code>
+ </td><td> </td><td>The F10 key.</td><td>121</td><td>-</td><td>-</td><td>-</td><td>121</td><td>-</td><td>121</td><td>-</td><td>121</td><td>-</td><td>121</td><td>-</td><td>121</td><td>-</td><td>-</td><td>-</td><td>121</td><td>-</td><td>121</td><td>-</td><td>121</td><td>-</td><td>121</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F11" class="value">'F11'</code>
+ </td><td> </td><td>The F11 key.</td><td>122</td><td>-</td><td>-</td><td>-</td><td>122</td><td>-</td><td>122</td><td>-</td><td>122</td><td>-</td><td>122</td><td>-</td><td>122</td><td>-</td><td>-</td><td>-</td><td>122</td><td>-</td><td>122</td><td>-</td><td>122</td><td>-</td><td>122</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F12" class="value">'F12'</code>
+ </td><td> </td><td>The F12 key.</td><td>123</td><td>-</td><td>-</td><td>-</td><td>123</td><td>-</td><td>123</td><td>-</td><td>123</td><td>-</td><td>123</td><td>-</td><td>123</td><td>-</td><td>-</td><td>-</td><td>123</td><td>-</td><td>123</td><td>-</td><td>123</td><td>-</td><td>123</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F13" class="value">'F13'</code>
+ </td><td> </td><td>The F13 key.</td><td>124</td><td>-</td><td>-</td><td>-</td><td>124</td><td>-</td><td>124</td><td>-</td><td>124</td><td>-</td><td>124</td><td>-</td><td>124</td><td>-</td><td>-</td><td>-</td><td>124</td><td>-</td><td>124</td><td>-</td><td>124</td><td>-</td><td>124</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F14" class="value">'F14'</code>
+ </td><td> </td><td>The F14 key.</td><td>125</td><td>-</td><td>-</td><td>-</td><td>125</td><td>-</td><td>125</td><td>-</td><td>125</td><td>-</td><td>125</td><td>-</td><td>125</td><td>-</td><td>-</td><td>-</td><td>125</td><td>-</td><td>125</td><td>-</td><td>125</td><td>-</td><td>125</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F15" class="value">'F15'</code>
+ </td><td> </td><td>The F15 key.</td><td>126</td><td>-</td><td>-</td><td>-</td><td>126</td><td>-</td><td>126</td><td>-</td><td>126</td><td>-</td><td>126</td><td>-</td><td>126</td><td>-</td><td>-</td><td>-</td><td>126</td><td>-</td><td>126</td><td>-</td><td>126</td><td>-</td><td>126</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F16" class="value">'F16'</code>
+ </td><td> </td><td>The F16 key.</td><td>127</td><td>-</td><td>-</td><td>-</td><td>127</td><td>-</td><td>127</td><td>-</td><td>127</td><td>-</td><td>127</td><td>-</td><td>127</td><td>-</td><td>-</td><td>-</td><td>127</td><td>-</td><td>127</td><td>-</td><td>127</td><td>-</td><td>127</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F17" class="value">'F17'</code>
+ </td><td> </td><td>The F17 key.</td><td>128</td><td>-</td><td>-</td><td>-</td><td>128</td><td>-</td><td>128</td><td>-</td><td>128</td><td>-</td><td>128</td><td>-</td><td>128</td><td>-</td><td>-</td><td>-</td><td>128</td><td>-</td><td>128</td><td>-</td><td>128</td><td>-</td><td>128</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F18" class="value">'F18'</code>
+ </td><td> </td><td>The F18 key.</td><td>129</td><td>-</td><td>-</td><td>-</td><td>129</td><td>-</td><td>129</td><td>-</td><td>129</td><td>-</td><td>129</td><td>-</td><td>129</td><td>-</td><td>-</td><td>-</td><td>129</td><td>-</td><td>129</td><td>-</td><td>129</td><td>-</td><td>129</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F19" class="value">'F19'</code>
+ </td><td> </td><td>The F19 key.</td><td>130</td><td>-</td><td>-</td><td>-</td><td>130</td><td>-</td><td>130</td><td>-</td><td>130</td><td>-</td><td>130</td><td>-</td><td>130</td><td>-</td><td>-</td><td>-</td><td>130</td><td>-</td><td>130</td><td>-</td><td>130</td><td>-</td><td>130</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F20" class="value">'F20'</code>
+ </td><td> </td><td>The F20 key.</td><td>131</td><td>-</td><td>-</td><td>-</td><td>131</td><td>-</td><td>131</td><td>-</td><td>131</td><td>-</td><td>131</td><td>-</td><td>131</td><td>-</td><td>-</td><td>-</td><td>131</td><td>-</td><td>131</td><td>-</td><td>131</td><td>-</td><td>131</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F21" class="value">'F21'</code>
+ </td><td> </td><td>The F21 key.</td><td>132</td><td>-</td><td>-</td><td>-</td><td>132</td><td>-</td><td>132</td><td>-</td><td>132</td><td>-</td><td>132</td><td>-</td><td>132</td><td>-</td><td>-</td><td>-</td><td>132</td><td>-</td><td>132</td><td>-</td><td>132</td><td>-</td><td>132</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F22" class="value">'F22'</code>
+ </td><td> </td><td>The F22 key.</td><td>133</td><td>-</td><td>-</td><td>-</td><td>133</td><td>-</td><td>133</td><td>-</td><td>133</td><td>-</td><td>133</td><td>-</td><td>133</td><td>-</td><td>-</td><td>-</td><td>133</td><td>-</td><td>133</td><td>-</td><td>133</td><td>-</td><td>133</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F23" class="value">'F23'</code>
+ </td><td> </td><td>The F23 key.</td><td>134</td><td>-</td><td>-</td><td>-</td><td>134</td><td>-</td><td>134</td><td>-</td><td>134</td><td>-</td><td>134</td><td>-</td><td>134</td><td>-</td><td>-</td><td>-</td><td>134</td><td>-</td><td>134</td><td>-</td><td>134</td><td>-</td><td>134</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-F24" class="value">'F24'</code>
+ </td><td> </td><td>The F24 key.</td><td>135</td><td>-</td><td>-</td><td>-</td><td>135</td><td>-</td><td>135</td><td>-</td><td>135</td><td>-</td><td>135</td><td>-</td><td>135</td><td>-</td><td>-</td><td>-</td><td>135</td><td>-</td><td>135</td><td>-</td><td>135</td><td>-</td><td>135</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-FinalMode" class="value">'FinalMode'</code>
+ </td><td> </td><td>The Final Mode (Final) key used on some asian keyboards.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Find" class="value">'Find'</code>
+ </td><td> </td><td>The Find key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-FullWidth" class="value">'FullWidth'</code>
+ </td><td> </td><td>The Full-Width Characters key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-HalfWidth" class="value">'HalfWidth'</code>
+ </td><td> </td><td>The Half-Width Characters key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-HangulMode" class="value">'HangulMode'</code>
+ </td><td> </td><td>The Hangul (Korean characters) Mode key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-HanjaMode" class="value">'HanjaMode'</code>
+ </td><td> </td><td>The Hanja (Korean characters) Mode key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Help" class="value">'Help'</code>
+ </td><td> </td><td>The Help key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Hiragana" class="value">'Hiragana'</code>
+ </td><td> </td><td>The Hiragana (Japanese Kana characters) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Home" class="value">'Home'</code>
+ </td><td> </td><td>The Home key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Insert" class="value">'Insert'</code>
+ </td><td> </td><td>The Insert (Ins) key.</td><td>45</td><td>-</td><td>-</td><td>-</td><td>45</td><td>-</td><td>45</td><td>-</td><td>45</td><td>-</td><td>45</td><td>-</td><td>45</td><td>-</td><td>-</td><td>-</td><td>45</td><td>-</td><td>45</td><td>-</td><td>45</td><td>-</td><td>45</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-JapaneseHiragana" class="value">'JapaneseHiragana'</code>
+ </td><td> </td><td>The Japanese-Hiragana key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-JapaneseKatakana" class="value">'JapaneseKatakana'</code>
+ </td><td> </td><td>The Japanese-Katakana key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-JapaneseRomaji" class="value">'JapaneseRomaji'</code>
+ </td><td> </td><td>The Japanese-Romaji key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-JunjaMode" class="value">'JunjaMode'</code>
+ </td><td> </td><td>The Junja Mode key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-KanaMode" class="value">'KanaMode'</code>
+ </td><td> </td><td>The Kana Mode (Kana Lock) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-KanjiMode" class="value">'KanjiMode'</code>
+ </td><td> </td><td>The Kanji (Japanese name for ideographic characters of Chinese origin) Mode key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Katakana" class="value">'Katakana'</code>
+ </td><td> </td><td>The Katakana (Japanese Kana characters) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-LaunchApplication1" class="value">'LaunchApplication1'</code>
+ </td><td> </td><td>The Start Application One key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-LaunchApplication2" class="value">'LaunchApplication2'</code>
+ </td><td> </td><td>The Start Application Two key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-LaunchMail" class="value">'LaunchMail'</code>
+ </td><td> </td><td>The Start Mail key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Left" class="value">'Left'</code>
+ </td><td> </td><td>The Left Arrow key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Menu" class="value">'Menu'</code>
+ </td><td> </td><td>The Menu key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Meta" class="value">'Meta'</code>
+ </td><td> </td><td>The Meta key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-MediaNextTrack" class="value">'MediaNextTrack'</code>
+ </td><td> </td><td>The Media Next Track key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-MediaPlayPause" class="value">'MediaPlayPause'</code>
+ </td><td> </td><td>The Media Play Pause key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-MediaPreviousTrack" class="value">'MediaPreviousTrack'</code>
+ </td><td> </td><td>The Media Previous Track key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-MediaStop" class="value">'MediaStop'</code>
+ </td><td> </td><td>The Media Stop key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-ModeChange" class="value">'ModeChange'</code>
+ </td><td> </td><td>The Mode Change key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Multiply" class="value">'Multiply'</code>
+ </td><td> </td><td>The Multiply key.</td><td>106</td><td>-</td><td>106</td><td>-</td><td>106</td><td>-</td><td>106</td><td>-</td><td>0</td><td>106</td><td>106</td><td>-</td><td>106</td><td>-</td><td>106</td><td>106</td><td>106</td><td>-</td><td>106</td><td>-</td><td>106</td><td>-</td><td>106</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-NextCandidate" class="value">'NextCandidate'</code>
+ </td><td> </td><td>The Next Candidate function key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Nonconvert" class="value">'Nonconvert'</code>
+ </td><td> </td><td>The Nonconvert (Don't Convert) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-NumLock" class="value">'NumLock'</code>
+ </td><td> </td><td>The Number Lock key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-PageDown" class="value">'PageDown'</code>
+ </td><td> </td><td>The Page Down (Next) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-PageUp" class="value">'PageUp'</code>
+ </td><td> </td><td>The Page Up key.</td><td>33</td><td>-</td><td>-</td><td>-</td><td>33</td><td>-</td><td>33</td><td>-</td><td>33</td><td>-</td><td>33</td><td>-</td><td>33</td><td>-</td><td>-</td><td>-</td><td>33</td><td>-</td><td>33</td><td>-</td><td>33</td><td>-</td><td>33</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Paste" class="value">'Paste'</code>
+ </td><td> </td><td>The Paste key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Pause" class="value">'Pause'</code>
+ </td><td> </td><td>The Pause key.</td><td>19</td><td>-</td><td>-</td><td>-</td><td>19</td><td>-</td><td>19</td><td>-</td><td>19</td><td>-</td><td>19</td><td>-</td><td>19</td><td>-</td><td>-</td><td>-</td><td>19</td><td>-</td><td>19</td><td>-</td><td>19</td><td>-</td><td>19</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Play" class="value">'Play'</code>
+ </td><td> </td><td>The Play key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-PreviousCandidate" class="value">'PreviousCandidate'</code>
+ </td><td> </td><td>The Previous Candidate function key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-PrintScreen" class="value">'PrintScreen'</code>
+ </td><td> </td><td>The Print Screen (PrintScrn, SnapShot) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Process" class="value">'Process'</code>
+ </td><td> </td><td>The Process key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Props" class="value">'Props'</code>
+ </td><td> </td><td>The Props key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Right" class="value">'Right'</code>
+ </td><td> </td><td>The Right Arrow key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-RomanCharacters" class="value">'RomanCharacters'</code>
+ </td><td> </td><td>The Roman Characters function key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Scroll" class="value">'Scroll'</code>
+ </td><td> </td><td>The Scroll Lock key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Select" class="value">'Select'</code>
+ </td><td> </td><td>The Select key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-SelectMedia" class="value">'SelectMedia'</code>
+ </td><td> </td><td>The Select Media key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Separator" class="value">'Separator'</code>
+ </td><td> </td><td>The Separator key.</td><td>108</td><td>-</td><td>108</td><td>-</td><td>108</td><td>-</td><td>108</td><td>-</td><td>0</td><td>108</td><td>108</td><td>-</td><td>108</td><td>-</td><td>108</td><td>108</td><td>108</td><td>-</td><td>108</td><td>-</td><td>108</td><td>-</td><td>108</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Shift" class="value">'Shift'</code>
+ </td><td> </td><td>The Shift key.</td><td>17</td><td>-</td><td>-</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td><td>-</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td><td>-</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Soft1" class="value">'Soft1'</code>
+ </td><td> </td><td>The Soft1 key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Soft2" class="value">'Soft2'</code>
+ </td><td> </td><td>The Soft2 key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Soft3" class="value">'Soft3'</code>
+ </td><td> </td><td>The Soft3 key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Soft4" class="value">'Soft4'</code>
+ </td><td> </td><td>The Soft4 key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Stop" class="value">'Stop'</code>
+ </td><td> </td><td>The Stop key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Subtract" class="value">'Subtract'</code>
+ </td><td> </td><td>The Subtract key.</td><td>109</td><td>-</td><td>109</td><td>-</td><td>109</td><td>-</td><td>109</td><td>-</td><td>0</td><td>109</td><td>109</td><td>-</td><td>109</td><td>-</td><td>109</td><td>109</td><td>109</td><td>-</td><td>109</td><td>-</td><td>109</td><td>-</td><td>109</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Up" class="value">'Up'</code>
+ </td><td> </td><td>The Up Arrow key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-UpLeft" class="value">'UpLeft'</code>
+ </td><td> </td><td>The diagonal Up-Left Arrow key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-UpRight" class="value">'UpRight'</code>
+ </td><td> </td><td>The diagonal Up-Right Arrow key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Undo" class="value">'Undo'</code>
+ </td><td> </td><td>The Undo key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-VolumeDown" class="value">'VolumeDown'</code>
+ </td><td> </td><td>The Volume Down key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-VolumeMute" class="value">'VolumeMute'</code>
+ </td><td> </td><td>The Volume Mute key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-VolumeUp" class="value">'VolumeUp'</code>
+ </td><td> </td><td>The Volume Up key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Win" class="value">'Win'</code>
+ </td><td> </td><td>The Windows Logo key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Zoom" class="value">'Zoom'</code>
+ </td><td> </td><td>The Zoom key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Backspace" class="value">'Backspace'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0008" class="value">'U+0008'</code>
+ </td><td>The Backspace (Back) key.</td><td>8</td><td>-</td><td>-</td><td>-</td><td>8</td><td>-</td><td>8</td><td>-</td><td>8</td><td>-</td><td>8</td><td>-</td><td>8</td><td>-</td><td>-</td><td>-</td><td>8</td><td>-</td><td>8</td><td>-</td><td>8</td><td>-</td><td>8</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Tab" class="value">'Tab'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0009" class="value">'U+0009'</code>
+ </td><td>The Horizontal Tabulation (Tab) key.</td><td>9</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>9</td><td>-</td><td>9</td><td>-</td><td>-</td><td>-</td><td>9</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>9</td><td>-</td><td>9</td><td>-</td><td>-</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Cancel" class="value">'Cancel'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0018" class="value">'U+0018'</code>
+ </td><td>The Cancel key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Esc" class="value">'Esc'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-001B" class="value">'U+001B'</code>
+ </td><td>The Escape (Esc) key.</td><td>27</td><td>-</td><td>27</td><td>-</td><td>27</td><td>-</td><td>27</td><td>-</td><td>27</td><td>-</td><td>27</td><td>-</td><td>27</td><td>-</td><td>-</td><td>-</td><td>27</td><td>-</td><td>27</td><td>-</td><td>27</td><td>-</td><td>27</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Spacebar" class="value">'Spacebar'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0020" class="value">'U+0020'</code>
+ </td><td>The Space (Spacebar) key.</td><td>32</td><td>-</td><td>32</td><td>-</td><td>32</td><td>-</td><td>32</td><td>-</td><td>0</td><td>32</td><td>32</td><td>-</td><td>32</td><td>-</td><td>32</td><td>32</td><td>32</td><td>-</td><td>32</td><td>-</td><td>32</td><td>-</td><td>32</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-ExclamationChar" class="value">'!'</code>
+ </td><td>
+ <code id="tbl-keyset-key-Exclamation" class="value">'Exclamation'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0021" class="value">'U+0021'</code>
+ </td><td>The Exclamation Mark (Factorial, Bang) key.</td><td>49</td><td>-</td><td>33</td><td>-</td><td>49</td><td>-</td><td>49</td><td>-</td><td>0</td><td>33</td><td>49</td><td>-</td><td>49</td><td>-</td><td>33</td><td>33</td><td>49</td><td>-</td><td>49</td><td>-</td><td>33</td><td>-</td><td>49</td><td>-</td></tr>
+ <tr><td> " </td><td>
+ <code id="tbl-keyset-key-DoubleQuote" class="value">'DoubleQuote'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0022" class="value">'U+0022'</code>
+ </td><td>The Quotation Mark (Quote Double) key. <em><strong>Note:</strong> May need to be escaped as an attribute value.</em></td><td>50</td><td>-</td><td>34</td><td>-</td><td>50</td><td>-</td><td>50</td><td>-</td><td>0</td><td>34</td><td>50</td><td>-</td><td>50</td><td>-</td><td>34</td><td>34</td><td>50</td><td>-</td><td>50</td><td>-</td><td>34</td><td>-</td><td>50</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-HashChar" class="value">'#'</code>
+ </td><td>
+ <code id="tbl-keyset-key-Hash" class="value">'Hash'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0023" class="value">'U+0023'</code>
+ </td><td>The Number Sign (Pound Sign, Hash, Crosshatch, Octothorpe) key.</td><td>51</td><td>-</td><td>35</td><td>-</td><td>51</td><td>-</td><td>51</td><td>-</td><td>0</td><td>35</td><td>51</td><td>-</td><td>51</td><td>-</td><td>35</td><td>35</td><td>51</td><td>-</td><td>51</td><td>-</td><td>35</td><td>-</td><td>51</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-DollarChar" class="value">'$'</code>
+ </td><td>
+ <code id="tbl-keyset-key-Dollar" class="value">'Dollar'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0024" class="value">'U+0024'</code>
+ </td><td>The Dollar Sign (milreis, escudo) key.</td><td>52</td><td>-</td><td>36</td><td>-</td><td>52</td><td>-</td><td>52</td><td>-</td><td>0</td><td>36</td><td>52</td><td>-</td><td>52</td><td>-</td><td>36</td><td>36</td><td>52</td><td>-</td><td>52</td><td>-</td><td>36</td><td>-</td><td>52</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-AmpersandChar" class="value">'&'</code>
+ </td><td>
+ <code id="tbl-keyset-key-Ampersand" class="value">'Ampersand'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0026" class="value">'U+0026'</code>
+ </td><td>The Ampersand key.</td><td>54</td><td>-</td><td>38</td><td>-</td><td>54</td><td>-</td><td>54</td><td>-</td><td>0</td><td>38</td><td>54</td><td>-</td><td>54</td><td>-</td><td>38</td><td>38</td><td>54</td><td>-</td><td>54</td><td>-</td><td>38</td><td>-</td><td>54</td><td>-</td></tr>
+ <tr><td> ' </td><td>
+ <code id="tbl-keyset-key-Apostrophe" class="value">'Apostrophe'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0027" class="value">'U+0027'</code>
+ </td><td>The Apostrophe (Apostrophe-Quote, APL Quote) key. <em><strong>Note:</strong> May need to be escaped as an attribute value.</em></td><td>191</td><td>-</td><td>39</td><td>-</td><td>191</td><td>-</td><td>191</td><td>-</td><td>0</td><td>39</td><td>191</td><td>-</td><td>191</td><td>-</td><td>39</td><td>39</td><td>191</td><td>-</td><td>222</td><td>-</td><td>39</td><td>-</td><td>222</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-LeftParenChar" class="value">'('</code>
+ </td><td>
+ <code id="tbl-keyset-key-LeftParen" class="value">'LeftParen'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0028" class="value">'U+0028'</code>
+ </td><td>The Left Parenthesis (Opening Parenthesis) key.</td><td>56</td><td>-</td><td>40</td><td>-</td><td>56</td><td>-</td><td>56</td><td>-</td><td>0</td><td>40</td><td>56</td><td>-</td><td>56</td><td>-</td><td>40</td><td>40</td><td>56</td><td>-</td><td>56</td><td>-</td><td>40</td><td>-</td><td>56</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-RightParenChar" class="value">')'</code>
+ </td><td>
+ <code id="tbl-keyset-key-RightParen" class="value">'RightParen'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0029" class="value">'U+0029'</code>
+ </td><td>The Right Parenthesis (Closing Parenthesis) key.</td><td>57</td><td>-</td><td>41</td><td>-</td><td>57</td><td>-</td><td>57</td><td>-</td><td>0</td><td>41</td><td>57</td><td>-</td><td>57</td><td>-</td><td>41</td><td>41</td><td>57</td><td>-</td><td>57</td><td>-</td><td>41</td><td>-</td><td>57</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-AsteriskChar" class="value">'*'</code>
+ </td><td>
+ <code id="tbl-keyset-key-Asterisk" class="value">'Asterisk'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-002A" class="value">'U+002A'</code>
+ </td><td>The Asterisk (Star) key (in number pad).</td><td>106</td><td>-</td><td>42</td><td>-</td><td>106</td><td>-</td><td>106</td><td>-</td><td>0</td><td>42</td><td>106</td><td>-</td><td>106</td><td>-</td><td>42</td><td>42</td><td>106</td><td>-</td><td>42</td><td>-</td><td>42</td><td>-</td><td>42</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-PlusChar" class="value">'+'</code>
+ </td><td>
+ <code id="tbl-keyset-key-Plus" class="value">'Plus'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-002B" class="value">'U+002B'</code>
+ </td><td>The Plus Sign (Plus) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-PercentChar" class="value">'+'</code>
+ </td><td>
+ <code id="tbl-keyset-key-Percent" class="value">'Percent'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0025" class="value">'U+0025'</code>
+ </td><td>The Percent key.</td><td>53</td><td>-</td><td>37</td><td>-</td><td>53</td><td>-</td><td>53</td><td>-</td><td>0</td><td>37</td><td>53</td><td>-</td><td>53</td><td>-</td><td>37</td><td>37</td><td>53</td><td>-</td><td>53</td><td>-</td><td>37</td><td>-</td><td>53</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-CommaChar" class="value">','</code>
+ </td><td>
+ <code id="tbl-keyset-key-Comma" class="value">'Comma'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-002C" class="value">'U+002C'</code>
+ </td><td>The Comma (decimal separator) sign key.</td><td>188</td><td>-</td><td>44</td><td>-</td><td>188</td><td>-</td><td>188</td><td>-</td><td>0</td><td>44</td><td>188</td><td>-</td><td>188</td><td>-</td><td>44</td><td>44</td><td>188</td><td>-</td><td>188</td><td>-</td><td>44</td><td>-</td><td>188</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-HyphenMinusChar" class="value">'-'</code>
+ </td><td>
+ <code id="tbl-keyset-key-HyphenMinus" class="value">'HyphenMinus'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-002D" class="value">'U+002D'</code>
+ </td><td>The Hyphen-minus (hyphen or minus sign) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-PeriodChar" class="value">'.'</code>
+ </td><td>
+ <code id="tbl-keyset-key-Period" class="value">'Period'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-002E" class="value">'U+002E'</code>
+ </td><td>The Full Stop (period, dot, decimal point) key.</td><td>190</td><td>-</td><td>46</td><td>-</td><td>190</td><td>-</td><td>190</td><td>-</td><td>0</td><td>46</td><td>190</td><td>-</td><td>190</td><td>-</td><td>46</td><td>46</td><td>190</td><td>-</td><td>190</td><td>-</td><td>46</td><td>-</td><td>190</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-SolidusChar" class="value">'/'</code>
+ </td><td>
+ <code id="tbl-keyset-key-Solidus" class="value">'Solidus'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-002F" class="value">'U+002F'</code>
+ </td><td>The Solidus (slash, virgule, shilling) key.</td><td>55</td><td>-</td><td>47</td><td>-</td><td>55</td><td>-</td><td>55</td><td>-</td><td>0</td><td>47</td><td>55</td><td>-</td><td>55</td><td>-</td><td>47</td><td>47</td><td>55</td><td>-</td><td>55</td><td>-</td><td>47</td><td>-</td><td>55</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-0" class="value">'0'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0030" class="value">'U+0030'</code>
+ </td><td>The Digit Zero key.</td><td>48</td><td>48</td><td>48</td><td>48</td><td>48</td><td>48</td><td>48</td><td>-</td><td>0</td><td>48</td><td>48</td><td>-</td><td>48</td><td>-</td><td>48</td><td>48</td><td>48</td><td>-</td><td>48</td><td>-</td><td>48</td><td>-</td><td>48</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-1" class="value">'1'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0031" class="value">'U+0031'</code>
+ </td><td>The Digit One key.</td><td>49</td><td>49</td><td>49</td><td>49</td><td>49</td><td>49</td><td>49</td><td>-</td><td>0</td><td>49</td><td>49</td><td>-</td><td>49</td><td>-</td><td>49</td><td>49</td><td>49</td><td>-</td><td>49</td><td>-</td><td>49</td><td>-</td><td>49</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-2" class="value">'2'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0032" class="value">'U+0032'</code>
+ </td><td>The Digit Two key.</td><td>50</td><td>50</td><td>50</td><td>50</td><td>50</td><td>50</td><td>50</td><td>-</td><td>0</td><td>50</td><td>50</td><td>-</td><td>50</td><td>-</td><td>50</td><td>50</td><td>50</td><td>-</td><td>50</td><td>-</td><td>50</td><td>-</td><td>50</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-3" class="value">'3'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0033" class="value">'U+0033'</code>
+ </td><td>The Digit Three key.</td><td>51</td><td>51</td><td>51</td><td>51</td><td>51</td><td>51</td><td>51</td><td>-</td><td>0</td><td>51</td><td>51</td><td>-</td><td>51</td><td>-</td><td>51</td><td>51</td><td>51</td><td>-</td><td>51</td><td>-</td><td>51</td><td>-</td><td>51</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-4" class="value">'4'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0034" class="value">'U+0034'</code>
+ </td><td>The Digit Four key.</td><td>52</td><td>52</td><td>52</td><td>52</td><td>52</td><td>52</td><td>52</td><td>-</td><td>0</td><td>52</td><td>52</td><td>-</td><td>52</td><td>-</td><td>52</td><td>52</td><td>52</td><td>-</td><td>52</td><td>-</td><td>52</td><td>-</td><td>52</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-5" class="value">'5'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0035" class="value">'U+0035'</code>
+ </td><td>The Digit Five key.</td><td>53</td><td>53</td><td>53</td><td>53</td><td>53</td><td>53</td><td>53</td><td>-</td><td>0</td><td>53</td><td>53</td><td>-</td><td>53</td><td>-</td><td>53</td><td>53</td><td>53</td><td>-</td><td>53</td><td>-</td><td>53</td><td>-</td><td>53</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-6" class="value">'6'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0036" class="value">'U+0036'</code>
+ </td><td>The Digit Six key.</td><td>54</td><td>54</td><td>54</td><td>54</td><td>54</td><td>54</td><td>54</td><td>-</td><td>0</td><td>54</td><td>54</td><td>-</td><td>54</td><td>-</td><td>54</td><td>54</td><td>54</td><td>-</td><td>54</td><td>-</td><td>54</td><td>-</td><td>54</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-7" class="value">'7'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0037" class="value">'U+0037'</code>
+ </td><td>The Digit Seven key.</td><td>55</td><td>55</td><td>55</td><td>55</td><td>55</td><td>55</td><td>55</td><td>-</td><td>0</td><td>55</td><td>55</td><td>-</td><td>55</td><td>-</td><td>55</td><td>55</td><td>55</td><td>-</td><td>55</td><td>-</td><td>55</td><td>-</td><td>55</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-8" class="value">'8'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0038" class="value">'U+0038'</code>
+ </td><td>The Digit Eight key.</td><td>56</td><td>56</td><td>56</td><td>56</td><td>56</td><td>56</td><td>56</td><td>-</td><td>0</td><td>56</td><td>56</td><td>-</td><td>56</td><td>-</td><td>56</td><td>56</td><td>56</td><td>-</td><td>56</td><td>-</td><td>56</td><td>-</td><td>56</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-9" class="value">'9'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0039" class="value">'U+0039'</code>
+ </td><td>The Digit Nine key.</td><td>57</td><td>57</td><td>57</td><td>57</td><td>57</td><td>57</td><td>57</td><td>-</td><td>0</td><td>57</td><td>57</td><td>-</td><td>57</td><td>-</td><td>57</td><td>57</td><td>57</td><td>-</td><td>57</td><td>-</td><td>57</td><td>-</td><td>57</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-ColonChar" class="value">':'</code>
+ </td><td>
+ <code id="tbl-keyset-key-Colon" class="value">'Colon'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-003A" class="value">'U+003A'</code>
+ </td><td>The Colon key.</td><td>190</td><td>-</td><td>58</td><td>-</td><td>190</td><td>-</td><td>190</td><td>-</td><td>0</td><td>58</td><td>190</td><td>-</td><td>190</td><td>-</td><td>58</td><td>58</td><td>190</td><td>-</td><td>190</td><td>-</td><td>58</td><td>-</td><td>190</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-SemicolonChar" class="value">';'</code>
+ </td><td>
+ <code id="tbl-keyset-key-Semicolon" class="value">'Semicolon'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-003B" class="value">'U+003B'</code>
+ </td><td>The Semicolon key.</td><td>188</td><td>-</td><td>59</td><td>-</td><td>188</td><td>-</td><td>188</td><td>-</td><td>0</td><td>59</td><td>188</td><td>-</td><td>188</td><td>-</td><td>59</td><td>59</td><td>188</td><td>-</td><td>188</td><td>-</td><td>59</td><td>-</td><td>188</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-LessThanChar" class="value">'<'</code>
+ </td><td>
+ <code id="tbl-keyset-key-LessThan" class="value">'LessThan'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-003C" class="value">'U+003C'</code>
+ </td><td>The Less-Than Sign key (<).</td><td>188</td><td>-</td><td>60</td><td>-</td><td>188</td><td>-</td><td>188</td><td>-</td><td>0</td><td>60</td><td>188</td><td>-</td><td>188</td><td>-</td><td>60</td><td>60</td><td>188</td><td>-</td><td>188</td><td>-</td><td>60</td><td>-</td><td>188</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-EqualsChar" class="value">'='</code>
+ </td><td>
+ <code id="tbl-keyset-key-Equals" class="value">'Equals'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-003D" class="value">'U+003D'</code>
+ </td><td>The Equals Sign key.</td><td>48</td><td>-</td><td>61</td><td>-</td><td>48</td><td>-</td><td>48</td><td>-</td><td>0</td><td>61</td><td>48</td><td>-</td><td>48</td><td>-</td><td>61</td><td>61</td><td>48</td><td>-</td><td>48</td><td>-</td><td>61</td><td>-</td><td>48</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-GreaterThanChar" class="value">'>'</code>
+ </td><td>
+ <code id="tbl-keyset-key-GreaterThan" class="value">'GreaterThan'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-003E" class="value">'U+003E'</code>
+ </td><td>The Greater-Than Sign key (>).</td><td>226</td><td>-</td><td>62</td><td>-</td><td>226</td><td>-</td><td>226</td><td>-</td><td>0</td><td>62</td><td>226</td><td>-</td><td>226</td><td>-</td><td>62</td><td>62</td><td>226</td><td>-</td><td>188</td><td>-</td><td>62</td><td>-</td><td>188</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-QuestionMarkChar" class="value">'?'</code>
+ </td><td>
+ <code id="tbl-keyset-key-QuestionMark" class="value">'QuestionMark'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-003F" class="value">'U+003F'</code>
+ </td><td>The Question Mark key.</td><td>191</td><td>-</td><td>63</td><td>-</td><td>191</td><td>-</td><td>107</td><td>-</td><td>0</td><td>63</td><td>107</td><td>-</td><td>191</td><td>-</td><td>63</td><td>63</td><td>191</td><td>-</td><td>61</td><td>-</td><td>63</td><td>-</td><td>61</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-AtChar" class="value">'@'</code>
+ </td><td>
+ <code id="tbl-keyset-key-At" class="value">'At'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0040" class="value">'U+0040'</code>
+ </td><td>The Commercial At key.</td><td>50</td><td>-</td><td>64</td><td>-</td><td>50</td><td>-</td><td>50</td><td>-</td><td>0</td><td>64</td><td>50</td><td>-</td><td>50</td><td>-</td><td>64</td><td>64</td><td>50</td><td>-</td><td>50</td><td>-</td><td>64</td><td>-</td><td>50</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-A" class="value">'A'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0041" class="value">'U+0041'</code>
+ </td><td>The Latin Capital Letter A key.</td><td>65</td><td>65</td><td>65</td><td>65</td><td>65</td><td>65</td><td>65</td><td>-</td><td>0</td><td>65</td><td>65</td><td>-</td><td>65</td><td>-</td><td>65</td><td>65</td><td>65</td><td>-</td><td>65</td><td>-</td><td>65</td><td>-</td><td>65</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-B" class="value">'B'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0042" class="value">'U+0042'</code>
+ </td><td>The Latin Capital Letter B key.</td><td>66</td><td>66</td><td>66</td><td>66</td><td>66</td><td>66</td><td>66</td><td>-</td><td>0</td><td>66</td><td>66</td><td>-</td><td>66</td><td>-</td><td>66</td><td>66</td><td>66</td><td>-</td><td>66</td><td>-</td><td>66</td><td>-</td><td>66</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-C" class="value">'C'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0043" class="value">'U+0043'</code>
+ </td><td>The Latin Capital Letter C key.</td><td>67</td><td>67</td><td>67</td><td>67</td><td>67</td><td>67</td><td>67</td><td>-</td><td>0</td><td>67</td><td>67</td><td>-</td><td>67</td><td>-</td><td>67</td><td>67</td><td>67</td><td>-</td><td>67</td><td>-</td><td>67</td><td>-</td><td>67</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-D" class="value">'D'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0044" class="value">'U+0044'</code>
+ </td><td>The Latin Capital Letter D key.</td><td>68</td><td>68</td><td>68</td><td>68</td><td>68</td><td>68</td><td>68</td><td>-</td><td>0</td><td>68</td><td>68</td><td>-</td><td>68</td><td>-</td><td>68</td><td>68</td><td>68</td><td>-</td><td>68</td><td>-</td><td>68</td><td>-</td><td>68</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-E" class="value">'E'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0045" class="value">'U+0045'</code>
+ </td><td>The Latin Capital Letter E key.</td><td>69</td><td>69</td><td>69</td><td>69</td><td>69</td><td>69</td><td>69</td><td>-</td><td>0</td><td>69</td><td>69</td><td>-</td><td>69</td><td>-</td><td>69</td><td>69</td><td>69</td><td>-</td><td>69</td><td>-</td><td>69</td><td>-</td><td>69</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-F" class="value">'F'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0046" class="value">'U+0046'</code>
+ </td><td>The Latin Capital Letter F key.</td><td>70</td><td>70</td><td>70</td><td>70</td><td>70</td><td>70</td><td>70</td><td>-</td><td>0</td><td>70</td><td>70</td><td>-</td><td>70</td><td>-</td><td>70</td><td>70</td><td>70</td><td>-</td><td>70</td><td>-</td><td>70</td><td>-</td><td>70</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-G" class="value">'G'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0047" class="value">'U+0047'</code>
+ </td><td>The Latin Capital Letter G key.</td><td>71</td><td>71</td><td>71</td><td>71</td><td>71</td><td>71</td><td>71</td><td>-</td><td>0</td><td>71</td><td>71</td><td>-</td><td>71</td><td>-</td><td>71</td><td>71</td><td>71</td><td>-</td><td>71</td><td>-</td><td>71</td><td>-</td><td>71</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-H" class="value">'H'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0048" class="value">'U+0048'</code>
+ </td><td>The Latin Capital Letter H key.</td><td>72</td><td>72</td><td>72</td><td>72</td><td>72</td><td>72</td><td>72</td><td>-</td><td>0</td><td>72</td><td>72</td><td>-</td><td>72</td><td>-</td><td>72</td><td>72</td><td>72</td><td>-</td><td>72</td><td>-</td><td>72</td><td>-</td><td>72</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-I" class="value">'I'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0049" class="value">'U+0049'</code>
+ </td><td>The Latin Capital Letter I key.</td><td>73</td><td>73</td><td>73</td><td>73</td><td>73</td><td>73</td><td>73</td><td>-</td><td>0</td><td>73</td><td>73</td><td>-</td><td>73</td><td>-</td><td>73</td><td>73</td><td>73</td><td>-</td><td>73</td><td>-</td><td>73</td><td>-</td><td>73</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-J" class="value">'J'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-004A" class="value">'U+004A'</code>
+ </td><td>The Latin Capital Letter J key.</td><td>74</td><td>74</td><td>74</td><td>74</td><td>74</td><td>74</td><td>74</td><td>-</td><td>0</td><td>74</td><td>74</td><td>-</td><td>74</td><td>-</td><td>74</td><td>74</td><td>74</td><td>-</td><td>74</td><td>-</td><td>74</td><td>-</td><td>74</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-K" class="value">'K'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-004B" class="value">'U+004B'</code>
+ </td><td>The Latin Capital Letter K key.</td><td>75</td><td>75</td><td>75</td><td>75</td><td>75</td><td>75</td><td>75</td><td>-</td><td>0</td><td>75</td><td>75</td><td>-</td><td>75</td><td>-</td><td>75</td><td>75</td><td>75</td><td>-</td><td>75</td><td>-</td><td>75</td><td>-</td><td>75</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-L" class="value">'L'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-004C" class="value">'U+004C'</code>
+ </td><td>The Latin Capital Letter L key.</td><td>76</td><td>76</td><td>76</td><td>76</td><td>76</td><td>76</td><td>76</td><td>-</td><td>0</td><td>76</td><td>76</td><td>-</td><td>76</td><td>-</td><td>76</td><td>76</td><td>76</td><td>-</td><td>76</td><td>-</td><td>76</td><td>-</td><td>76</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-M" class="value">'M'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-004D" class="value">'U+004D'</code>
+ </td><td>The Latin Capital Letter M key.</td><td>77</td><td>77</td><td>77</td><td>77</td><td>77</td><td>77</td><td>77</td><td>-</td><td>0</td><td>77</td><td>77</td><td>-</td><td>77</td><td>-</td><td>77</td><td>77</td><td>77</td><td>-</td><td>77</td><td>-</td><td>77</td><td>-</td><td>77</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-N" class="value">'N'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-004E" class="value">'U+004E'</code>
+ </td><td>The Latin Capital Letter N key.</td><td>78</td><td>78</td><td>78</td><td>78</td><td>78</td><td>78</td><td>78</td><td>-</td><td>0</td><td>78</td><td>78</td><td>-</td><td>78</td><td>-</td><td>78</td><td>78</td><td>78</td><td>-</td><td>78</td><td>-</td><td>78</td><td>-</td><td>78</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-O" class="value">'O'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-004F" class="value">'U+004F'</code>
+ </td><td>The Latin Capital Letter O key.</td><td>79</td><td>79</td><td>79</td><td>79</td><td>79</td><td>79</td><td>79</td><td>-</td><td>0</td><td>79</td><td>79</td><td>-</td><td>79</td><td>-</td><td>79</td><td>79</td><td>79</td><td>-</td><td>79</td><td>-</td><td>79</td><td>-</td><td>79</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-P" class="value">'P'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0050" class="value">'U+0050'</code>
+ </td><td>The Latin Capital Letter P key.</td><td>80</td><td>80</td><td>80</td><td>80</td><td>80</td><td>80</td><td>80</td><td>-</td><td>0</td><td>80</td><td>80</td><td>-</td><td>80</td><td>-</td><td>80</td><td>80</td><td>80</td><td>-</td><td>80</td><td>-</td><td>80</td><td>-</td><td>80</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-Q" class="value">'Q'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0051" class="value">'U+0051'</code>
+ </td><td>The Latin Capital Letter Q key.</td><td>81</td><td>81</td><td>81</td><td>81</td><td>81</td><td>81</td><td>81</td><td>-</td><td>0</td><td>81</td><td>81</td><td>-</td><td>81</td><td>-</td><td>81</td><td>81</td><td>81</td><td>-</td><td>81</td><td>-</td><td>81</td><td>-</td><td>81</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-R" class="value">'R'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0052" class="value">'U+0052'</code>
+ </td><td>The Latin Capital Letter R key.</td><td>82</td><td>82</td><td>82</td><td>82</td><td>82</td><td>82</td><td>82</td><td>-</td><td>0</td><td>82</td><td>82</td><td>-</td><td>82</td><td>-</td><td>82</td><td>82</td><td>82</td><td>-</td><td>82</td><td>-</td><td>82</td><td>-</td><td>82</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-S" class="value">'S'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0053" class="value">'U+0053'</code>
+ </td><td>The Latin Capital Letter S key.</td><td>83</td><td>83</td><td>83</td><td>83</td><td>83</td><td>83</td><td>83</td><td>-</td><td>0</td><td>83</td><td>83</td><td>-</td><td>83</td><td>-</td><td>83</td><td>83</td><td>83</td><td>-</td><td>83</td><td>-</td><td>83</td><td>-</td><td>83</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-T" class="value">'T'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0054" class="value">'U+0054'</code>
+ </td><td>The Latin Capital Letter T key.</td><td>84</td><td>84</td><td>84</td><td>84</td><td>84</td><td>84</td><td>84</td><td>-</td><td>0</td><td>84</td><td>84</td><td>-</td><td>84</td><td>-</td><td>84</td><td>84</td><td>84</td><td>-</td><td>84</td><td>-</td><td>84</td><td>-</td><td>84</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-U" class="value">'U'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0055" class="value">'U+0055'</code>
+ </td><td>The Latin Capital Letter U key.</td><td>85</td><td>85</td><td>85</td><td>85</td><td>85</td><td>85</td><td>85</td><td>-</td><td>0</td><td>85</td><td>85</td><td>-</td><td>85</td><td>-</td><td>85</td><td>85</td><td>85</td><td>-</td><td>85</td><td>-</td><td>85</td><td>-</td><td>85</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-V" class="value">'V'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0056" class="value">'U+0056'</code>
+ </td><td>The Latin Capital Letter V key.</td><td>86</td><td>86</td><td>86</td><td>86</td><td>86</td><td>86</td><td>86</td><td>-</td><td>0</td><td>86</td><td>86</td><td>-</td><td>86</td><td>-</td><td>86</td><td>86</td><td>86</td><td>-</td><td>86</td><td>-</td><td>86</td><td>-</td><td>86</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-W" class="value">'W'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0057" class="value">'U+0057'</code>
+ </td><td>The Latin Capital Letter W key.</td><td>87</td><td>87</td><td>87</td><td>87</td><td>87</td><td>87</td><td>87</td><td>-</td><td>0</td><td>87</td><td>87</td><td>-</td><td>87</td><td>-</td><td>87</td><td>87</td><td>87</td><td>-</td><td>87</td><td>-</td><td>87</td><td>-</td><td>87</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-X" class="value">'X'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0058" class="value">'U+0058'</code>
+ </td><td>The Latin Capital Letter X key.</td><td>88</td><td>88</td><td>88</td><td>88</td><td>88</td><td>88</td><td>88</td><td>-</td><td>0</td><td>88</td><td>88</td><td>-</td><td>88</td><td>-</td><td>88</td><td>88</td><td>88</td><td>-</td><td>88</td><td>-</td><td>88</td><td>-</td><td>88</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-Y" class="value">'Y'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0059" class="value">'U+0059'</code>
+ </td><td>The Latin Capital Letter Y key.</td><td>89</td><td>89</td><td>89</td><td>89</td><td>89</td><td>89</td><td>89</td><td>-</td><td>0</td><td>89</td><td>89</td><td>-</td><td>89</td><td>-</td><td>89</td><td>89</td><td>89</td><td>-</td><td>89</td><td>-</td><td>89</td><td>-</td><td>89</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-Z" class="value">'Z'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-005A" class="value">'U+005A'</code>
+ </td><td>The Latin Capital Letter Z key.</td><td>90</td><td>90</td><td>90</td><td>90</td><td>90</td><td>90</td><td>90</td><td>-</td><td>0</td><td>90</td><td>90</td><td>-</td><td>90</td><td>-</td><td>90</td><td>90</td><td>90</td><td>-</td><td>90</td><td>-</td><td>90</td><td>-</td><td>90</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-a" class="value">'a'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0061" class="value">'U+0061'</code>
+ </td><td>The Latin Miniscule Letter a key.</td><td>65</td><td>65</td><td>65</td><td>65</td><td>65</td><td>65</td><td>65</td><td>-</td><td>0</td><td>97</td><td>65</td><td>-</td><td>65</td><td>-</td><td>97</td><td>97</td><td>65</td><td>-</td><td>65</td><td>-</td><td>97</td><td>-</td><td>65</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-b" class="value">'b'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0062" class="value">'U+0062'</code>
+ </td><td>The Latin Miniscule Letter b key.</td><td>66</td><td>66</td><td>66</td><td>66</td><td>66</td><td>66</td><td>66</td><td>-</td><td>0</td><td>98</td><td>66</td><td>-</td><td>66</td><td>-</td><td>98</td><td>98</td><td>66</td><td>-</td><td>66</td><td>-</td><td>98</td><td>-</td><td>66</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-c" class="value">'c'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0063" class="value">'U+0063'</code>
+ </td><td>The Latin Miniscule Letter c key.</td><td>67</td><td>67</td><td>67</td><td>67</td><td>67</td><td>67</td><td>67</td><td>-</td><td>0</td><td>99</td><td>67</td><td>-</td><td>67</td><td>-</td><td>99</td><td>99</td><td>67</td><td>-</td><td>67</td><td>-</td><td>99</td><td>-</td><td>67</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-d" class="value">'d'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0064" class="value">'U+0064'</code>
+ </td><td>The Latin Miniscule Letter d key.</td><td>68</td><td>68</td><td>68</td><td>68</td><td>68</td><td>68</td><td>68</td><td>-</td><td>0</td><td>100</td><td>68</td><td>-</td><td>68</td><td>-</td><td>100</td><td>100</td><td>68</td><td>-</td><td>68</td><td>-</td><td>100</td><td>-</td><td>68</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-e" class="value">'e'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0065" class="value">'U+0065'</code>
+ </td><td>The Latin Miniscule Letter e key.</td><td>69</td><td>69</td><td>69</td><td>69</td><td>69</td><td>69</td><td>69</td><td>-</td><td>0</td><td>101</td><td>69</td><td>-</td><td>69</td><td>-</td><td>101</td><td>101</td><td>69</td><td>-</td><td>69</td><td>-</td><td>101</td><td>-</td><td>69</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-f" class="value">'f'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0066" class="value">'U+0066'</code>
+ </td><td>The Latin Miniscule Letter f key.</td><td>70</td><td>70</td><td>70</td><td>70</td><td>70</td><td>70</td><td>70</td><td>-</td><td>0</td><td>102</td><td>70</td><td>-</td><td>70</td><td>-</td><td>102</td><td>102</td><td>70</td><td>-</td><td>70</td><td>-</td><td>102</td><td>-</td><td>70</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-g" class="value">'g'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0067" class="value">'U+0067'</code>
+ </td><td>The Latin Miniscule Letter g key.</td><td>71</td><td>71</td><td>71</td><td>71</td><td>71</td><td>71</td><td>71</td><td>-</td><td>0</td><td>103</td><td>71</td><td>-</td><td>71</td><td>-</td><td>103</td><td>103</td><td>71</td><td>-</td><td>71</td><td>-</td><td>103</td><td>-</td><td>71</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-h" class="value">'h'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0068" class="value">'U+0068'</code>
+ </td><td>The Latin Miniscule Letter h key.</td><td>72</td><td>72</td><td>72</td><td>72</td><td>72</td><td>72</td><td>72</td><td>-</td><td>0</td><td>104</td><td>72</td><td>-</td><td>72</td><td>-</td><td>104</td><td>104</td><td>72</td><td>-</td><td>72</td><td>-</td><td>104</td><td>-</td><td>72</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-i" class="value">'i'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0069" class="value">'U+0069'</code>
+ </td><td>The Latin Miniscule Letter i key.</td><td>73</td><td>73</td><td>73</td><td>73</td><td>73</td><td>73</td><td>73</td><td>-</td><td>0</td><td>105</td><td>73</td><td>-</td><td>73</td><td>-</td><td>105</td><td>105</td><td>73</td><td>-</td><td>73</td><td>-</td><td>105</td><td>-</td><td>73</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-j" class="value">'j'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-006A" class="value">'U+006A'</code>
+ </td><td>The Latin Miniscule Letter j key.</td><td>74</td><td>74</td><td>74</td><td>74</td><td>74</td><td>74</td><td>74</td><td>-</td><td>0</td><td>106</td><td>74</td><td>-</td><td>74</td><td>-</td><td>106</td><td>106</td><td>74</td><td>-</td><td>74</td><td>-</td><td>106</td><td>-</td><td>74</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-k" class="value">'k'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-006B" class="value">'U+006B'</code>
+ </td><td>The Latin Miniscule Letter k key.</td><td>75</td><td>75</td><td>75</td><td>75</td><td>75</td><td>75</td><td>75</td><td>-</td><td>0</td><td>107</td><td>75</td><td>-</td><td>75</td><td>-</td><td>107</td><td>107</td><td>75</td><td>-</td><td>75</td><td>-</td><td>107</td><td>-</td><td>75</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-l" class="value">'l'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-006C" class="value">'U+006C'</code>
+ </td><td>The Latin Miniscule Letter l key.</td><td>76</td><td>76</td><td>76</td><td>76</td><td>76</td><td>76</td><td>76</td><td>-</td><td>0</td><td>108</td><td>76</td><td>-</td><td>76</td><td>-</td><td>108</td><td>108</td><td>76</td><td>-</td><td>76</td><td>-</td><td>108</td><td>-</td><td>76</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-m" class="value">'m'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-006D" class="value">'U+006D'</code>
+ </td><td>The Latin Miniscule Letter m key.</td><td>77</td><td>77</td><td>77</td><td>77</td><td>77</td><td>77</td><td>77</td><td>-</td><td>0</td><td>109</td><td>77</td><td>-</td><td>77</td><td>-</td><td>109</td><td>109</td><td>77</td><td>-</td><td>77</td><td>-</td><td>109</td><td>-</td><td>77</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-n" class="value">'n'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-006E" class="value">'U+006E'</code>
+ </td><td>The Latin Miniscule Letter n key.</td><td>78</td><td>78</td><td>78</td><td>78</td><td>78</td><td>78</td><td>78</td><td>-</td><td>0</td><td>110</td><td>78</td><td>-</td><td>78</td><td>-</td><td>110</td><td>110</td><td>78</td><td>-</td><td>78</td><td>-</td><td>110</td><td>-</td><td>78</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-o" class="value">'o'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-006F" class="value">'U+006F'</code>
+ </td><td>The Latin Miniscule Letter o key.</td><td>79</td><td>79</td><td>79</td><td>79</td><td>79</td><td>79</td><td>79</td><td>-</td><td>0</td><td>111</td><td>79</td><td>-</td><td>79</td><td>-</td><td>111</td><td>111</td><td>79</td><td>-</td><td>79</td><td>-</td><td>111</td><td>-</td><td>79</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-p" class="value">'p'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0070" class="value">'U+0070'</code>
+ </td><td>The Latin Miniscule Letter p key.</td><td>80</td><td>80</td><td>80</td><td>80</td><td>80</td><td>80</td><td>80</td><td>-</td><td>0</td><td>112</td><td>80</td><td>-</td><td>80</td><td>-</td><td>112</td><td>112</td><td>80</td><td>-</td><td>80</td><td>-</td><td>112</td><td>-</td><td>80</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-q" class="value">'q'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0071" class="value">'U+0071'</code>
+ </td><td>The Latin Miniscule Letter q key.</td><td>81</td><td>81</td><td>81</td><td>81</td><td>81</td><td>81</td><td>81</td><td>-</td><td>0</td><td>113</td><td>81</td><td>-</td><td>81</td><td>-</td><td>113</td><td>113</td><td>81</td><td>-</td><td>81</td><td>-</td><td>113</td><td>-</td><td>81</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-r" class="value">'r'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0072" class="value">'U+0072'</code>
+ </td><td>The Latin Miniscule Letter r key.</td><td>82</td><td>82</td><td>82</td><td>82</td><td>82</td><td>82</td><td>82</td><td>-</td><td>0</td><td>114</td><td>82</td><td>-</td><td>82</td><td>-</td><td>114</td><td>114</td><td>82</td><td>-</td><td>82</td><td>-</td><td>114</td><td>-</td><td>82</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-s" class="value">'s'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0073" class="value">'U+0073'</code>
+ </td><td>The Latin Miniscule Letter s key.</td><td>83</td><td>83</td><td>83</td><td>83</td><td>83</td><td>83</td><td>83</td><td>-</td><td>0</td><td>115</td><td>83</td><td>-</td><td>83</td><td>-</td><td>115</td><td>115</td><td>83</td><td>-</td><td>83</td><td>-</td><td>115</td><td>-</td><td>83</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-t" class="value">'t'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0074" class="value">'U+0074'</code>
+ </td><td>The Latin Miniscule Letter t key.</td><td>84</td><td>84</td><td>84</td><td>84</td><td>84</td><td>84</td><td>84</td><td>-</td><td>0</td><td>116</td><td>84</td><td>-</td><td>84</td><td>-</td><td>116</td><td>116</td><td>84</td><td>-</td><td>84</td><td>-</td><td>116</td><td>-</td><td>84</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-u" class="value">'u'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0075" class="value">'U+0075'</code>
+ </td><td>The Latin Miniscule Letter u key.</td><td>85</td><td>85</td><td>85</td><td>85</td><td>85</td><td>85</td><td>85</td><td>-</td><td>0</td><td>117</td><td>85</td><td>-</td><td>85</td><td>-</td><td>117</td><td>117</td><td>85</td><td>-</td><td>85</td><td>-</td><td>117</td><td>-</td><td>85</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-v" class="value">'v'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0076" class="value">'U+0076'</code>
+ </td><td>The Latin Miniscule Letter v key.</td><td>86</td><td>86</td><td>86</td><td>86</td><td>86</td><td>86</td><td>86</td><td>-</td><td>0</td><td>118</td><td>86</td><td>-</td><td>86</td><td>-</td><td>118</td><td>118</td><td>86</td><td>-</td><td>86</td><td>-</td><td>118</td><td>-</td><td>86</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-w" class="value">'w'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0077" class="value">'U+0077'</code>
+ </td><td>The Latin Miniscule Letter w key.</td><td>87</td><td>87</td><td>87</td><td>87</td><td>87</td><td>87</td><td>87</td><td>-</td><td>0</td><td>119</td><td>87</td><td>-</td><td>87</td><td>-</td><td>119</td><td>119</td><td>87</td><td>-</td><td>87</td><td>-</td><td>119</td><td>-</td><td>87</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-x" class="value">'x'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0078" class="value">'U+0078'</code>
+ </td><td>The Latin Miniscule Letter x key.</td><td>88</td><td>88</td><td>88</td><td>88</td><td>88</td><td>88</td><td>88</td><td>-</td><td>0</td><td>120</td><td>88</td><td>-</td><td>88</td><td>-</td><td>120</td><td>120</td><td>88</td><td>-</td><td>88</td><td>-</td><td>120</td><td>-</td><td>88</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-y" class="value">'y'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-0079" class="value">'U+0079'</code>
+ </td><td>The Latin Miniscule Letter y key.</td><td>89</td><td>89</td><td>89</td><td>89</td><td>89</td><td>89</td><td>89</td><td>-</td><td>0</td><td>121</td><td>89</td><td>-</td><td>89</td><td>-</td><td>121</td><td>121</td><td>89</td><td>-</td><td>89</td><td>-</td><td>121</td><td>-</td><td>89</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-z" class="value">'z'</code>
+ </td><td> </td><td>
+ <code id="tbl-keyset-key-U-007A" class="value">'U+007A'</code>
+ </td><td>The Latin Miniscule Letter z key.</td><td>90</td><td>90</td><td>90</td><td>90</td><td>90</td><td>90</td><td>90</td><td>-</td><td>0</td><td>122</td><td>90</td><td>-</td><td>90</td><td>-</td><td>122</td><td>122</td><td>90</td><td>-</td><td>90</td><td>-</td><td>122</td><td>-</td><td>90</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-LeftSquareBracketChar" class="value">'['</code>
+ </td><td>
+ <code id="tbl-keyset-key-LeftSquareBracket" class="value">'LeftSquareBracket'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-005B" class="value">'U+005B'</code>
+ </td><td>The Left Square Bracket (Opening Square Bracket) key.</td><td>56</td><td>-</td><td>91</td><td>-</td><td>56</td><td>-</td><td>56</td><td>-</td><td>0</td><td>91</td><td>56</td><td>-</td><td>56</td><td>-</td><td>91</td><td>91</td><td>56</td><td>-</td><td>56</td><td>-</td><td>91</td><td>-</td><td>56</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-BackslashChar" class="value">'\'</code>
+ </td><td>
+ <code id="tbl-keyset-key-Backslash" class="value">'Backslash'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-005C" class="value">'U+005C'</code>
+ </td><td>The Reverse Solidus (Backslash) key.</td><td>187</td><td>-</td><td>92</td><td>-</td><td>187</td><td>-</td><td>107</td><td>-</td><td>92</td><td>-</td><td>107</td><td>-</td><td>187</td><td>-</td><td>92</td><td>92</td><td>187</td><td>-</td><td>161</td><td>-</td><td>92</td><td>-</td><td>161</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-RightSquareBracketChar" class="value">']'</code>
+ </td><td>
+ <code id="tbl-keyset-key-RightSquareBracket" class="value">'RightSquareBracket'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-005D" class="value">'U+005D'</code>
+ </td><td>The Right Square Bracket (Closing Square Bracket) key.</td><td>57</td><td>-</td><td>93</td><td>-</td><td>57</td><td>-</td><td>57</td><td>-</td><td>0</td><td>93</td><td>57</td><td>-</td><td>57</td><td>-</td><td>93</td><td>93</td><td>57</td><td>-</td><td>57</td><td>-</td><td>93</td><td>-</td><td>57</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-CircumflexChar" class="value">'^'</code>
+ </td><td>
+ <code id="tbl-keyset-key-Circumflex" class="value">'Circumflex'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-005E" class="value">'U+005E'</code>
+ </td><td>The Circumflex Accent key.</td><td>186</td><td>-</td><td>94</td><td>-</td><td>186</td><td>-</td><td>59</td><td>-</td><td>0</td><td>94</td><td>59</td><td>-</td><td>186</td><td>-</td><td>94</td><td>94</td><td>186</td><td>-</td><td>168</td><td>-</td><td>94</td><td>-</td><td>168</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-UnderscoreChar" class="value">'_'</code>
+ </td><td>
+ <code id="tbl-keyset-key-Underscore" class="value">'Underscore'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-005F" class="value">'U+005F'</code>
+ </td><td>The Low Sign (Spacing Underscore, Underscore) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-GraveChar" class="value">'`'</code>
+ </td><td>
+ <code id="tbl-keyset-key-Grave" class="value">'Grave'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0060" class="value">'U+0060'</code>
+ </td><td>The Grave Accent (Back Quote) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-LeftCurlyBracketChar" class="value">'{'</code>
+ </td><td>
+ <code id="tbl-keyset-key-LeftCurlyBracket" class="value">'LeftCurlyBracket'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-007B" class="value">'U+007B'</code>
+ </td><td>The Left Curly Bracket (Opening Curly Bracket, Opening Brace, Brace Left) key.</td><td>55</td><td>-</td><td>123</td><td>-</td><td>55</td><td>-</td><td>55</td><td>-</td><td>0</td><td>123</td><td>55</td><td>-</td><td>55</td><td>-</td><td>123</td><td>123</td><td>55</td><td>-</td><td>55</td><td>-</td><td>123</td><td>-</td><td>55</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-PipeChar" class="value">'|'</code>
+ </td><td>
+ <code id="tbl-keyset-key-Pipe" class="value">'Pipe'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-007C" class="value">'U+007C'</code>
+ </td><td>The Vertical Line (Vertical Bar, Pipe) key.</td><td>226</td><td>-</td><td>124</td><td>-</td><td>226</td><td>-</td><td>226</td><td>-</td><td>0</td><td>124</td><td>226</td><td>-</td><td>226</td><td>-</td><td>124</td><td>124</td><td>226</td><td>-</td><td>188</td><td>-</td><td>124</td><td>-</td><td>188</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-RightCurlyBracketChar" class="value">'}'</code>
+ </td><td>
+ <code id="tbl-keyset-key-RightCurlyBracket" class="value">'RightCurlyBracket'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-007D" class="value">'U+007D'</code>
+ </td><td>The Right Curly Bracket (Closing Curly Bracket, Closing Brace, Brace Right) key.</td><td>48</td><td>-</td><td>125</td><td>-</td><td>48</td><td>-</td><td>48</td><td>-</td><td>0</td><td>125</td><td>48</td><td>-</td><td>48</td><td>-</td><td>125</td><td>125</td><td>48</td><td>-</td><td>48</td><td>-</td><td>125</td><td>-</td><td>48</td><td>-</td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-Del" class="value">'Del'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-007F" class="value">'U+007F'</code>
+ </td><td>The Delete (Del) Key.</td><td>46</td><td>-</td><td>-</td><td>-</td><td>46</td><td>-</td><td>46</td><td>-</td><td>46</td><td>-</td><td>46</td><td>-</td><td>46</td><td>-</td><td>-</td><td>-</td><td>46</td><td>-</td><td>46</td><td>-</td><td>46</td><td>-</td><td>46</td><td>-</td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-InvertedExclamationChar" class="value">'¡'</code>
+ </td><td>
+ <code id="tbl-keyset-key-InvertedExclamation" class="value">'InvertedExclamation'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-00A1" class="value">'U+00A1'</code>
+ </td><td>The Inverted Exclamation Mark key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DeadGrave" class="value">'DeadGrave'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0300" class="value">'U+0300'</code>
+ </td><td>The Combining Grave Accent (Greek Varia, Dead Grave) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DeadEacute" class="value">'DeadEacute'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0301" class="value">'U+0301'</code>
+ </td><td>The Combining Acute Accent (Stress Mark, Greek Oxia, Tonos, Dead Eacute) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DeadCircumflex" class="value">'DeadCircumflex'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0302" class="value">'U+0302'</code>
+ </td><td>The Combining Circumflex Accent (Hat, Dead Circumflex) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DeadTilde" class="value">'DeadTilde'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0303" class="value">'U+0303'</code>
+ </td><td>The Combining Tilde (Dead Tilde) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DeadMacron" class="value">'DeadMacron'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0304" class="value">'U+0304'</code>
+ </td><td>The Combining Macron (Long, Dead Macron) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DeadBreve" class="value">'DeadBreve'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0306" class="value">'U+0306'</code>
+ </td><td>The Combining Breve (Short, Dead Breve) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DeadAboveDot" class="value">'DeadAboveDot'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0307" class="value">'U+0307'</code>
+ </td><td>The Combining Dot Above (Derivative, Dead Above Dot) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DeadUmlaut" class="value">'DeadUmlaut'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0308" class="value">'U+0308'</code>
+ </td><td>The Combining Diaeresis (Double Dot Abode, Umlaut, Greek Dialytika, Double Derivative, Dead Diaeresis) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DeadAboveRing" class="value">'DeadAboveRing'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-030A" class="value">'U+030A'</code>
+ </td><td>The Combining Ring Above (Dead Above Ring) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DeadDoubleacute" class="value">'DeadDoubleacute'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-030B" class="value">'U+030B'</code>
+ </td><td>The Combining Double Acute Accent (Dead Doubleacute) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DeadCaron" class="value">'DeadCaron'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-030C" class="value">'U+030C'</code>
+ </td><td>The Combining Caron (Hacek, V Above, Dead Caron) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DeadCedilla" class="value">'DeadCedilla'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0327" class="value">'U+0327'</code>
+ </td><td>The Combining Cedilla (Dead Cedilla) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DeadOgonek" class="value">'DeadOgonek'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0328" class="value">'U+0328'</code>
+ </td><td>The Combining Ogonek (Nasal Hook, Dead Ogonek) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DeadIota" class="value">'DeadIota'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-0345" class="value">'U+0345'</code>
+ </td><td>The Combining Greek Ypogegrammeni (Greek Non-Spacing Iota Below, Iota Subscript, Dead Iota) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td>
+ <code id="tbl-keyset-key-EuroChar" class="value">'€'</code>
+ </td><td>
+ <code id="tbl-keyset-key-Euro" class="value">'Euro'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-20AC" class="value">'U+20AC'</code>
+ </td><td>The Euro Currency Sign key (€).</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DeadVoicedSound" class="value">'DeadVoicedSound'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-3099" class="value">'U+3099'</code>
+ </td><td>The Combining Katakana-Hiragana Voiced Sound Mark (Dead Voiced Sound) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ <tr><td> </td><td>
+ <code id="tbl-keyset-key-DeadSemivoicedSound" class="value">'DeadSemivoicedSound'</code>
+ </td><td>
+ <code id="tbl-keyset-key-U-309A" class="value">'U+309A'</code>
+ </td><td>The Combining Katakana-Hiragana Semi-Voiced Sound Mark (Dead Semivoiced Sound) key.</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
+ </table>
+</div>
</div>
- <!-- div3 cancelable_keys -->
- <div class="div3">
- <h3 id="keyset-Guide" class="adiv3">6.1.5 Guidelines for defining key identifiers</h3>
- <!-- <div class="atrisk">
- <p class="issue">This section is the original guideline. We are considering making a more detailed, normative guideline, below.</p>
- <p class="note"><strong>Note:</strong> This section is non-normative.</p>
- <p>The list of key identifiers contained in this appendix 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>Determine a representation for the key by looking at the keyboard layout mapping in use (and not the keyboard device in use). This representation should be unique, as human friendly as possible, platform independent, and consistent. For example, on PC/AT US keyboards with a US mapping, the 'Q' key shall be mapped to the key identifier "U+0051" (Latin Capital Letter Q key), the '1/!' key shall be mapped to the key identifier "U+0031" (Digit One key), the key '`/~' shall be mapped to the key identifier "U+0060" (Grave Accent key), and the 'Enter' key shall be mapped to the key identifier "Enter".</li>
- <li>Find an appropriate mapping in the Unicode character set. There might not always be an appropriate and obvious mapping: the Unicode set contains characters and symbols, the key might generate different characters depending on the operating system, ... In general, unless the representation of the key can be mapped to a unique Unicode character, it is better to create a new one.</li>
- <li>If no appropriate mapping was found, create a key identifier as human friendly as possible. The key identifier must not contain white spaces. As an example, the Enter key shall be mapped to the key identifier "Enter" and not to "U+000A" (Line Feed), given that this key generates the character "U+000A" on Unix operating systems and the characters "U+000D" and "U+000A" on Windows operating systems.</li>
- </ol>
- </div> -->
-
-
- <p class="note"><strong>Note:</strong> This section is normative.</p>
-<p>The list of key identifiers contained in this appendix 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 primary function of the key (i.e., without 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.
- <ol>
- <li> If the primary function of the key is to generate a character, and that character is in one of the <a href="#glossary-dt-Unicode-character-categories">Unicode character categories</a>, then the key identifier shall be a string consisting of just that character. 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:
- <ol>
- <li>If there exists an appropriate key identifier in the <a href="#keyset-KeySet-Set">key identifiers set</a>, and that key identifier does not have a Unicode codepoint, that key identifier must be used.</li>
- <li>If there exists an appropriate key identifier in the <a href="#keyset-KeySet-Set">key identifiers set</a>, and that key identifier has a Unicode codepoint, and that key identifier is in one of the <a href="#glossary-dt-Unicode-character-categories">Unicode character categories</a>, then the character value itself for that key identifier must be used.</li>
- <!--
- <li>If there exists an appropriate key identifier in the <a href="#keyset-KeySet-Set">key identifiers set</a>, and that key identifier has a Unicode codepoint, and that key identifier is not in one of the <a href="#glossary-dt-Unicode-character-categories">Unicode character categories</a>, then the Unicode codepoint string for that key identifier must be used.</li>
- <li>If there exists an appropriate key identifier in the <a href="#keyset-KeySet-Set">key identifiers set</a>, that key identifier must be used for the value of the <a href="#events-Events-TextEvent-data"><code class="attr-value">data</code></a> attribute of a <a class="noxref" href="#events-Events-TextEvent"><code class="interface">TextEvent</code></a>. The value of a markup attribute must use one of the canonical values from the <a href="#keyset-KeySet-Set">key identifiers set</a>, but may use the named key identifier, the Unicode codepoint value, or the literal character, as appropriate.</li>
- -->
- <li>If there is no appropriate key identifier in the <a href="#keyset-KeySet-Set">key identifiers set</a>, then the key identifier is a string beginning with "U+" and followed by the Unicode codepoint 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>
- </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">U+0030..U+0039</abbr>, <abbr title="A-Z">U+0041..U+005A</abbr>, or <abbr title="a-z">U+0061..U+007A</abbr>, and must begin with a character in the range <abbr title="A-Z">U+0041..U+005A</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 US keyboard mapping, the primary function (unmodified) of the 'Q' key is to generate the character U+0071. Since this character is in general category Ll, and there is a single corresponding character in Lu, U+0051, this character is used instead. Thus, the key identifier is "Q". <br/><span class="issue">What is the use case here? Why are uppercase letters being given priority? 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> On a PC/AT US keyboard with a two-handed Dvorak keyboard mapping, the 'Q' key maps to the '5/%' key. The primary function of this key is to generate the character U+0035. Since this character is in general category Nd, the key identifier shall be "5". </li>
- <li> On a French PC keyboard with a standard French mapping, the primary function of the '^' key is as a dead key for the circumflex diacritical mark. This corresponds to the combining Unicode character U+0302. Since this character is in general category Mn, the key identifier shall be "U+0302". </li>
- <li> On a Korean PC keyboard with a standard Korean mapping, the primary function of the 'Ha/En' key is to switch between Hangul and English input. The predefined key identifier list has an appropriate entry for this key, "HangulMode", so this shall be the key identifier. </li>
- <li> On some models of PDAs, the primary function of the key with a picture of a calendar on it is to launch the calendaring program. Since there is no Unicode character that corresponds to this function, and there is no appropriate entry in the predefined key identifier list, a new identifier may be devised, such as "Calendar".
- </li>
- </ul>
-
- <!--
- If these are equivalent to U+0030 to U+0039 then they certainly
- shouldn't be prefixed with Dial, since that's not appropriate for
- computer keyboards. If you wanted to avoid the "U+...." naming scheme
- for the key identifiers altogether, the "Guidelines for defining key
- identifiers" section could be rewritten to achieve this. Actually, I
- would prefer this. Currently the only requirement is that the
- identifier not include any whitespace. I don't see any problem with
- using the actual characters (for those keys that map to non-control
- Unicode characters and aren't combining characters).
-
- A.1.5 Guidelines for defining key identifiers
-
- The list of key identifiers contained in this appendix 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:
-
- 1. Consider the primary function of the key (i.e., without
- 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 there exists
- multiple Unicode characters that correspond to the primary
- function of the key, the Unicode character with the lowest
- codepoint must be used.
-
- 1.1. If the primary function of the key is to generate a
- character, and that character is in one of the Unicode
- general categories Lu, Ll, Lt, Lm, Lo, Nd, Nl, No, Pc, Pd,
- Ps, Pe, Pi, Pf, Po, Sm, Sc, Sk or So, then the key
- identifier is a string consisting of just that character.
- If the primary function of the key is to generate a
- character in class Ll for which there exists an equivalent,
- single character in class Lu, the uppercase character should
- be used instead.
-
- 1.2. 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:
-
- 1.2.1. If there exists an appropriate key identifier in the
- list in section A.2 below, that key identifier must
- be used.
-
- 1.2.2. If there is no appropriate key identifier in A.2,
- then the key identifier is a string beginning with
- "U+" and followed by the Unicode codepoint 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.
-
- 2. 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
- U+0030..U+0039, U+0041..U+005A, U+0061..U+007A and must begin
- with a character in the range U+0041..U+005A.
-
- Examples:
-
- * On a PC/AT US keyboard with a US keyboard mapping, the primary
- function (unmodified) of the 'Q' key is to generate the character
- U+0071. Since this character is in general category Ll, and there
- is a single corresponding character in Lu, U+0051, this character
- is used instead. Thus, the key identifier is "Q".
-
- * On a PC/AT US keyboard with a two-handed Dvorak keyboard mapping,
- the 'Q' key maps to the '5/%' key. The primary function of this
- key is to generate the character U+0035. Since this character is
- in general category Nd, the key identifier is "5".
-
- * On a French PC keyboard with a standard French mapping, the primary
- function of the '^' key is as a dead key for the circumflex
- diacritical mark. This corresponds to the combining Unicode
- character U+0302. Since this character is in general category Mn,
- the key identifier is "U+0302".
-
- * On a Korean PC keyboard with a standard Korean mapping, the
- primary function of the 'Ha/En' key is to switch between Hangul
- and English input. The predefined key identifier list has an
- appropriate entry for this key, "HangulMode", so this is the key
- identifier.
-
- * On some models of PDAs, the primary function of the key with a
- picture of a calendar on it is to launch the calendaring program.
- Since there is no Unicode character that corresponds to this
- function, and there is no appropriate entry in the predefined key
- identifier list, an new identifier can be devised, such as
- "Calendar".
-
- It may be a good idea to survey recent phone and PDA models and include
- some extra key identifiers in the list to avoid different names being
- invented for the same key.
-
- -->
-
- <p>Future versions of this specification may include key identifiers not included here, which have become common since the publication of this specification.</p>
-
- </div>
-
- <ul>
- <li class="issue">Add a "power" key?</li>
- <li class="issue">In the case of markup and attribute values, should the Key Identifiers for character keys be case-insensitive?</li>
- </ul>
-
- <!-- div3 Guide -->
- </div>
- <!-- div2 KeySet-intro -->
- <div class="div2">
- <h2 id="keyset-KeySet-Set" class="adiv2">6.2 Key identifiers set</h2>
- <p class="note"><strong>Note:</strong> The keycodes <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> are not part of this set. Use <a href="#events-Events-KeyboardEvent-keylocation"><code>KeyboardEvent.keyLocation</code></a> to know if a key originated from the numeric keypad.</p>
-
- <dl>
- <dt><a id="keyset-key-Accept"><code class="value">'Accept'</code></a></dt>
- <dd>The Accept (Commit, OK) key.</dd>
- <dt><a id="keyset-key-Add"><code class="value">'Add'</code></a></dt>
- <dd>The Add key.</dd>
- <dt><a id="keyset-key-Again"><code class="value">'Again'</code></a></dt>
- <dd>The Again key.</dd>
- <dt><a id="keyset-key-AllCandidates"><code class="value">'AllCandidates'</code></a></dt>
- <dd>The All Candidates key.</dd>
- <dt><a id="keyset-key-Alphanumeric"><code class="value">'Alphanumeric'</code></a></dt>
- <dd>The Alphanumeric key.</dd>
- <dt><a id="keyset-key-Alt"><code class="value">'Alt'</code></a></dt>
- <dd>The Alt (Menu) key.</dd>
- <dt><a id="keyset-key-AltGraph"><code class="value">'AltGraph'</code></a></dt>
- <dd>The Alt-Graph key.</dd>
- <dt><a id="keyset-key-Apps"><code class="value">'Apps'</code></a></dt>
- <dd>The Application key.</dd>
- <dt><a id="keyset-key-Attn"><code class="value">'Attn'</code></a></dt>
- <dd>The ATTN key.</dd>
- <dt><a id="keyset-key-BrowserBack"><code class="value">'BrowserBack'</code></a></dt>
- <dd>The Browser Back key.</dd>
- <dt><a id="keyset-key-BrowserFavorites"><code class="value">'BrowserFavorites'</code></a></dt>
- <dd>The Browser Favorites key.</dd>
- <dt><a id="keyset-key-BrowserForward"><code class="value">'BrowserForward'</code></a></dt>
- <dd>The Browser Forward key.</dd>
- <dt><a id="keyset-key-BrowserHome"><code class="value">'BrowserHome'</code></a></dt>
- <dd>The Browser Home key.</dd>
- <dt><a id="keyset-key-BrowserRefresh"><code class="value">'BrowserRefresh'</code></a></dt>
- <dd>The Browser Refresh key.</dd>
- <dt><a id="keyset-key-BrowserSearch"><code class="value">'BrowserSearch'</code></a></dt>
- <dd>The Browser Search key.</dd>
- <dt><a id="keyset-key-BrowserStop"><code class="value">'BrowserStop'</code></a></dt>
- <dd>The Browser Stop key.</dd>
- <dt><a id="keyset-key-Cancel"><code class="value">'Cancel'</code></a></dt>
- <dd>The Cancel key.</dd>
- <dt><a id="keyset-key-CapsLock"><code class="value">'CapsLock'</code></a></dt>
- <dd>The Caps Lock (Capital) key.</dd>
- <dt><a id="keyset-key-Clear"><code class="value">'Clear'</code></a></dt>
- <dd>The Clear key.</dd>
- <dt><a id="keyset-key-CodeInput"><code class="value">'CodeInput'</code></a></dt>
- <dd>The Code Input key.</dd>
- <dt><a id="keyset-key-Compose"><code class="value">'Compose'</code></a></dt>
- <dd>The Compose key.</dd>
- <dt><a id="keyset-key-Control"><code class="value">'Control'</code></a></dt>
- <dd>The Control (Ctrl) key.</dd>
- <dt><a id="keyset-key-Crsel"><code class="value">'Crsel'</code></a></dt>
- <dd>The Crsel key.</dd>
- <dt><a id="keyset-key-Convert"><code class="value">'Convert'</code></a></dt>
- <dd>The Convert key.</dd>
- <dt><a id="keyset-key-Copy"><code class="value">'Copy'</code></a></dt>
- <dd>The Copy key.</dd>
- <dt><a id="keyset-key-Cut"><code class="value">'Cut'</code></a></dt>
- <dd>The Cut key.</dd>
- <dt><a id="keyset-key-Decimal"><code class="value">'Decimal'</code></a></dt>
- <dd>The Decimal key.</dd>
- <dt><a id="keyset-key-Divide"><code class="value">'Divide'</code></a></dt>
- <dd>The Divide key.</dd>
- <dt><a id="keyset-key-Down"><code class="value">'Down'</code></a></dt>
- <dd>The Down Arrow key.</dd>
- <dt><a id="keyset-key-DownLeft"><code class="value">'DownLeft'</code></a></dt>
- <dd>The diagonal Down-Left Arrow key.</dd>
- <dt><a id="keyset-key-DownRight"><code class="value">'DownRight'</code></a></dt>
- <dd>The diagonal Down-Right Arrow key.</dd>
- <dt><a id="keyset-key-End"><code class="value">'End'</code></a></dt>
- <dd>The End key.</dd>
- <dt><a id="keyset-key-Enter"><code class="value">'Enter'</code></a></dt>
- <dd>The Enter key.
- <span class="note"><strong>Note:</strong> This key identifier shall be also used for the Return (Macintosh numpad) key.</span>
- </dd>
- <dt><a id="keyset-key-EraseEof"><code class="value">'EraseEof'</code></a></dt>
- <dd>The Erase EOF key.</dd>
- <dt><a id="keyset-key-Execute"><code class="value">'Execute'</code></a></dt>
- <dd>The Execute key.</dd>
- <dt><a id="keyset-key-Exsel"><code class="value">'Exsel'</code></a></dt>
- <dd>The Exsel key.</dd>
- <dt><a id="keyset-key-Fn"><code class="value">'Fn'</code></a></dt>
- <dd>The Function switch key.</dd>
- <dt><a id="keyset-key-F1"><code class="value">'F1'</code></a></dt>
- <dd>The F1 key.</dd>
- <dt><a id="keyset-key-F2"><code class="value">'F2'</code></a></dt>
- <dd>The F2 key.</dd>
- <dt><a id="keyset-key-F3"><code class="value">'F3'</code></a></dt>
- <dd>The F3 key.</dd>
- <dt><a id="keyset-key-F4"><code class="value">'F4'</code></a></dt>
- <dd>The F4 key.</dd>
- <dt><a id="keyset-key-F5"><code class="value">'F5'</code></a></dt>
- <dd>The F5 key.</dd>
- <dt><a id="keyset-key-F6"><code class="value">'F6'</code></a></dt>
- <dd>The F6 key.</dd>
- <dt><a id="keyset-key-F7"><code class="value">'F7'</code></a></dt>
- <dd>The F7 key.</dd>
- <dt><a id="keyset-key-F8"><code class="value">'F8'</code></a></dt>
- <dd>The F8 key.</dd>
- <dt><a id="keyset-key-F9"><code class="value">'F9'</code></a></dt>
- <dd>The F9 key.</dd>
- <dt><a id="keyset-key-F10"><code class="value">'F10'</code></a></dt>
- <dd>The F10 key.</dd>
- <dt><a id="keyset-key-F11"><code class="value">'F11'</code></a></dt>
- <dd>The F11 key.</dd>
- <dt><a id="keyset-key-F12"><code class="value">'F12'</code></a></dt>
- <dd>The F12 key.</dd>
- <dt><a id="keyset-key-F13"><code class="value">'F13'</code></a></dt>
- <dd>The F13 key.</dd>
- <dt><a id="keyset-key-F14"><code class="value">'F14'</code></a></dt>
- <dd>The F14 key.</dd>
- <dt><a id="keyset-key-F15"><code class="value">'F15'</code></a></dt>
- <dd>The F15 key.</dd>
- <dt><a id="keyset-key-F16"><code class="value">'F16'</code></a></dt>
- <dd>The F16 key.</dd>
- <dt><a id="keyset-key-F17"><code class="value">'F17'</code></a></dt>
- <dd>The F17 key.</dd>
- <dt><a id="keyset-key-F18"><code class="value">'F18'</code></a></dt>
- <dd>The F18 key.</dd>
- <dt><a id="keyset-key-F19"><code class="value">'F19'</code></a></dt>
- <dd>The F19 key.</dd>
- <dt><a id="keyset-key-F20"><code class="value">'F20'</code></a></dt>
- <dd>The F20 key.</dd>
- <dt><a id="keyset-key-F21"><code class="value">'F21'</code></a></dt>
- <dd>The F21 key.</dd>
- <dt><a id="keyset-key-F22"><code class="value">'F22'</code></a></dt>
- <dd>The F22 key.</dd>
- <dt><a id="keyset-key-F23"><code class="value">'F23'</code></a></dt>
- <dd>The F23 key.</dd>
- <dt><a id="keyset-key-F24"><code class="value">'F24'</code></a></dt>
- <dd>The F24 key.</dd>
- <dt><a id="keyset-key-FinalMode"><code class="value">'FinalMode'</code></a></dt>
- <dd>The Final Mode (Final) key used on some asian keyboards.</dd>
- <dt><a id="keyset-key-Find"><code class="value">'Find'</code></a></dt>
- <dd>The Find key.</dd>
- <dt><a id="keyset-key-FullWidth"><code class="value">'FullWidth'</code></a></dt>
- <dd>The Full-Width Characters key.</dd>
- <dt><a id="keyset-key-HalfWidth"><code class="value">'HalfWidth'</code></a></dt>
- <dd>The Half-Width Characters key.</dd>
- <dt><a id="keyset-key-HangulMode"><code class="value">'HangulMode'</code></a></dt>
- <dd>The Hangul (Korean characters) Mode key.</dd>
- <dt><a id="keyset-key-HanjaMode"><code class="value">'HanjaMode'</code></a></dt>
- <dd>The Hanja (Korean characters) Mode key.</dd>
- <dt><a id="keyset-key-Help"><code class="value">'Help'</code></a></dt>
- <dd>The Help key.</dd>
- <dt><a id="keyset-key-Hiragana"><code class="value">'Hiragana'</code></a></dt>
- <dd>The Hiragana (Japanese Kana characters) key.</dd>
- <dt><a id="keyset-key-Home"><code class="value">'Home'</code></a></dt>
- <dd>The Home key.</dd>
- <dt><a id="keyset-key-Insert"><code class="value">'Insert'</code></a></dt>
- <dd>The Insert (Ins) key.</dd>
- <dt><a id="keyset-key-JapaneseHiragana"><code class="value">'JapaneseHiragana'</code></a></dt>
- <dd>The Japanese-Hiragana key.</dd>
- <dt><a id="keyset-key-JapaneseKatakana"><code class="value">'JapaneseKatakana'</code></a></dt>
- <dd>The Japanese-Katakana key.</dd>
- <dt><a id="keyset-key-JapaneseRomaji"><code class="value">'JapaneseRomaji'</code></a></dt>
- <dd>The Japanese-Romaji key.</dd>
- <dt><a id="keyset-key-JunjaMode"><code class="value">'JunjaMode'</code></a></dt>
- <dd>The Junja Mode key.</dd>
- <dt><a id="keyset-key-KanaMode"><code class="value">'KanaMode'</code></a></dt>
- <dd>The Kana Mode (Kana Lock) key.</dd>
- <dt><a id="keyset-key-KanjiMode"><code class="value">'KanjiMode'</code></a></dt>
- <dd>The Kanji (Japanese name for ideographic characters of Chinese origin) Mode key.</dd>
- <dt><a id="keyset-key-Katakana"><code class="value">'Katakana'</code></a></dt>
- <dd>The Katakana (Japanese Kana characters) key.</dd>
- <dt><a id="keyset-key-LaunchApplication1"><code class="value">'LaunchApplication1'</code></a></dt>
- <dd>The Start Application One key.</dd>
- <dt><a id="keyset-key-LaunchApplication2"><code class="value">'LaunchApplication2'</code></a></dt>
- <dd>The Start Application Two key.</dd>
- <dt><a id="keyset-key-LaunchMail"><code class="value">'LaunchMail'</code></a></dt>
- <dd>The Start Mail key.</dd>
- <dt><a id="keyset-key-Left"><code class="value">'Left'</code></a></dt>
- <dd>The Left Arrow key.</dd>
- <dt><a id="keyset-key-Menu"><code class="value">'Menu'</code></a></dt>
- <dd>The Menu key.</dd>
- <dt><a id="keyset-key-Meta"><code class="value">'Meta'</code></a></dt>
- <dd>The Meta key.</dd>
- <dt><a id="keyset-key-MediaNextTrack"><code class="value">'MediaNextTrack'</code></a></dt>
- <dd>The Media Next Track key.</dd>
- <dt><a id="keyset-key-MediaPlayPause"><code class="value">'MediaPlayPause'</code></a></dt>
- <dd>The Media Play Pause key.</dd>
- <dt><a id="keyset-key-MediaPreviousTrack"><code class="value">'MediaPreviousTrack'</code></a></dt>
- <dd>The Media Previous Track key.</dd>
- <dt><a id="keyset-key-MediaStop"><code class="value">'MediaStop'</code></a></dt>
- <dd>The Media Stop key.</dd>
- <dt><a id="keyset-key-ModeChange"><code class="value">'ModeChange'</code></a></dt>
- <dd>The Mode Change key.</dd>
- <dt><a id="keyset-key-Multiply"><code class="value">'Multiply'</code></a></dt>
- <dd>The Multiply key.</dd>
- <dt><a id="keyset-key-NextCandidate"><code class="value">'NextCandidate'</code></a></dt>
- <dd>The Next Candidate function key.</dd>
- <dt><a id="keyset-key-Nonconvert"><code class="value">'Nonconvert'</code></a></dt>
- <dd>The Nonconvert (Don't Convert) key.</dd>
- <dt><a id="keyset-key-NumLock"><code class="value">'NumLock'</code></a></dt>
- <dd>The Number Lock key.</dd>
- <dt><a id="keyset-key-PageDown"><code class="value">'PageDown'</code></a></dt>
- <dd>The Page Down (Next) key.</dd>
- <dt><a id="keyset-key-PageUp"><code class="value">'PageUp'</code></a></dt>
- <dd>The Page Up key.</dd>
- <dt><a id="keyset-key-Paste"><code class="value">'Paste'</code></a></dt>
- <dd>The Paste key.</dd>
- <dt><a id="keyset-key-Pause"><code class="value">'Pause'</code></a></dt>
- <dd>The Pause key.</dd>
- <dt><a id="keyset-key-Play"><code class="value">'Play'</code></a></dt>
- <dd>The Play key.</dd>
- <dt><a id="keyset-key-PreviousCandidate"><code class="value">'PreviousCandidate'</code></a></dt>
- <dd>The Previous Candidate function key.</dd>
- <dt><a id="keyset-key-PrintScreen"><code class="value">'PrintScreen'</code></a></dt>
- <dd>The Print Screen (PrintScrn, SnapShot) key.</dd>
- <dt><a id="keyset-key-Process"><code class="value">'Process'</code></a></dt>
- <dd>The Process key.</dd>
- <dt><a id="keyset-key-Props"><code class="value">'Props'</code></a></dt>
- <dd>The Props key.</dd>
- <dt><a id="keyset-key-Right"><code class="value">'Right'</code></a></dt>
- <dd>The Right Arrow key.</dd>
- <dt><a id="keyset-key-RomanCharacters"><code class="value">'RomanCharacters'</code></a></dt>
- <dd>The Roman Characters function key.</dd>
- <dt><a id="keyset-key-Scroll"><code class="value">'Scroll'</code></a></dt>
- <dd>The Scroll Lock key.</dd>
- <dt><a id="keyset-key-Select"><code class="value">'Select'</code></a></dt>
- <dd>The Select key.</dd>
- <dt><a id="keyset-key-SelectMedia"><code class="value">'SelectMedia'</code></a></dt>
- <dd>The Select Media key.</dd>
- <dt><a id="keyset-key-Separator"><code class="value">'Separator'</code></a></dt>
- <dd>The Separator key.</dd>
- <dt><a id="keyset-key-Shift"><code class="value">'Shift'</code></a></dt>
- <dd>The Shift key.</dd>
- <dt><a id="keyset-key-Soft1"><code class="value">'Soft1'</code></a></dt>
- <dd>The Soft1 key.</dd>
- <dt><a id="keyset-key-Soft2"><code class="value">'Soft2'</code></a></dt>
- <dd>The Soft2 key.</dd>
- <dt><a id="keyset-key-Soft3"><code class="value">'Soft3'</code></a></dt>
- <dd>The Soft3 key.</dd>
- <dt><a id="keyset-key-Soft4"><code class="value">'Soft4'</code></a></dt>
- <dd>The Soft4 key.</dd>
- <dt><a id="keyset-key-Stop"><code class="value">'Stop'</code></a></dt>
- <dd>The Stop key.</dd>
- <dt><a id="keyset-key-Subtract"><code class="value">'Subtract'</code></a></dt>
- <dd>The Subtract key.</dd>
- <dt><a id="keyset-key-Up"><code class="value">'Up'</code></a></dt>
- <dd>The Up Arrow key.</dd>
- <dt><a id="keyset-key-UpLeft"><code class="value">'UpLeft'</code></a></dt>
- <dd>The diagonal Up-Left Arrow key.</dd>
- <dt><a id="keyset-key-UpRight"><code class="value">'UpRight'</code></a></dt>
- <dd>The diagonal Up-Right Arrow key.</dd>
- <dt><a id="keyset-key-Undo"><code class="value">'Undo'</code></a></dt>
- <dd>The Undo key.</dd>
- <dt><a id="keyset-key-VolumeDown"><code class="value">'VolumeDown'</code></a></dt>
- <dd>The Volume Down key.</dd>
- <dt><a id="keyset-key-VolumeMute"><code class="value">'VolumeMute'</code></a></dt>
- <dd>The Volume Mute key.</dd>
- <dt><a id="keyset-key-VolumeUp"><code class="value">'VolumeUp'</code></a></dt>
- <dd>The Volume Up key.</dd>
- <dt><a id="keyset-key-Win"><code class="value">'Win'</code></a></dt>
- <dd>The Windows Logo key.</dd>
- <dt><a id="keyset-key-Zoom"><code class="value">'Zoom'</code></a></dt>
- <dd>The Zoom key.</dd>
- <dt><a id="keyset-key-Backspace"><code class="value">'Backspace'</code></a></dt>
- <dt><a id="keyset-key-U-0008"><code class="value">'U+0008'</code></a></dt>
- <dd>The Backspace (Back) key.
- <span class="note"><strong>Note:</strong> This key identifier shall be also used for the key labeled <code class="value">'delete'</code> MacOS keyboards when not modified by the <code class="value">'Fn'</code> key.</span>
- </dd>
- <dt><a id="keyset-key-Tab"><code class="value">'Tab'</code></a></dt>
- <dt><a id="keyset-key-U-0009"><code class="value">'U+0009'</code></a></dt>
- <dd>The Horizontal Tabulation (Tab) key.</dd>
- <dt><a id="keyset-key-Cancel"><code class="value">'Cancel'</code></a></dt>
- <dt><a id="keyset-key-U-0018"><code class="value">'U+0018'</code></a></dt>
- <dd>The Cancel key.</dd>
- <dt><a id="keyset-key-Esc"><code class="value">'Esc'</code></a></dt>
- <dt><a id="keyset-key-U-001B"><code class="value">'U+001B'</code></a></dt>
- <dd>The Escape (Esc) key.</dd>
- <dt><a id="keyset-key-Spacebar"><code class="value">'Spacebar'</code></a></dt>
- <dt><a id="keyset-key-U-0020"><code class="value">'U+0020'</code></a></dt>
- <dd>The Space (Spacebar) key.</dd>
- <dt><a id="keyset-key-ExclamationChar"><code class="value">'!'</code></a></dt>
- <dt><a id="keyset-key-Exclamation"><code class="value">'Exclamation'</code></a></dt>
- <dt><a id="keyset-key-U-0021"><code class="value">'U+0021'</code></a></dt>
- <dd>The Exclamation Mark (Factorial, Bang) key (!).</dd>
- <dt><a id="keyset-key-DoubleQuote"><code class="value">'DoubleQuote'</code></a></dt>
- <dt><a id="keyset-key-U-0022"><code class="value">'U+0022'</code></a></dt>
- <dd>The Quotation Mark (Quote Double) key (").</dd>
- <dt><a id="keyset-key-HashChar"><code class="value">'#'</code></a></dt>
- <dt><a id="keyset-key-Hash"><code class="value">'Hash'</code></a></dt>
- <dt><a id="keyset-key-U-0023"><code class="value">'U+0023'</code></a></dt>
- <dd>The Number Sign (Pound Sign, Hash, Crosshatch, Octothorpe) key (#).</dd>
- <dt><a id="keyset-key-DollarChar"><code class="value">'$'</code></a></dt>
- <dt><a id="keyset-key-Dollar"><code class="value">'Dollar'</code></a></dt>
- <dt><a id="keyset-key-U-0024"><code class="value">'U+0024'</code></a></dt>
- <dd>The Dollar Sign (milreis, escudo) key ($).</dd>
- <dt><a id="keyset-key-AmpersandChar"><code class="value">'&'</code></a></dt>
- <dt><a id="keyset-key-Ampersand"><code class="value">'Ampersand'</code></a></dt>
- <dt><a id="keyset-key-U-0026"><code class="value">'U+0026'</code></a></dt>
- <dd>The Ampersand key (&).</dd>
- <dt><a id="keyset-key-Apostrophe"><code class="value">'Apostrophe'</code></a></dt>
- <dt><a id="keyset-key-U-0027"><code class="value">'U+0027'</code></a></dt>
- <dd>The Apostrophe (Apostrophe-Quote, APL Quote) key (').</dd>
- <dt><a id="keyset-key-LeftParenChar"><code class="value">'('</code></a></dt>
- <dt><a id="keyset-key-LeftParen"><code class="value">'LeftParen'</code></a></dt>
- <dt><a id="keyset-key-U-0028"><code class="value">'U+0028'</code></a></dt>
- <dd>The Left Parenthesis (Opening Parenthesis) key (().</dd>
- <dt><a id="keyset-key-RightParenChar"><code class="value">')'</code></a></dt>
- <dt><a id="keyset-key-RightParen"><code class="value">'RightParen'</code></a></dt>
- <dt><a id="keyset-key-U-0029"><code class="value">'U+0029'</code></a></dt>
- <dd>The Right Parenthesis (Closing Parenthesis) key ()).</dd>
- <dt><a id="keyset-key-AsteriskChar"><code class="value">'*'</code></a></dt>
- <dt><a id="keyset-key-Asterisk"><code class="value">'Asterisk'</code></a></dt>
- <dt><a id="keyset-key-U-002A"><code class="value">'U+002A'</code></a></dt>
- <dd>The Asterisk (Star) key (*).</dd>
- <dt><a id="keyset-key-PlusChar"><code class="value">'+'</code></a></dt>
- <dt><a id="keyset-key-Plus"><code class="value">'Plus'</code></a></dt>
- <dt><a id="keyset-key-U-002B"><code class="value">'U+002B'</code></a></dt>
- <dd>The Plus Sign (Plus) key (+).</dd>
- <dt><a id="keyset-key-PercentChar"><code class="value">'%'</code></a></dt>
- <dt><a id="keyset-key-Percent"><code class="value">'Percent'</code></a></dt>
- <dt><a id="keyset-key-U-0025"><code class="value">'U+0025'</code></a></dt>
- <dd>The Percent Sign (Percent) key (+).</dd>
- <dt><a id="keyset-key-CommaChar"><code class="value">','</code></a></dt>
- <dt><a id="keyset-key-Comma"><code class="value">'Comma'</code></a></dt>
- <dt><a id="keyset-key-U-002C"><code class="value">'U+002C'</code></a></dt>
- <dd>The Comma (decimal separator) sign key (,).</dd>
- <dt><a id="keyset-key-HyphenMinusChar"><code class="value">'-'</code></a></dt>
- <dt><a id="keyset-key-HyphenMinus"><code class="value">'HyphenMinus'</code></a></dt>
- <dt><a id="keyset-key-U-002D"><code class="value">'U+002D'</code></a></dt>
- <dd>The Hyphen-minus (hyphen or minus sign) key (-).</dd>
- <dt><a id="keyset-key-PeriodChar"><code class="value">'.'</code></a></dt>
- <dt><a id="keyset-key-Period"><code class="value">'Period'</code></a></dt>
- <dt><a id="keyset-key-U-002E"><code class="value">'U+002E'</code></a></dt>
- <dd>The Full Stop (period, dot, decimal point) key (.).</dd>
- <dt><a id="keyset-key-SolidusChar"><code class="value">'/'</code></a></dt>
- <dt><a id="keyset-key-Solidus"><code class="value">'Solidus'</code></a></dt>
- <dt><a id="keyset-key-U-002F"><code class="value">'U+002F'</code></a></dt>
- <dd>The Solidus (slash, virgule, shilling) key (/).</dd>
- <dt><a id="keyset-key-0"><code class="value">'0'</code></a></dt>
- <dt><a id="keyset-key-U-0030"><code class="value">'U+0030'</code></a></dt>
- <dd>The Digit Zero key (0).</dd>
- <dt><a id="keyset-key-1"><code class="value">'1'</code></a></dt>
- <dt><a id="keyset-key-U-0031"><code class="value">'U+0031'</code></a></dt>
- <dd>The Digit One key (1).</dd>
- <dt><a id="keyset-key-2"><code class="value">'2'</code></a></dt>
- <dt><a id="keyset-key-U-0032"><code class="value">'U+0032'</code></a></dt>
- <dd>The Digit Two key (2).</dd>
- <dt><a id="keyset-key-3"><code class="value">'3'</code></a></dt>
- <dt><a id="keyset-key-U-0033"><code class="value">'U+0033'</code></a></dt>
- <dd>The Digit Three key (3).</dd>
- <dt><a id="keyset-key-4"><code class="value">'4'</code></a></dt>
- <dt><a id="keyset-key-U-0034"><code class="value">'U+0034'</code></a></dt>
- <dd>The Digit Four key (4).</dd>
- <dt><a id="keyset-key-5"><code class="value">'5'</code></a></dt>
- <dt><a id="keyset-key-U-0035"><code class="value">'U+0035'</code></a></dt>
- <dd>The Digit Five key (5).</dd>
- <dt><a id="keyset-key-6"><code class="value">'6'</code></a></dt>
- <dt><a id="keyset-key-U-0036"><code class="value">'U+0036'</code></a></dt>
- <dd>The Digit Six key (6).</dd>
- <dt><a id="keyset-key-7"><code class="value">'7'</code></a></dt>
- <dt><a id="keyset-key-U-0037"><code class="value">'U+0037'</code></a></dt>
- <dd>The Digit Seven key (7).</dd>
- <dt><a id="keyset-key-8"><code class="value">'8'</code></a></dt>
- <dt><a id="keyset-key-U-0038"><code class="value">'U+0038'</code></a></dt>
- <dd>The Digit Eight key (8).</dd>
- <dt><a id="keyset-key-9"><code class="value">'9'</code></a></dt>
- <dt><a id="keyset-key-U-0039"><code class="value">'U+0039'</code></a></dt>
- <dd>The Digit Nine key (9).</dd>
- <dt><a id="keyset-key-ColonChar"><code class="value">':'</code></a></dt>
- <dt><a id="keyset-key-Colon"><code class="value">'Colon'</code></a></dt>
- <dt><a id="keyset-key-U-003A"><code class="value">'U+003A'</code></a></dt>
- <dd>The Colon key (:).</dd>
- <dt><a id="keyset-key-SemicolonChar"><code class="value">';'</code></a></dt>
- <dt><a id="keyset-key-Semicolon"><code class="value">'Semicolon'</code></a></dt>
- <dt><a id="keyset-key-U-003B"><code class="value">'U+003B'</code></a></dt>
- <dd>The Semicolon key (;).</dd>
- <dt><a id="keyset-key-LessThan"><code class="value">'LessThan'</code></a></dt>
- <dt><a id="keyset-key-U-003C"><code class="value">'U+003C'</code></a></dt>
- <dd>The Less-Than Sign key (<).</dd>
- <dt><a id="keyset-key-EqualsChar"><code class="value">'='</code></a></dt>
- <dt><a id="keyset-key-Equals"><code class="value">'Equals'</code></a></dt>
- <dt><a id="keyset-key-U-003D"><code class="value">'U+003D'</code></a></dt>
- <dd>The Equals Sign key (=).</dd>
- <dt><a id="keyset-key-"><code class="value">'GreaterThan'</code></a></dt>
- <dt><a id="keyset-key-U-003E"><code class="value">'U+003E'</code></a></dt>
- <dd>The Greater-Than Sign key (>).</dd>
- <dt><a id="keyset-key-QuestionMarkChar"><code class="value">'?'</code></a></dt>
- <dt><a id="keyset-key-QuestionMark"><code class="value">'QuestionMark'</code></a></dt>
- <dt><a id="keyset-key-U-003F"><code class="value">'U+003F'</code></a></dt>
- <dd>The Question Mark key (?).</dd>
- <dt><a id="keyset-key-AtChar"><code class="value">'@'</code></a></dt>
- <dt><a id="keyset-key-At"><code class="value">'At'</code></a></dt>
- <dt><a id="keyset-key-U-0040"><code class="value">'U+0040'</code></a></dt>
- <dd>The Commercial At (@) key.</dd>
- <dt><a id="keyset-key-A"><code class="value">'A'</code></a></dt>
- <dt><a id="keyset-key-U-0041"><code class="value">'U+0041'</code></a></dt>
- <dd>The Latin Capital Letter A key (A).</dd>
- <dt><a id="keyset-key-B"><code class="value">'B'</code></a></dt>
- <dt><a id="keyset-key-U-0042"><code class="value">'U+0042'</code></a></dt>
- <dd>The Latin Capital Letter B key (B).</dd>
- <dt><a id="keyset-key-C"><code class="value">'C'</code></a></dt>
- <dt><a id="keyset-key-U-0043"><code class="value">'U+0043'</code></a></dt>
- <dd>The Latin Capital Letter C key (C).</dd>
- <dt><a id="keyset-key-D"><code class="value">'D'</code></a></dt>
- <dt><a id="keyset-key-U-0044"><code class="value">'U+0044'</code></a></dt>
- <dd>The Latin Capital Letter D key (D).</dd>
- <dt><a id="keyset-key-E"><code class="value">'E'</code></a></dt>
- <dt><a id="keyset-key-U-0045"><code class="value">'U+0045'</code></a></dt>
- <dd>The Latin Capital Letter E key (E).</dd>
- <dt><a id="keyset-key-F"><code class="value">'F'</code></a></dt>
- <dt><a id="keyset-key-U-0046"><code class="value">'U+0046'</code></a></dt>
- <dd>The Latin Capital Letter F key (F).</dd>
- <dt><a id="keyset-key-G"><code class="value">'G'</code></a></dt>
- <dt><a id="keyset-key-U-0047"><code class="value">'U+0047'</code></a></dt>
- <dd>The Latin Capital Letter G key (G).</dd>
- <dt><a id="keyset-key-H"><code class="value">'H'</code></a></dt>
- <dt><a id="keyset-key-U-0048"><code class="value">'U+0048'</code></a></dt>
- <dd>The Latin Capital Letter H key (H).</dd>
- <dt><a id="keyset-key-I"><code class="value">'I'</code></a></dt>
- <dt><a id="keyset-key-U-0049"><code class="value">'U+0049'</code></a></dt>
- <dd>The Latin Capital Letter I key (I).</dd>
- <dt><a id="keyset-key-J"><code class="value">'J'</code></a></dt>
- <dt><a id="keyset-key-U-004A"><code class="value">'U+004A'</code></a></dt>
- <dd>The Latin Capital Letter J key (J).</dd>
- <dt><a id="keyset-key-K"><code class="value">'K'</code></a></dt>
- <dt><a id="keyset-key-U-004B"><code class="value">'U+004B'</code></a></dt>
- <dd>The Latin Capital Letter K key (K).</dd>
- <dt><a id="keyset-key-L"><code class="value">'L'</code></a></dt>
- <dt><a id="keyset-key-U-004C"><code class="value">'U+004C'</code></a></dt>
- <dd>The Latin Capital Letter L key (L).</dd>
- <dt><a id="keyset-key-M"><code class="value">'M'</code></a></dt>
- <dt><a id="keyset-key-U-004D"><code class="value">'U+004D'</code></a></dt>
- <dd>The Latin Capital Letter M key (M).</dd>
- <dt><a id="keyset-key-N"><code class="value">'N'</code></a></dt>
- <dt><a id="keyset-key-U-004E"><code class="value">'U+004E'</code></a></dt>
- <dd>The Latin Capital Letter N key (N).</dd>
- <dt><a id="keyset-key-O"><code class="value">'O'</code></a></dt>
- <dt><a id="keyset-key-U-004F"><code class="value">'U+004F'</code></a></dt>
- <dd>The Latin Capital Letter O key (O).</dd>
- <dt><a id="keyset-key-P"><code class="value">'P'</code></a></dt>
- <dt><a id="keyset-key-U-0050"><code class="value">'U+0050'</code></a></dt>
- <dd>The Latin Capital Letter P key (P).</dd>
- <dt><a id="keyset-key-Q"><code class="value">'Q'</code></a></dt>
- <dt><a id="keyset-key-U-0051"><code class="value">'U+0051'</code></a></dt>
- <dd>The Latin Capital Letter Q key (Q).</dd>
- <dt><a id="keyset-key-R"><code class="value">'R'</code></a></dt>
- <dt><a id="keyset-key-U-0052"><code class="value">'U+0052'</code></a></dt>
- <dd>The Latin Capital Letter R key (R).</dd>
- <dt><a id="keyset-key-S"><code class="value">'S'</code></a></dt>
- <dt><a id="keyset-key-U-0053"><code class="value">'U+0053'</code></a></dt>
- <dd>The Latin Capital Letter S key (S).</dd>
- <dt><a id="keyset-key-T"><code class="value">'T'</code></a></dt>
- <dt><a id="keyset-key-U-0054"><code class="value">'U+0054'</code></a></dt>
- <dd>The Latin Capital Letter T key (T).</dd>
- <dt><a id="keyset-key-U"><code class="value">'U'</code></a></dt>
- <dt><a id="keyset-key-U-0055"><code class="value">'U+0055'</code></a></dt>
- <dd>The Latin Capital Letter U key (U).</dd>
- <dt><a id="keyset-key-V"><code class="value">'V'</code></a></dt>
- <dt><a id="keyset-key-U-0056"><code class="value">'U+0056'</code></a></dt>
- <dd>The Latin Capital Letter V key (V).</dd>
- <dt><a id="keyset-key-W"><code class="value">'W'</code></a></dt>
- <dt><a id="keyset-key-U-0057"><code class="value">'U+0057'</code></a></dt>
- <dd>The Latin Capital Letter W key (W).</dd>
- <dt><a id="keyset-key-X"><code class="value">'X'</code></a></dt>
- <dt><a id="keyset-key-U-0058"><code class="value">'U+0058'</code></a></dt>
- <dd>The Latin Capital Letter X key (X).</dd>
- <dt><a id="keyset-key-Y"><code class="value">'Y'</code></a></dt>
- <dt><a id="keyset-key-U-0059"><code class="value">'U+0059'</code></a></dt>
- <dd>The Latin Capital Letter Y key (Y).</dd>
- <dt><a id="keyset-key-Z"><code class="value">'Z'</code></a></dt>
- <dt><a id="keyset-key-U-005A"><code class="value">'U+005A'</code></a></dt>
- <dd>The Latin Capital Letter Z key (Z).</dd>
- <dt><a id="keyset-key-LeftSquareBracketChar"><code class="value">'['</code></a></dt>
- <dt><a id="keyset-key-LeftSquareBracket"><code class="value">'LeftSquareBracket'</code></a></dt>
- <dt><a id="keyset-key-U-005B"><code class="value">'U+005B'</code></a></dt>
- <dd>The Left Square Bracket (Opening Square Bracket) key ([).</dd>
- <dt><a id="keyset-key-BackslashChar"><code class="value">'\'</code></a></dt>
- <dt><a id="keyset-key-Backslash"><code class="value">'Backslash'</code></a></dt>
- <dt><a id="keyset-key-U-005C"><code class="value">'U+005C'</code></a></dt>
- <dd>The Reverse Solidus (Backslash) key (\).</dd>
- <dt><a id="keyset-key-RightSquareBracketChar"><code class="value">']'</code></a></dt>
- <dt><a id="keyset-key-RightSquareBracket"><code class="value">'RightSquareBracket'</code></a></dt>
- <dt><a id="keyset-key-U-005D"><code class="value">'U+005D'</code></a></dt>
- <dd>The Right Square Bracket (Closing Square Bracket) key (]).</dd>
- <dt><a id="keyset-key-CircumflexChar"><code class="value">'^'</code></a></dt>
- <dt><a id="keyset-key-Circumflex"><code class="value">'Circumflex'</code></a></dt>
- <dt><a id="keyset-key-U-005E"><code class="value">'U+005E'</code></a></dt>
- <dd>The Circumflex Accent key (^).</dd>
- <dt><a id="keyset-key-UnderscoreChar"><code class="value">'_'</code></a></dt>
- <dt><a id="keyset-key-Underscore"><code class="value">'Underscore'</code></a></dt>
- <dt><a id="keyset-key-U-005F"><code class="value">'U+005F'</code></a></dt>
- <dd>The Low Sign (Spacing Underscore, Underscore) key (_).</dd>
- <dt><a id="keyset-key-GraveChar"><code class="value">'`'</code></a></dt>
- <dt><a id="keyset-key-Grave"><code class="value">'Grave'</code></a></dt>
- <dt><a id="keyset-key-U-0060"><code class="value">'U+0060'</code></a></dt>
- <dd>The Grave Accent (Back Quote) key (`).</dd>
- <dt><a id="keyset-key-LeftCurlyBracketChar"><code class="value">'{'</code></a></dt>
- <dt><a id="keyset-key-LeftCurlyBracket"><code class="value">'LeftCurlyBracket'</code></a></dt>
- <dt><a id="keyset-key-U-007B"><code class="value">'U+007B'</code></a></dt>
- <dd>The Left Curly Bracket (Opening Curly Bracket, Opening Brace, Brace Left) key ({).</dd>
- <dt><a id="keyset-key-PipeChar"><code class="value">'|'</code></a></dt>
- <dt><a id="keyset-key-Pipe"><code class="value">'Pipe'</code></a></dt>
- <dt><a id="keyset-key-U-007C"><code class="value">'U+007C'</code></a></dt>
- <dd>The Vertical Line (Vertical Bar, Pipe) key (|).</dd>
- <dt><a id="keyset-key-RightCurlyBracketChar"><code class="value">'}'</code></a></dt>
- <dt><a id="keyset-key-RightCurlyBracket"><code class="value">'RightCurlyBracket'</code></a></dt>
- <dt><a id="keyset-key-U-007D"><code class="value">'U+007D'</code></a></dt>
- <dd>The Right Curly Bracket (Closing Curly Bracket, Closing Brace, Brace Right) key (}).</dd>
- <dt><a id="keyset-key-Del"><code class="value">'Del'</code></a></dt>
- <dt><a id="keyset-key-U-007F"><code class="value">'U+007F'</code></a></dt>
- <dd>The Delete (Del) Key.
- <span class="note"><strong>Note:</strong> This key identifier shall be also used for the key labeled <code class="value">'delete'</code> MacOS keyboards when modified by the <code class="value">'Fn'</code> key.</span>
- </dd>
- <dt><a id="keyset-key-InvertedExclamationChar"><code class="value">'¡'</code></a></dt>
- <dt><a id="keyset-key-InvertedExclamation"><code class="value">'InvertedExclamation'</code></a></dt>
- <dt><a id="keyset-key-U-00A1"><code class="value">'U+00A1'</code></a></dt>
- <dd>The Inverted Exclamation Mark key (¡).</dd>
- <dt><a id="keyset-key-DeadGrave"><code class="value">'DeadGrave'</code></a></dt>
- <dt><a id="keyset-key-U-0300"><code class="value">'U+0300'</code></a></dt>
- <dd>The Combining Grave Accent (Greek Varia, Dead Grave) key.</dd>
- <dt><a id="keyset-key-DeadEacute"><code class="value">'DeadEacute'</code></a></dt>
- <dt><a id="keyset-key-U-0301"><code class="value">'U+0301'</code></a></dt>
- <dd>The Combining Acute Accent (Stress Mark, Greek Oxia, Tonos, Dead Eacute) key.</dd>
- <dt><a id="keyset-key-DeadCircumflex"><code class="value">'DeadCircumflex'</code></a></dt>
- <dt><a id="keyset-key-U-0302"><code class="value">'U+0302'</code></a></dt>
- <dd>The Combining Circumflex Accent (Hat, Dead Circumflex) key.</dd>
- <dt><a id="keyset-key-DeadTilde"><code class="value">'DeadTilde'</code></a></dt>
- <dt><a id="keyset-key-U-0303"><code class="value">'U+0303'</code></a></dt>
- <dd>The Combining Tilde (Dead Tilde) key.</dd>
- <dt><a id="keyset-key-DeadMacron"><code class="value">'DeadMacron'</code></a></dt>
- <dt><a id="keyset-key-U-0304"><code class="value">'U+0304'</code></a></dt>
- <dd>The Combining Macron (Long, Dead Macron) key.</dd>
- <dt><a id="keyset-key-DeadBreve"><code class="value">'DeadBreve'</code></a></dt>
- <dt><a id="keyset-key-U-0306"><code class="value">'U+0306'</code></a></dt>
- <dd>The Combining Breve (Short, Dead Breve) key.</dd>
- <dt><a id="keyset-key-DeadAboveDot"><code class="value">'DeadAboveDot'</code></a></dt>
- <dt><a id="keyset-key-U-0307"><code class="value">'U+0307'</code></a></dt>
- <dd>The Combining Dot Above (Derivative, Dead Above Dot) key.</dd>
- <dt><a id="keyset-key-DeadUmlaut"><code class="value">'DeadUmlaut'</code></a></dt>
- <dt><a id="keyset-key-U-0308"><code class="value">'U+0308'</code></a></dt>
- <dd>The Combining Diaeresis (Double Dot Abode, Umlaut, Greek Dialytika, Double Derivative, Dead Diaeresis) key.</dd>
- <dt><a id="keyset-key-DeadAboveRing"><code class="value">'DeadAboveRing'</code></a></dt>
- <dt><a id="keyset-key-U-030A"><code class="value">'U+030A'</code></a></dt>
- <dd>The Combining Ring Above (Dead Above Ring) key.</dd>
- <dt><a id="keyset-key-DeadDoubleacute"><code class="value">'DeadDoubleacute'</code></a></dt>
- <dt><a id="keyset-key-U-030B"><code class="value">'U+030B'</code></a></dt>
- <dd>The Combining Double Acute Accent (Dead Doubleacute) key.</dd>
- <dt><a id="keyset-key-DeadCaron"><code class="value">'DeadCaron'</code></a></dt>
- <dt><a id="keyset-key-U-030C"><code class="value">'U+030C'</code></a></dt>
- <dd>The Combining Caron (Hacek, V Above, Dead Caron) key.</dd>
- <dt><a id="keyset-key-DeadCedilla"><code class="value">'DeadCedilla'</code></a></dt>
- <dt><a id="keyset-key-U-0327"><code class="value">'U+0327'</code></a></dt>
- <dd>The Combining Cedilla (Dead Cedilla) key.</dd>
- <dt><a id="keyset-key-DeadOgonek"><code class="value">'DeadOgonek'</code></a></dt>
- <dt><a id="keyset-key-U-0328"><code class="value">'U+0328'</code></a></dt>
- <dd>The Combining Ogonek (Nasal Hook, Dead Ogonek) key.</dd>
- <dt><a id="keyset-key-DeadIota"><code class="value">'DeadIota'</code></a></dt>
- <dt><a id="keyset-key-U-0345"><code class="value">'U+0345'</code></a></dt>
- <dd>The Combining Greek Ypogegrammeni (Greek Non-Spacing Iota Below, Iota Subscript, Dead Iota) key.</dd>
- <dt><a id="keyset-key-EuroChar"><code class="value">'€'</code></a></dt>
- <dt><a id="keyset-key-Euro"><code class="value">'Euro'</code></a></dt>
- <dt><a id="keyset-key-U-20AC"><code class="value">'U+20AC'</code></a></dt>
- <dd>The Euro Currency Sign key (€).</dd>
- <dt><a id="keyset-key-DeadVoicedSound"><code class="value">'DeadVoicedSound'</code></a></dt>
- <dt><a id="keyset-key-U-3099"><code class="value">'U+3099'</code></a></dt>
- <dd>The Combining Katakana-Hiragana Voiced Sound Mark (Dead Voiced Sound) key.</dd>
- <dt><a id="keyset-key-DeadSemivoicedSound"><code class="value">'DeadSemivoicedSound'</code></a></dt>
- <dt><a id="keyset-key-U-309A"><code class="value">'U+309A'</code></a></dt>
- <dd>The Combining Katakana-Hiragana Semi-Voiced Sound Mark (Dead Semivoiced Sound) key.</dd>
- </dl>
- </div>
- <!-- div2 KeySet-Set -->
-
-
- <div>
- <h2 id="keyset-KeySet-Set-keyCode-charCode" class="adiv2">6.2.1 Key identifiers, keyCode, and charCode</h2>
- <p class="note"><strong>Note:</strong> This section is non-normative.</p>
- <p>Browser support for keyboards has traditionally relied on two ad-hoc attributes, <code class="attr-name">keyCode</code>, and <code class="attr-name">charCode</code>. The values for these attributes, and the availability of the attribute, is inconsistent across platforms, keyboard languages and layouts, User Agents, versions, and even event types. A significant amount of legacy content, including script libraries, relies upon detecting the User Agent and acting accordingly, and any changes to <code class="attr-name">keyCode</code>, or <code class="attr-name">charCode</code> risk breaking as much content as they fix or enable. Additionally, these attributes are not suitable for international usage, or accessibility concerns. Therefore, this specification does not normatively define the <code class="attr-name">keyCode</code>, and <code class="attr-name">charCode</code> attributes, relying instead only on the more robust key identifiers, which can be used safely and consistently in any User Agent which conforms to this specification. However, for the purpose of documenting the current state of these attributes and their relation to equivalent key identifiers, this specification contains the following table, which is to be used as an informative reference only, and does not document the full range of values for <code class="attr-name">keyCode</code>, and <code class="attr-name">charCode</code>.</p>
-
- <table id="tbl-keyIdentifiers-keyCode-charCode">
- <caption><strong>Key Identifiers Set with keyCode and charCode Equivalents for Major Browsers</strong><br/>(<code>keycode</code> labeled <em>key</em>, <code>charcode</code> labeled <em>char</em>)</caption>
- <tr><th rowspan="3">Character String</th><th rowspan="3">Key Name</th><th rowspan="3">Unicode Codepoint</th><th rowspan="3">Description</th><th colspan="6">Internet Explorer 7</th><th colspan="6">Firefox 3</th><th colspan="6">Safari 3.1</th><th colspan="6">Opera 9.5</th></tr>
- <tr><th colspan="2">keydown</th><th colspan="2">keypress</th><th colspan="2">keyup</th><th colspan="2">keydown</th><th colspan="2">keypress</th><th colspan="2">keyup</th><th colspan="2">keydown</th><th colspan="2">keypress</th><th colspan="2">keyup</th><th colspan="2">keydown</th><th colspan="2">keypress</th><th colspan="2">keyup</th></tr>
- <tr class="smallRow"><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th><th>key</th><th>char</th></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Accept" class="value">'Accept'</code></td><td> </td><td>The Accept (Commit, OK) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Add" class="value">'Add'</code></td><td> </td><td>The Add key.</td><td>107</td><td>-</td><td>107</td><td>-</td><td>107</td><td>-</td><td>107</td><td>-</td><td>0</td><td>107</td><td>107</td><td>-</td><td>107</td><td>-</td><td>107</td><td>107</td><td>107</td><td>-</td><td>107</td><td>-</td><td>107</td><td>-</td><td>107</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Again" class="value">'Again'</code></td><td> </td><td>The Again key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-AllCandidates" class="value">'AllCandidates'</code></td><td> </td><td>The All Candidates key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Alphanumeric" class="value">'Alphanumeric'</code></td><td> </td><td>The Alphanumeric key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Alt" class="value">'Alt'</code></td><td> </td><td>The Alt (Menu) key.</td><td>18</td><td>-</td><td>-</td><td>-</td><td>18</td><td>-</td><td>18</td><td>-</td><td>-</td><td>-</td><td>18</td><td>-</td><td>18</td><td>-</td><td>-</td><td>-</td><td>18</td><td>-</td><td>18</td><td>-</td><td>18</td><td>-</td><td>-</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-AltGraph" class="value">'AltGraph'</code></td><td> </td><td>The Alt-Graph key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Apps" class="value">'Apps'</code></td><td> </td><td>The Application key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Attn" class="value">'Attn'</code></td><td> </td><td>The ATTN key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-BrowserBack" class="value">'BrowserBack'</code></td><td> </td><td>The Browser Back key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-BrowserFavorites" class="value">'BrowserFavorites'</code></td><td> </td><td>The Browser Favorites key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-BrowserForward" class="value">'BrowserForward'</code></td><td> </td><td>The Browser Forward key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-BrowserHome" class="value">'BrowserHome'</code></td><td> </td><td>The Browser Home key.</td><td>36</td><td>-</td><td>-</td><td>-</td><td>36</td><td>-</td><td>36</td><td>-</td><td>36</td><td>-</td><td>36</td><td>-</td><td>36</td><td>-</td><td>-</td><td>-</td><td>36</td><td>-</td><td>36</td><td>-</td><td>36</td><td>-</td><td>36</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-BrowserRefresh" class="value">'BrowserRefresh'</code></td><td> </td><td>The Browser Refresh key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-BrowserSearch" class="value">'BrowserSearch'</code></td><td> </td><td>The Browser Search key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-BrowserStop" class="value">'BrowserStop'</code></td><td> </td><td>The Browser Stop key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Cancel" class="value">'Cancel'</code></td><td> </td><td>The Cancel key.</td><td>20</td><td>-</td><td>-</td><td>-</td><td>20</td><td>-</td><td>20</td><td>-</td><td>-</td><td>-</td><td>20</td><td>-</td><td>20</td><td>-</td><td>-</td><td>-</td><td>20</td><td>-</td><td>20</td><td>-</td><td>-</td><td>-</td><td>20</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-CapsLock" class="value">'CapsLock'</code></td><td> </td><td>The Caps Lock (Capital) key.</td><td>20</td><td>-</td><td>-</td><td>-</td><td>20</td><td>-</td><td>20</td><td>-</td><td>-</td><td>-</td><td>20</td><td>-</td><td>20</td><td>-</td><td>-</td><td>-</td><td>20</td><td>-</td><td>20</td><td>-</td><td>-</td><td>-</td><td>20</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Clear" class="value">'Clear'</code></td><td> </td><td>The Clear key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-CodeInput" class="value">'CodeInput'</code></td><td> </td><td>The Code Input key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Compose" class="value">'Compose'</code></td><td> </td><td>The Compose key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Control" class="value">'Control'</code></td><td> </td><td>The Control (Ctrl) key.</td><td>17</td><td>-</td><td>-</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td><td>-</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td><td>-</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Crsel" class="value">'Crsel'</code></td><td> </td><td>The Crsel key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Convert" class="value">'Convert'</code></td><td> </td><td>The Convert key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Copy" class="value">'Copy'</code></td><td> </td><td>The Copy key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Cut" class="value">'Cut'</code></td><td> </td><td>The Cut key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Decimal" class="value">'Decimal'</code></td><td> </td><td>The Decimal key.</td><td>110</td><td>-</td><td>110</td><td>-</td><td>110</td><td>-</td><td>110</td><td>-</td><td>0</td><td>110</td><td>110</td><td>-</td><td>110</td><td>-</td><td>110</td><td>110</td><td>110</td><td>-</td><td>110</td><td>-</td><td>110</td><td>-</td><td>110</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Divide" class="value">'Divide'</code></td><td> </td><td>The Divide key.</td><td>111</td><td>-</td><td>111</td><td>-</td><td>111</td><td>-</td><td>111</td><td>-</td><td>0</td><td>111</td><td>111</td><td>-</td><td>111</td><td>-</td><td>111</td><td>111</td><td>111</td><td>-</td><td>111</td><td>-</td><td>111</td><td>-</td><td>111</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Down" class="value">'Down'</code></td><td> </td><td>The Down Arrow key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DownLeft" class="value">'DownLeft'</code></td><td> </td><td>The diagonal Down-Left Arrow key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DownRight" class="value">'DownRight'</code></td><td> </td><td>The diagonal Down-Right Arrow key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-End" class="value">'End'</code></td><td> </td><td>The End key.</td><td>35</td><td>-</td><td>-</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>-</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td><td>35</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Enter" class="value">'Enter'</code></td><td> </td><td>The Enter key. <em><strong>Note:</strong> This key identifier shall be also used for the Return (Macintosh numpad) key.</em></td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>13</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td><td>13</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-EraseEof" class="value">'EraseEof'</code></td><td> </td><td>The Erase EOF key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Execute" class="value">'Execute'</code></td><td> </td><td>The Execute key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Exsel" class="value">'Exsel'</code></td><td> </td><td>The Exsel key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Fn" class="value">'Fn'</code></td><td> </td><td>The Function switch key.</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F1" class="value">'F1'</code></td><td> </td><td>The F1 key.</td><td>112</td><td>-</td><td>-</td><td>-</td><td>112</td><td>-</td><td>112</td><td>-</td><td>112</td><td>-</td><td>112</td><td>-</td><td>112</td><td>-</td><td>-</td><td>-</td><td>112</td><td>-</td><td>112</td><td>-</td><td>112</td><td>-</td><td>112</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F2" class="value">'F2'</code></td><td> </td><td>The F2 key.</td><td>113</td><td>-</td><td>-</td><td>-</td><td>113</td><td>-</td><td>113</td><td>-</td><td>113</td><td>-</td><td>113</td><td>-</td><td>113</td><td>-</td><td>-</td><td>-</td><td>113</td><td>-</td><td>113</td><td>-</td><td>113</td><td>-</td><td>113</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F3" class="value">'F3'</code></td><td> </td><td>The F3 key.</td><td>114</td><td>-</td><td>-</td><td>-</td><td>114</td><td>-</td><td>114</td><td>-</td><td>114</td><td>-</td><td>114</td><td>-</td><td>114</td><td>-</td><td>-</td><td>-</td><td>114</td><td>-</td><td>114</td><td>-</td><td>114</td><td>-</td><td>114</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F4" class="value">'F4'</code></td><td> </td><td>The F4 key.</td><td>115</td><td>-</td><td>-</td><td>-</td><td>115</td><td>-</td><td>115</td><td>-</td><td>115</td><td>-</td><td>115</td><td>-</td><td>115</td><td>-</td><td>-</td><td>-</td><td>115</td><td>-</td><td>115</td><td>-</td><td>115</td><td>-</td><td>115</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F5" class="value">'F5'</code></td><td> </td><td>The F5 key.</td><td>116</td><td>-</td><td>-</td><td>-</td><td>116</td><td>-</td><td>116</td><td>-</td><td>116</td><td>-</td><td>116</td><td>-</td><td>116</td><td>-</td><td>-</td><td>-</td><td>116</td><td>-</td><td>116</td><td>-</td><td>116</td><td>-</td><td>116</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F6" class="value">'F6'</code></td><td> </td><td>The F6 key.</td><td>117</td><td>-</td><td>-</td><td>-</td><td>117</td><td>-</td><td>117</td><td>-</td><td>117</td><td>-</td><td>117</td><td>-</td><td>117</td><td>-</td><td>-</td><td>-</td><td>117</td><td>-</td><td>117</td><td>-</td><td>117</td><td>-</td><td>117</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F7" class="value">'F7'</code></td><td> </td><td>The F7 key.</td><td>118</td><td>-</td><td>-</td><td>-</td><td>118</td><td>-</td><td>118</td><td>-</td><td>118</td><td>-</td><td>118</td><td>-</td><td>118</td><td>-</td><td>-</td><td>-</td><td>118</td><td>-</td><td>118</td><td>-</td><td>118</td><td>-</td><td>118</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F8" class="value">'F8'</code></td><td> </td><td>The F8 key.</td><td>119</td><td>-</td><td>-</td><td>-</td><td>119</td><td>-</td><td>119</td><td>-</td><td>119</td><td>-</td><td>119</td><td>-</td><td>119</td><td>-</td><td>-</td><td>-</td><td>119</td><td>-</td><td>119</td><td>-</td><td>119</td><td>-</td><td>119</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F9" class="value">'F9'</code></td><td> </td><td>The F9 key.</td><td>120</td><td>-</td><td>-</td><td>-</td><td>120</td><td>-</td><td>120</td><td>-</td><td>120</td><td>-</td><td>120</td><td>-</td><td>120</td><td>-</td><td>-</td><td>-</td><td>120</td><td>-</td><td>120</td><td>-</td><td>120</td><td>-</td><td>120</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F10" class="value">'F10'</code></td><td> </td><td>The F10 key.</td><td>121</td><td>-</td><td>-</td><td>-</td><td>121</td><td>-</td><td>121</td><td>-</td><td>121</td><td>-</td><td>121</td><td>-</td><td>121</td><td>-</td><td>-</td><td>-</td><td>121</td><td>-</td><td>121</td><td>-</td><td>121</td><td>-</td><td>121</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F11" class="value">'F11'</code></td><td> </td><td>The F11 key.</td><td>122</td><td>-</td><td>-</td><td>-</td><td>122</td><td>-</td><td>122</td><td>-</td><td>122</td><td>-</td><td>122</td><td>-</td><td>122</td><td>-</td><td>-</td><td>-</td><td>122</td><td>-</td><td>122</td><td>-</td><td>122</td><td>-</td><td>122</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F12" class="value">'F12'</code></td><td> </td><td>The F12 key.</td><td>123</td><td>-</td><td>-</td><td>-</td><td>123</td><td>-</td><td>123</td><td>-</td><td>123</td><td>-</td><td>123</td><td>-</td><td>123</td><td>-</td><td>-</td><td>-</td><td>123</td><td>-</td><td>123</td><td>-</td><td>123</td><td>-</td><td>123</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F13" class="value">'F13'</code></td><td> </td><td>The F13 key.</td><td>124</td><td>-</td><td>-</td><td>-</td><td>124</td><td>-</td><td>124</td><td>-</td><td>124</td><td>-</td><td>124</td><td>-</td><td>124</td><td>-</td><td>-</td><td>-</td><td>124</td><td>-</td><td>124</td><td>-</td><td>124</td><td>-</td><td>124</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F14" class="value">'F14'</code></td><td> </td><td>The F14 key.</td><td>125</td><td>-</td><td>-</td><td>-</td><td>125</td><td>-</td><td>125</td><td>-</td><td>125</td><td>-</td><td>125</td><td>-</td><td>125</td><td>-</td><td>-</td><td>-</td><td>125</td><td>-</td><td>125</td><td>-</td><td>125</td><td>-</td><td>125</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F15" class="value">'F15'</code></td><td> </td><td>The F15 key.</td><td>126</td><td>-</td><td>-</td><td>-</td><td>126</td><td>-</td><td>126</td><td>-</td><td>126</td><td>-</td><td>126</td><td>-</td><td>126</td><td>-</td><td>-</td><td>-</td><td>126</td><td>-</td><td>126</td><td>-</td><td>126</td><td>-</td><td>126</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F16" class="value">'F16'</code></td><td> </td><td>The F16 key.</td><td>127</td><td>-</td><td>-</td><td>-</td><td>127</td><td>-</td><td>127</td><td>-</td><td>127</td><td>-</td><td>127</td><td>-</td><td>127</td><td>-</td><td>-</td><td>-</td><td>127</td><td>-</td><td>127</td><td>-</td><td>127</td><td>-</td><td>127</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F17" class="value">'F17'</code></td><td> </td><td>The F17 key.</td><td>128</td><td>-</td><td>-</td><td>-</td><td>128</td><td>-</td><td>128</td><td>-</td><td>128</td><td>-</td><td>128</td><td>-</td><td>128</td><td>-</td><td>-</td><td>-</td><td>128</td><td>-</td><td>128</td><td>-</td><td>128</td><td>-</td><td>128</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F18" class="value">'F18'</code></td><td> </td><td>The F18 key.</td><td>129</td><td>-</td><td>-</td><td>-</td><td>129</td><td>-</td><td>129</td><td>-</td><td>129</td><td>-</td><td>129</td><td>-</td><td>129</td><td>-</td><td>-</td><td>-</td><td>129</td><td>-</td><td>129</td><td>-</td><td>129</td><td>-</td><td>129</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F19" class="value">'F19'</code></td><td> </td><td>The F19 key.</td><td>130</td><td>-</td><td>-</td><td>-</td><td>130</td><td>-</td><td>130</td><td>-</td><td>130</td><td>-</td><td>130</td><td>-</td><td>130</td><td>-</td><td>-</td><td>-</td><td>130</td><td>-</td><td>130</td><td>-</td><td>130</td><td>-</td><td>130</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F20" class="value">'F20'</code></td><td> </td><td>The F20 key.</td><td>131</td><td>-</td><td>-</td><td>-</td><td>131</td><td>-</td><td>131</td><td>-</td><td>131</td><td>-</td><td>131</td><td>-</td><td>131</td><td>-</td><td>-</td><td>-</td><td>131</td><td>-</td><td>131</td><td>-</td><td>131</td><td>-</td><td>131</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F21" class="value">'F21'</code></td><td> </td><td>The F21 key.</td><td>132</td><td>-</td><td>-</td><td>-</td><td>132</td><td>-</td><td>132</td><td>-</td><td>132</td><td>-</td><td>132</td><td>-</td><td>132</td><td>-</td><td>-</td><td>-</td><td>132</td><td>-</td><td>132</td><td>-</td><td>132</td><td>-</td><td>132</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F22" class="value">'F22'</code></td><td> </td><td>The F22 key.</td><td>133</td><td>-</td><td>-</td><td>-</td><td>133</td><td>-</td><td>133</td><td>-</td><td>133</td><td>-</td><td>133</td><td>-</td><td>133</td><td>-</td><td>-</td><td>-</td><td>133</td><td>-</td><td>133</td><td>-</td><td>133</td><td>-</td><td>133</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F23" class="value">'F23'</code></td><td> </td><td>The F23 key.</td><td>134</td><td>-</td><td>-</td><td>-</td><td>134</td><td>-</td><td>134</td><td>-</td><td>134</td><td>-</td><td>134</td><td>-</td><td>134</td><td>-</td><td>-</td><td>-</td><td>134</td><td>-</td><td>134</td><td>-</td><td>134</td><td>-</td><td>134</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-F24" class="value">'F24'</code></td><td> </td><td>The F24 key.</td><td>135</td><td>-</td><td>-</td><td>-</td><td>135</td><td>-</td><td>135</td><td>-</td><td>135</td><td>-</td><td>135</td><td>-</td><td>135</td><td>-</td><td>-</td><td>-</td><td>135</td><td>-</td><td>135</td><td>-</td><td>135</td><td>-</td><td>135</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-FinalMode" class="value">'FinalMode'</code></td><td> </td><td>The Final Mode (Final) key used on some asian keyboards.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Find" class="value">'Find'</code></td><td> </td><td>The Find key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-FullWidth" class="value">'FullWidth'</code></td><td> </td><td>The Full-Width Characters key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-HalfWidth" class="value">'HalfWidth'</code></td><td> </td><td>The Half-Width Characters key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-HangulMode" class="value">'HangulMode'</code></td><td> </td><td>The Hangul (Korean characters) Mode key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-HanjaMode" class="value">'HanjaMode'</code></td><td> </td><td>The Hanja (Korean characters) Mode key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Help" class="value">'Help'</code></td><td> </td><td>The Help key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Hiragana" class="value">'Hiragana'</code></td><td> </td><td>The Hiragana (Japanese Kana characters) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Home" class="value">'Home'</code></td><td> </td><td>The Home key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Insert" class="value">'Insert'</code></td><td> </td><td>The Insert (Ins) key.</td><td>45</td><td>-</td><td>-</td><td>-</td><td>45</td><td>-</td><td>45</td><td>-</td><td>45</td><td>-</td><td>45</td><td>-</td><td>45</td><td>-</td><td>-</td><td>-</td><td>45</td><td>-</td><td>45</td><td>-</td><td>45</td><td>-</td><td>45</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-JapaneseHiragana" class="value">'JapaneseHiragana'</code></td><td> </td><td>The Japanese-Hiragana key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-JapaneseKatakana" class="value">'JapaneseKatakana'</code></td><td> </td><td>The Japanese-Katakana key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-JapaneseRomaji" class="value">'JapaneseRomaji'</code></td><td> </td><td>The Japanese-Romaji key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-JunjaMode" class="value">'JunjaMode'</code></td><td> </td><td>The Junja Mode key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-KanaMode" class="value">'KanaMode'</code></td><td> </td><td>The Kana Mode (Kana Lock) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-KanjiMode" class="value">'KanjiMode'</code></td><td> </td><td>The Kanji (Japanese name for ideographic characters of Chinese origin) Mode key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Katakana" class="value">'Katakana'</code></td><td> </td><td>The Katakana (Japanese Kana characters) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-LaunchApplication1" class="value">'LaunchApplication1'</code></td><td> </td><td>The Start Application One key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-LaunchApplication2" class="value">'LaunchApplication2'</code></td><td> </td><td>The Start Application Two key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-LaunchMail" class="value">'LaunchMail'</code></td><td> </td><td>The Start Mail key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Left" class="value">'Left'</code></td><td> </td><td>The Left Arrow key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Menu" class="value">'Menu'</code></td><td> </td><td>The Menu key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Meta" class="value">'Meta'</code></td><td> </td><td>The Meta key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-MediaNextTrack" class="value">'MediaNextTrack'</code></td><td> </td><td>The Media Next Track key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-MediaPlayPause" class="value">'MediaPlayPause'</code></td><td> </td><td>The Media Play Pause key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-MediaPreviousTrack" class="value">'MediaPreviousTrack'</code></td><td> </td><td>The Media Previous Track key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-MediaStop" class="value">'MediaStop'</code></td><td> </td><td>The Media Stop key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-ModeChange" class="value">'ModeChange'</code></td><td> </td><td>The Mode Change key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Multiply" class="value">'Multiply'</code></td><td> </td><td>The Multiply key.</td><td>106</td><td>-</td><td>106</td><td>-</td><td>106</td><td>-</td><td>106</td><td>-</td><td>0</td><td>106</td><td>106</td><td>-</td><td>106</td><td>-</td><td>106</td><td>106</td><td>106</td><td>-</td><td>106</td><td>-</td><td>106</td><td>-</td><td>106</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-NextCandidate" class="value">'NextCandidate'</code></td><td> </td><td>The Next Candidate function key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Nonconvert" class="value">'Nonconvert'</code></td><td> </td><td>The Nonconvert (Don't Convert) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-NumLock" class="value">'NumLock'</code></td><td> </td><td>The Number Lock key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-PageDown" class="value">'PageDown'</code></td><td> </td><td>The Page Down (Next) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-PageUp" class="value">'PageUp'</code></td><td> </td><td>The Page Up key.</td><td>33</td><td>-</td><td>-</td><td>-</td><td>33</td><td>-</td><td>33</td><td>-</td><td>33</td><td>-</td><td>33</td><td>-</td><td>33</td><td>-</td><td>-</td><td>-</td><td>33</td><td>-</td><td>33</td><td>-</td><td>33</td><td>-</td><td>33</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Paste" class="value">'Paste'</code></td><td> </td><td>The Paste key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Pause" class="value">'Pause'</code></td><td> </td><td>The Pause key.</td><td>19</td><td>-</td><td>-</td><td>-</td><td>19</td><td>-</td><td>19</td><td>-</td><td>19</td><td>-</td><td>19</td><td>-</td><td>19</td><td>-</td><td>-</td><td>-</td><td>19</td><td>-</td><td>19</td><td>-</td><td>19</td><td>-</td><td>19</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Play" class="value">'Play'</code></td><td> </td><td>The Play key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-PreviousCandidate" class="value">'PreviousCandidate'</code></td><td> </td><td>The Previous Candidate function key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-PrintScreen" class="value">'PrintScreen'</code></td><td> </td><td>The Print Screen (PrintScrn, SnapShot) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Process" class="value">'Process'</code></td><td> </td><td>The Process key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Props" class="value">'Props'</code></td><td> </td><td>The Props key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Right" class="value">'Right'</code></td><td> </td><td>The Right Arrow key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-RomanCharacters" class="value">'RomanCharacters'</code></td><td> </td><td>The Roman Characters function key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Scroll" class="value">'Scroll'</code></td><td> </td><td>The Scroll Lock key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Select" class="value">'Select'</code></td><td> </td><td>The Select key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-SelectMedia" class="value">'SelectMedia'</code></td><td> </td><td>The Select Media key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Separator" class="value">'Separator'</code></td><td> </td><td>The Separator key.</td><td>108</td><td>-</td><td>108</td><td>-</td><td>108</td><td>-</td><td>108</td><td>-</td><td>0</td><td>108</td><td>108</td><td>-</td><td>108</td><td>-</td><td>108</td><td>108</td><td>108</td><td>-</td><td>108</td><td>-</td><td>108</td><td>-</td><td>108</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Shift" class="value">'Shift'</code></td><td> </td><td>The Shift key.</td><td>17</td><td>-</td><td>-</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td><td>-</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td><td>-</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td><td>17</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Soft1" class="value">'Soft1'</code></td><td> </td><td>The Soft1 key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Soft2" class="value">'Soft2'</code></td><td> </td><td>The Soft2 key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Soft3" class="value">'Soft3'</code></td><td> </td><td>The Soft3 key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Soft4" class="value">'Soft4'</code></td><td> </td><td>The Soft4 key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Stop" class="value">'Stop'</code></td><td> </td><td>The Stop key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Subtract" class="value">'Subtract'</code></td><td> </td><td>The Subtract key.</td><td>109</td><td>-</td><td>109</td><td>-</td><td>109</td><td>-</td><td>109</td><td>-</td><td>0</td><td>109</td><td>109</td><td>-</td><td>109</td><td>-</td><td>109</td><td>109</td><td>109</td><td>-</td><td>109</td><td>-</td><td>109</td><td>-</td><td>109</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Up" class="value">'Up'</code></td><td> </td><td>The Up Arrow key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-UpLeft" class="value">'UpLeft'</code></td><td> </td><td>The diagonal Up-Left Arrow key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-UpRight" class="value">'UpRight'</code></td><td> </td><td>The diagonal Up-Right Arrow key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Undo" class="value">'Undo'</code></td><td> </td><td>The Undo key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-VolumeDown" class="value">'VolumeDown'</code></td><td> </td><td>The Volume Down key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-VolumeMute" class="value">'VolumeMute'</code></td><td> </td><td>The Volume Mute key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-VolumeUp" class="value">'VolumeUp'</code></td><td> </td><td>The Volume Up key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Win" class="value">'Win'</code></td><td> </td><td>The Windows Logo key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Zoom" class="value">'Zoom'</code></td><td> </td><td>The Zoom key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Backspace" class="value">'Backspace'</code></td><td><code id="tbl-keyset-key-U-0008" class="value">'U+0008'</code></td><td>The Backspace (Back) key.</td><td>8</td><td>-</td><td>-</td><td>-</td><td>8</td><td>-</td><td>8</td><td>-</td><td>8</td><td>-</td><td>8</td><td>-</td><td>8</td><td>-</td><td>-</td><td>-</td><td>8</td><td>-</td><td>8</td><td>-</td><td>8</td><td>-</td><td>8</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Tab" class="value">'Tab'</code></td><td><code id="tbl-keyset-key-U-0009" class="value">'U+0009'</code></td><td>The Horizontal Tabulation (Tab) key.</td><td>9</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>9</td><td>-</td><td>9</td><td>-</td><td>-</td><td>-</td><td>9</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>9</td><td>-</td><td>9</td><td>-</td><td>-</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Cancel" class="value">'Cancel'</code></td><td><code id="tbl-keyset-key-U-0018" class="value">'U+0018'</code></td><td>The Cancel key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Esc" class="value">'Esc'</code></td><td><code id="tbl-keyset-key-U-001B" class="value">'U+001B'</code></td><td>The Escape (Esc) key.</td><td>27</td><td>-</td><td>27</td><td>-</td><td>27</td><td>-</td><td>27</td><td>-</td><td>27</td><td>-</td><td>27</td><td>-</td><td>27</td><td>-</td><td>-</td><td>-</td><td>27</td><td>-</td><td>27</td><td>-</td><td>27</td><td>-</td><td>27</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Spacebar" class="value">'Spacebar'</code></td><td><code id="tbl-keyset-key-U-0020" class="value">'U+0020'</code></td><td>The Space (Spacebar) key.</td><td>32</td><td>-</td><td>32</td><td>-</td><td>32</td><td>-</td><td>32</td><td>-</td><td>0</td><td>32</td><td>32</td><td>-</td><td>32</td><td>-</td><td>32</td><td>32</td><td>32</td><td>-</td><td>32</td><td>-</td><td>32</td><td>-</td><td>32</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-ExclamationChar" class="value">'!'</code></td><td><code id="tbl-keyset-key-Exclamation" class="value">'Exclamation'</code></td><td><code id="tbl-keyset-key-U-0021" class="value">'U+0021'</code></td><td>The Exclamation Mark (Factorial, Bang) key.</td><td>49</td><td>-</td><td>33</td><td>-</td><td>49</td><td>-</td><td>49</td><td>-</td><td>0</td><td>33</td><td>49</td><td>-</td><td>49</td><td>-</td><td>33</td><td>33</td><td>49</td><td>-</td><td>49</td><td>-</td><td>33</td><td>-</td><td>49</td><td>-</td></tr>
- <tr><td> " </td><td><code id="tbl-keyset-key-DoubleQuote" class="value">'DoubleQuote'</code></td><td><code id="tbl-keyset-key-U-0022" class="value">'U+0022'</code></td><td>The Quotation Mark (Quote Double) key. <em><strong>Note:</strong> May need to be escaped as an attribute value.</em></td><td>50</td><td>-</td><td>34</td><td>-</td><td>50</td><td>-</td><td>50</td><td>-</td><td>0</td><td>34</td><td>50</td><td>-</td><td>50</td><td>-</td><td>34</td><td>34</td><td>50</td><td>-</td><td>50</td><td>-</td><td>34</td><td>-</td><td>50</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-HashChar" class="value">'#'</code></td><td><code id="tbl-keyset-key-Hash" class="value">'Hash'</code></td><td><code id="tbl-keyset-key-U-0023" class="value">'U+0023'</code></td><td>The Number Sign (Pound Sign, Hash, Crosshatch, Octothorpe) key.</td><td>51</td><td>-</td><td>35</td><td>-</td><td>51</td><td>-</td><td>51</td><td>-</td><td>0</td><td>35</td><td>51</td><td>-</td><td>51</td><td>-</td><td>35</td><td>35</td><td>51</td><td>-</td><td>51</td><td>-</td><td>35</td><td>-</td><td>51</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-DollarChar" class="value">'$'</code></td><td><code id="tbl-keyset-key-Dollar" class="value">'Dollar'</code></td><td><code id="tbl-keyset-key-U-0024" class="value">'U+0024'</code></td><td>The Dollar Sign (milreis, escudo) key.</td><td>52</td><td>-</td><td>36</td><td>-</td><td>52</td><td>-</td><td>52</td><td>-</td><td>0</td><td>36</td><td>52</td><td>-</td><td>52</td><td>-</td><td>36</td><td>36</td><td>52</td><td>-</td><td>52</td><td>-</td><td>36</td><td>-</td><td>52</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-AmpersandChar" class="value">'&'</code></td><td><code id="tbl-keyset-key-Ampersand" class="value">'Ampersand'</code></td><td><code id="tbl-keyset-key-U-0026" class="value">'U+0026'</code></td><td>The Ampersand key.</td><td>54</td><td>-</td><td>38</td><td>-</td><td>54</td><td>-</td><td>54</td><td>-</td><td>0</td><td>38</td><td>54</td><td>-</td><td>54</td><td>-</td><td>38</td><td>38</td><td>54</td><td>-</td><td>54</td><td>-</td><td>38</td><td>-</td><td>54</td><td>-</td></tr>
- <tr><td> ' </td><td><code id="tbl-keyset-key-Apostrophe" class="value">'Apostrophe'</code></td><td><code id="tbl-keyset-key-U-0027" class="value">'U+0027'</code></td><td>The Apostrophe (Apostrophe-Quote, APL Quote) key. <em><strong>Note:</strong> May need to be escaped as an attribute value.</em></td><td>191</td><td>-</td><td>39</td><td>-</td><td>191</td><td>-</td><td>191</td><td>-</td><td>0</td><td>39</td><td>191</td><td>-</td><td>191</td><td>-</td><td>39</td><td>39</td><td>191</td><td>-</td><td>222</td><td>-</td><td>39</td><td>-</td><td>222</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-LeftParenChar" class="value">'('</code></td><td><code id="tbl-keyset-key-LeftParen" class="value">'LeftParen'</code></td><td><code id="tbl-keyset-key-U-0028" class="value">'U+0028'</code></td><td>The Left Parenthesis (Opening Parenthesis) key.</td><td>56</td><td>-</td><td>40</td><td>-</td><td>56</td><td>-</td><td>56</td><td>-</td><td>0</td><td>40</td><td>56</td><td>-</td><td>56</td><td>-</td><td>40</td><td>40</td><td>56</td><td>-</td><td>56</td><td>-</td><td>40</td><td>-</td><td>56</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-RightParenChar" class="value">')'</code></td><td><code id="tbl-keyset-key-RightParen" class="value">'RightParen'</code></td><td><code id="tbl-keyset-key-U-0029" class="value">'U+0029'</code></td><td>The Right Parenthesis (Closing Parenthesis) key.</td><td>57</td><td>-</td><td>41</td><td>-</td><td>57</td><td>-</td><td>57</td><td>-</td><td>0</td><td>41</td><td>57</td><td>-</td><td>57</td><td>-</td><td>41</td><td>41</td><td>57</td><td>-</td><td>57</td><td>-</td><td>41</td><td>-</td><td>57</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-AsteriskChar" class="value">'*'</code></td><td><code id="tbl-keyset-key-Asterisk" class="value">'Asterisk'</code></td><td><code id="tbl-keyset-key-U-002A" class="value">'U+002A'</code></td><td>The Asterisk (Star) key (in number pad).</td><td>106</td><td>-</td><td>42</td><td>-</td><td>106</td><td>-</td><td>106</td><td>-</td><td>0</td><td>42</td><td>106</td><td>-</td><td>106</td><td>-</td><td>42</td><td>42</td><td>106</td><td>-</td><td>42</td><td>-</td><td>42</td><td>-</td><td>42</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-PlusChar" class="value">'+'</code></td><td><code id="tbl-keyset-key-Plus" class="value">'Plus'</code></td><td><code id="tbl-keyset-key-U-002B" class="value">'U+002B'</code></td><td>The Plus Sign (Plus) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td><code id="tbl-keyset-key-PercentChar" class="value">'+'</code></td><td><code id="tbl-keyset-key-Percent" class="value">'Percent'</code></td><td><code id="tbl-keyset-key-U-0025" class="value">'U+0025'</code></td><td>The Percent key.</td><td>53</td><td>-</td><td>37</td><td>-</td><td>53</td><td>-</td><td>53</td><td>-</td><td>0</td><td>37</td><td>53</td><td>-</td><td>53</td><td>-</td><td>37</td><td>37</td><td>53</td><td>-</td><td>53</td><td>-</td><td>37</td><td>-</td><td>53</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-CommaChar" class="value">','</code></td><td><code id="tbl-keyset-key-Comma" class="value">'Comma'</code></td><td><code id="tbl-keyset-key-U-002C" class="value">'U+002C'</code></td><td>The Comma (decimal separator) sign key.</td><td>188</td><td>-</td><td>44</td><td>-</td><td>188</td><td>-</td><td>188</td><td>-</td><td>0</td><td>44</td><td>188</td><td>-</td><td>188</td><td>-</td><td>44</td><td>44</td><td>188</td><td>-</td><td>188</td><td>-</td><td>44</td><td>-</td><td>188</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-HyphenMinusChar" class="value">'-'</code></td><td><code id="tbl-keyset-key-HyphenMinus" class="value">'HyphenMinus'</code></td><td><code id="tbl-keyset-key-U-002D" class="value">'U+002D'</code></td><td>The Hyphen-minus (hyphen or minus sign) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td><code id="tbl-keyset-key-PeriodChar" class="value">'.'</code></td><td><code id="tbl-keyset-key-Period" class="value">'Period'</code></td><td><code id="tbl-keyset-key-U-002E" class="value">'U+002E'</code></td><td>The Full Stop (period, dot, decimal point) key.</td><td>190</td><td>-</td><td>46</td><td>-</td><td>190</td><td>-</td><td>190</td><td>-</td><td>0</td><td>46</td><td>190</td><td>-</td><td>190</td><td>-</td><td>46</td><td>46</td><td>190</td><td>-</td><td>190</td><td>-</td><td>46</td><td>-</td><td>190</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-SolidusChar" class="value">'/'</code></td><td><code id="tbl-keyset-key-Solidus" class="value">'Solidus'</code></td><td><code id="tbl-keyset-key-U-002F" class="value">'U+002F'</code></td><td>The Solidus (slash, virgule, shilling) key.</td><td>55</td><td>-</td><td>47</td><td>-</td><td>55</td><td>-</td><td>55</td><td>-</td><td>0</td><td>47</td><td>55</td><td>-</td><td>55</td><td>-</td><td>47</td><td>47</td><td>55</td><td>-</td><td>55</td><td>-</td><td>47</td><td>-</td><td>55</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-0" class="value">'0'</code></td><td> </td><td><code id="tbl-keyset-key-U-0030" class="value">'U+0030'</code></td><td>The Digit Zero key.</td><td>48</td><td>48</td><td>48</td><td>48</td><td>48</td><td>48</td><td>48</td><td>-</td><td>0</td><td>48</td><td>48</td><td>-</td><td>48</td><td>-</td><td>48</td><td>48</td><td>48</td><td>-</td><td>48</td><td>-</td><td>48</td><td>-</td><td>48</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-1" class="value">'1'</code></td><td> </td><td><code id="tbl-keyset-key-U-0031" class="value">'U+0031'</code></td><td>The Digit One key.</td><td>49</td><td>49</td><td>49</td><td>49</td><td>49</td><td>49</td><td>49</td><td>-</td><td>0</td><td>49</td><td>49</td><td>-</td><td>49</td><td>-</td><td>49</td><td>49</td><td>49</td><td>-</td><td>49</td><td>-</td><td>49</td><td>-</td><td>49</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-2" class="value">'2'</code></td><td> </td><td><code id="tbl-keyset-key-U-0032" class="value">'U+0032'</code></td><td>The Digit Two key.</td><td>50</td><td>50</td><td>50</td><td>50</td><td>50</td><td>50</td><td>50</td><td>-</td><td>0</td><td>50</td><td>50</td><td>-</td><td>50</td><td>-</td><td>50</td><td>50</td><td>50</td><td>-</td><td>50</td><td>-</td><td>50</td><td>-</td><td>50</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-3" class="value">'3'</code></td><td> </td><td><code id="tbl-keyset-key-U-0033" class="value">'U+0033'</code></td><td>The Digit Three key.</td><td>51</td><td>51</td><td>51</td><td>51</td><td>51</td><td>51</td><td>51</td><td>-</td><td>0</td><td>51</td><td>51</td><td>-</td><td>51</td><td>-</td><td>51</td><td>51</td><td>51</td><td>-</td><td>51</td><td>-</td><td>51</td><td>-</td><td>51</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-4" class="value">'4'</code></td><td> </td><td><code id="tbl-keyset-key-U-0034" class="value">'U+0034'</code></td><td>The Digit Four key.</td><td>52</td><td>52</td><td>52</td><td>52</td><td>52</td><td>52</td><td>52</td><td>-</td><td>0</td><td>52</td><td>52</td><td>-</td><td>52</td><td>-</td><td>52</td><td>52</td><td>52</td><td>-</td><td>52</td><td>-</td><td>52</td><td>-</td><td>52</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-5" class="value">'5'</code></td><td> </td><td><code id="tbl-keyset-key-U-0035" class="value">'U+0035'</code></td><td>The Digit Five key.</td><td>53</td><td>53</td><td>53</td><td>53</td><td>53</td><td>53</td><td>53</td><td>-</td><td>0</td><td>53</td><td>53</td><td>-</td><td>53</td><td>-</td><td>53</td><td>53</td><td>53</td><td>-</td><td>53</td><td>-</td><td>53</td><td>-</td><td>53</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-6" class="value">'6'</code></td><td> </td><td><code id="tbl-keyset-key-U-0036" class="value">'U+0036'</code></td><td>The Digit Six key.</td><td>54</td><td>54</td><td>54</td><td>54</td><td>54</td><td>54</td><td>54</td><td>-</td><td>0</td><td>54</td><td>54</td><td>-</td><td>54</td><td>-</td><td>54</td><td>54</td><td>54</td><td>-</td><td>54</td><td>-</td><td>54</td><td>-</td><td>54</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-7" class="value">'7'</code></td><td> </td><td><code id="tbl-keyset-key-U-0037" class="value">'U+0037'</code></td><td>The Digit Seven key.</td><td>55</td><td>55</td><td>55</td><td>55</td><td>55</td><td>55</td><td>55</td><td>-</td><td>0</td><td>55</td><td>55</td><td>-</td><td>55</td><td>-</td><td>55</td><td>55</td><td>55</td><td>-</td><td>55</td><td>-</td><td>55</td><td>-</td><td>55</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-8" class="value">'8'</code></td><td> </td><td><code id="tbl-keyset-key-U-0038" class="value">'U+0038'</code></td><td>The Digit Eight key.</td><td>56</td><td>56</td><td>56</td><td>56</td><td>56</td><td>56</td><td>56</td><td>-</td><td>0</td><td>56</td><td>56</td><td>-</td><td>56</td><td>-</td><td>56</td><td>56</td><td>56</td><td>-</td><td>56</td><td>-</td><td>56</td><td>-</td><td>56</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-9" class="value">'9'</code></td><td> </td><td><code id="tbl-keyset-key-U-0039" class="value">'U+0039'</code></td><td>The Digit Nine key.</td><td>57</td><td>57</td><td>57</td><td>57</td><td>57</td><td>57</td><td>57</td><td>-</td><td>0</td><td>57</td><td>57</td><td>-</td><td>57</td><td>-</td><td>57</td><td>57</td><td>57</td><td>-</td><td>57</td><td>-</td><td>57</td><td>-</td><td>57</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-ColonChar" class="value">':'</code></td><td><code id="tbl-keyset-key-Colon" class="value">'Colon'</code></td><td><code id="tbl-keyset-key-U-003A" class="value">'U+003A'</code></td><td>The Colon key.</td><td>190</td><td>-</td><td>58</td><td>-</td><td>190</td><td>-</td><td>190</td><td>-</td><td>0</td><td>58</td><td>190</td><td>-</td><td>190</td><td>-</td><td>58</td><td>58</td><td>190</td><td>-</td><td>190</td><td>-</td><td>58</td><td>-</td><td>190</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-SemicolonChar" class="value">';'</code></td><td><code id="tbl-keyset-key-Semicolon" class="value">'Semicolon'</code></td><td><code id="tbl-keyset-key-U-003B" class="value">'U+003B'</code></td><td>The Semicolon key.</td><td>188</td><td>-</td><td>59</td><td>-</td><td>188</td><td>-</td><td>188</td><td>-</td><td>0</td><td>59</td><td>188</td><td>-</td><td>188</td><td>-</td><td>59</td><td>59</td><td>188</td><td>-</td><td>188</td><td>-</td><td>59</td><td>-</td><td>188</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-LessThanChar" class="value">'<'</code></td><td><code id="tbl-keyset-key-LessThan" class="value">'LessThan'</code></td><td><code id="tbl-keyset-key-U-003C" class="value">'U+003C'</code></td><td>The Less-Than Sign key (<).</td><td>188</td><td>-</td><td>60</td><td>-</td><td>188</td><td>-</td><td>188</td><td>-</td><td>0</td><td>60</td><td>188</td><td>-</td><td>188</td><td>-</td><td>60</td><td>60</td><td>188</td><td>-</td><td>188</td><td>-</td><td>60</td><td>-</td><td>188</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-EqualsChar" class="value">'='</code></td><td><code id="tbl-keyset-key-Equals" class="value">'Equals'</code></td><td><code id="tbl-keyset-key-U-003D" class="value">'U+003D'</code></td><td>The Equals Sign key.</td><td>48</td><td>-</td><td>61</td><td>-</td><td>48</td><td>-</td><td>48</td><td>-</td><td>0</td><td>61</td><td>48</td><td>-</td><td>48</td><td>-</td><td>61</td><td>61</td><td>48</td><td>-</td><td>48</td><td>-</td><td>61</td><td>-</td><td>48</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-GreaterThanChar" class="value">'>'</code></td><td><code id="tbl-keyset-key-GreaterThan" class="value">'GreaterThan'</code></td><td><code id="tbl-keyset-key-U-003E" class="value">'U+003E'</code></td><td>The Greater-Than Sign key (>).</td><td>226</td><td>-</td><td>62</td><td>-</td><td>226</td><td>-</td><td>226</td><td>-</td><td>0</td><td>62</td><td>226</td><td>-</td><td>226</td><td>-</td><td>62</td><td>62</td><td>226</td><td>-</td><td>188</td><td>-</td><td>62</td><td>-</td><td>188</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-QuestionMarkChar" class="value">'?'</code></td><td><code id="tbl-keyset-key-QuestionMark" class="value">'QuestionMark'</code></td><td><code id="tbl-keyset-key-U-003F" class="value">'U+003F'</code></td><td>The Question Mark key.</td><td>191</td><td>-</td><td>63</td><td>-</td><td>191</td><td>-</td><td>107</td><td>-</td><td>0</td><td>63</td><td>107</td><td>-</td><td>191</td><td>-</td><td>63</td><td>63</td><td>191</td><td>-</td><td>61</td><td>-</td><td>63</td><td>-</td><td>61</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-AtChar" class="value">'@'</code></td><td><code id="tbl-keyset-key-At" class="value">'At'</code></td><td><code id="tbl-keyset-key-U-0040" class="value">'U+0040'</code></td><td>The Commercial At key.</td><td>50</td><td>-</td><td>64</td><td>-</td><td>50</td><td>-</td><td>50</td><td>-</td><td>0</td><td>64</td><td>50</td><td>-</td><td>50</td><td>-</td><td>64</td><td>64</td><td>50</td><td>-</td><td>50</td><td>-</td><td>64</td><td>-</td><td>50</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-A" class="value">'A'</code></td><td> </td><td><code id="tbl-keyset-key-U-0041" class="value">'U+0041'</code></td><td>The Latin Capital Letter A key.</td><td>65</td><td>65</td><td>65</td><td>65</td><td>65</td><td>65</td><td>65</td><td>-</td><td>0</td><td>65</td><td>65</td><td>-</td><td>65</td><td>-</td><td>65</td><td>65</td><td>65</td><td>-</td><td>65</td><td>-</td><td>65</td><td>-</td><td>65</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-B" class="value">'B'</code></td><td> </td><td><code id="tbl-keyset-key-U-0042" class="value">'U+0042'</code></td><td>The Latin Capital Letter B key.</td><td>66</td><td>66</td><td>66</td><td>66</td><td>66</td><td>66</td><td>66</td><td>-</td><td>0</td><td>66</td><td>66</td><td>-</td><td>66</td><td>-</td><td>66</td><td>66</td><td>66</td><td>-</td><td>66</td><td>-</td><td>66</td><td>-</td><td>66</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-C" class="value">'C'</code></td><td> </td><td><code id="tbl-keyset-key-U-0043" class="value">'U+0043'</code></td><td>The Latin Capital Letter C key.</td><td>67</td><td>67</td><td>67</td><td>67</td><td>67</td><td>67</td><td>67</td><td>-</td><td>0</td><td>67</td><td>67</td><td>-</td><td>67</td><td>-</td><td>67</td><td>67</td><td>67</td><td>-</td><td>67</td><td>-</td><td>67</td><td>-</td><td>67</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-D" class="value">'D'</code></td><td> </td><td><code id="tbl-keyset-key-U-0044" class="value">'U+0044'</code></td><td>The Latin Capital Letter D key.</td><td>68</td><td>68</td><td>68</td><td>68</td><td>68</td><td>68</td><td>68</td><td>-</td><td>0</td><td>68</td><td>68</td><td>-</td><td>68</td><td>-</td><td>68</td><td>68</td><td>68</td><td>-</td><td>68</td><td>-</td><td>68</td><td>-</td><td>68</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-E" class="value">'E'</code></td><td> </td><td><code id="tbl-keyset-key-U-0045" class="value">'U+0045'</code></td><td>The Latin Capital Letter E key.</td><td>69</td><td>69</td><td>69</td><td>69</td><td>69</td><td>69</td><td>69</td><td>-</td><td>0</td><td>69</td><td>69</td><td>-</td><td>69</td><td>-</td><td>69</td><td>69</td><td>69</td><td>-</td><td>69</td><td>-</td><td>69</td><td>-</td><td>69</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-F" class="value">'F'</code></td><td> </td><td><code id="tbl-keyset-key-U-0046" class="value">'U+0046'</code></td><td>The Latin Capital Letter F key.</td><td>70</td><td>70</td><td>70</td><td>70</td><td>70</td><td>70</td><td>70</td><td>-</td><td>0</td><td>70</td><td>70</td><td>-</td><td>70</td><td>-</td><td>70</td><td>70</td><td>70</td><td>-</td><td>70</td><td>-</td><td>70</td><td>-</td><td>70</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-G" class="value">'G'</code></td><td> </td><td><code id="tbl-keyset-key-U-0047" class="value">'U+0047'</code></td><td>The Latin Capital Letter G key.</td><td>71</td><td>71</td><td>71</td><td>71</td><td>71</td><td>71</td><td>71</td><td>-</td><td>0</td><td>71</td><td>71</td><td>-</td><td>71</td><td>-</td><td>71</td><td>71</td><td>71</td><td>-</td><td>71</td><td>-</td><td>71</td><td>-</td><td>71</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-H" class="value">'H'</code></td><td> </td><td><code id="tbl-keyset-key-U-0048" class="value">'U+0048'</code></td><td>The Latin Capital Letter H key.</td><td>72</td><td>72</td><td>72</td><td>72</td><td>72</td><td>72</td><td>72</td><td>-</td><td>0</td><td>72</td><td>72</td><td>-</td><td>72</td><td>-</td><td>72</td><td>72</td><td>72</td><td>-</td><td>72</td><td>-</td><td>72</td><td>-</td><td>72</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-I" class="value">'I'</code></td><td> </td><td><code id="tbl-keyset-key-U-0049" class="value">'U+0049'</code></td><td>The Latin Capital Letter I key.</td><td>73</td><td>73</td><td>73</td><td>73</td><td>73</td><td>73</td><td>73</td><td>-</td><td>0</td><td>73</td><td>73</td><td>-</td><td>73</td><td>-</td><td>73</td><td>73</td><td>73</td><td>-</td><td>73</td><td>-</td><td>73</td><td>-</td><td>73</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-J" class="value">'J'</code></td><td> </td><td><code id="tbl-keyset-key-U-004A" class="value">'U+004A'</code></td><td>The Latin Capital Letter J key.</td><td>74</td><td>74</td><td>74</td><td>74</td><td>74</td><td>74</td><td>74</td><td>-</td><td>0</td><td>74</td><td>74</td><td>-</td><td>74</td><td>-</td><td>74</td><td>74</td><td>74</td><td>-</td><td>74</td><td>-</td><td>74</td><td>-</td><td>74</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-K" class="value">'K'</code></td><td> </td><td><code id="tbl-keyset-key-U-004B" class="value">'U+004B'</code></td><td>The Latin Capital Letter K key.</td><td>75</td><td>75</td><td>75</td><td>75</td><td>75</td><td>75</td><td>75</td><td>-</td><td>0</td><td>75</td><td>75</td><td>-</td><td>75</td><td>-</td><td>75</td><td>75</td><td>75</td><td>-</td><td>75</td><td>-</td><td>75</td><td>-</td><td>75</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-L" class="value">'L'</code></td><td> </td><td><code id="tbl-keyset-key-U-004C" class="value">'U+004C'</code></td><td>The Latin Capital Letter L key.</td><td>76</td><td>76</td><td>76</td><td>76</td><td>76</td><td>76</td><td>76</td><td>-</td><td>0</td><td>76</td><td>76</td><td>-</td><td>76</td><td>-</td><td>76</td><td>76</td><td>76</td><td>-</td><td>76</td><td>-</td><td>76</td><td>-</td><td>76</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-M" class="value">'M'</code></td><td> </td><td><code id="tbl-keyset-key-U-004D" class="value">'U+004D'</code></td><td>The Latin Capital Letter M key.</td><td>77</td><td>77</td><td>77</td><td>77</td><td>77</td><td>77</td><td>77</td><td>-</td><td>0</td><td>77</td><td>77</td><td>-</td><td>77</td><td>-</td><td>77</td><td>77</td><td>77</td><td>-</td><td>77</td><td>-</td><td>77</td><td>-</td><td>77</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-N" class="value">'N'</code></td><td> </td><td><code id="tbl-keyset-key-U-004E" class="value">'U+004E'</code></td><td>The Latin Capital Letter N key.</td><td>78</td><td>78</td><td>78</td><td>78</td><td>78</td><td>78</td><td>78</td><td>-</td><td>0</td><td>78</td><td>78</td><td>-</td><td>78</td><td>-</td><td>78</td><td>78</td><td>78</td><td>-</td><td>78</td><td>-</td><td>78</td><td>-</td><td>78</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-O" class="value">'O'</code></td><td> </td><td><code id="tbl-keyset-key-U-004F" class="value">'U+004F'</code></td><td>The Latin Capital Letter O key.</td><td>79</td><td>79</td><td>79</td><td>79</td><td>79</td><td>79</td><td>79</td><td>-</td><td>0</td><td>79</td><td>79</td><td>-</td><td>79</td><td>-</td><td>79</td><td>79</td><td>79</td><td>-</td><td>79</td><td>-</td><td>79</td><td>-</td><td>79</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-P" class="value">'P'</code></td><td> </td><td><code id="tbl-keyset-key-U-0050" class="value">'U+0050'</code></td><td>The Latin Capital Letter P key.</td><td>80</td><td>80</td><td>80</td><td>80</td><td>80</td><td>80</td><td>80</td><td>-</td><td>0</td><td>80</td><td>80</td><td>-</td><td>80</td><td>-</td><td>80</td><td>80</td><td>80</td><td>-</td><td>80</td><td>-</td><td>80</td><td>-</td><td>80</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-Q" class="value">'Q'</code></td><td> </td><td><code id="tbl-keyset-key-U-0051" class="value">'U+0051'</code></td><td>The Latin Capital Letter Q key.</td><td>81</td><td>81</td><td>81</td><td>81</td><td>81</td><td>81</td><td>81</td><td>-</td><td>0</td><td>81</td><td>81</td><td>-</td><td>81</td><td>-</td><td>81</td><td>81</td><td>81</td><td>-</td><td>81</td><td>-</td><td>81</td><td>-</td><td>81</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-R" class="value">'R'</code></td><td> </td><td><code id="tbl-keyset-key-U-0052" class="value">'U+0052'</code></td><td>The Latin Capital Letter R key.</td><td>82</td><td>82</td><td>82</td><td>82</td><td>82</td><td>82</td><td>82</td><td>-</td><td>0</td><td>82</td><td>82</td><td>-</td><td>82</td><td>-</td><td>82</td><td>82</td><td>82</td><td>-</td><td>82</td><td>-</td><td>82</td><td>-</td><td>82</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-S" class="value">'S'</code></td><td> </td><td><code id="tbl-keyset-key-U-0053" class="value">'U+0053'</code></td><td>The Latin Capital Letter S key.</td><td>83</td><td>83</td><td>83</td><td>83</td><td>83</td><td>83</td><td>83</td><td>-</td><td>0</td><td>83</td><td>83</td><td>-</td><td>83</td><td>-</td><td>83</td><td>83</td><td>83</td><td>-</td><td>83</td><td>-</td><td>83</td><td>-</td><td>83</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-T" class="value">'T'</code></td><td> </td><td><code id="tbl-keyset-key-U-0054" class="value">'U+0054'</code></td><td>The Latin Capital Letter T key.</td><td>84</td><td>84</td><td>84</td><td>84</td><td>84</td><td>84</td><td>84</td><td>-</td><td>0</td><td>84</td><td>84</td><td>-</td><td>84</td><td>-</td><td>84</td><td>84</td><td>84</td><td>-</td><td>84</td><td>-</td><td>84</td><td>-</td><td>84</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-U" class="value">'U'</code></td><td> </td><td><code id="tbl-keyset-key-U-0055" class="value">'U+0055'</code></td><td>The Latin Capital Letter U key.</td><td>85</td><td>85</td><td>85</td><td>85</td><td>85</td><td>85</td><td>85</td><td>-</td><td>0</td><td>85</td><td>85</td><td>-</td><td>85</td><td>-</td><td>85</td><td>85</td><td>85</td><td>-</td><td>85</td><td>-</td><td>85</td><td>-</td><td>85</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-V" class="value">'V'</code></td><td> </td><td><code id="tbl-keyset-key-U-0056" class="value">'U+0056'</code></td><td>The Latin Capital Letter V key.</td><td>86</td><td>86</td><td>86</td><td>86</td><td>86</td><td>86</td><td>86</td><td>-</td><td>0</td><td>86</td><td>86</td><td>-</td><td>86</td><td>-</td><td>86</td><td>86</td><td>86</td><td>-</td><td>86</td><td>-</td><td>86</td><td>-</td><td>86</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-W" class="value">'W'</code></td><td> </td><td><code id="tbl-keyset-key-U-0057" class="value">'U+0057'</code></td><td>The Latin Capital Letter W key.</td><td>87</td><td>87</td><td>87</td><td>87</td><td>87</td><td>87</td><td>87</td><td>-</td><td>0</td><td>87</td><td>87</td><td>-</td><td>87</td><td>-</td><td>87</td><td>87</td><td>87</td><td>-</td><td>87</td><td>-</td><td>87</td><td>-</td><td>87</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-X" class="value">'X'</code></td><td> </td><td><code id="tbl-keyset-key-U-0058" class="value">'U+0058'</code></td><td>The Latin Capital Letter X key.</td><td>88</td><td>88</td><td>88</td><td>88</td><td>88</td><td>88</td><td>88</td><td>-</td><td>0</td><td>88</td><td>88</td><td>-</td><td>88</td><td>-</td><td>88</td><td>88</td><td>88</td><td>-</td><td>88</td><td>-</td><td>88</td><td>-</td><td>88</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-Y" class="value">'Y'</code></td><td> </td><td><code id="tbl-keyset-key-U-0059" class="value">'U+0059'</code></td><td>The Latin Capital Letter Y key.</td><td>89</td><td>89</td><td>89</td><td>89</td><td>89</td><td>89</td><td>89</td><td>-</td><td>0</td><td>89</td><td>89</td><td>-</td><td>89</td><td>-</td><td>89</td><td>89</td><td>89</td><td>-</td><td>89</td><td>-</td><td>89</td><td>-</td><td>89</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-Z" class="value">'Z'</code></td><td> </td><td><code id="tbl-keyset-key-U-005A" class="value">'U+005A'</code></td><td>The Latin Capital Letter Z key.</td><td>90</td><td>90</td><td>90</td><td>90</td><td>90</td><td>90</td><td>90</td><td>-</td><td>0</td><td>90</td><td>90</td><td>-</td><td>90</td><td>-</td><td>90</td><td>90</td><td>90</td><td>-</td><td>90</td><td>-</td><td>90</td><td>-</td><td>90</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-a" class="value">'a'</code></td><td> </td><td><code id="tbl-keyset-key-U-0061" class="value">'U+0061'</code></td><td>The Latin Miniscule Letter a key.</td><td>65</td><td>65</td><td>65</td><td>65</td><td>65</td><td>65</td><td>65</td><td>-</td><td>0</td><td>97</td><td>65</td><td>-</td><td>65</td><td>-</td><td>97</td><td>97</td><td>65</td><td>-</td><td>65</td><td>-</td><td>97</td><td>-</td><td>65</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-b" class="value">'b'</code></td><td> </td><td><code id="tbl-keyset-key-U-0062" class="value">'U+0062'</code></td><td>The Latin Miniscule Letter b key.</td><td>66</td><td>66</td><td>66</td><td>66</td><td>66</td><td>66</td><td>66</td><td>-</td><td>0</td><td>98</td><td>66</td><td>-</td><td>66</td><td>-</td><td>98</td><td>98</td><td>66</td><td>-</td><td>66</td><td>-</td><td>98</td><td>-</td><td>66</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-c" class="value">'c'</code></td><td> </td><td><code id="tbl-keyset-key-U-0063" class="value">'U+0063'</code></td><td>The Latin Miniscule Letter c key.</td><td>67</td><td>67</td><td>67</td><td>67</td><td>67</td><td>67</td><td>67</td><td>-</td><td>0</td><td>99</td><td>67</td><td>-</td><td>67</td><td>-</td><td>99</td><td>99</td><td>67</td><td>-</td><td>67</td><td>-</td><td>99</td><td>-</td><td>67</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-d" class="value">'d'</code></td><td> </td><td><code id="tbl-keyset-key-U-0064" class="value">'U+0064'</code></td><td>The Latin Miniscule Letter d key.</td><td>68</td><td>68</td><td>68</td><td>68</td><td>68</td><td>68</td><td>68</td><td>-</td><td>0</td><td>100</td><td>68</td><td>-</td><td>68</td><td>-</td><td>100</td><td>100</td><td>68</td><td>-</td><td>68</td><td>-</td><td>100</td><td>-</td><td>68</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-e" class="value">'e'</code></td><td> </td><td><code id="tbl-keyset-key-U-0065" class="value">'U+0065'</code></td><td>The Latin Miniscule Letter e key.</td><td>69</td><td>69</td><td>69</td><td>69</td><td>69</td><td>69</td><td>69</td><td>-</td><td>0</td><td>101</td><td>69</td><td>-</td><td>69</td><td>-</td><td>101</td><td>101</td><td>69</td><td>-</td><td>69</td><td>-</td><td>101</td><td>-</td><td>69</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-f" class="value">'f'</code></td><td> </td><td><code id="tbl-keyset-key-U-0066" class="value">'U+0066'</code></td><td>The Latin Miniscule Letter f key.</td><td>70</td><td>70</td><td>70</td><td>70</td><td>70</td><td>70</td><td>70</td><td>-</td><td>0</td><td>102</td><td>70</td><td>-</td><td>70</td><td>-</td><td>102</td><td>102</td><td>70</td><td>-</td><td>70</td><td>-</td><td>102</td><td>-</td><td>70</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-g" class="value">'g'</code></td><td> </td><td><code id="tbl-keyset-key-U-0067" class="value">'U+0067'</code></td><td>The Latin Miniscule Letter g key.</td><td>71</td><td>71</td><td>71</td><td>71</td><td>71</td><td>71</td><td>71</td><td>-</td><td>0</td><td>103</td><td>71</td><td>-</td><td>71</td><td>-</td><td>103</td><td>103</td><td>71</td><td>-</td><td>71</td><td>-</td><td>103</td><td>-</td><td>71</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-h" class="value">'h'</code></td><td> </td><td><code id="tbl-keyset-key-U-0068" class="value">'U+0068'</code></td><td>The Latin Miniscule Letter h key.</td><td>72</td><td>72</td><td>72</td><td>72</td><td>72</td><td>72</td><td>72</td><td>-</td><td>0</td><td>104</td><td>72</td><td>-</td><td>72</td><td>-</td><td>104</td><td>104</td><td>72</td><td>-</td><td>72</td><td>-</td><td>104</td><td>-</td><td>72</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-i" class="value">'i'</code></td><td> </td><td><code id="tbl-keyset-key-U-0069" class="value">'U+0069'</code></td><td>The Latin Miniscule Letter i key.</td><td>73</td><td>73</td><td>73</td><td>73</td><td>73</td><td>73</td><td>73</td><td>-</td><td>0</td><td>105</td><td>73</td><td>-</td><td>73</td><td>-</td><td>105</td><td>105</td><td>73</td><td>-</td><td>73</td><td>-</td><td>105</td><td>-</td><td>73</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-j" class="value">'j'</code></td><td> </td><td><code id="tbl-keyset-key-U-006A" class="value">'U+006A'</code></td><td>The Latin Miniscule Letter j key.</td><td>74</td><td>74</td><td>74</td><td>74</td><td>74</td><td>74</td><td>74</td><td>-</td><td>0</td><td>106</td><td>74</td><td>-</td><td>74</td><td>-</td><td>106</td><td>106</td><td>74</td><td>-</td><td>74</td><td>-</td><td>106</td><td>-</td><td>74</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-k" class="value">'k'</code></td><td> </td><td><code id="tbl-keyset-key-U-006B" class="value">'U+006B'</code></td><td>The Latin Miniscule Letter k key.</td><td>75</td><td>75</td><td>75</td><td>75</td><td>75</td><td>75</td><td>75</td><td>-</td><td>0</td><td>107</td><td>75</td><td>-</td><td>75</td><td>-</td><td>107</td><td>107</td><td>75</td><td>-</td><td>75</td><td>-</td><td>107</td><td>-</td><td>75</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-l" class="value">'l'</code></td><td> </td><td><code id="tbl-keyset-key-U-006C" class="value">'U+006C'</code></td><td>The Latin Miniscule Letter l key.</td><td>76</td><td>76</td><td>76</td><td>76</td><td>76</td><td>76</td><td>76</td><td>-</td><td>0</td><td>108</td><td>76</td><td>-</td><td>76</td><td>-</td><td>108</td><td>108</td><td>76</td><td>-</td><td>76</td><td>-</td><td>108</td><td>-</td><td>76</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-m" class="value">'m'</code></td><td> </td><td><code id="tbl-keyset-key-U-006D" class="value">'U+006D'</code></td><td>The Latin Miniscule Letter m key.</td><td>77</td><td>77</td><td>77</td><td>77</td><td>77</td><td>77</td><td>77</td><td>-</td><td>0</td><td>109</td><td>77</td><td>-</td><td>77</td><td>-</td><td>109</td><td>109</td><td>77</td><td>-</td><td>77</td><td>-</td><td>109</td><td>-</td><td>77</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-n" class="value">'n'</code></td><td> </td><td><code id="tbl-keyset-key-U-006E" class="value">'U+006E'</code></td><td>The Latin Miniscule Letter n key.</td><td>78</td><td>78</td><td>78</td><td>78</td><td>78</td><td>78</td><td>78</td><td>-</td><td>0</td><td>110</td><td>78</td><td>-</td><td>78</td><td>-</td><td>110</td><td>110</td><td>78</td><td>-</td><td>78</td><td>-</td><td>110</td><td>-</td><td>78</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-o" class="value">'o'</code></td><td> </td><td><code id="tbl-keyset-key-U-006F" class="value">'U+006F'</code></td><td>The Latin Miniscule Letter o key.</td><td>79</td><td>79</td><td>79</td><td>79</td><td>79</td><td>79</td><td>79</td><td>-</td><td>0</td><td>111</td><td>79</td><td>-</td><td>79</td><td>-</td><td>111</td><td>111</td><td>79</td><td>-</td><td>79</td><td>-</td><td>111</td><td>-</td><td>79</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-p" class="value">'p'</code></td><td> </td><td><code id="tbl-keyset-key-U-0070" class="value">'U+0070'</code></td><td>The Latin Miniscule Letter p key.</td><td>80</td><td>80</td><td>80</td><td>80</td><td>80</td><td>80</td><td>80</td><td>-</td><td>0</td><td>112</td><td>80</td><td>-</td><td>80</td><td>-</td><td>112</td><td>112</td><td>80</td><td>-</td><td>80</td><td>-</td><td>112</td><td>-</td><td>80</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-q" class="value">'q'</code></td><td> </td><td><code id="tbl-keyset-key-U-0071" class="value">'U+0071'</code></td><td>The Latin Miniscule Letter q key.</td><td>81</td><td>81</td><td>81</td><td>81</td><td>81</td><td>81</td><td>81</td><td>-</td><td>0</td><td>113</td><td>81</td><td>-</td><td>81</td><td>-</td><td>113</td><td>113</td><td>81</td><td>-</td><td>81</td><td>-</td><td>113</td><td>-</td><td>81</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-r" class="value">'r'</code></td><td> </td><td><code id="tbl-keyset-key-U-0072" class="value">'U+0072'</code></td><td>The Latin Miniscule Letter r key.</td><td>82</td><td>82</td><td>82</td><td>82</td><td>82</td><td>82</td><td>82</td><td>-</td><td>0</td><td>114</td><td>82</td><td>-</td><td>82</td><td>-</td><td>114</td><td>114</td><td>82</td><td>-</td><td>82</td><td>-</td><td>114</td><td>-</td><td>82</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-s" class="value">'s'</code></td><td> </td><td><code id="tbl-keyset-key-U-0073" class="value">'U+0073'</code></td><td>The Latin Miniscule Letter s key.</td><td>83</td><td>83</td><td>83</td><td>83</td><td>83</td><td>83</td><td>83</td><td>-</td><td>0</td><td>115</td><td>83</td><td>-</td><td>83</td><td>-</td><td>115</td><td>115</td><td>83</td><td>-</td><td>83</td><td>-</td><td>115</td><td>-</td><td>83</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-t" class="value">'t'</code></td><td> </td><td><code id="tbl-keyset-key-U-0074" class="value">'U+0074'</code></td><td>The Latin Miniscule Letter t key.</td><td>84</td><td>84</td><td>84</td><td>84</td><td>84</td><td>84</td><td>84</td><td>-</td><td>0</td><td>116</td><td>84</td><td>-</td><td>84</td><td>-</td><td>116</td><td>116</td><td>84</td><td>-</td><td>84</td><td>-</td><td>116</td><td>-</td><td>84</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-u" class="value">'u'</code></td><td> </td><td><code id="tbl-keyset-key-U-0075" class="value">'U+0075'</code></td><td>The Latin Miniscule Letter u key.</td><td>85</td><td>85</td><td>85</td><td>85</td><td>85</td><td>85</td><td>85</td><td>-</td><td>0</td><td>117</td><td>85</td><td>-</td><td>85</td><td>-</td><td>117</td><td>117</td><td>85</td><td>-</td><td>85</td><td>-</td><td>117</td><td>-</td><td>85</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-v" class="value">'v'</code></td><td> </td><td><code id="tbl-keyset-key-U-0076" class="value">'U+0076'</code></td><td>The Latin Miniscule Letter v key.</td><td>86</td><td>86</td><td>86</td><td>86</td><td>86</td><td>86</td><td>86</td><td>-</td><td>0</td><td>118</td><td>86</td><td>-</td><td>86</td><td>-</td><td>118</td><td>118</td><td>86</td><td>-</td><td>86</td><td>-</td><td>118</td><td>-</td><td>86</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-w" class="value">'w'</code></td><td> </td><td><code id="tbl-keyset-key-U-0077" class="value">'U+0077'</code></td><td>The Latin Miniscule Letter w key.</td><td>87</td><td>87</td><td>87</td><td>87</td><td>87</td><td>87</td><td>87</td><td>-</td><td>0</td><td>119</td><td>87</td><td>-</td><td>87</td><td>-</td><td>119</td><td>119</td><td>87</td><td>-</td><td>87</td><td>-</td><td>119</td><td>-</td><td>87</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-x" class="value">'x'</code></td><td> </td><td><code id="tbl-keyset-key-U-0078" class="value">'U+0078'</code></td><td>The Latin Miniscule Letter x key.</td><td>88</td><td>88</td><td>88</td><td>88</td><td>88</td><td>88</td><td>88</td><td>-</td><td>0</td><td>120</td><td>88</td><td>-</td><td>88</td><td>-</td><td>120</td><td>120</td><td>88</td><td>-</td><td>88</td><td>-</td><td>120</td><td>-</td><td>88</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-y" class="value">'y'</code></td><td> </td><td><code id="tbl-keyset-key-U-0079" class="value">'U+0079'</code></td><td>The Latin Miniscule Letter y key.</td><td>89</td><td>89</td><td>89</td><td>89</td><td>89</td><td>89</td><td>89</td><td>-</td><td>0</td><td>121</td><td>89</td><td>-</td><td>89</td><td>-</td><td>121</td><td>121</td><td>89</td><td>-</td><td>89</td><td>-</td><td>121</td><td>-</td><td>89</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-z" class="value">'z'</code></td><td> </td><td><code id="tbl-keyset-key-U-007A" class="value">'U+007A'</code></td><td>The Latin Miniscule Letter z key.</td><td>90</td><td>90</td><td>90</td><td>90</td><td>90</td><td>90</td><td>90</td><td>-</td><td>0</td><td>122</td><td>90</td><td>-</td><td>90</td><td>-</td><td>122</td><td>122</td><td>90</td><td>-</td><td>90</td><td>-</td><td>122</td><td>-</td><td>90</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-LeftSquareBracketChar" class="value">'['</code></td><td><code id="tbl-keyset-key-LeftSquareBracket" class="value">'LeftSquareBracket'</code></td><td><code id="tbl-keyset-key-U-005B" class="value">'U+005B'</code></td><td>The Left Square Bracket (Opening Square Bracket) key.</td><td>56</td><td>-</td><td>91</td><td>-</td><td>56</td><td>-</td><td>56</td><td>-</td><td>0</td><td>91</td><td>56</td><td>-</td><td>56</td><td>-</td><td>91</td><td>91</td><td>56</td><td>-</td><td>56</td><td>-</td><td>91</td><td>-</td><td>56</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-BackslashChar" class="value">'\'</code></td><td><code id="tbl-keyset-key-Backslash" class="value">'Backslash'</code></td><td><code id="tbl-keyset-key-U-005C" class="value">'U+005C'</code></td><td>The Reverse Solidus (Backslash) key.</td><td>187</td><td>-</td><td>92</td><td>-</td><td>187</td><td>-</td><td>107</td><td>-</td><td>92</td><td>-</td><td>107</td><td>-</td><td>187</td><td>-</td><td>92</td><td>92</td><td>187</td><td>-</td><td>161</td><td>-</td><td>92</td><td>-</td><td>161</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-RightSquareBracketChar" class="value">']'</code></td><td><code id="tbl-keyset-key-RightSquareBracket" class="value">'RightSquareBracket'</code></td><td><code id="tbl-keyset-key-U-005D" class="value">'U+005D'</code></td><td>The Right Square Bracket (Closing Square Bracket) key.</td><td>57</td><td>-</td><td>93</td><td>-</td><td>57</td><td>-</td><td>57</td><td>-</td><td>0</td><td>93</td><td>57</td><td>-</td><td>57</td><td>-</td><td>93</td><td>93</td><td>57</td><td>-</td><td>57</td><td>-</td><td>93</td><td>-</td><td>57</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-CircumflexChar" class="value">'^'</code></td><td><code id="tbl-keyset-key-Circumflex" class="value">'Circumflex'</code></td><td><code id="tbl-keyset-key-U-005E" class="value">'U+005E'</code></td><td>The Circumflex Accent key.</td><td>186</td><td>-</td><td>94</td><td>-</td><td>186</td><td>-</td><td>59</td><td>-</td><td>0</td><td>94</td><td>59</td><td>-</td><td>186</td><td>-</td><td>94</td><td>94</td><td>186</td><td>-</td><td>168</td><td>-</td><td>94</td><td>-</td><td>168</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-UnderscoreChar" class="value">'_'</code></td><td><code id="tbl-keyset-key-Underscore" class="value">'Underscore'</code></td><td><code id="tbl-keyset-key-U-005F" class="value">'U+005F'</code></td><td>The Low Sign (Spacing Underscore, Underscore) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td><code id="tbl-keyset-key-GraveChar" class="value">'`'</code></td><td><code id="tbl-keyset-key-Grave" class="value">'Grave'</code></td><td><code id="tbl-keyset-key-U-0060" class="value">'U+0060'</code></td><td>The Grave Accent (Back Quote) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td><code id="tbl-keyset-key-LeftCurlyBracketChar" class="value">'{'</code></td><td><code id="tbl-keyset-key-LeftCurlyBracket" class="value">'LeftCurlyBracket'</code></td><td><code id="tbl-keyset-key-U-007B" class="value">'U+007B'</code></td><td>The Left Curly Bracket (Opening Curly Bracket, Opening Brace, Brace Left) key.</td><td>55</td><td>-</td><td>123</td><td>-</td><td>55</td><td>-</td><td>55</td><td>-</td><td>0</td><td>123</td><td>55</td><td>-</td><td>55</td><td>-</td><td>123</td><td>123</td><td>55</td><td>-</td><td>55</td><td>-</td><td>123</td><td>-</td><td>55</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-PipeChar" class="value">'|'</code></td><td><code id="tbl-keyset-key-Pipe" class="value">'Pipe'</code></td><td><code id="tbl-keyset-key-U-007C" class="value">'U+007C'</code></td><td>The Vertical Line (Vertical Bar, Pipe) key.</td><td>226</td><td>-</td><td>124</td><td>-</td><td>226</td><td>-</td><td>226</td><td>-</td><td>0</td><td>124</td><td>226</td><td>-</td><td>226</td><td>-</td><td>124</td><td>124</td><td>226</td><td>-</td><td>188</td><td>-</td><td>124</td><td>-</td><td>188</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-RightCurlyBracketChar" class="value">'}'</code></td><td><code id="tbl-keyset-key-RightCurlyBracket" class="value">'RightCurlyBracket'</code></td><td><code id="tbl-keyset-key-U-007D" class="value">'U+007D'</code></td><td>The Right Curly Bracket (Closing Curly Bracket, Closing Brace, Brace Right) key.</td><td>48</td><td>-</td><td>125</td><td>-</td><td>48</td><td>-</td><td>48</td><td>-</td><td>0</td><td>125</td><td>48</td><td>-</td><td>48</td><td>-</td><td>125</td><td>125</td><td>48</td><td>-</td><td>48</td><td>-</td><td>125</td><td>-</td><td>48</td><td>-</td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-Del" class="value">'Del'</code></td><td><code id="tbl-keyset-key-U-007F" class="value">'U+007F'</code></td><td>The Delete (Del) Key.</td><td>46</td><td>-</td><td>-</td><td>-</td><td>46</td><td>-</td><td>46</td><td>-</td><td>46</td><td>-</td><td>46</td><td>-</td><td>46</td><td>-</td><td>-</td><td>-</td><td>46</td><td>-</td><td>46</td><td>-</td><td>46</td><td>-</td><td>46</td><td>-</td></tr>
- <tr><td><code id="tbl-keyset-key-InvertedExclamationChar" class="value">'¡'</code></td><td><code id="tbl-keyset-key-InvertedExclamation" class="value">'InvertedExclamation'</code></td><td><code id="tbl-keyset-key-U-00A1" class="value">'U+00A1'</code></td><td>The Inverted Exclamation Mark key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DeadGrave" class="value">'DeadGrave'</code></td><td><code id="tbl-keyset-key-U-0300" class="value">'U+0300'</code></td><td>The Combining Grave Accent (Greek Varia, Dead Grave) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DeadEacute" class="value">'DeadEacute'</code></td><td><code id="tbl-keyset-key-U-0301" class="value">'U+0301'</code></td><td>The Combining Acute Accent (Stress Mark, Greek Oxia, Tonos, Dead Eacute) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DeadCircumflex" class="value">'DeadCircumflex'</code></td><td><code id="tbl-keyset-key-U-0302" class="value">'U+0302'</code></td><td>The Combining Circumflex Accent (Hat, Dead Circumflex) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DeadTilde" class="value">'DeadTilde'</code></td><td><code id="tbl-keyset-key-U-0303" class="value">'U+0303'</code></td><td>The Combining Tilde (Dead Tilde) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DeadMacron" class="value">'DeadMacron'</code></td><td><code id="tbl-keyset-key-U-0304" class="value">'U+0304'</code></td><td>The Combining Macron (Long, Dead Macron) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DeadBreve" class="value">'DeadBreve'</code></td><td><code id="tbl-keyset-key-U-0306" class="value">'U+0306'</code></td><td>The Combining Breve (Short, Dead Breve) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DeadAboveDot" class="value">'DeadAboveDot'</code></td><td><code id="tbl-keyset-key-U-0307" class="value">'U+0307'</code></td><td>The Combining Dot Above (Derivative, Dead Above Dot) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DeadUmlaut" class="value">'DeadUmlaut'</code></td><td><code id="tbl-keyset-key-U-0308" class="value">'U+0308'</code></td><td>The Combining Diaeresis (Double Dot Abode, Umlaut, Greek Dialytika, Double Derivative, Dead Diaeresis) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DeadAboveRing" class="value">'DeadAboveRing'</code></td><td><code id="tbl-keyset-key-U-030A" class="value">'U+030A'</code></td><td>The Combining Ring Above (Dead Above Ring) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DeadDoubleacute" class="value">'DeadDoubleacute'</code></td><td><code id="tbl-keyset-key-U-030B" class="value">'U+030B'</code></td><td>The Combining Double Acute Accent (Dead Doubleacute) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DeadCaron" class="value">'DeadCaron'</code></td><td><code id="tbl-keyset-key-U-030C" class="value">'U+030C'</code></td><td>The Combining Caron (Hacek, V Above, Dead Caron) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DeadCedilla" class="value">'DeadCedilla'</code></td><td><code id="tbl-keyset-key-U-0327" class="value">'U+0327'</code></td><td>The Combining Cedilla (Dead Cedilla) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DeadOgonek" class="value">'DeadOgonek'</code></td><td><code id="tbl-keyset-key-U-0328" class="value">'U+0328'</code></td><td>The Combining Ogonek (Nasal Hook, Dead Ogonek) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DeadIota" class="value">'DeadIota'</code></td><td><code id="tbl-keyset-key-U-0345" class="value">'U+0345'</code></td><td>The Combining Greek Ypogegrammeni (Greek Non-Spacing Iota Below, Iota Subscript, Dead Iota) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td><code id="tbl-keyset-key-EuroChar" class="value">'€'</code></td><td><code id="tbl-keyset-key-Euro" class="value">'Euro'</code></td><td><code id="tbl-keyset-key-U-20AC" class="value">'U+20AC'</code></td><td>The Euro Currency Sign key (€).</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DeadVoicedSound" class="value">'DeadVoicedSound'</code></td><td><code id="tbl-keyset-key-U-3099" class="value">'U+3099'</code></td><td>The Combining Katakana-Hiragana Voiced Sound Mark (Dead Voiced Sound) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- <tr><td> </td><td><code id="tbl-keyset-key-DeadSemivoicedSound" class="value">'DeadSemivoicedSound'</code></td><td><code id="tbl-keyset-key-U-309A" class="value">'U+309A'</code></td><td>The Combining Katakana-Hiragana Semi-Voiced Sound Mark (Dead Semivoiced Sound) key.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
- </table>
- </div>
- </div>
- <!-- div1 KeySet -->
-
+ <!-- div1 KeySet -->
<div class="div1">
<h1 id="extending_events" class="adiv1">Appendix A: Extending Events</h1>
- <p><em>This section is informative</em></p>
-
+ <p>
+ <em>This section is informative</em>
+ </p>
<h2 id="extending_events-intro" class="adiv2">A.1 Introduction</h2>
<p class="1st">This specification defines several interfaces and many events; however, this is not an exhaustive set of events for all purposes. To allow authors and implementers to add desired functionality, this specification provides two mechanisms for extend this set of interfaces and events without creating conflicts: <a href="#extending_events-Custom_Events">custom events</a> and <a href="#extending_events-Namespaced_Events">namespaced events</a></p>
-
<h2 id="extending_events-Custom_Events" class="adiv2">A.2 Custom Events</h2>
<p>A script author may wish to define an application in terms of functional components, with event types that are meaningful to the application architecture. The author can use the <a href="#events-Events-CustomEvent"><code>CustomEvent</code></a> interface to create their own events appropriate to the level of abstraction they are using.</p>
-
<div class="example">
<p>As an example, an author may have created an application which features a dynamically generated bar chart. This bar chart is meant to be updated every 5 minutes, or when a feed shows new information, or when the user refreshes it manually by clicking a button. There are several handlers that have to be called when the chart needs to be updated: the application must fetch the most recent data, show an icon to the user that the event is being updated, and rebuild the chart. To manage this, the author can choose to create a custom "updateChart" event, which is fired whenever one of the trigger conditions is met:</p>
- <code>
- <pre>
- var chartData = ...;
- var evt = document.createEvent("CustomEvent");
- evt.initCustomEventNS("http://example.org/charts",
- "updateChart",
- true, false, { data: chartData });
- document.documentElement.dispatchEvent(evt);
- </pre>
- </code>
+ <pre>
+ <code>
+ var chartData = ...;
+ var evt = document.createEvent("CustomEvent");
+ evt.initCustomEventNS("http://example.org/charts",
+ "updateChart",
+ true, false, { data: chartData });
+ document.documentElement.dispatchEvent(evt);
+ </code>
+ </pre>
</div>
-
-
-
<h2 id="extending_events-Namespaced_Events" class="adiv2">A.3 Namespaced Events</h2>
<p>This specification introduces namespaces into the event model, in order to allow expansion of the set of events in a manner that doesn't introduce potential conflicts.</p>
-
<h3 id="extending_events-Legacy_Events" class="adiv2">A.3.1 Legacy Events</h3>
<p>An existing implementation which is being adapted to work with the W3C DOM Events specifications may have an existing framework and set of proprietary events. For backwards compatibility, it may be desirable that such an implementation keep these existing events, while providing the means for them to work within the DOM Events framework. In this case, the implementer can simply assign their own vendor-specific namespace to these proprietary events.</p>
-
<p>In some cases, these legacy events may conflict with other implementation-specific events with the same name, but different functionality. Using the namespace-aware method <a href="#events-Events-EventTargetGroup-addEventListenerNS"><code>EventTarget.addEventListenerNS()</code></a>, an author can target that event specifically, with no risk of clashes.</p>
-
<p>When there are no known conflicting events, or when such events have the same functionality, the author can simply use the non-namespace-aware method <a href="#events-Events-EventTargetGroup-addEventListener"><code>EventTarget.addEventListener()</code></a>, which can register events without regard to the namespace.</p>
-
<p class="example">As an example, a particular browser vendor, "FooCorp", may have an event, "skip", which was implemented long ago, and which also works with another FooCorp product. They need to keep this event for backwards compatibility with existing content for some of their clients, but since this event is very specific to their product lines, they don't anticipate that it will be of general use in competing browsers. This vendor implements "skip" in their browser, using their namespace, <code class="value">'http://example.com/foo/browser/events/'</code>. Their event continues to work using their existing event registration system, and also works with W3C DOM Events methods, both <code>someElement.addEventListener( "skip", doSkip, false )</code> and <code>someElement.addEventListenerNS( "http://example.com/foo/browser/events/", "skip", doSkip, false )</code>. Other browsers simply ignore this event, and legacy content continues to work in the FooCorp browser.</p>
-
-
<h3 id="extending_events-Vendor_Extensions" class="adiv2">A.3.2 Vendor Extensions</h3>
<p>While a new event is being designed and prototyped, or when an event is intended for implementation-specific functionality, it is desirable to distinguish it from standardized events. In CSS, the mechanism for doing this is to provide <a href="http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords" title="Syntax and basic data types">vendor-specific keyword prefixes</a>; however, this has the unfortunate side-effect of forcing authors to maintain code that may be identical between vendors, but which nevertheless must retain the prefix.</p>
-
<p>In DOM Events, by using namespaces for vendor-specific events, an author can choose either to target a particular snapshot of an implementation-specific event by using the namespace-aware method <a href="#events-Events-EventTargetGroup-addEventListenerNS"><code>EventTarget.addEventListenerNS()</code></a>, or to write code that assumes broader future implementation by using the non-namespace-aware method <a href="#events-Events-EventTargetGroup-addEventListener"><code>EventTarget.addEventListener()</code></a>.</p>
-
<p class="example">As an example, a particular browser vendor, "FooCorp", may wish to introduce a new event, "jump". This vendor implements "jump" in their browser, using their namespace, <code class="value">'http://example.com/foo/browser/events/'</code>. Early adopters start experimenting with the event, using <code>someElement.addEventListenerNS( "http://example.com/foo/browser/events/", "jump", doJump, false )</code>, and provide feedback to FooCorp, who change the behavior of "jump" accordingly. After some time, another vendor, "BarOrg", decides they also want the functionality, but implement it slightly differently, so they use their own namespace, <code class="value">'http://example.org/bar/browser/events/'</code> but with the same event type, "jump". Authors experimenting with this version of "jump" register events with BarOrg's namespace. Authors who wish to write code that accounts for both browsers can either register each event type separately with specific handlers, or use the same handler and switch on the namespace of the event; thus, early experiments in different codebases do not conflict, and the easrly-adopter is able to write easily-maintained code for multiple implementations. Eventually, as the feature matures, the behavior of both browsers stabilizes and may converge due to author and user feedback or through formal standardization; as this stabilization occurs, and risk of conflicts decrease, authors can remove the forked code, and assume the "jump" event is in the <code>null</code> namespace (even before it is formally standardized), using the same event handler and the more generic registration method <code>someElement.addEventListener( "jump", doJump, false )</code>.</p>
-
</div>
- <!-- div1 Events -->
-
-
-
+<!-- div1 Events -->
<div class="div1">
<h1 id="security-considerations-Security" class="adiv1">Appendix B: Security Considerations</h1>
<p class="1st">This appendix discusses security considerations for DOM Level 3 Events implementations. The discussion is limited to security issues that arise directly from implementation of the event model, APIs and events defined in this specification. Implementations typically support other features like scripting languages, other APIs and additional events not defined in this document; these features constitute an unknown factor and are out of scope of this document. Implementers should consult the specifications of such features for their respective security considerations.</p>
@@ -6824,8 +5539,7 @@
<p>An implementation of DOM Level 3 Events alone is generally insufficient to perform attacks of this kind and the security considerations of the facilities that possibly support such attacks apply. For conformance with this specification, DOM implementations may take reasonable steps to ensure that DOM applications do not get access to confidential or sensitive information, for example, they may choose to dispatch no <code>load</code> events to nodes that attempt to embed resources on the local network.</p>
<p>The <a href="#events-Events-DocumentEvent-canDispatch"><code>DocumentEvent.canDispatch()</code></a> method allows DOM applications to retrieve information about which event types the implementation supports, including event types not defined in this specification. Which event types a DOM Level 3 Events implementation supports can depend on configuration settings or on additional software modules available to the implementation.</p>
</div>
- <!-- div1 Security -->
-
+<!-- div1 Security -->
<div class="div1">
@@ -6842,845 +5556,845 @@
<li>the event flow now includes the <code>defaultView</code> (or <code>window</code>), to reflect existing implementations.</li>
</ul>
</div>
- <!-- div3 DOMEvents2to3Changes-flow -->
+<!-- div3 DOMEvents2to3Changes-flow -->
<div class="div3">
<h3 class="adiv3" id="changes-DOMEvents2to3Changes-event-types">C.1.2 Changes to DOM Level 2 event types</h3>
<p>Lots of clarifications have been made on the event types. The conformance is now explicitly defined against the event types, and not only in terms of interfaces required by the event types. Support for namespaces and the features <code>"BasicEvents"</code>, <code>"TextEvents"</code>, <code>"KeyboardEvents"</code>, and <code>"MutationNameEvents"</code> have been introduced.</p>
<p>In the most recent drafts of this specification, <code>"MutationEvents"</code> and <code>"MutationNameEvents"</code> have been deprecated.</p>
</div>
- <!-- div3 DOMEvents2to3Changes-event-types -->
+<!-- div3 DOMEvents2to3Changes-event-types -->
<div class="div3">
<h3 id="changes-DOMLevel2to3Changes" class="adiv3">C.1.3 Changes to DOM Level 2 Events interfaces</h3>
<dl>
<dt>Interface <a href="#events-Events-Event"><code>Event</code></a></dt>
- <dd>The <a href="#events-Events-Event"><code>Event</code></a> interface has two new attributes <a href="#events-Events-Event-namespaceURI"><code>Event.namespaceURI</code></a> and <a href="#events-Events-Event-defaultPrevented"><code>Event.defaultPrevented</code></a>, and two new methods: <a href="#events-Events-Event-stopImmediatePropagation"><code>Event.stopImmediatePropagation()</code></a>, <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a>.<br/>
- <a href="#events-Events-Event-timeStamp"><code>Event.timeStamp</code></a> is now a <code>Number</code> in the ECMAScript binding; a proposed correction to make the same change in [<cite><a class="noxref normative" href="#references-DOMCore">DOM Level 3 Core</a></cite>] is forthcoming.<br/>
-DOM Level 3 Events considers the <a href="#events-Events-Event-type"><code>Event.type</code></a> attribute to be case-sensitive, while DOM Level 2 Events considers <a class="noxref" href="#events-Events-Event-type"><code>Event.type</code></a> to be case-insensitive.</dd>
+ <dd>The <a href="#events-Events-Event"><code>Event</code></a> interface has two new attributes <a href="#events-event-type-namespaceURI"><code>Event.namespaceURI</code></a> and <a href="#events-event-type-defaultPrevented"><code>Event.defaultPrevented</code></a>, and two new methods: <a href="#events-event-type-stopImmediatePropagation"><code>Event.stopImmediatePropagation()</code></a>, <a href="#events-event-type-initEventNS"><code>Event.initEventNS()</code></a>.<br />
+ <a href="#events-event-type-timeStamp"><code>Event.timeStamp</code></a> is now a <code>Number</code> in the ECMAScript binding; a proposed correction to make the same change in [<cite><a class="noxref normative" href="#references-DOMCore">DOM Level 3 Core</a></cite>] is forthcoming.<br />
+ DOM Level 3 Events considers the <a href="#events-event-type-type"><code>Event.type</code></a> attribute to be case-sensitive, while DOM Level 2 Events considers <a class="noxref" href="#events-event-type-type"><code>Event.type</code></a> to be case-insensitive.</dd>
<dt>Interface <a href="#events-Events-EventTarget"><code>EventTarget</code></a></dt>
<dd>The <a href="#events-Events-EventTarget"><code>EventTarget</code></a> interface has two new methods: <a href="#events-Events-EventTargetGroup-addEventListenerNS"><code>EventTarget.addEventListenerNS()</code></a> and <a href="#events-Events-EventTargetGroup-removeEventListenerNS"><code>EventTarget.removeEventListenerNS()</code></a>. The method <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> was modified.</dd>
<dt>Interface <a href="#events-Events-DocumentEvent"><code>DocumentEvent</code></a></dt>
<dd>The <a href="#events-Events-DocumentEvent"><code>DocumentEvent</code></a> interface has one new method: <a href="#events-Events-DocumentEvent-canDispatch"><code>DocumentEvent.canDispatch()</code></a>.</dd>
<dt>Interface <a href="#events-Events-UIEvent"><code>UIEvent</code></a></dt>
- <dd>The <a href="#events-Events-UIEvent"><code>UIEvent</code></a> interface has a new method <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a>.</dd>
+ <dd>The <a href="#events-Events-UIEvent"><code>UIEvent</code></a> interface has a new method <a href="#events-event-type-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a>.</dd>
<dt>Interface <a href="#events-Events-MouseEvent"><code>MouseEvent</code></a></dt>
- <dd>The <a href="#events-Events-MouseEvent"><code>MouseEvent</code></a> interface has two new methods <a href="#events-Events-MouseEvent-getModifierState"><code>MouseEvent.getModifierState()</code></a> and <a href="#events-Events-Event-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a>.</dd>
+ <dd>The <a href="#events-Events-MouseEvent"><code>MouseEvent</code></a> interface has two new methods <a href="#events-Events-MouseEvent-getModifierState"><code>MouseEvent.getModifierState()</code></a> and <a href="#events-event-type-initMouseEventNS"><code>MouseEvent.initMouseEventNS()</code></a>.</dd>
<dt>Interface <a href="#events-Events-MutationEvent"><code>MutationEvent</code></a></dt>
- <dd>The <a href="#events-Events-MutationEvent"><code>MutationEvent</code></a> interface has a new method <a href="#events-Events-Event-initMutationEventNS"><code>MutationEvent.initMutationEventNS()</code></a>.</dd>
+ <dd>The <a href="#events-Events-MutationEvent"><code>MutationEvent</code></a> interface has a new method <a href="#events-event-type-initMutationEventNS"><code>MutationEvent.initMutationEventNS()</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>
</dl>
</div>
- <!-- div3 DOMLevel2to3Changes -->
+<!-- div3 DOMLevel2to3Changes -->
<div class="div3">
<h3 id="changes-DOMLevel3Addons" class="adiv3">C.1.4 New Interfaces</h3>
<p>The interfaces <a href="#events-Events-CustomEvent"><code>CustomEvent</code></a>, <a href="#events-Events-TextEvent"><code>TextEvent</code></a>, <a href="#events-Events-KeyboardEvent"><code>KeyboardEvent</code></a>, <a href="#events-Events-CompositionEvent"><code>CompositionEvent</code></a>, <a href="#events-Events-MutationNameEvent"><code>MutationNameEvent</code></a>, <a href="#events-Events-WheelEvent"><code>WheelEvent</code></a>, and <a href="#events-Events-MouseWheelEvent"><code>MouseWheelEvent</code></a> were added to the Events module.</p>
</div>
- <!-- div3 DOMLevel3Addons -->
+<!-- div3 DOMLevel3Addons -->
</div>
- <!-- div2 DOMEvents2to3Changes -->
+<!-- div2 DOMEvents2to3Changes -->
</div>
- <!-- div1 Changes -->
+<!-- div1 Changes -->
<div class="div1">
<h1 id="idl-definitions-idl" class="adiv1">Appendix D: IDL Definitions</h1>
-
<p class="issue">@@ Note that this section is out of date, and will be updated with the appropriate IDLs once the specification is more stable.</p>
-
<p class="1st">This appendix contains the complete OMG IDL [<cite><a class="noxref normative" href="#references-OMGIDL">OMG IDL</a></cite>] for the Level 3 Document Object Model Events definitions.</p>
<p>The IDL files are also available as: <a class="normative" href="idl.zip">http://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071207/idl.zip</a></p>
<h3 id="idl-definitions-idl-events.idl"><a href="idl/events.idl">events.idl</a>:</h3>
<div class="idl-code">
<pre>
-// File: events.idl
-
-#ifndef _EVENTS_IDL_
-#define _EVENTS_IDL_
-
-#include "dom.idl"
-#include "views.idl"
-
-#pragma prefix "dom.w3c.org"
-module events
-{
-
- typedef dom::DOMString DOMString;
- typedef dom::DOMTimeStamp DOMTimeStamp;
- typedef dom::DOMObject DOMObject;
- typedef dom::Node Node;
-
- interface EventTarget;
- interface EventListener;
-
- // Introduced in DOM Level 2:
- exception <a class="noxref" href="#events-Events-EventException">EventException</a> {
- unsigned short code;
- };
- // EventExceptionCode
- const unsigned short <a class="noxref" href="#events-UNSPECIFIED_EVENT_TYPE_ERR">UNSPECIFIED_EVENT_TYPE_ERR</a> = 0;
- // Introduced in DOM Level 3:
- const unsigned short <a class="noxref" href="#events-DISPATCH_REQUEST_ERR">DISPATCH_REQUEST_ERR</a> = 1;
-
-
- // Introduced in DOM Level 2:
- interface <a class="noxref" href="#events-Events-Event">Event</a> {
-
- // PhaseType
- const unsigned short <a class="noxref" href="#events-CAPTURING_PHASE">CAPTURING_PHASE</a> = 1;
- const unsigned short <a class="noxref" href="#events-AT_TARGET">AT_TARGET</a> = 2;
- const unsigned short <a class="noxref" href="#events-BUBBLING_PHASE">BUBBLING_PHASE</a> = 3;
-
- readonly attribute DOMString <a class="noxref" href="#events-Events-Event-type">type</a>;
- readonly attribute <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> <a class="noxref" href="#events-Events-Event-target">target</a>;
- readonly attribute <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> <a class="noxref" href="#events-Events-Event-currentTarget">currentTarget</a>;
- readonly attribute unsigned short <a class="noxref" href="#events-Events-Event-eventPhase">eventPhase</a>;
- readonly attribute boolean <a class="noxref" href="#events-Events-Event-canBubble">bubbles</a>;
- readonly attribute boolean <a class="noxref" href="#events-Events-Event-canCancel">cancelable</a>;
- readonly attribute DOMTimeStamp <a class="noxref" href="#events-Events-Event-timeStamp">timeStamp</a>;
- void <a class="noxref" href="#events-Events-Event-stopPropagation">stopPropagation</a>();
- void <a class="noxref" href="#events-Events-Event-preventDefault">preventDefault</a>();
- void <a class="noxref" href="#events-Events-Event-initEvent">initEvent</a>(in DOMString eventTypeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg);
- // Introduced in DOM Level 3:
- readonly attribute DOMString <a class="noxref" href="#events-Events-Event-namespaceURI">namespaceURI</a>;
- // Introduced in DOM Level 3:
- void <a class="noxref" href="#events-Events-Event-stopImmediatePropagation">stopImmediatePropagation</a>();
- // Introduced in DOM Level 3:
- readonly attribute boolean <a class="noxref" href="#events-Events-Event-defaultPrevented">defaultPrevented</a>;
- // Introduced in DOM Level 3:
- void <a class="noxref" href="#events-Events-Event-initEventNS">initEventNS</a>(in DOMString namespaceURIArg,
- in DOMString eventTypeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg);
- };
-
- // Introduced in DOM Level 3:
- interface <a class="noxref" href="#events-Events-CustomEvent">CustomEvent</a> : <a class="noxref" href="#events-Events-Event">Event</a> {
- readonly attribute DOMObject <a class="noxref" href="#events-Events-CustomEvent-detail">detail</a>;
- void <a class="noxref" href="#events-Events-Event-initCustomEvent">initCustomEvent</a>(in DOMString typeArg,
+ // File: events.idl
+
+ #ifndef _EVENTS_IDL_
+ #define _EVENTS_IDL_
+
+ #include "dom.idl"
+ #include "views.idl"
+
+ #pragma prefix "dom.w3c.org"
+ module events
+ {
+
+ typedef dom::DOMString DOMString;
+ typedef dom::DOMTimeStamp DOMTimeStamp;
+ typedef dom::DOMObject DOMObject;
+ typedef dom::Node Node;
+
+ interface EventTarget;
+ interface EventListener;
+
+ // Introduced in DOM Level 2:
+ exception <a class="noxref" href="#events-Events-EventException">EventException</a> {
+ unsigned short code;
+ };
+ // EventExceptionCode
+ const unsigned short <a class="noxref" href="#events-UNSPECIFIED_EVENT_TYPE_ERR">UNSPECIFIED_EVENT_TYPE_ERR</a> = 0;
+ // Introduced in DOM Level 3:
+ const unsigned short <a class="noxref" href="#events-DISPATCH_REQUEST_ERR">DISPATCH_REQUEST_ERR</a> = 1;
+
+
+ // Introduced in DOM Level 2:
+ interface <a class="noxref" href="#events-Events-Event">Event</a> {
+
+ // PhaseType
+ const unsigned short <a class="noxref" href="#events-CAPTURING_PHASE">CAPTURING_PHASE</a> = 1;
+ const unsigned short <a class="noxref" href="#events-AT_TARGET">AT_TARGET</a> = 2;
+ const unsigned short <a class="noxref" href="#events-BUBBLING_PHASE">BUBBLING_PHASE</a> = 3;
+
+ readonly attribute DOMString <a class="noxref" href="#events-event-type-type">type</a>;
+ readonly attribute <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> <a class="noxref" href="#events-event-type-target">target</a>;
+ readonly attribute <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> <a class="noxref" href="#events-event-type-currentTarget">currentTarget</a>;
+ readonly attribute unsigned short <a class="noxref" href="#events-event-type-eventPhase">eventPhase</a>;
+ readonly attribute boolean <a class="noxref" href="#events-event-type-canBubble">bubbles</a>;
+ readonly attribute boolean <a class="noxref" href="#events-event-type-canCancel">cancelable</a>;
+ readonly attribute DOMTimeStamp <a class="noxref" href="#events-event-type-timeStamp">timeStamp</a>;
+ void <a class="noxref" href="#events-event-type-stopPropagation">stopPropagation</a>();
+ void <a class="noxref" href="#events-event-type-preventDefault">preventDefault</a>();
+ void <a class="noxref" href="#events-event-type-initEvent">initEvent</a>(in DOMString eventTypeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg);
+ // Introduced in DOM Level 3:
+ readonly attribute DOMString <a class="noxref" href="#events-event-type-namespaceURI">namespaceURI</a>;
+ // Introduced in DOM Level 3:
+ void <a class="noxref" href="#events-event-type-stopImmediatePropagation">stopImmediatePropagation</a>();
+ // Introduced in DOM Level 3:
+ readonly attribute boolean <a class="noxref" href="#events-event-type-defaultPrevented">defaultPrevented</a>;
+ // Introduced in DOM Level 3:
+ void <a class="noxref" href="#events-event-type-initEventNS">initEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString eventTypeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg);
+ };
+
+ // Introduced in DOM Level 3:
+ interface <a class="noxref" href="#events-Events-CustomEvent">CustomEvent</a> : <a class="noxref" href="#events-Events-Event">Event</a> {
+ readonly attribute DOMObject <a class="noxref" href="#events-Events-CustomEvent-detail">detail</a>;
+ void <a class="noxref" href="#events-event-type-initCustomEvent">initCustomEvent</a>(in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in DOMObject detailArg);
+ void <a class="noxref" href="#events-event-type-initCustomEventNS">initCustomEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in DOMObject detailArg);
+ };
+
+ // Introduced in DOM Level 2:
+ interface <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> {
+ void <a class="noxref" href="#events-Events-EventTarget-addEventListener">addEventListener</a>(in DOMString type,
+ in <a class="noxref" href="#events-Events-EventListener">EventListener</a> listener,
+ in boolean useCapture);
+ void <a class="noxref" href="#events-Events-EventTarget-removeEventListener">removeEventListener</a>(in DOMString type,
+ in <a class="noxref" href="#events-Events-EventListener">EventListener</a> listener,
+ in boolean useCapture);
+ // Modified in DOM Level 3:
+ boolean <a class="noxref" href="#events-Events-EventTarget-dispatchEvent">dispatchEvent</a>(in <a class="noxref" href="#events-Events-Event">Event</a> evt)
+ raises(<a class="noxref" href="#events-Events-EventException">EventException</a>,
+ dom::DOMException);
+ // Introduced in DOM Level 3:
+ void <a class="noxref" href="#events-Events-EventTargetGroup-addEventListenerNS">addEventListenerNS</a>(in DOMString namespaceURI,
+ in DOMString type,
+ in <a class="noxref" href="#events-Events-EventListener">EventListener</a> listener,
+ in boolean useCapture);
+ // Introduced in DOM Level 3:
+ void <a class="noxref" href="#events-Events-EventTargetGroup-removeEventListenerNS">removeEventListenerNS</a>(in DOMString namespaceURI,
+ in DOMString type,
+ in <a class="noxref" href="#events-Events-EventListener">EventListener</a> listener,
+ in boolean useCapture);
+ };
+
+ // Introduced in DOM Level 2:
+ interface <a class="noxref" href="#events-Events-EventListener">EventListener</a> {
+ void <a class="noxref" href="#events-Events-EventListener-handleEvent">handleEvent</a>(in <a class="noxref" href="#events-Events-Event">Event</a> evt);
+ };
+
+ // Introduced in DOM Level 2:
+ interface <a class="noxref" href="#events-Events-DocumentEvent">DocumentEvent</a> {
+ <a class="noxref" href="#events-Events-Event">Event</a> <a class="noxref" href="#events-Events-DocumentEvent-createEvent">createEvent</a>(in DOMString eventType)
+ raises(dom::DOMException);
+ // Introduced in DOM Level 3:
+ boolean <a class="noxref" href="#events-Events-DocumentEvent-canDispatch">canDispatch</a>(in DOMString namespaceURI,
+ in DOMString type);
+ };
+
+ // Introduced in DOM Level 2:
+ interface <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> : <a class="noxref" href="#events-Events-Event">Event</a> {
+ readonly attribute views::AbstractView <a class="noxref" href="#events-Events-UIEvent-view">view</a>;
+ readonly attribute long <a class="noxref" href="#events-Events-UIEvent-detail">detail</a>;
+ void <a class="noxref" href="#events-event-type-initUIEvent">initUIEvent</a>(in DOMString typeArg,
in boolean canBubbleArg,
in boolean cancelableArg,
- in DOMObject detailArg);
- void <a class="noxref" href="#events-Events-Event-initCustomEventNS">initCustomEventNS</a>(in DOMString namespaceURIArg,
+ in views::AbstractView viewArg,
+ in long detailArg);
+ // Introduced in DOM Level 3:
+ void <a class="noxref" href="#events-event-type-initUIEventNS">initUIEventNS</a>(in DOMString namespaceURIArg,
in DOMString typeArg,
in boolean canBubbleArg,
in boolean cancelableArg,
- in DOMObject detailArg);
- };
-
- // Introduced in DOM Level 2:
- interface <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> {
- void <a class="noxref" href="#events-Events-EventTarget-addEventListener">addEventListener</a>(in DOMString type,
- in <a class="noxref" href="#events-Events-EventListener">EventListener</a> listener,
- in boolean useCapture);
- void <a class="noxref" href="#events-Events-EventTarget-removeEventListener">removeEventListener</a>(in DOMString type,
- in <a class="noxref" href="#events-Events-EventListener">EventListener</a> listener,
- in boolean useCapture);
- // Modified in DOM Level 3:
- boolean <a class="noxref" href="#events-Events-EventTarget-dispatchEvent">dispatchEvent</a>(in <a class="noxref" href="#events-Events-Event">Event</a> evt)
- raises(<a class="noxref" href="#events-Events-EventException">EventException</a>,
- dom::DOMException);
- // Introduced in DOM Level 3:
- void <a class="noxref" href="#events-Events-EventTargetGroup-addEventListenerNS">addEventListenerNS</a>(in DOMString namespaceURI,
- in DOMString type,
- in <a class="noxref" href="#events-Events-EventListener">EventListener</a> listener,
- in boolean useCapture);
- // Introduced in DOM Level 3:
- void <a class="noxref" href="#events-Events-EventTargetGroup-removeEventListenerNS">removeEventListenerNS</a>(in DOMString namespaceURI,
- in DOMString type,
- in <a class="noxref" href="#events-Events-EventListener">EventListener</a> listener,
- in boolean useCapture);
- };
-
- // Introduced in DOM Level 2:
- interface <a class="noxref" href="#events-Events-EventListener">EventListener</a> {
- void <a class="noxref" href="#events-Events-EventListener-handleEvent">handleEvent</a>(in <a class="noxref" href="#events-Events-Event">Event</a> evt);
- };
-
- // Introduced in DOM Level 2:
- interface <a class="noxref" href="#events-Events-DocumentEvent">DocumentEvent</a> {
- <a class="noxref" href="#events-Events-Event">Event</a> <a class="noxref" href="#events-Events-DocumentEvent-createEvent">createEvent</a>(in DOMString eventType)
- raises(dom::DOMException);
- // Introduced in DOM Level 3:
- boolean <a class="noxref" href="#events-Events-DocumentEvent-canDispatch">canDispatch</a>(in DOMString namespaceURI,
- in DOMString type);
- };
-
- // Introduced in DOM Level 2:
- interface <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> : <a class="noxref" href="#events-Events-Event">Event</a> {
- readonly attribute views::AbstractView <a class="noxref" href="#events-Events-UIEvent-view">view</a>;
- readonly attribute long <a class="noxref" href="#events-Events-UIEvent-detail">detail</a>;
- void <a class="noxref" href="#events-Events-Event-initUIEvent">initUIEvent</a>(in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in long detailArg);
- // Introduced in DOM Level 3:
- void <a class="noxref" href="#events-Events-Event-initUIEventNS">initUIEventNS</a>(in DOMString namespaceURIArg,
- in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in long detailArg);
- };
-
- // Introduced in DOM Level 3:
- interface <a class="noxref" href="#events-Events-TextEvent">TextEvent</a> : <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> {
- readonly attribute DOMString <a class="noxref" href="#events-Events-TextEvent-data">data</a>;
- void <a class="noxref" href="#events-Events-Event-initTextEvent">initTextEvent</a>(in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in DOMString dataArg,
- in unsigned long inputMode);
- void <a class="noxref" href="#events-Events-Event-initTextEventNS">initTextEventNS</a>(in DOMString namespaceURIArg,
- in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in DOMString dataArg,
- in unsigned long inputMode);
- };
-
- // Introduced in DOM Level 3:
- interface <a class="noxref" href="#events-Events-KeyboardEvent">KeyboardEvent</a> : <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> {
-
- // KeyLocationCode
- const unsigned long <a class="noxref" href="#events-DOM_KEY_LOCATION_STANDARD">DOM_KEY_LOCATION_STANDARD</a> = 0x00;
- const unsigned long <a class="noxref" href="#events-DOM_KEY_LOCATION_LEFT">DOM_KEY_LOCATION_LEFT</a> = 0x01;
- const unsigned long <a class="noxref" href="#events-DOM_KEY_LOCATION_RIGHT">DOM_KEY_LOCATION_RIGHT</a> = 0x02;
- const unsigned long <a class="noxref" href="#events-DOM_KEY_LOCATION_NUMPAD">DOM_KEY_LOCATION_NUMPAD</a> = 0x03;
- const unsigned long <a class="noxref" href="#events-DOM_KEY_LOCATION_MOBILE">DOM_KEY_LOCATION_MOBILE</a> = 0x04;
- const unsigned long <a class="noxref" href="#events-DOM_KEY_LOCATION_JOYSTICK">DOM_KEY_LOCATION_JOYSTICK</a> = 0x05;
-
- readonly attribute DOMString <a class="noxref" href="#events-Events-KeyboardEvent-keyIdentifier">keyIdentifier</a>;
- <!-- readonly attribute DOMString <a class="noxref" href="#events-Events-KeyboardEvent-keyValue">keyValue</a>; -->
- readonly attribute unsigned long <a class="noxref" href="#events-Events-KeyboardEvent-keylocation">keyLocation</a>;
- readonly attribute boolean <a class="noxref" href="#events-Events-KeyboardEvent-ctrlKey">ctrlKey</a>;
- readonly attribute boolean <a class="noxref" href="#events-Events-KeyboardEvent-shiftKey">shiftKey</a>;
- readonly attribute boolean <a class="noxref" href="#events-Events-KeyboardEvent-altKey">altKey</a>;
- readonly attribute boolean <a class="noxref" href="#events-Events-KeyboardEvent-metaKey">metaKey</a>;
- boolean <a class="noxref" href="#events-Events-KeyboardEvent-getModifierState">getModifierState</a>(in DOMString keyIdentifierArg);
- void <a class="noxref" href="#events-Events-KeyboardEvent-initKeyboardEvent">initKeyboardEvent</a>(in DOMString typeArg,
+ in views::AbstractView viewArg,
+ in long detailArg);
+ };
+
+ // Introduced in DOM Level 3:
+ interface <a class="noxref" href="#events-Events-TextEvent">TextEvent</a> : <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> {
+ readonly attribute DOMString <a class="noxref" href="#events-Events-TextEvent-data">data</a>;
+ void <a class="noxref" href="#events-event-type-initTextEvent">initTextEvent</a>(in DOMString typeArg,
in boolean canBubbleArg,
in boolean cancelableArg,
in views::AbstractView viewArg,
- in DOMString keyIdentifierArg,
- in unsigned long keyLocationArg,
- in DOMString modifiersListArg);
- void <a class="noxref" href="#events-Events-KeyboardEvent-initKeyboardEventNS">initKeyboardEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString dataArg,
+ in unsigned long inputMode);
+ void <a class="noxref" href="#events-event-type-initTextEventNS">initTextEventNS</a>(in DOMString namespaceURIArg,
in DOMString typeArg,
in boolean canBubbleArg,
in boolean cancelableArg,
in views::AbstractView viewArg,
- in DOMString keyIdentifierArg,
- in unsigned long keyLocationArg,
- in DOMString modifiersListArg);
- };
-
- // Introduced in DOM Level 2:
- interface <a class="noxref" href="#events-Events-MouseEvent">MouseEvent</a> : <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> {
- readonly attribute long <a class="noxref" href="#events-Events-MouseEvent-screenX">screenX</a>;
- readonly attribute long <a class="noxref" href="#events-Events-MouseEvent-screenY">screenY</a>;
- readonly attribute long <a class="noxref" href="#events-Events-MouseEvent-clientX">clientX</a>;
- readonly attribute long <a class="noxref" href="#events-Events-MouseEvent-clientY">clientY</a>;
- readonly attribute boolean <a class="noxref" href="#events-Events-MouseEvent-ctrlKey">ctrlKey</a>;
- readonly attribute boolean <a class="noxref" href="#events-Events-MouseEvent-shiftKey">shiftKey</a>;
- readonly attribute boolean <a class="noxref" href="#events-Events-MouseEvent-altKey">altKey</a>;
- readonly attribute boolean <a class="noxref" href="#events-Events-MouseEvent-metaKey">metaKey</a>;
- readonly attribute unsigned short <a class="noxref" href="#events-Events-MouseEvent-button">button</a>;
- readonly attribute <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> <a class="noxref" href="#events-Events-MouseEvent-relatedTarget">relatedTarget</a>;
- void <a class="noxref" href="#events-Events-Event-initMouseEvent">initMouseEvent</a>(in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in long detailArg,
- in long screenXArg,
- in long screenYArg,
- in long clientXArg,
- in long clientYArg,
- in boolean ctrlKeyArg,
- in boolean altKeyArg,
- in boolean shiftKeyArg,
- in boolean metaKeyArg,
- in unsigned short buttonArg,
- in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg);
- // Introduced in DOM Level 3:
- boolean <a class="noxref" href="#events-Events-MouseEvent-getModifierState">getModifierState</a>(in DOMString keyIdentifierArg);
- // Introduced in DOM Level 3:
- void <a class="noxref" href="#events-Events-Event-initMouseEventNS">initMouseEventNS</a>(in DOMString namespaceURIArg,
- in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in long detailArg,
- in long screenXArg,
- in long screenYArg,
- in long clientXArg,
- in long clientYArg,
- in unsigned short buttonArg,
- in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
- in DOMString modifiersListArg);
- };
-
- // Introduced in DOM Level 3:
- interface <a class="noxref" href="#events-Events-WheelEvent">WheelEvent</a> : <a class="noxref" href="#events-Events-MouseEvent">MouseEvent</a> {
- readonly attribute long <a class="noxref" href="#events-Events-WheelEvent-deltaX">deltaX</a>;
- readonly attribute long <a class="noxref" href="#events-Events-WheelEvent-deltaY">deltaY</a>;
- readonly attribute long <a class="noxref" href="#events-Events-WheelEvent-deltaZ">deltaZ</a>;
- void <a class="noxref" href="#events-Events-Event-initWheelEventNS">initWheelEventNS</a>(in DOMString namespaceURIArg,
- in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in views::AbstractView viewArg,
- in long detailArg,
- in long screenXArg,
- in long screenYArg,
- in long clientXArg,
- in long clientYArg,
- in unsigned short buttonArg,
- in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
- in DOMString modifiersListArg,
- in long deltaXArg,
- in long deltaYArg,
- in long deltaZArg);
- };
-
- // Introduced in DOM Level 3:
- interface <a class="noxref" href="#events-Events-MouseWheelEvent">MouseWheelEvent</a> : <a class="noxref" href="#events-Events-MouseEvent">MouseEvent</a> {
- readonly attribute long <a class="noxref" href="#events-Events-MouseWheelEvent-wheelDelta">wheelDelta</a>;
- void <a class="noxref" href="#events-Events-Event-initMouseWheelEventNS">initMouseWheelEventNS</a>(in DOMString namespaceURIArg,
- in DOMString typeArg,
+ in DOMString dataArg,
+ in unsigned long inputMode);
+ };
+
+ // Introduced in DOM Level 3:
+ interface <a class="noxref" href="#events-Events-KeyboardEvent">KeyboardEvent</a> : <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> {
+
+ // KeyLocationCode
+ const unsigned long <a class="noxref" href="#events-DOM_KEY_LOCATION_STANDARD">DOM_KEY_LOCATION_STANDARD</a> = 0x00;
+ const unsigned long <a class="noxref" href="#events-DOM_KEY_LOCATION_LEFT">DOM_KEY_LOCATION_LEFT</a> = 0x01;
+ const unsigned long <a class="noxref" href="#events-DOM_KEY_LOCATION_RIGHT">DOM_KEY_LOCATION_RIGHT</a> = 0x02;
+ const unsigned long <a class="noxref" href="#events-DOM_KEY_LOCATION_NUMPAD">DOM_KEY_LOCATION_NUMPAD</a> = 0x03;
+ const unsigned long <a class="noxref" href="#events-DOM_KEY_LOCATION_MOBILE">DOM_KEY_LOCATION_MOBILE</a> = 0x04;
+ const unsigned long <a class="noxref" href="#events-DOM_KEY_LOCATION_JOYSTICK">DOM_KEY_LOCATION_JOYSTICK</a> = 0x05;
+
+ readonly attribute DOMString <a class="noxref" href="#events-Events-KeyboardEvent-keyIdentifier">keyIdentifier</a>;
+ <!-- readonly attribute DOMString <a class="noxref" href="#events-Events-KeyboardEvent-keyValue">keyValue</a>; -->
+ readonly attribute unsigned long <a class="noxref" href="#events-Events-KeyboardEvent-keylocation">keyLocation</a>;
+ readonly attribute boolean <a class="noxref" href="#events-Events-KeyboardEvent-ctrlKey">ctrlKey</a>;
+ readonly attribute boolean <a class="noxref" href="#events-Events-KeyboardEvent-shiftKey">shiftKey</a>;
+ readonly attribute boolean <a class="noxref" href="#events-Events-KeyboardEvent-altKey">altKey</a>;
+ readonly attribute boolean <a class="noxref" href="#events-Events-KeyboardEvent-metaKey">metaKey</a>;
+ boolean <a class="noxref" href="#events-Events-KeyboardEvent-getModifierState">getModifierState</a>(in DOMString keyIdentifierArg);
+ void <a class="noxref" href="#events-Events-KeyboardEvent-initKeyboardEvent">initKeyboardEvent</a>(in DOMString typeArg,
in boolean canBubbleArg,
in boolean cancelableArg,
in views::AbstractView viewArg,
- in long detailArg,
- in long screenXArg,
- in long screenYArg,
- in long clientXArg,
- in long clientYArg,
- in unsigned short buttonArg,
- in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
- in DOMString modifiersListArg,
- in long wheelDeltaArg);
- };
-
- // Introduced in DOM Level 2:
- interface <a class="noxref" href="#events-Events-MutationEvent">MutationEvent</a> : <a class="noxref" href="#events-Events-Event">Event</a> {
-
- // attrChangeType
- const unsigned short <a class="noxref" href="#events-MODIFICATION">MODIFICATION</a> = 1;
- const unsigned short <a class="noxref" href="#events-ADDITION">ADDITION</a> = 2;
- const unsigned short <a class="noxref" href="#events-REMOVAL">REMOVAL</a> = 3;
-
- readonly attribute Node <a class="noxref" href="#events-Events-MutationEvent-relatedNode">relatedNode</a>;
- readonly attribute DOMString <a class="noxref" href="#events-Events-MutationEvent-prevValue">prevValue</a>;
- readonly attribute DOMString <a class="noxref" href="#events-Events-MutationEvent-newValue">newValue</a>;
- readonly attribute DOMString <a class="noxref" href="#events-Events-MutationEvent-attrName">attrName</a>;
- readonly attribute unsigned short <a class="noxref" href="#events-Events-MutationEvent-attrChange">attrChange</a>;
- void <a class="noxref" href="#events-Events-Event-initMutationEvent">initMutationEvent</a>(in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in Node relatedNodeArg,
- in DOMString prevValueArg,
- in DOMString newValueArg,
- in DOMString attrNameArg,
- in unsigned short attrChangeArg);
- // Introduced in DOM Level 3:
- void <a class="noxref" href="#events-Events-Event-initMutationEventNS">initMutationEventNS</a>(in DOMString namespaceURIArg,
- in DOMString typeArg,
- in boolean canBubbleArg,
- in boolean cancelableArg,
- in Node relatedNodeArg,
- in DOMString prevValueArg,
- in DOMString newValueArg,
- in DOMString attrNameArg,
- in unsigned short attrChangeArg);
- };
-
- // Introduced in DOM Level 3:
- interface <a class="noxref" href="#events-Events-MutationNameEvent">MutationNameEvent</a> : <a class="noxref" href="#events-Events-MutationEvent">MutationEvent</a> {
- readonly attribute DOMString <a class="noxref" href="#events-Events-MutationNameEvent-prevNamespaceURI">prevNamespaceURI</a>;
- readonly attribute DOMString <a class="noxref" href="#events-Events-MutationNameEvent-prevNodeName">prevNodeName</a>;
- // Introduced in DOM Level 3:
- void <a class="noxref" href="#events-Events-Event-initMutationNameEvent">initMutationNameEvent</a>(in DOMString typeArg,
+ in DOMString keyIdentifierArg,
+ in unsigned long keyLocationArg,
+ in DOMString modifiersListArg);
+ void <a class="noxref" href="#events-Events-KeyboardEvent-initKeyboardEventNS">initKeyboardEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in DOMString keyIdentifierArg,
+ in unsigned long keyLocationArg,
+ in DOMString modifiersListArg);
+ };
+
+ // Introduced in DOM Level 2:
+ interface <a class="noxref" href="#events-Events-MouseEvent">MouseEvent</a> : <a class="noxref" href="#events-Events-UIEvent">UIEvent</a> {
+ readonly attribute long <a class="noxref" href="#events-Events-MouseEvent-screenX">screenX</a>;
+ readonly attribute long <a class="noxref" href="#events-Events-MouseEvent-screenY">screenY</a>;
+ readonly attribute long <a class="noxref" href="#events-Events-MouseEvent-clientX">clientX</a>;
+ readonly attribute long <a class="noxref" href="#events-Events-MouseEvent-clientY">clientY</a>;
+ readonly attribute boolean <a class="noxref" href="#events-Events-MouseEvent-ctrlKey">ctrlKey</a>;
+ readonly attribute boolean <a class="noxref" href="#events-Events-MouseEvent-shiftKey">shiftKey</a>;
+ readonly attribute boolean <a class="noxref" href="#events-Events-MouseEvent-altKey">altKey</a>;
+ readonly attribute boolean <a class="noxref" href="#events-Events-MouseEvent-metaKey">metaKey</a>;
+ readonly attribute unsigned short <a class="noxref" href="#events-Events-MouseEvent-button">button</a>;
+ readonly attribute <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> <a class="noxref" href="#events-Events-MouseEvent-relatedTarget">relatedTarget</a>;
+ void <a class="noxref" href="#events-event-type-initMouseEvent">initMouseEvent</a>(in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in long detailArg,
+ in long screenXArg,
+ in long screenYArg,
+ in long clientXArg,
+ in long clientYArg,
+ in boolean ctrlKeyArg,
+ in boolean altKeyArg,
+ in boolean shiftKeyArg,
+ in boolean metaKeyArg,
+ in unsigned short buttonArg,
+ in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg);
+ // Introduced in DOM Level 3:
+ boolean <a class="noxref" href="#events-Events-MouseEvent-getModifierState">getModifierState</a>(in DOMString keyIdentifierArg);
+ // Introduced in DOM Level 3:
+ void <a class="noxref" href="#events-event-type-initMouseEventNS">initMouseEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in long detailArg,
+ in long screenXArg,
+ in long screenYArg,
+ in long clientXArg,
+ in long clientYArg,
+ in unsigned short buttonArg,
+ in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
+ in DOMString modifiersListArg);
+ };
+
+ // Introduced in DOM Level 3:
+ interface <a class="noxref" href="#events-Events-WheelEvent">WheelEvent</a> : <a class="noxref" href="#events-Events-MouseEvent">MouseEvent</a> {
+ readonly attribute long <a class="noxref" href="#events-Events-WheelEvent-deltaX">deltaX</a>;
+ readonly attribute long <a class="noxref" href="#events-Events-WheelEvent-deltaY">deltaY</a>;
+ readonly attribute long <a class="noxref" href="#events-Events-WheelEvent-deltaZ">deltaZ</a>;
+ void <a class="noxref" href="#events-event-type-initWheelEventNS">initWheelEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in long detailArg,
+ in long screenXArg,
+ in long screenYArg,
+ in long clientXArg,
+ in long clientYArg,
+ in unsigned short buttonArg,
+ in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
+ in DOMString modifiersListArg,
+ in long deltaXArg,
+ in long deltaYArg,
+ in long deltaZArg);
+ };
+
+ // Introduced in DOM Level 3:
+ interface <a class="noxref" href="#events-Events-MouseWheelEvent">MouseWheelEvent</a> : <a class="noxref" href="#events-Events-MouseEvent">MouseEvent</a> {
+ readonly attribute long <a class="noxref" href="#events-Events-MouseWheelEvent-wheelDelta">wheelDelta</a>;
+ void <a class="noxref" href="#events-event-type-initMouseWheelEventNS">initMouseWheelEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in long detailArg,
+ in long screenXArg,
+ in long screenYArg,
+ in long clientXArg,
+ in long clientYArg,
+ in unsigned short buttonArg,
+ in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
+ in DOMString modifiersListArg,
+ in long wheelDeltaArg);
+ };
+
+ // Introduced in DOM Level 2:
+ interface <a class="noxref" href="#events-Events-MutationEvent">MutationEvent</a> : <a class="noxref" href="#events-Events-Event">Event</a> {
+
+ // attrChangeType
+ const unsigned short <a class="noxref" href="#events-MODIFICATION">MODIFICATION</a> = 1;
+ const unsigned short <a class="noxref" href="#events-ADDITION">ADDITION</a> = 2;
+ const unsigned short <a class="noxref" href="#events-REMOVAL">REMOVAL</a> = 3;
+
+ readonly attribute Node <a class="noxref" href="#events-Events-MutationEvent-relatedNode">relatedNode</a>;
+ readonly attribute DOMString <a class="noxref" href="#events-Events-MutationEvent-prevValue">prevValue</a>;
+ readonly attribute DOMString <a class="noxref" href="#events-Events-MutationEvent-newValue">newValue</a>;
+ readonly attribute DOMString <a class="noxref" href="#events-Events-MutationEvent-attrName">attrName</a>;
+ readonly attribute unsigned short <a class="noxref" href="#events-Events-MutationEvent-attrChange">attrChange</a>;
+ void <a class="noxref" href="#events-event-type-initMutationEvent">initMutationEvent</a>(in DOMString typeArg,
in boolean canBubbleArg,
in boolean cancelableArg,
in Node relatedNodeArg,
- in DOMString prevNamespaceURIArg,
- in DOMString prevNodeNameArg);
- // Introduced in DOM Level 3:
- void <a class="noxref" href="#events-Events-Event-initMutationNameEventNS">initMutationNameEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString prevValueArg,
+ in DOMString newValueArg,
+ in DOMString attrNameArg,
+ in unsigned short attrChangeArg);
+ // Introduced in DOM Level 3:
+ void <a class="noxref" href="#events-event-type-initMutationEventNS">initMutationEventNS</a>(in DOMString namespaceURIArg,
in DOMString typeArg,
in boolean canBubbleArg,
in boolean cancelableArg,
in Node relatedNodeArg,
- in DOMString prevNamespaceURIArg,
- in DOMString prevNodeNameArg);
- };
-};
-
-#endif // _EVENTS_IDL_
-
-</pre>
+ in DOMString prevValueArg,
+ in DOMString newValueArg,
+ in DOMString attrNameArg,
+ in unsigned short attrChangeArg);
+ };
+
+ // Introduced in DOM Level 3:
+ interface <a class="noxref" href="#events-Events-MutationNameEvent">MutationNameEvent</a> : <a class="noxref" href="#events-Events-MutationEvent">MutationEvent</a> {
+ readonly attribute DOMString <a class="noxref" href="#events-Events-MutationNameEvent-prevNamespaceURI">prevNamespaceURI</a>;
+ readonly attribute DOMString <a class="noxref" href="#events-Events-MutationNameEvent-prevNodeName">prevNodeName</a>;
+ // Introduced in DOM Level 3:
+ void <a class="noxref" href="#events-event-type-initMutationNameEvent">initMutationNameEvent</a>(in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in Node relatedNodeArg,
+ in DOMString prevNamespaceURIArg,
+ in DOMString prevNodeNameArg);
+ // Introduced in DOM Level 3:
+ void <a class="noxref" href="#events-event-type-initMutationNameEventNS">initMutationNameEventNS</a>(in DOMString namespaceURIArg,
+ in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in Node relatedNodeArg,
+ in DOMString prevNamespaceURIArg,
+ in DOMString prevNodeNameArg);
+ };
+ };
+
+ #endif // _EVENTS_IDL_
+
+ </pre>
</div>
</div>
- <!-- div1 idl -->
+<!-- div1 idl -->
<div class="div1">
<h1 id="java-binding-java-binding" class="adiv1">Appendix E: Java Language Binding</h1>
+ <p class="issue">@@ Note that this section is out of date, and will be updated with the appropriate IDLs once the specification is more stable.</p>
<p class="1st">This appendix contains the complete Java [<cite><a class="noxref normative" href="#references-Java">Java</a></cite>] bindings for the Level 3 Document Object Model Events.</p>
<p>The Java files are also available as <a class="normative" href="java-binding.zip">http://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071207/java-binding.zip</a></p>
<h3 id="java-binding-org.w3c.dom.events.EventException">org\w3c\dom\events\EventException.java:</h3>
<div class="java-code">
<pre>
-package org.w3c.dom.events;
-
-public class EventException extends RuntimeException {
- public EventException(short code, String message) {
- super(message);
- this.code = code;
+ package org.w3c.dom.events;
+
+ public class EventException extends RuntimeException {
+ public EventException(short code, String message) {
+ super(message);
+ this.code = code;
+ }
+ public short code;
+ // EventExceptionCode
+ public static final short UNSPECIFIED_EVENT_TYPE_ERR = 0;
+ public static final short DISPATCH_REQUEST_ERR = 1;
+
}
- public short code;
- // EventExceptionCode
- public static final short UNSPECIFIED_EVENT_TYPE_ERR = 0;
- public static final short DISPATCH_REQUEST_ERR = 1;
-
-}
-</pre>
+ </pre>
</div>
<h3 id="java-binding-org.w3c.dom.events.Event">org\w3c\dom\events\Event.java:</h3>
<div class="java-code">
<pre>
-package org.w3c.dom.events;
-
-public interface Event {
- // PhaseType
- public static final short CAPTURING_PHASE = 1;
- public static final short AT_TARGET = 2;
- public static final short BUBBLING_PHASE = 3;
-
- public String getType();
-
- public EventTarget getTarget();
-
- public EventTarget getCurrentTarget();
-
- public short getEventPhase();
-
- public boolean getBubbles();
-
- public boolean getCancelable();
-
- public long getTimeStamp();
-
- public void stopPropagation();
-
- public void preventDefault();
-
- public void initEvent(String eventTypeArg,
- boolean canBubbleArg,
- boolean cancelableArg);
-
- public String getNamespaceURI();
-
- public void stopImmediatePropagation();
-
- public boolean getDefaultPrevented();
-
- public void initEventNS(String namespaceURIArg,
- String eventTypeArg,
- boolean canBubbleArg,
- boolean cancelableArg);
-
-}
-</pre>
+ package org.w3c.dom.events;
+
+ public interface Event {
+ // PhaseType
+ public static final short CAPTURING_PHASE = 1;
+ public static final short AT_TARGET = 2;
+ public static final short BUBBLING_PHASE = 3;
+
+ public String getType();
+
+ public EventTarget getTarget();
+
+ public EventTarget getCurrentTarget();
+
+ public short getEventPhase();
+
+ public boolean getBubbles();
+
+ public boolean getCancelable();
+
+ public long getTimeStamp();
+
+ public void stopPropagation();
+
+ public void preventDefault();
+
+ public void initEvent(String eventTypeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg);
+
+ public String getNamespaceURI();
+
+ public void stopImmediatePropagation();
+
+ public boolean getDefaultPrevented();
+
+ public void initEventNS(String namespaceURIArg,
+ String eventTypeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg);
+
+ }
+ </pre>
</div>
<h3 id="java-binding-org.w3c.dom.events.CustomEvent">org\w3c\dom\events\CustomEvent.java:</h3>
<div class="java-code">
<pre>
-package org.w3c.dom.events;
-
-public interface CustomEvent extends Event {
- public Object getDetail();
-
- public void initCustomEventNS(String namespaceURIArg,
- String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- Object detailArg);
-
-}
-</pre>
+ package org.w3c.dom.events;
+
+ public interface CustomEvent extends Event {
+ public Object getDetail();
+
+ public void initCustomEventNS(String namespaceURIArg,
+ String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ Object detailArg);
+
+ }
+ </pre>
</div>
<h3 id="java-binding-org.w3c.dom.events.EventTarget">org\w3c\dom\events\EventTarget.java:</h3>
<div class="java-code">
<pre>
-package org.w3c.dom.events;
-
-import org.w3c.dom.DOMException;
-
-public interface EventTarget {
- public void addEventListener(String type,
- EventListener listener,
- boolean useCapture);
-
- public void removeEventListener(String type,
- EventListener listener,
- boolean useCapture);
-
- public boolean dispatchEvent(Event evt)
- throws EventException, DOMException;
-
- public void addEventListenerNS(String namespaceURI,
- String type,
- EventListener listener,
- boolean useCapture);
-
- public void removeEventListenerNS(String namespaceURI,
- String type,
- EventListener listener,
- boolean useCapture);
-
-}
-</pre>
+ package org.w3c.dom.events;
+
+ import org.w3c.dom.DOMException;
+
+ public interface EventTarget {
+ public void addEventListener(String type,
+ EventListener listener,
+ boolean useCapture);
+
+ public void removeEventListener(String type,
+ EventListener listener,
+ boolean useCapture);
+
+ public boolean dispatchEvent(Event evt)
+ throws EventException, DOMException;
+
+ public void addEventListenerNS(String namespaceURI,
+ String type,
+ EventListener listener,
+ boolean useCapture);
+
+ public void removeEventListenerNS(String namespaceURI,
+ String type,
+ EventListener listener,
+ boolean useCapture);
+
+ }
+ </pre>
</div>
<h3 id="java-binding-org.w3c.dom.events.EventListener">org\w3c\dom\events\EventListener.java:</h3>
<div class="java-code">
<pre>
-package org.w3c.dom.events;
-
-public interface EventListener {
- public void handleEvent(Event evt);
-
-}
-</pre>
+ package org.w3c.dom.events;
+
+ public interface EventListener {
+ public void handleEvent(Event evt);
+
+ }
+ </pre>
</div>
<h3 id="java-binding-org.w3c.dom.events.DocumentEvent">org\w3c\dom\events\DocumentEvent.java:</h3>
<div class="java-code">
<pre>
-package org.w3c.dom.events;
-
-import org.w3c.dom.DOMException;
-
-public interface DocumentEvent {
- public Event createEvent(String eventType)
- throws DOMException;
-
- public boolean canDispatch(String namespaceURI,
- String type);
-
-}
-</pre>
+ package org.w3c.dom.events;
+
+ import org.w3c.dom.DOMException;
+
+ public interface DocumentEvent {
+ public Event createEvent(String eventType)
+ throws DOMException;
+
+ public boolean canDispatch(String namespaceURI,
+ String type);
+
+ }
+ </pre>
</div>
<h3 id="java-binding-org.w3c.dom.events.UIEvent">org\w3c\dom\events\UIEvent.java:</h3>
<div class="java-code">
<pre>
-package org.w3c.dom.events;
-
-import org.w3c.dom.views.AbstractView;
-
-public interface UIEvent extends Event {
- public AbstractView getView();
-
- public int getDetail();
-
- public void initUIEvent(String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- int detailArg);
-
- public void initUIEventNS(String namespaceURIArg,
- String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- int detailArg);
-
-}
-</pre>
+ package org.w3c.dom.events;
+
+ import org.w3c.dom.views.AbstractView;
+
+ public interface UIEvent extends Event {
+ public AbstractView getView();
+
+ public int getDetail();
+
+ public void initUIEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ int detailArg);
+
+ public void initUIEventNS(String namespaceURIArg,
+ String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ int detailArg);
+
+ }
+ </pre>
</div>
<h3 id="java-binding-org.w3c.dom.events.TextEvent">org\w3c\dom\events\TextEvent.java:</h3>
<div class="java-code">
<pre>
-package org.w3c.dom.events;
-
-import org.w3c.dom.views.AbstractView;
-
-public interface TextEvent extends UIEvent {
- public String getData();
-
- public void initTextEvent(String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- String dataArg,
- unsigned long inputMode);
-
- public void initTextEventNS(String namespaceURIArg,
- String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- String dataArg,
- unsigned long inputMode);
-
-}
-</pre>
+ package org.w3c.dom.events;
+
+ import org.w3c.dom.views.AbstractView;
+
+ public interface TextEvent extends UIEvent {
+ public String getData();
+
+ public void initTextEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ String dataArg,
+ unsigned long inputMode);
+
+ public void initTextEventNS(String namespaceURIArg,
+ String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ String dataArg,
+ unsigned long inputMode);
+
+ }
+ </pre>
</div>
<h3 id="java-binding-org.w3c.dom.events.KeyboardEvent">org\w3c\dom\events\KeyboardEvent.java:</h3>
<div class="java-code">
<pre>
-package org.w3c.dom.events;
-
-import org.w3c.dom.views.AbstractView;
-
-public interface KeyboardEvent extends UIEvent {
- // KeyLocationCode
- public static final int DOM_KEY_LOCATION_STANDARD = 0x00;
- public static final int DOM_KEY_LOCATION_LEFT = 0x01;
- public static final int DOM_KEY_LOCATION_RIGHT = 0x02;
- public static final int DOM_KEY_LOCATION_NUMPAD = 0x03;
-
- public String getKeyIdentifier();
-
- public int getKeyLocation();
-
- public boolean getCtrlKey();
-
- public boolean getShiftKey();
-
- public boolean getAltKey();
-
- public boolean getMetaKey();
-
- public boolean getModifierState(String keyIdentifierArg);
-
- public void initKeyboardEvent(String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- String keyIdentifierArg,
- int keyLocationArg,
- String modifiersListArg);
-
- public void initKeyboardEventNS(String namespaceURIArg,
- String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- String keyIdentifierArg,
- int keyLocationArg,
- String modifiersListArg);
-
-}
-</pre>
+ package org.w3c.dom.events;
+
+ import org.w3c.dom.views.AbstractView;
+
+ public interface KeyboardEvent extends UIEvent {
+ // KeyLocationCode
+ public static final int DOM_KEY_LOCATION_STANDARD = 0x00;
+ public static final int DOM_KEY_LOCATION_LEFT = 0x01;
+ public static final int DOM_KEY_LOCATION_RIGHT = 0x02;
+ public static final int DOM_KEY_LOCATION_NUMPAD = 0x03;
+
+ public String getKeyIdentifier();
+
+ public int getKeyLocation();
+
+ public boolean getCtrlKey();
+
+ public boolean getShiftKey();
+
+ public boolean getAltKey();
+
+ public boolean getMetaKey();
+
+ public boolean getModifierState(String keyIdentifierArg);
+
+ public void initKeyboardEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ String keyIdentifierArg,
+ int keyLocationArg,
+ String modifiersListArg);
+
+ public void initKeyboardEventNS(String namespaceURIArg,
+ String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ String keyIdentifierArg,
+ int keyLocationArg,
+ String modifiersListArg);
+
+ }
+ </pre>
</div>
<h3 id="java-binding-org.w3c.dom.events.MouseEvent">org\w3c\dom\events\MouseEvent.java:</h3>
<div class="java-code">
<pre>
-package org.w3c.dom.events;
-
-import org.w3c.dom.views.AbstractView;
-
-public interface MouseEvent extends UIEvent {
- public int getScreenX();
-
- public int getScreenY();
-
- public int getClientX();
-
- public int getClientY();
-
- public boolean getCtrlKey();
-
- public boolean getShiftKey();
-
- public boolean getAltKey();
-
- public boolean getMetaKey();
-
- public short getButton();
-
- public EventTarget getRelatedTarget();
-
- public void initMouseEvent(String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- int detailArg,
- int screenXArg,
- int screenYArg,
- int clientXArg,
- int clientYArg,
- boolean ctrlKeyArg,
- boolean altKeyArg,
- boolean shiftKeyArg,
- boolean metaKeyArg,
- short buttonArg,
- EventTarget relatedTargetArg);
-
- public boolean getModifierState(String keyIdentifierArg);
-
- public void initMouseEventNS(String namespaceURIArg,
- String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- int detailArg,
- int screenXArg,
- int screenYArg,
- int clientXArg,
- int clientYArg,
- short buttonArg,
- EventTarget relatedTargetArg,
- String modifiersListArg);
-
-}
-</pre>
+ package org.w3c.dom.events;
+
+ import org.w3c.dom.views.AbstractView;
+
+ public interface MouseEvent extends UIEvent {
+ public int getScreenX();
+
+ public int getScreenY();
+
+ public int getClientX();
+
+ public int getClientY();
+
+ public boolean getCtrlKey();
+
+ public boolean getShiftKey();
+
+ public boolean getAltKey();
+
+ public boolean getMetaKey();
+
+ public short getButton();
+
+ public EventTarget getRelatedTarget();
+
+ public void initMouseEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ int detailArg,
+ int screenXArg,
+ int screenYArg,
+ int clientXArg,
+ int clientYArg,
+ boolean ctrlKeyArg,
+ boolean altKeyArg,
+ boolean shiftKeyArg,
+ boolean metaKeyArg,
+ short buttonArg,
+ EventTarget relatedTargetArg);
+
+ public boolean getModifierState(String keyIdentifierArg);
+
+ public void initMouseEventNS(String namespaceURIArg,
+ String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ int detailArg,
+ int screenXArg,
+ int screenYArg,
+ int clientXArg,
+ int clientYArg,
+ short buttonArg,
+ EventTarget relatedTargetArg,
+ String modifiersListArg);
+
+ }
+ </pre>
</div>
<h3 id="java-binding-org.w3c.dom.events.WheelEvent">org\w3c\dom\events\WheelEvent.java:</h3>
<div class="java-code">
<pre>
-package org.w3c.dom.events;
-
-import org.w3c.dom.views.AbstractView;
-
-public interface WheelEvent extends MouseEvent {
- public int getWheelDeltaX();
-
- public int getWheelDeltaY();
-
- public int getWheelDeltaZ();
-
- public void initWheelEventNS(String namespaceURIArg,
- String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- int detailArg,
- int screenXArg,
- int screenYArg,
- int clientXArg,
- int clientYArg,
- short buttonArg,
- EventTarget relatedTargetArg,
- String modifiersListArg,
- int deltaXArg,
- int deltaYArg,
- int deltaZArg);
-
-}
-</pre>
+ package org.w3c.dom.events;
+
+ import org.w3c.dom.views.AbstractView;
+
+ public interface WheelEvent extends MouseEvent {
+ public int getWheelDeltaX();
+
+ public int getWheelDeltaY();
+
+ public int getWheelDeltaZ();
+
+ public void initWheelEventNS(String namespaceURIArg,
+ String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ int detailArg,
+ int screenXArg,
+ int screenYArg,
+ int clientXArg,
+ int clientYArg,
+ short buttonArg,
+ EventTarget relatedTargetArg,
+ String modifiersListArg,
+ int deltaXArg,
+ int deltaYArg,
+ int deltaZArg);
+
+ }
+ </pre>
</div>
<h3 id="java-binding-org.w3c.dom.events.MouseWheelEvent">org\w3c\dom\events\MouseWheelEvent.java:</h3>
<div class="java-code">
<pre>
-package org.w3c.dom.events;
-
-import org.w3c.dom.views.AbstractView;
-
-public interface MouseWheelEvent extends MouseEvent {
- public int getWheelDelta();
-
- public void initMouseWheelEventNS(String namespaceURIArg,
- String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- int detailArg,
- int screenXArg,
- int screenYArg,
- int clientXArg,
- int clientYArg,
- short buttonArg,
- EventTarget relatedTargetArg,
- String modifiersListArg,
- int wheelDeltaArg);
-
-}
-</pre>
+ package org.w3c.dom.events;
+
+ import org.w3c.dom.views.AbstractView;
+
+ public interface MouseWheelEvent extends MouseEvent {
+ public int getWheelDelta();
+
+ public void initMouseWheelEventNS(String namespaceURIArg,
+ String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ int detailArg,
+ int screenXArg,
+ int screenYArg,
+ int clientXArg,
+ int clientYArg,
+ short buttonArg,
+ EventTarget relatedTargetArg,
+ String modifiersListArg,
+ int wheelDeltaArg);
+
+ }
+ </pre>
</div>
<h3 id="java-binding-org.w3c.dom.events.MutationEvent">org\w3c\dom\events\MutationEvent.java:</h3>
<div class="java-code">
<pre>
-package org.w3c.dom.events;
-
-import org.w3c.dom.Node;
-
-public interface MutationEvent extends Event {
- // attrChangeType
- public static final short MODIFICATION = 1;
- public static final short ADDITION = 2;
- public static final short REMOVAL = 3;
-
- public Node getRelatedNode();
-
- public String getPrevValue();
-
- public String getNewValue();
-
- public String getAttrName();
-
- public short getAttrChange();
-
- public void initMutationEvent(String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- Node relatedNodeArg,
- String prevValueArg,
- String newValueArg,
- String attrNameArg,
- short attrChangeArg);
-
- public void initMutationEventNS(String namespaceURIArg,
- String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- Node relatedNodeArg,
- String prevValueArg,
- String newValueArg,
- String attrNameArg,
- short attrChangeArg);
-
-}
-</pre>
+ package org.w3c.dom.events;
+
+ import org.w3c.dom.Node;
+
+ public interface MutationEvent extends Event {
+ // attrChangeType
+ public static final short MODIFICATION = 1;
+ public static final short ADDITION = 2;
+ public static final short REMOVAL = 3;
+
+ public Node getRelatedNode();
+
+ public String getPrevValue();
+
+ public String getNewValue();
+
+ public String getAttrName();
+
+ public short getAttrChange();
+
+ public void initMutationEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ Node relatedNodeArg,
+ String prevValueArg,
+ String newValueArg,
+ String attrNameArg,
+ short attrChangeArg);
+
+ public void initMutationEventNS(String namespaceURIArg,
+ String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ Node relatedNodeArg,
+ String prevValueArg,
+ String newValueArg,
+ String attrNameArg,
+ short attrChangeArg);
+
+ }
+ </pre>
</div>
<h3 id="java-binding-org.w3c.dom.events.MutationNameEvent">org\w3c\dom\events\MutationNameEvent.java:</h3>
<div class="java-code">
<pre>
-package org.w3c.dom.events;
-
-import org.w3c.dom.Node;
-
-public interface MutationNameEvent extends MutationEvent {
- public String getPrevNamespaceURI();
-
- public String getPrevNodeName();
-
- public void initMutationNameEvent(String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- Node relatedNodeArg,
- String prevNamespaceURIArg,
- String prevNodeNameArg);
-
- public void initMutationNameEventNS(String namespaceURIArg,
- String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- Node relatedNodeArg,
- String prevNamespaceURIArg,
- String prevNodeNameArg);
-
-}
-</pre>
+ package org.w3c.dom.events;
+
+ import org.w3c.dom.Node;
+
+ public interface MutationNameEvent extends MutationEvent {
+ public String getPrevNamespaceURI();
+
+ public String getPrevNodeName();
+
+ public void initMutationNameEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ Node relatedNodeArg,
+ String prevNamespaceURIArg,
+ String prevNodeNameArg);
+
+ public void initMutationNameEventNS(String namespaceURIArg,
+ String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ Node relatedNodeArg,
+ String prevNamespaceURIArg,
+ String prevNodeNameArg);
+
+ }
+ </pre>
</div>
</div>
- <!-- div1 java-binding -->
+
<div class="div1">
<h1 id="ecma-script-binding-ecma-binding" class="adiv1">Appendix F: ECMAScript Language Binding</h1>
+ <p class="issue">@@ Note that this section is out of date, and will be updated with the appropriate IDLs once the specification is more stable.</p>
<p class="1st">This appendix contains the complete ECMAScript [<cite><a class="noxref normative" href="#references-ECMAScript">ECMAScript</a></cite>] binding for the Level 3 Document Object Model Events definitions.</p>
<div class="ecma-block">
<dl>
@@ -7759,10 +6473,10 @@
<dt>
<strong>initEvent(eventTypeArg, canBubbleArg, cancelableArg)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>eventTypeArg</strong> parameter shall be a <strong>String</strong>.<br/>
-The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br/>
-The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>eventTypeArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.</dd>
<dt>
<strong>stopImmediatePropagation()</strong>
</dt>
@@ -7770,11 +6484,11 @@
<dt>
<strong>initEventNS(namespaceURIArg, eventTypeArg, canBubbleArg, cancelableArg)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br/>
-The <strong>eventTypeArg</strong> parameter shall be a <strong>String</strong>.<br/>
-The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br/>
-The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>eventTypeArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.</dd>
</dl>
</dd>
</dl>
@@ -7798,12 +6512,12 @@
<dt>
<strong>initCustomEventNS(namespaceURIArg, typeArg, canBubbleArg, cancelableArg, detailArg)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>detailArg</strong> parameter shall be an object that implements the <strong>Object</strong> interface.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>detailArg</strong> parameter shall be an object that implements the <strong>Object</strong> interface.</dd>
</dl>
</dd>
</dl>
@@ -7817,39 +6531,39 @@
<dt>
<strong>addEventListener(type, listener, useCapture)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>type</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>listener</strong> parameter shall be an object that implements the <strong>EventListener</strong> interface.<br />
-The <strong>useCapture</strong> parameter shall be a <strong>Boolean</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>type</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>listener</strong> parameter shall be an object that implements the <strong>EventListener</strong> interface.<br />
+ The <strong>useCapture</strong> parameter shall be a <strong>Boolean</strong>.</dd>
<dt>
<strong>removeEventListener(type, listener, useCapture)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>type</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>listener</strong> parameter shall be an object that implements the <strong>EventListener</strong> interface.<br />
-The <strong>useCapture</strong> parameter shall be a <strong>Boolean</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>type</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>listener</strong> parameter shall be an object that implements the <strong>EventListener</strong> interface.<br />
+ The <strong>useCapture</strong> parameter shall be a <strong>Boolean</strong>.</dd>
<dt>
<strong>dispatchEvent(evt)</strong>
</dt>
- <dd>This function returns a <strong>Boolean</strong>.<br/>
-The <strong>evt</strong> parameter shall be an object that implements the <strong>Event</strong> interface.<br />
-This function can raise an object that implements the <strong>EventException</strong> interface or the <strong>DOMException</strong> interface.</dd>
+ <dd>This function returns a <strong>Boolean</strong>.<br />
+ The <strong>evt</strong> parameter shall be an object that implements the <strong>Event</strong> interface.<br />
+ This function can raise an object that implements the <strong>EventException</strong> interface or the <strong>DOMException</strong> interface.</dd>
<dt>
<strong>addEventListenerNS(namespaceURI, type, listener, useCapture)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>namespaceURI</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>type</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>listener</strong> parameter shall be an object that implements the <strong>EventListener</strong> interface.<br />
-The <strong>useCapture</strong> parameter shall be a <strong>Boolean</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>namespaceURI</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>type</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>listener</strong> parameter shall be an object that implements the <strong>EventListener</strong> interface.<br />
+ The <strong>useCapture</strong> parameter shall be a <strong>Boolean</strong>.</dd>
<dt>
<strong>removeEventListenerNS(namespaceURI, type, listener, useCapture)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>namespaceURI</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>type</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>listener</strong> parameter shall be an object that implements the <strong>EventListener</strong> interface.<br />
-The <strong>useCapture</strong> parameter shall be a <strong>Boolean</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>namespaceURI</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>type</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>listener</strong> parameter shall be an object that implements the <strong>EventListener</strong> interface.<br />
+ The <strong>useCapture</strong> parameter shall be a <strong>Boolean</strong>.</dd>
</dl>
</dd>
</dl>
@@ -7892,15 +6606,15 @@
<dt>
<strong>createEvent(eventType)</strong>
</dt>
- <dd>This function returns an object that implements the <strong>Event</strong> interface.<br/>
-The <strong>eventType</strong> parameter shall be a <strong>String</strong>.<br />
-This function can raise an object that implements the <strong>DOMException</strong> interface.</dd>
+ <dd>This function returns an object that implements the <strong>Event</strong> interface.<br />
+ The <strong>eventType</strong> parameter shall be a <strong>String</strong>.<br />
+ This function can raise an object that implements the <strong>DOMException</strong> interface.</dd>
<dt class="atrisk">
<strong>canDispatch(namespaceURI, type)</strong>
</dt>
- <dd class="atrisk">This function returns a <strong>Boolean</strong>.<br/>
-The <strong>namespaceURI</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>type</strong> parameter shall be a <strong>String</strong>.</dd>
+ <dd class="atrisk">This function returns a <strong>Boolean</strong>.<br />
+ The <strong>namespaceURI</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>type</strong> parameter shall be a <strong>String</strong>.</dd>
</dl>
</dd>
</dl>
@@ -7928,22 +6642,22 @@
<dt>
<strong>initUIEvent(typeArg, canBubbleArg, cancelableArg, viewArg, detailArg)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
-The <strong>detailArg</strong> parameter shall be a <strong>Number</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
+ The <strong>detailArg</strong> parameter shall be a <strong>Number</strong>.</dd>
<dt>
<strong>initUIEventNS(namespaceURIArg, typeArg, canBubbleArg, cancelableArg, viewArg, detailArg)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
-The <strong>detailArg</strong> parameter shall be a <strong>Number</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
+ The <strong>detailArg</strong> parameter shall be a <strong>Number</strong>.</dd>
</dl>
</dd>
</dl>
@@ -7958,12 +6672,8 @@
<dt>
<strong>data</strong>
</dt>
- <dd>This read-only property shall be a <strong>String</strong>.</dd>
- <dl>
- <dt>
- <strong>inputMode</strong>
- </dt>
- <dd>This read-only property shall be an <strong>unsigned long</strong>.</dd>
+ <dd>This read-only property shall be a <strong>String</strong>.
+ <dl><dt><strong>inputMode</strong></dt><dd>This read-only property shall be an <strong>unsigned long</strong>.</dd></dl></dd>
</dl>
</dd>
<dt>Functions of objects that implement the <strong>TextEvent</strong> interface:</dt>
@@ -7972,24 +6682,24 @@
<dt>
<strong>initTextEvent(typeArg, canBubbleArg, cancelableArg, viewArg, dataArg, inputModeArg)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
-The <strong>dataArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>inputModeArg</strong> parameter shall be an <strong>Unsigned Long</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
+ The <strong>dataArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>inputModeArg</strong> parameter shall be an <strong>Unsigned Long</strong>.</dd>
<dt>
<strong>initTextEventNS(namespaceURIArg, typeArg, canBubbleArg, cancelableArg, viewArg, dataArg, inputModeArg)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
-The <strong>dataArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>inputModeArg</strong> parameter shall be an <strong>Unsigned Long</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
+ The <strong>dataArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>inputModeArg</strong> parameter shall be an <strong>Unsigned Long</strong>.</dd>
</dl>
</dd>
</dl>
@@ -8009,11 +6719,17 @@
<strong>KeyboardEvent.DOM_KEY_LOCATION_RIGHT</strong>
</dt>
<dd>The value of the constant <strong>KeyboardEvent.DOM_KEY_LOCATION_RIGHT</strong> shall be <strong>0x02</strong>.</dd>
- <dt><strong>KeyboardEvent.DOM_KEY_LOCATION_NUMPAD</strong></dt>
+ <dt>
+ <strong>KeyboardEvent.DOM_KEY_LOCATION_NUMPAD</strong>
+ </dt>
<dd>The value of the constant <strong>KeyboardEvent.DOM_KEY_LOCATION_NUMPAD</strong> shall be <strong>0x03</strong>.</dd>
- <dt><strong>KeyboardEvent.DOM_KEY_LOCATION_NUMPAD</strong></dt>
+ <dt>
+ <strong>KeyboardEvent.DOM_KEY_LOCATION_NUMPAD</strong>
+ </dt>
<dd>The value of the constant <strong>KeyboardEvent.DOM_KEY_LOCATION_MOBILE</strong> shall be <strong>0x04</strong>.</dd>
- <dt><strong>KeyboardEvent.DOM_KEY_LOCATION_NUMPAD</strong></dt>
+ <dt>
+ <strong>KeyboardEvent.DOM_KEY_LOCATION_NUMPAD</strong>
+ </dt>
<dd>The value of the constant <strong>KeyboardEvent.DOM_KEY_LOCATION_JOYSTICK</strong> shall be <strong>0x05</strong>.</dd>
</dl>
</dd>
@@ -8056,31 +6772,31 @@
<dt>
<strong>getModifierState(keyIdentifierArg)</strong>
</dt>
- <dd>This function returns a <strong>Boolean</strong>.<br/>
-The <strong>keyIdentifierArg</strong> parameter shall be a <strong>String</strong>.</dd>
+ <dd>This function returns a <strong>Boolean</strong>.<br />
+ The <strong>keyIdentifierArg</strong> parameter shall be a <strong>String</strong>.</dd>
<dt>
<strong>initKeyboardEvent(typeArg, canBubbleArg, cancelableArg, viewArg, keyIdentifierArg, keyLocationArg, modifiersListArg)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
-The <strong>keyIdentifierArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>keyLocationArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>modifiersListArg</strong> parameter shall be a <strong>String</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
+ The <strong>keyIdentifierArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>keyLocationArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>modifiersListArg</strong> parameter shall be a <strong>String</strong>.</dd>
<dt>
<strong>initKeyboardEventNS(namespaceURIArg, typeArg, canBubbleArg, cancelableArg, viewArg, keyIdentifierArg, keyLocationArg, modifiersListArg)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
-The <strong>keyIdentifierArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>keyLocationArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>modifiersListArg</strong> parameter shall be a <strong>String</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
+ The <strong>keyIdentifierArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>keyLocationArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>modifiersListArg</strong> parameter shall be a <strong>String</strong>.</dd>
</dl>
</dd>
</dl>
@@ -8140,44 +6856,44 @@
<dt>
<strong>initMouseEvent(typeArg, canBubbleArg, cancelableArg, viewArg, detailArg, screenXArg, screenYArg, clientXArg, clientYArg, ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg, buttonArg, relatedTargetArg)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
-The <strong>detailArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>screenXArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>screenYArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>clientXArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>clientYArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>ctrlKeyArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>altKeyArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>shiftKeyArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>metaKeyArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>buttonArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>relatedTargetArg</strong> parameter shall be an object that implements the <strong>EventTarget</strong> interface.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
+ The <strong>detailArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>screenXArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>screenYArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>clientXArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>clientYArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>ctrlKeyArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>altKeyArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>shiftKeyArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>metaKeyArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>buttonArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>relatedTargetArg</strong> parameter shall be an object that implements the <strong>EventTarget</strong> interface.</dd>
<dt>
<strong>getModifierState(keyIdentifierArg)</strong>
</dt>
- <dd>This function returns a <strong>Boolean</strong>.<br/>
-The <strong>keyIdentifierArg</strong> parameter shall be a <strong>String</strong>.</dd>
+ <dd>This function returns a <strong>Boolean</strong>.<br />
+ The <strong>keyIdentifierArg</strong> parameter shall be a <strong>String</strong>.</dd>
<dt>
<strong>initMouseEventNS(namespaceURIArg, typeArg, canBubbleArg, cancelableArg, viewArg, detailArg, screenXArg, screenYArg, clientXArg, clientYArg, buttonArg, relatedTargetArg, modifiersListArg)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
-The <strong>detailArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>screenXArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>screenYArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>clientXArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>clientYArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>buttonArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>relatedTargetArg</strong> parameter shall be an object that implements the <strong>EventTarget</strong> interface.<br />
-The <strong>modifiersListArg</strong> parameter shall be a <strong>String</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
+ The <strong>detailArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>screenXArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>screenYArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>clientXArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>clientYArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>buttonArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>relatedTargetArg</strong> parameter shall be an object that implements the <strong>EventTarget</strong> interface.<br />
+ The <strong>modifiersListArg</strong> parameter shall be a <strong>String</strong>.</dd>
</dl>
</dd>
</dl>
@@ -8209,23 +6925,23 @@
<dt>
<strong>initWheelEventNS(namespaceURIArg, typeArg, canBubbleArg, cancelableArg, viewArg, detailArg, screenXArg, screenYArg, clientXArg, clientYArg, buttonArg, relatedTargetArg, modifiersListArg, deltaXArg, deltaYArg, deltaZArg)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
-The <strong>detailArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>screenXArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>screenYArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>clientXArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>clientYArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>buttonArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>relatedTargetArg</strong> parameter shall be an object that implements the <strong>EventTarget</strong> interface.<br />
-The <strong>modifiersListArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>deltaXArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>deltaYArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>deltaZArg</strong> parameter shall be a <strong>Number</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
+ The <strong>detailArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>screenXArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>screenYArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>clientXArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>clientYArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>buttonArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>relatedTargetArg</strong> parameter shall be an object that implements the <strong>EventTarget</strong> interface.<br />
+ The <strong>modifiersListArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>deltaXArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>deltaYArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>deltaZArg</strong> parameter shall be a <strong>Number</strong>.</dd>
</dl>
</dd>
</dl>
@@ -8249,21 +6965,21 @@
<dt>
<strong>initMouseWheelEventNS(namespaceURIArg, typeArg, canBubbleArg, cancelableArg, viewArg, detailArg, screenXArg, screenYArg, clientXArg, clientYArg, buttonArg, relatedTargetArg, modifiersListArg, wheelDeltaArg)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
-The <strong>detailArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>screenXArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>screenYArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>clientXArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>clientYArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>buttonArg</strong> parameter shall be a <strong>Number</strong>.<br />
-The <strong>relatedTargetArg</strong> parameter shall be an object that implements the <strong>EventTarget</strong> interface.<br />
-The <strong>modifiersListArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>wheelDeltaArg</strong> parameter shall be a <strong>Number</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>viewArg</strong> parameter shall be an object that implements the <strong>AbstractView</strong> interface.<br />
+ The <strong>detailArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>screenXArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>screenYArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>clientXArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>clientYArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>buttonArg</strong> parameter shall be a <strong>Number</strong>.<br />
+ The <strong>relatedTargetArg</strong> parameter shall be an object that implements the <strong>EventTarget</strong> interface.<br />
+ The <strong>modifiersListArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>wheelDeltaArg</strong> parameter shall be a <strong>Number</strong>.</dd>
</dl>
</dd>
</dl>
@@ -8320,28 +7036,28 @@
<dt>
<strong>initMutationEvent(typeArg, canBubbleArg, cancelableArg, relatedNodeArg, prevValueArg, newValueArg, attrNameArg, attrChangeArg)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>relatedNodeArg</strong> parameter shall be an object that implements the <strong>Node</strong> interface.<br />
-The <strong>prevValueArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>newValueArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>attrNameArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>attrChangeArg</strong> parameter shall be a <strong>Number</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>relatedNodeArg</strong> parameter shall be an object that implements the <strong>Node</strong> interface.<br />
+ The <strong>prevValueArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>newValueArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>attrNameArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>attrChangeArg</strong> parameter shall be a <strong>Number</strong>.</dd>
<dt>
<strong>initMutationEventNS(namespaceURIArg, typeArg, canBubbleArg, cancelableArg, relatedNodeArg, prevValueArg, newValueArg, attrNameArg, attrChangeArg)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>relatedNodeArg</strong> parameter shall be an object that implements the <strong>Node</strong> interface.<br />
-The <strong>prevValueArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>newValueArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>attrNameArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>attrChangeArg</strong> parameter shall be a <strong>Number</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>relatedNodeArg</strong> parameter shall be an object that implements the <strong>Node</strong> interface.<br />
+ The <strong>prevValueArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>newValueArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>attrNameArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>attrChangeArg</strong> parameter shall be a <strong>Number</strong>.</dd>
</dl>
</dd>
</dl>
@@ -8369,64 +7085,61 @@
<dt>
<strong>initMutationNameEvent(typeArg, canBubbleArg, cancelableArg, relatedNodeArg, prevNamespaceURIArg, prevNodeNameArg)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>relatedNodeArg</strong> parameter shall be an object that implements the <strong>Node</strong> interface.<br />
-The <strong>prevNamespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>prevNodeNameArg</strong> parameter shall be a <strong>String</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>relatedNodeArg</strong> parameter shall be an object that implements the <strong>Node</strong> interface.<br />
+ The <strong>prevNamespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>prevNodeNameArg</strong> parameter shall be a <strong>String</strong>.</dd>
<dt>
<strong>initMutationNameEventNS(namespaceURIArg, typeArg, canBubbleArg, cancelableArg, relatedNodeArg, prevNamespaceURIArg, prevNodeNameArg)</strong>
</dt>
- <dd>This function has no return value.<br/>
-The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
-The <strong>relatedNodeArg</strong> parameter shall be an object that implements the <strong>Node</strong> interface.<br />
-The <strong>prevNamespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
-The <strong>prevNodeNameArg</strong> parameter shall be a <strong>String</strong>.</dd>
+ <dd>This function has no return value.<br />
+ The <strong>namespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>typeArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>canBubbleArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>cancelableArg</strong> parameter shall be a <strong>Boolean</strong>.<br />
+ The <strong>relatedNodeArg</strong> parameter shall be an object that implements the <strong>Node</strong> interface.<br />
+ The <strong>prevNamespaceURIArg</strong> parameter shall be a <strong>String</strong>.<br />
+ The <strong>prevNodeNameArg</strong> parameter shall be a <strong>String</strong>.</dd>
</dl>
</dd>
</dl>
</dd>
</dl>
</div>
- <!-- ecma-block -->
+<!-- ecma-block -->
</div>
- <!-- div1 ecma-binding -->
+
+
+
+<!-- div1 ecma-binding -->
<div class="div1">
<h1 id="acknowledgements-contributors" class="adiv1">Appendix G: Acknowledgements</h1>
<p class="1st">Many people contributed to the DOM specifications (Level 1, 2 or 3), including participants of the DOM Working Group and the DOM Interest Group. We especially thank the following:</p>
- <p>Andrew Watson (Object Management Group), Andy Heninger (IBM), Angel Diaz (IBM), Arnaud Le Hors (W3C and IBM), Ashok Malhotra (IBM and Microsoft), Ben Chang (Oracle), Bill Smith (Sun), Bill Shea (Merrill Lynch), Bob Sutor (IBM), Chris Lovett (Microsoft), Chris Wilson (Microsoft), David Brownell (Sun), David Ezell (Hewlett-Packard Company), David Singer (IBM), Dimitris Dimitriadis (Improve AB and invited expert), Don Park (invited), Elena Litani (IBM), Eric Vasilik (Microsoft), Gavin Nicol (INSO), Ian Jacobs (W3C), James Clark (invited), James Davidson (Sun), Jared Sorensen (Novell), Jeroen van Rotterdam (X-Hive Corporation), Joe Kesselman (IBM), Joe Lapp (webMethods), Joe Marini (Macromedia), Johnny Stenback (Netscape/AOL), Jon Ferraiolo (Adobe), Jonathan Marsh (Microsoft), Jonathan Robie (Texcel Research and Software AG), Kim Adamson-Sharpe (SoftQuad Software Inc.), Lauren Wood (SoftQuad Software Inc., <em>former Chair</em>), Laurence Cable (Sun), Mark Davis (IBM), Mark Scardina (Oracle), Martin Dürst (W3C), Mary Brady (NIST), Mick Goulish (Software AG), Mike Champion (Arbortext and Software AG), Miles Sabin (Cromwell Media), Patti Lutsky (Arbortext), Paul Grosso (Arbortext), Peter Sharpe (SoftQuad Software Inc.), Phil Karlton (Netscape), Philippe Le Hégaret (W3C, <em>W3C Team Contact and former Chair</em>), Ramesh Lekshmynarayanan (Merrill Lynch), Ray Whitmer (iMall, Excite@Home, and Netscape/AOL, <em>Chair</em>), Rezaur Rahman (Intel), Rich Rollman (Microsoft), Rick Gessner (Netscape), Rick Jelliffe (invited), Rob Relyea (Microsoft), Scott Isaacs (Microsoft), Sharon Adler (INSO), Steve Byrne (JavaSoft), Tim Bray (invited), Tim Yu (Oracle), Tom Pixley (Netscape/AOL), Vidur Apparao (Netscape), Vinod Anupam (Lucent).</p>
+ <p>Andrew Watson (Object Management Group), Andy Heninger (IBM), Angel Diaz (IBM), Arnaud Le Hors (W3C and IBM), Ashok Malhotra (IBM and Microsoft), Ben Chang (Oracle), Bill Smith (Sun), Bill Shea (Merrill Lynch), Bob Sutor (IBM), Chris Lovett (Microsoft), Chris Wilson (Microsoft), David Brownell (Sun), David Ezell (Hewlett-Packard Company), David Singer (IBM), Dimitris Dimitriadis (Improve AB and invited expert), Don Park (invited), Elena Litani (IBM), Eric Vasilik (Microsoft), Gavin Nicol (INSO), Ian Jacobs (W3C), James Clark (invited), James Davidson (Sun), Jared Sorensen (Novell), Jeroen van Rotterdam (X-Hive Corporation), Joe Kesselman (IBM), Joe Lapp (webMethods), Joe Marini (Macromedia), Johnny Stenback (Netscape/AOL), Jon Ferraiolo (Adobe), Jonathan Marsh (Microsoft), Jonathan Robie (Texcel Research and Software AG), Kim Adamson-Sharpe (SoftQuad Software Inc.), Lauren Wood (SoftQuad Software Inc., <em>former Chair</em>), Laurence Cable (Sun), Mark Davis (IBM), Mark Scardina (Oracle), Martin Dürst (W3C), Mary Brady (NIST), Mick Goulish (Software AG), Mike Champion (Arbortext and Software AG), Miles Sabin (Cromwell Media), Patti Lutsky (Arbortext), Paul Grosso (Arbortext), Peter Sharpe (SoftQuad Software Inc.), Phil Karlton (Netscape), Philippe Le Hégaret (W3C, <em>W3C Team Contact and former Chair</em>), Ramesh Lekshmynarayanan (Merrill Lynch), Ray Whitmer (iMall, Excite@Home, and Netscape/AOL, <em>Chair</em>), Rezaur Rahman (Intel), Rich Rollman (Microsoft), Rick Gessner (Netscape), Rick Jelliffe (invited), Rob Relyea (Microsoft), Scott Isaacs (Microsoft), Sharon Adler (INSO), Steve Byrne (JavaSoft), Tim Bray (invited), Tim Yu (Oracle), Tom Pixley (Netscape/AOL), Vidur Apparao (Netscape), Vinod Anupam (Lucent).</p>
<p>The following people made substantial material contribution to the glossary in earlier versions: Arnaud Le Hors (W3C) and Robert S. Sutor (IBM Research).</p>
<p>After publication of this document as Working Group Note in November 2003, the participants of the WebAPI Working Group resumed development of this document:</p>
- <p>Anne van Kesteren (Opera Software), Arun Ranganathan (AOL), Björn Höhrmann, Charles McCathieNevile (Opera Software, <em>Co-Chair</em>), Christophe Jolif (ILOG), Dean Jackson (W3C, <em>W3C Team Contact</em>), Doug Schepers (Vectoreal), Gorm Haug Eriksen (Opera Software), Ian Davis (Talis Information Limited), Ian Hickson (Google), John Robinson (AOL), Jonas Sicking (Mozilla Foundation), Luca Mascaro (HTML Writers Guild), Maciej Stachowiak (Apple Computer), Marc Hadley (Sun Microsystems), Michael Shenfield (Research In Motion), Robin Berjon, (Expway, <em>Co-Chair</em>) , Scott Hayman (Research In Motion), Stéphane Sire (IntuiLab), T.V. Raman (Google)</p>
-
-
+ <p>Anne van Kesteren (Opera Software), Arun Ranganathan (AOL), Björn Höhrmann, Charles McCathieNevile (Opera Software, <em>Co-Chair</em>), Christophe Jolif (ILOG), Dean Jackson (W3C, <em>W3C Team Contact</em>), Doug Schepers (Vectoreal), Gorm Haug Eriksen (Opera Software), Ian Davis (Talis Information Limited), Ian Hickson (Google), John Robinson (AOL), Jonas Sicking (Mozilla Foundation), Luca Mascaro (HTML Writers Guild), Maciej Stachowiak (Apple Computer), Marc Hadley (Sun Microsystems), Michael Shenfield (Research In Motion), Robin Berjon, (Expway, <em>Co-Chair</em>) , Scott Hayman (Research In Motion), Stéphane Sire (IntuiLab), T.V. Raman (Google)</p>
<p>In the WebApps Working Group, the following people were active participants in the process of refining and revising the DOM3 Events Specification:</p>
<p>Hironori Bono (Google), Daniel Danilatos (Google), Travis Leithead (Microsoft), Cameron McCormack (Invited Expert), Carmelo Montanez (NIST), Olli Pettay (Mozilla), Jacob Rossi (Microsoft), Hallvord R. M. Steen (Opera)</p>
-
-
<p>Thanks to all those who have helped to improve this specification by sending suggestions and corrections (Please, keep bugging us with your issues!).</p>
- <p>Many thanks to Brad Pettit, Dylan Schiemann, David Flanagan, Steven Pemberton, Curt Arnold, Al Gilman, Misha Wolf, Sigurd Lerstad, Michael B. Allen, Alexander J. Vincent, Martin Dürst, Ken Rehor, NAKANO Masayuki, and Cameron McCormack, for their review and comments of this document.</p>
+ <p>Many thanks to Brad Pettit, Dylan Schiemann, David Flanagan, Steven Pemberton, Curt Arnold, Al Gilman, Misha Wolf, Sigurd Lerstad, Michael B. Allen, Alexander J. Vincent, Martin Dürst, Ken Rehor, NAKANO Masayuki, and Cameron McCormack, for their review and comments of this document.</p>
<p>Special thanks to the <a class="normative" href="http://www.w3.org/DOM/Test">DOM Conformance Test Suites</a> contributors: Fred Drake, Mary Brady (NIST), Rick Rivello (NIST), Robert Clary (Netscape), Neil Delima (IBM), with a special mention to Curt Arnold.</p>
<div class="div2">
<h2 id="acknowledgements-Productions" class="adiv2">G.1 Production Systems</h2>
<p>This specification was written in XML. The HTML, OMG IDL, Java and ECMAScript bindings were all produced automatically.</p>
- <p>Thanks to Joe English, author of <a class="normative" href="http://www.flightlab.com/cost">cost</a>, which was used as the basis for producing DOM Level 1. Thanks also to Gavin Nicol, who wrote the scripts which run on top of cost. Arnaud Le Hors and Philippe Le Hégaret maintained the scripts.</p>
- <p>After DOM Level 1, we used <a class="normative" href="http://xml.apache.org/xerces-j">Xerces</a> as the basis DOM implementation and wish to thank the authors. Philippe Le Hégaret and Arnaud Le Hors wrote the <a class="normative" href="http://dev.w3.org/cvsweb/java/classes/org/w3c/tools/specgenerator/">Java programs</a> which are the DOM application.</p>
- <p>Thanks also to Jan Kärrman, author of <a class="normative" href="http://user.it.uu.se/~jan/html2ps.html">html2ps</a>, which we use in creating the PostScript version of the specification.</p>
+ <p>Thanks to Joe English, author of <a class="normative" href="http://www.flightlab.com/cost">cost</a>, which was used as the basis for producing DOM Level 1. Thanks also to Gavin Nicol, who wrote the scripts which run on top of cost. Arnaud Le Hors and Philippe Le Hégaret maintained the scripts.</p>
+ <p>After DOM Level 1, we used <a class="normative" href="http://xml.apache.org/xerces-j">Xerces</a> as the basis DOM implementation and wish to thank the authors. Philippe Le Hégaret and Arnaud Le Hors wrote the <a class="normative" href="http://dev.w3.org/cvsweb/java/classes/org/w3c/tools/specgenerator/">Java programs</a> which are the DOM application.</p>
+ <p>Thanks also to Jan Kärrman, author of <a class="normative" href="http://user.it.uu.se/~jan/html2ps.html">html2ps</a>, which we use in creating the PostScript version of the specification.</p>
</div>
- <!-- div2 Productions -->
+<!-- div2 Productions -->
</div>
-
-
<div class="div1" id="references-References">
<h1 id="references-role-references" class="references">References</h1>
<p class="1st">For the latest version of any W3C specification please consult the list of <a class="normative" href="http://www.w3.org/TR">W3C Technical Reports</a> available at http://www.w3.org/TR.</p>
- <div class="div2">
+ <div class="div2">
<h2 class="adiv2" id="references-References-Normative">H.1 Normative References</h2>
<dl>
<dt>
@@ -8467,20 +7180,18 @@
<dd><cite><a href="http://www.w3.org/TR/2006/REC-xml-names11-20060816">Namespaces in XML 1.1</a></cite>, T. Bray, D. Hollander, A. Layman, and R. Tobin, Editors. World Wide Web Consortium, August 2006. This version of the Namespaces in XML 1.1 Specification is http://www.w3.org/TR/2006/REC-xml-names11-20060816. The <a class="normative" href="http://www.w3.org/TR/xml-names11/">latest version of Namespaces in XML 1.1</a> is available at http://www.w3.org/TR/xml-names11/.</dd>
</dl>
</div>
- <!-- div2 References-Normative -->
+<!-- div2 References-Normative -->
<div class="div2">
<h2 id="references-References-Informative" class="adiv2">I.2 Informative References</h2>
<dl>
-
- <dt class="wip"><strong>[<a id="references-CSS2">CSS2</a>]</strong>
+ <dt class="wip">
+ <strong>[<a id="references-CSS2">CSS2</a>]</strong>
</dt>
- <dd><cite><a href="http://www.w3.org/TR/2009/CR-CSS2-20090423">Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification</a></cite>, B. Bos, T. Çelik, I. Hickson, H.W. Lie, Editors. World Wide Web Consortium, 23 April 2009, <strong>Work in Progress</strong>. This version of the CSS 2.1 Specification is http://www.w3.org/TR/2009/CR-CSS2-20090423. The <a class="normative" href="http://www.w3.org/TR/CSS2/">latest version of CSS 2.1</a> is available at http://www.w3.org/TR/CSS2/.</dd>
-
+ <dd><cite><a href="http://www.w3.org/TR/2009/CR-CSS2-20090423">Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification</a></cite>, B. Bos, T. Çelik, I. Hickson, H.W. Lie, Editors. World Wide Web Consortium, 23 April 2009, <strong>Work in Progress</strong>. This version of the CSS 2.1 Specification is http://www.w3.org/TR/2009/CR-CSS2-20090423. The <a class="normative" href="http://www.w3.org/TR/CSS2/">latest version of CSS 2.1</a> is available at http://www.w3.org/TR/CSS2/.</dd>
<dt>
<strong>[<a id="references-DOMLS">DOM Level 3 Load and Save</a>]</strong>
</dt>
<dd><cite><a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407">Document Object Model Level 3 Load and Save Specification</a></cite>, J. Stenback, A. Heninger, Editors. World Wide Web Consortium, April 2004. This version of the DOM Level 3 Load and Save Specification is http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407. The <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-LS">latest version of DOM Level 3 Load and Save</a> is available at http://www.w3.org/TR/DOM-Level-3-LS.</dd>
-
<dt>
<strong>[<a id="references-DWW95">DWW95</a>]</strong>
</dt>
@@ -8507,515 +7218,10 @@
<dd><cite><a href="http://www.w3.org/TR/2006/REC-xml-20060816">Extensible Markup Language (XML) 1.0</a></cite>, T. Bray, J. Paoli, C. M. Sperberg-McQueen, et. al, Editors. World Wide Web Consortium, August 2006. This version of the XML 1.0 Recommendation is http://www.w3.org/TR/2006/REC-xml-20060816. The <a class="normative" href="http://www.w3.org/TR/xml">latest version of XML 1.0</a> is available at http://www.w3.org/TR/xml.</dd>
</dl>
</div>
- <!-- div2 References-Informative -->
+<!-- div2 References-Informative -->
</div>
- <!-- div1 References -->
-
-
-
-
- <div class="div1" id="def-index-Index">
- <h1 id="def-index-role-index" class="index">Index</h1>
-
- <p class="issue">@@ Note that this index is out of date, and will be updated with the appropriate linked keywords once the specification is more stable.</p>
-
- <table summary="the table contains all keywords used in this document">
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">abort</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-abort">2</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-EventTarget-addEventListener">addEventListener</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-EventTargetGroup-addEventListenerNS">addEventListenerNS</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-ADDITION">ADDITION</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-KeyboardEvent-altKey">altKey</a>
- <a class="index-inst" href="#events-Events-KeyboardEvent-altKey">1</a>, <a class="index-inst" href="#events-Events-MouseEvent-altKey">2</a></td>
- <td width="30%">
- <a class="noxref" href="#events-AT_TARGET">AT_TARGET</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-MutationEvent-attrChange">attrChange</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-MutationEvent-attrName">attrName</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">blur</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-Events-eventgroupings-uievents">2</a>, <a class="index-inst" href="#events-event-blur">3</a>, <a class="index-inst" href="#events-Events-eventgroupings-basicevents">4</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-canBubble">bubbles</a></td>
- <td width="30%"><a class="noxref" href="#events-BUBBLING_PHASE">bubbling phase</a>
- <a class="index-inst" href="#events-BUBBLING_PHASE">1</a>, <a class="index-inst" href="#events-Events-EventTarget-addEventListener">2</a>, <a class="index-inst" href="#glossary-dt-bubbling-phase">3</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-BUBBLING_PHASE">BUBBLING_PHASE</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-MouseEvent-button">button</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-canCancel">cancelable</a></td>
- <td width="30%"><a class="noxref" href="#events-dt-cancelable-event">cancelable event</a>
- <a class="index-inst" href="#events-dt-cancelable-event">1</a>, <a class="index-inst" href="#events-Events-EventTypes-complete">2</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-DocumentEvent-canDispatch">canDispatch</a></td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-CAPTURING_PHASE">capture phase</a>
- <a class="index-inst" href="#events-CAPTURING_PHASE">1</a>, <a class="index-inst" href="#events-AT_TARGET">2</a>, <a class="index-inst" href="#events-Events-EventTarget-addEventListener">3</a>, <a class="index-inst" href="#glossary-dt-capture-phase">4</a></td>
- <td width="30%">
- <a class="noxref" href="#events-CAPTURING_PHASE">CAPTURING_PHASE</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">change</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-change">2</a></td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-flow-activation">click</a>
- <a class="index-inst" href="#events-Events-flow-activation">1</a>, <a class="index-inst" href="#events-Events-EventTypes-complete">2</a>, <a class="index-inst" href="#events-event-click">3</a>, <a class="index-inst" href="#events-Events-eventgroupings-mouseevents">4</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-MouseEvent-clientX">clientX</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-MouseEvent-clientY">clientY</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-DocumentEvent-createEvent">createEvent</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-KeyboardEvent-ctrlKey">ctrlKey</a>
- <a class="index-inst" href="#events-Events-KeyboardEvent-ctrlKey">1</a>, <a class="index-inst" href="#events-Events-MouseEvent-ctrlKey">2</a></td>
- <td width="30%"><a class="noxref" href="#events-dt-current-click-count">current click count</a>
- <a class="index-inst" href="#events-dt-current-click-count">1</a>, <a class="index-inst" href="#events-Events-eventgroupings-mouseevents">2</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-currentTarget">currentTarget</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-CustomEvent">CustomEvent</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-TextEvent-data">data</a></td>
- <td width="30%"><a class="noxref" href="#events-event-dblclick">dblclick</a>
- <a class="index-inst" href="#events-event-dblclick">1</a>, <a class="index-inst" href="#events-Events-eventgroupings-mouseevents">2</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-defaultPrevented">defaultPrevented</a></td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-CustomEvent-detail">detail</a>
- <a class="index-inst" href="#events-Events-CustomEvent-detail">1</a>, <a class="index-inst" href="#events-Events-UIEvent-detail">2</a></td>
- <td width="30%">
- <a class="noxref" href="#events-DISPATCH_REQUEST_ERR">DISPATCH_REQUEST_ERR</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-EventTarget-dispatchEvent">dispatchEvent</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-DocumentEvent">DocumentEvent</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-overview">DOM Level 0</a>
- <a class="index-inst" href="#events-Events-overview">1</a>, <a class="index-inst" href="#events-Events-MouseEvent">2</a>, <a class="index-inst" href="#glossary-dt-DOM-Level-0">3</a></td>
- <td width="30%"><a class="noxref" href="#events-Conformance">DOM Level 2 Core</a>
- <a class="index-inst" href="#events-Conformance">1</a>, <a class="index-inst" href="#references-DOM2Core">2</a></td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Conformance">DOM Level 2 Events</a>
- <a class="index-inst" href="#events-Conformance">1</a>, <a class="index-inst" href="#references-DOM2Events">2</a></td>
- <td width="30%"><a class="noxref" href="#events-Conformance">DOM Level 3 Core</a>
- <a class="index-inst" href="#events-Conformance">1</a>, <a class="index-inst" href="#events-Event-types">2</a>, <a class="index-inst" href="#references-DOMCore">3</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-flow">DOM Level 3 Load and Save</a>
- <a class="index-inst" href="#events-Events-flow">1</a>, <a class="index-inst" href="#references-DOMLS">2</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-DOM_KEY_LOCATION_LEFT">DOM_KEY_LOCATION_LEFT</a></td>
- <td width="30%">
- <a class="noxref" href="#events-DOM_KEY_LOCATION_NUMPAD">DOM_KEY_LOCATION_NUMPAD</a></td>
- <td width="30%">
- <a class="noxref" href="#events-DOM_KEY_LOCATION_RIGHT">DOM_KEY_LOCATION_RIGHT</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-DOM_KEY_LOCATION_STANDARD">DOM_KEY_LOCATION_STANDARD</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-flow-activation">DOMActivate</a>
- <a class="index-inst" href="#events-Events-flow-activation">1</a>, <a class="index-inst" href="#events-Events-EventTypes-complete">2</a>, <a class="index-inst" href="#events-Events-DocumentEvent-createEvent">3</a>, <a class="index-inst" href="#events-event-DOMActivate">4</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">DOMAttributeNameChanged</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-DOMAttributeNameChanged">2</a></td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">DOMAttrModified</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-Events-MutationEvent-relatedNode">2</a>, <a class="index-inst" href="#events-Events-MutationEvent-prevValue">3</a>, <a class="index-inst" href="#events-Events-MutationEvent-newValue">4</a>, <a class="index-inst" href="#events-Events-MutationEvent-attrName">5</a>, <a class="index-inst" href="#events-Events-MutationEvent-attrChange">6</a>, <a class="index-inst" href="#events-event-DOMAttrModified">7</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">DOMCharacterDataModified</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-Events-MutationEvent-prevValue">2</a>, <a class="index-inst" href="#events-Events-MutationEvent-newValue">3</a>, <a class="index-inst" href="#events-event-DOMCharacterDataModified">4</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">DOMElementNameChanged</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-DOMElementNameChanged">2</a></td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">DOMFocusIn</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-DOMFocusIn">2</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">DOMFocusOut</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-DOMFocusOut">2</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">DOMNodeInserted</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-DOMNodeInserted">2</a>, <a class="index-inst" href="#events-Events-eventgroupings-mutationevents">3</a></td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">DOMNodeInsertedIntoDocument</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-DOMNodeInsertedIntoDocument">2</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">DOMNodeRemoved</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-DOMNodeRemoved">2</a>, <a class="index-inst" href="#events-Events-eventgroupings-mutationevents">3</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">DOMNodeRemovedFromDocument</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-DOMNodeRemovedFromDocument">2</a></td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">DOMSubtreeModified</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-DOMSubtreeModified">2</a></td>
- <td width="30%">
- <a class="noxref" href="#references-DWW95">DWW95</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#references-ECMAScript">ECMAScript</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">error</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-error">2</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-Event">Event</a>
- <a class="index-inst" href="#events-Events-Event">1</a>, <a class="index-inst" href="#events-Events-overview">2</a>, <a class="index-inst" href="#events-Events-EventListener-handleEvent">3</a>, <a class="index-inst" href="#glossary-dt-event">4</a></td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-AT_TARGET">event target</a>
- <a class="index-inst" href="#events-AT_TARGET">1</a>, <a class="index-inst" href="#events-Events-Event-target">2</a>, <a class="index-inst" href="#events-Events-EventTarget">3</a>, <a class="index-inst" href="#events-Events-EventTarget-dispatchEvent">4</a>, <a class="index-inst" href="#events-Events-eventgroupings-uievents">5</a>, <a class="index-inst" href="#events-Events-eventgroupings-mouseevents">6</a>, <a class="index-inst" href="#events-Events-eventgroupings-wheelevents">7</a>, <a class="index-inst" href="#events-Events-eventgroupings-mousewheelevents">8</a>, <a class="index-inst" href="#glossary-dt-event-target">9</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-EventException">EventException</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-EventListener">EventListener</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-eventPhase">eventPhase</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-EventTarget">EventTarget</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">focus</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-Events-eventgroupings-uievents">2</a>, <a class="index-inst" href="#events-event-focus">3</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-KeyboardEvent-getModifierState">getModifierState</a>
- <a class="index-inst" href="#events-Events-KeyboardEvent-getModifierState">1</a>, <a class="index-inst" href="#events-Events-MouseEvent-getModifierState">2</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-EventListener-handleEvent">handleEvent</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-flow-cancelation">HTML 4.01</a>
- <a class="index-inst" href="#events-Events-flow-cancelation">1</a>, <a class="index-inst" href="#events-Events-EventTypes-complete">2</a>, <a class="index-inst" href="#events-Events-TextEvents-Interfaces">3</a>, <a class="index-inst" href="#events-Events-eventgroupings-mouseevents">4</a>, <a class="index-inst" href="#events-Events-eventgroupings-basicevents">5</a>, <a class="index-inst" href="#references-HTML40">6</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-initCustomEventNS">initCustomEventNS</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-initEvent">initEvent</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-initEventNS">initEventNS</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-KeyboardEvent-initKeyboardEvent">initKeyboardEvent</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-KeyboardEvent-initKeyboardEventNS">initKeyboardEventNS</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-initMouseEvent">initMouseEvent</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-initMouseEventNS">initMouseEventNS</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-initWheelEventNS">initWheelEventNS</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-initMouseWheelEventNS">initMouseWheelEventNS</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-initMutationEvent">initMutationEvent</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-initMutationEventNS">initMutationEventNS</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-initMutationNameEvent">initMutationNameEvent</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-initMutationNameEventNS">initMutationNameEventNS</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-initTextEvent">initTextEvent</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-initTextEventNS">initTextEventNS</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-initUIEvent">initUIEvent</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-initUIEventNS">initUIEventNS</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-TextEvents-Interfaces">Input Method Editor</a>
- <a class="index-inst" href="#events-Events-TextEvents-Interfaces">1</a>, <a class="index-inst" href="#events-Events-KeyboardEvents-Interfaces">2</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#references-Java">Java</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-KeyboardEvent">KeyboardEvent</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">keydown</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-keydown">2</a>, <a class="index-inst" href="#events-Events-KeyboardEvents-Interfaces">3</a></td>
- <td width="30%">
- <a class="noxref" href="#references-KeyEvent">KeyEvent for Java</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-KeyboardEvent-keyIdentifier">keyIdentifier</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-KeyboardEvent-keylocation">keyLocation</a></td>
- <td width="30%">
- <a class="noxref" href="#references-Keys">Keys enumeration for .Net</a></td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">keyup</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-Events-KeyboardEvents-Interfaces">2</a>, <a class="index-inst" href="#events-event-keyup">3</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">load</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-load">2</a></td>
- <td width="30%"><a class="noxref" href="#events-Event-types">local name</a>
- <a class="index-inst" href="#events-Event-types">1</a>, <a class="index-inst" href="#events-Events-Event-type">2</a>, <a class="index-inst" href="#events-Events-Event-initEvent">3</a>, <a class="index-inst" href="#glossary-dt-localname">4</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-KeyboardEvent-metaKey">metaKey</a>
- <a class="index-inst" href="#events-Events-KeyboardEvent-metaKey">1</a>, <a class="index-inst" href="#events-Events-MouseEvent-metaKey">2</a></td>
- <td width="30%">
- <a class="noxref" href="#events-MODIFICATION">MODIFICATION</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">mousedown</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-Events-eventgroupings-mouseevents">2</a>, <a class="index-inst" href="#events-event-mousedown">3</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-MouseEvent">MouseEvent</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">mousemove</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-Events-eventgroupings-mouseevents">2</a>, <a class="index-inst" href="#events-event-mousemove">3</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">wheel</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-wheel">2</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-WheelEvent">WheelEvent</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">mouseout</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-Events-eventgroupings-mouseevents">2</a>, <a class="index-inst" href="#events-event-mouseout">3</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">mouseover</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-Events-eventgroupings-mouseevents">2</a>, <a class="index-inst" href="#events-event-mouseover">3</a></td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">mouseup</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-Events-eventgroupings-mouseevents">2</a>, <a class="index-inst" href="#events-event-mouseup">3</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">mousewheel</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-mousewheel">2</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-MouseWheelEvent">MouseWheelEvent</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-MutationEvent">MutationEvent</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-MutationNameEvent">MutationNameEvent</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Conformance">namespace URI</a>
- <a class="index-inst" href="#events-Conformance">1</a>, <a class="index-inst" href="#events-Event-types">2</a>, <a class="index-inst" href="#events-Events-Event-namespaceURI">3</a>, <a class="index-inst" href="#events-Events-Event-initEventNS">4</a>, <a class="index-inst" href="#glossary-dt-namespaceURI">5</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-namespaceURI">namespaceURI</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-MutationEvent-newValue">newValue</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#references-OMGIDL">OMG IDL</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-preventDefault">preventDefault</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-MutationNameEvent-prevNamespaceURI">prevNamespaceURI</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-MutationNameEvent-prevNodeName">prevNodeName</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-MutationEvent-prevValue">prevValue</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-MutationEvent-relatedNode">relatedNode</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-MouseEvent-relatedTarget">relatedTarget</a></td>
- <td width="30%">
- <a class="noxref" href="#events-REMOVAL">REMOVAL</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-EventTarget-removeEventListener">removeEventListener</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-EventTargetGroup-removeEventListenerNS">removeEventListenerNS</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">reset</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-reset">2</a></td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">resize</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-resize">2</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-MouseEvent-screenX">screenX</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-MouseEvent-screenY">screenY</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">scroll</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-scroll">2</a></td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">select</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-select">2</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-KeyboardEvent-shiftKey">shiftKey</a>
- <a class="index-inst" href="#events-Events-KeyboardEvent-shiftKey">1</a>, <a class="index-inst" href="#events-Events-MouseEvent-shiftKey">2</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-stopImmediatePropagation">stopImmediatePropagation</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-stopPropagation">stopPropagation</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-flow-cancelation">submit</a>
- <a class="index-inst" href="#events-Events-flow-cancelation">1</a>, <a class="index-inst" href="#events-Events-EventTypes-complete">2</a>, <a class="index-inst" href="#events-event-submit">3</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-target">target</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-Event-target">target node</a>
- <a class="index-inst" href="#events-Events-Event-target">1</a>, <a class="index-inst" href="#events-Events-Event-currentTarget">2</a>, <a class="index-inst" href="#events-Events-EventTarget">3</a>, <a class="index-inst" href="#events-Events-eventgroupings-mutationevents">4</a>, <a class="index-inst" href="#events-Events-eventgroupings-mutationnameevents">5</a>, <a class="index-inst" href="#glossary-dt-target-node">6</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTarget-addEventListener">target phase</a>
- <a class="index-inst" href="#events-Events-EventTarget-addEventListener">1</a>, <a class="index-inst" href="#glossary-dt-target-phase">2</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-TextEvent">TextEvent</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">textInput</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-Events-TextEvents-Interfaces">2</a>, <a class="index-inst" href="#events-event-textInput">3</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-timeStamp">timeStamp</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-Event-type">type</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-TextEvent-data">UAX #15</a>
- <a class="index-inst" href="#events-Events-TextEvent-data">1</a>, <a class="index-inst" href="#references-UnicodeNormalization">2</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-UIEvent">UIEvent</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-TextEvent-data">Unicode</a>
- <a class="index-inst" href="#events-Events-TextEvent-data">1</a>, <a class="index-inst" href="#references-Unicode">2</a></td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">unload</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#events-event-unload">2</a></td>
- <td width="30%">
- <a class="noxref" href="#events-UNSPECIFIED_EVENT_TYPE_ERR">UNSPECIFIED_EVENT_TYPE_ERR</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-UIEvent-view">view</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-MouseWheelEvent-wheelDelta">wheelDelta</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-WheelEvent-deltaX">deltaX</a></td>
- <td width="30%">
- <a class="noxref" href="#events-Events-WheelEvent-deltaY">deltaY</a></td>
- </tr>
- <tr>
- <td width="30%">
- <a class="noxref" href="#events-Events-WheelEvent-deltaZ">deltaZ</a></td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="30%"><a class="noxref" href="#events-Events-eventgroupings-basicevents">XHTML 1.0</a>
- <a class="index-inst" href="#events-Events-eventgroupings-basicevents">1</a>, <a class="index-inst" href="#references-XHTML10">2</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-EventTypes-complete">XML 1.0</a>
- <a class="index-inst" href="#events-Events-EventTypes-complete">1</a>, <a class="index-inst" href="#references-XML">2</a></td>
- <td width="30%"><a class="noxref" href="#events-Events-Event-type">XML Namespaces 1.1</a>
- <a class="index-inst" href="#events-Events-Event-type">1</a>, <a class="index-inst" href="#events-Events-EventTarget-dispatchEvent">2</a>, <a class="index-inst" href="#glossary-dt-localname">3</a>, <a class="index-inst" href="#glossary-dt-namespaceURI">4</a>, <a class="index-inst" href="#references-Namespaces11">5</a></td>
- </tr>
- </table>
- </div>
- <!-- div1 Index -->
+<!-- div1 References -->
+
+
</body>
</html>