From 734123812b2b941ff0a7ace29490317d17bd05ae Mon Sep 17 00:00:00 2001 From: Hayato Ito Date: Thu, 23 Jun 2016 10:24:02 +0900 Subject: [PATCH] Fix #89. Make some of UI Events composed events Reflect the conclusion of https://github.com/w3c/webcomponents/issues/513. Make the following events composed events: - Focus Events: blur, focus, focusin, focusout - Mouse Events: click, dblclick, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup - Wheel Events: wheel - Input Events: beforeinput, input - Keyboard Events: keydown, keyup - Composition Events: compositionstart, compositionupdate, compositionend Other editorial fix: I replaced [[DOM4]] with [[DOM]] for consistency because bikeshed complains as follows: > FATAL ERROR: The biblio refs [[DOM4]] and [[DOM]] are both aliases > of the same base reference [[WHATWG-DOM]]. Please choose one name and > use it consistently. --- index.bs | 2 +- index.html | 2794 ++++++++++++++++++++++++++++----- sections/architecture.txt | 2 +- sections/event-interfaces.txt | 1 + sections/event-types.txt | 84 + 5 files changed, 2471 insertions(+), 412 deletions(-) diff --git a/index.bs b/index.bs index 6dc71b4..930d683 100644 --- a/index.bs +++ b/index.bs @@ -16,7 +16,7 @@ Editor: Gary Kacmarcik, Google, garykac@google.com Editor: Travis Leithead, Microsoft, travil@microsoft.com Abstract: This specification defines UI Events which extend the DOM Event objects - defined in [[DOM4]]. UI Events are those typically implemented by visual + defined in [[DOM]]. UI Events are those typically implemented by visual user agents for handling user interaction such as mouse and keyboard input. diff --git a/index.html b/index.html index f640c7a..7b2952e 100644 --- a/index.html +++ b/index.html @@ -9,13 +9,161 @@ - + + + + +
-

W3C

-

UI Events

-

W3C Working Draft,

+

W3C

+

UI Events

+

W3C Working Draft,

This version: -
http://www.w3.org/TR/2016/WD-uievents--20160306/ -
Latest version: +
http://www.w3.org/TR/2016/WD-uievents-20160623/ +
Latest published version:
http://www.w3.org/TR/uievents/
Editor's Draft:
https://github.com/w3c/uievents/ @@ -79,7 +286,7 @@

This specification defines UI Events which extend the DOM Event objects -defined in [DOM4]. UI Events are those typically implemented by visual +defined in [DOM]. UI Events are those typically implemented by visual user agents for handling user interaction such as mouse and keyboard input.

Status of this document

@@ -537,6 +744,7 @@

This is a note.

+

This is an open issue.

This is a warning.

interface Example {
@@ -546,7 +754,7 @@ 

3. DOM Event Architecture

-

This section is non-normative. Refer to [DOM4] for a normative description +

This section is non-normative. Refer to [DOM] for a normative description of the DOM event architecture

3.1. Event dispatch and DOM event flow

This section gives a brief overview of the event dispatch mechanism @@ -674,7 +882,7 @@

Event object’s key modifiers: specifically, the internal state queried for using the getModifierState() and getModifierState() methods. This section supplements the DOM4 steps for intializing a new Event object with these optional modifier states.

For the purposes of constructing a KeyboardEvent, MouseEvent, or - object derived from these objects using the algorithm below, all KeyboardEvent, MouseEvent, and derived objects have internal key modifier state#internal-key-modifier-stateReferenced in:3.6. Constructing Mouse and Keyboard Events which can be set and + object derived from these objects using the algorithm below, all KeyboardEvent, MouseEvent, and derived objects have internal key modifier state which can be set and retrieved using the key modifier names described in the Modifier Keys table in [UIEvents-Key].

The following steps supplement the algorithm defined for constructing events in DOM4:

@@ -686,7 +894,7 @@

  • For each EventModifierInit argument, if the dictionary member -begins with the string "modifier", then let the key modifier name#modifier-key-nameReferenced in:3.6. Constructing Mouse and Keyboard Events be the +begins with the string "modifier", then let the key modifier name be the dictionary member’s name excluding the prefix "modifier", and set the Event object’s internal key modifier state that matches the key modifier name to the corresponding value.

    @@ -720,6 +928,8 @@

    bubbles attribute

  • cancelable attribute

    +
  • +

    composed attribute

  • timeStamp attribute

  • @@ -1027,10 +1237,10 @@

    To create an instance of the UIEvent interface, use the UIEvent constructor, passing an optional UIEventInit dictionary.

    -
    [Constructor(DOMString type, optional UIEventInit eventInitDict)]
    -interface UIEvent#uievent-uieventReferenced in:5.1.1. Interface UIEvent (2)5.1.2. UI Event Types5.1.2.1. load (2) (3)5.1.2.2. unload (2) (3)5.1.2.3. abort (2) (3)5.1.2.4. error (2) (3)5.1.2.5. select (2) (3)5.2.1. Interface FocusEvent5.2.4.1. blur (2)5.2.4.2. focus (2)5.2.4.3. focusin (2)5.2.4.4. focusout (2)5.3.1. Interface MouseEvent5.3.4.1. click (2)5.3.4.2. dblclick (2)5.3.4.3. mousedown (2)5.3.4.4. mouseenter (2)5.3.4.5. mouseleave (2)5.3.4.6. mousemove (2)5.3.4.7. mouseout (2)5.3.4.8. mouseover (2)5.3.4.9. mouseup (2)5.4.2.1. wheel (2)5.5.1. Interface InputEvent5.5.3.1. beforeinput (2)5.5.3.2. input (2)5.6.1. Interface KeyboardEvent5.6.4.1. keydown (2)5.6.4.2. keyup (2)5.7.1. Interface CompositionEvent5.7.7.1. compositionstart (2)5.7.7.2. compositionupdate (2)5.7.7.3. compositionend (2)7.1.1. Initializers for interface UIEvent9. Legacy Event Types9.1. Legacy UIEvent events9.1.1. Legacy UIEvent event types9.1.1.1. DOMActivate (2) (3)9.2.1.1. DOMFocusIn (2)9.2.1.2. DOMFocusOut (2)9.3.1.1. keypress (2)12.1. Changes between DOM Level 2 Events and UI Events : Event {
    -  readonly attribute Window? view#dom-uievent-viewReferenced in:5.1.2.1. load5.1.2.2. unload5.1.2.3. abort5.1.2.4. error5.1.2.5. select5.2.4.1. blur5.2.4.2. focus5.2.4.3. focusin5.2.4.4. focusout5.3.4.1. click5.3.4.2. dblclick5.3.4.3. mousedown5.3.4.4. mouseenter5.3.4.5. mouseleave5.3.4.6. mousemove5.3.4.7. mouseout5.3.4.8. mouseover5.3.4.9. mouseup5.4.2.1. wheel5.5.3.1. beforeinput5.5.3.2. input5.6.4.1. keydown5.6.4.2. keyup5.7.7.1. compositionstart5.7.7.2. compositionupdate5.7.7.3. compositionend7.1.1. Initializers for interface UIEvent7.1.2. Initializers for interface MouseEvent7.1.3. Initializers for interface WheelEvent7.1.4. Initializers for interface KeyboardEvent7.1.5. Initializers for interface CompositionEvent9.1.1.1. DOMActivate9.2.1.1. DOMFocusIn9.2.1.2. DOMFocusOut9.3.1.1. keypress;
    -  readonly attribute long detail#dom-uievent-detailReferenced in:5.1.2.1. load5.1.2.2. unload5.1.2.3. abort5.1.2.4. error5.1.2.5. select5.2.4.1. blur5.2.4.2. focus5.2.4.3. focusin5.2.4.4. focusout5.3.4.1. click5.3.4.2. dblclick5.3.4.3. mousedown (2)5.3.4.4. mouseenter5.3.4.5. mouseleave5.3.4.6. mousemove5.3.4.7. mouseout5.3.4.8. mouseover5.3.4.9. mouseup5.4.2.1. wheel5.5.3.1. beforeinput5.5.3.2. input5.6.4.1. keydown5.6.4.2. keyup5.7.7.1. compositionstart5.7.7.2. compositionupdate5.7.7.3. compositionend7.1.1. Initializers for interface UIEvent7.1.2. Initializers for interface MouseEvent7.1.3. Initializers for interface WheelEvent7.1.4. Initializers for interface KeyboardEvent7.1.5. Initializers for interface CompositionEvent9.1.1.1. DOMActivate9.2.1.1. DOMFocusIn9.2.1.2. DOMFocusOut9.3.1.1. keypress;
    +
    [Constructor(DOMString type, optional UIEventInit eventInitDict)]
    +interface UIEvent : Event {
    +  readonly attribute Window? view;
    +  readonly attribute long detail;
     };
     
    @@ -1044,9 +1254,9 @@

    The un-initialized value of this attribute MUST be 0.

    -
    dictionary UIEventInit#dictdef-uieventinit-uieventinitReferenced in:5.1.1. Interface UIEvent (2)5.2.1. Interface FocusEvent5.3.2. Event Modifier Initializers5.5.1. Interface InputEvent5.7.1. Interface CompositionEvent : EventInit {
    -  Window? view = null;
    -  long detail = 0;
    +
    dictionary UIEventInit : EventInit {
    +  Window? view = null;
    +  long detail = 0;
     };
     
    @@ -1063,7 +1273,7 @@

    The User Interface event types are listed below. Some of these events use the UIEvent interface if generated from a user interface, but the Event interface otherwise, as detailed in each event.

    -
    5.1.2.1. load#loadReferenced in:3.3. Synchronous and asynchronous events4.1. List of Event Types (2) (3) (4)5.1.2.1. load11. Security Considerations (2)14. Glossary (2)
    +
    5.1.2.1. load
    @@ -1108,7 +1318,7 @@
    For legacy reasons, load events for resources inside the document (e.g., images) do not include the Window in the propagation path in HTML implementations. See [HTML5] for more information.

    -
    5.1.2.2. unload#unloadReferenced in:4.1. List of Event Types
    +
    5.1.2.2. unload
    @@ -1150,7 +1360,7 @@
    Document node.

    -
    5.1.2.3. abort#abortReferenced in:4.1. List of Event Types
    +
    5.1.2.3. abort
    @@ -1188,7 +1398,7 @@
    A user agent MUST dispatch this event when the loading of a resource has been aborted, such as by a user canceling the load while it is still in progress.

    -
    5.1.2.4. error#errorReferenced in:4.1. List of Event Types11. Security Considerations (2)
    +
    5.1.2.4. error
    @@ -1227,7 +1437,7 @@
    -
    5.1.2.5. select#selectReferenced in:4.1. List of Event Types5.1.2.5. select (2) (3) (4)
    +
    5.1.2.5. select
    @@ -1281,9 +1491,9 @@

    To create an instance of the FocusEvent interface, use the FocusEvent constructor, passing an optional FocusEventInit dictionary.

    -
    [Constructor(DOMString type, optional FocusEventInit eventInitDict)]
    -interface FocusEvent#focuseventReferenced in:4.1. List of Event Types (2) (3) (4)5.2.1. Interface FocusEvent (2)5.2.4.1. blur (2)5.2.4.2. focus (2)5.2.4.3. focusin (2)5.2.4.4. focusout (2)9. Legacy Event Types (2)9.2. Legacy FocusEvent events9.2.1. Legacy FocusEvent event types9.2.1.1. DOMFocusIn (2)9.2.1.2. DOMFocusOut (2)12.1.4. New Interfaces : UIEvent {
    -  readonly attribute EventTarget? relatedTarget#dom-focusevent-relatedtargetReferenced in:5.2.4.1. blur5.2.4.2. focus5.2.4.3. focusin (2)5.2.4.4. focusout9.2.1.1. DOMFocusIn9.2.1.2. DOMFocusOut;
    +
    [Constructor(DOMString type, optional FocusEventInit eventInitDict)]
    +interface FocusEvent : UIEvent {
    +  readonly attribute EventTarget? relatedTarget;
     };
     
    @@ -1294,8 +1504,8 @@

    EventTarget SHOULD be null.

    The un-initialized value of this attribute MUST be null.

    -
    dictionary FocusEventInit#dictdef-focuseventinitReferenced in:5.2.1. Interface FocusEvent (2) : UIEventInit {
    -  EventTarget? relatedTarget#dom-focuseventinit-relatedtargetReferenced in:5.2.1. Interface FocusEvent = null;
    +
    dictionary FocusEventInit : UIEventInit {
    +  EventTarget? relatedTarget = null;
     };
     
    @@ -1396,7 +1606,7 @@

    elements to have the current focus.

    5.2.4. Focus Event Types

    The Focus event types are listed below.

    -
    5.2.4.1. blur#blurReferenced in:4.1. List of Event Types (2)5.2.1. Interface FocusEvent5.2.2. Focus Event Order5.2.4.3. focusin5.2.4.4. focusout5.6.4.1. keydown9. Legacy Event Types9.2.1.2. DOMFocusOut (2)9.2.2. Legacy FocusEvent event order9.3.1.1. keypress12.1. Changes between DOM Level 2 Events and UI Events
    +
    5.2.4.1. blur

    @@ -1417,6 +1627,9 @@
    +
    Cancelable No +
    Composed + Yes
    Default action None @@ -1434,7 +1647,7 @@
    loses focus. The focus MUST be taken from the element before the dispatch of this event type. This event type is similar to focusout, but is dispatched after focus is shifted, and does not bubble.

    -
    5.2.4.2. focus#focusReferenced in:4.1. List of Event Types (2)5.2.1. Interface FocusEvent5.2.2. Focus Event Order (2)5.2.3. Document Focus and Focus Context5.2.4.3. focusin5.6.4.1. keydown9. Legacy Event Types9.2.1.1. DOMFocusIn (2)9.2.2. Legacy FocusEvent event order (2)9.3.1.1. keypress12.1. Changes between DOM Level 2 Events and UI Events
    +
    5.2.4.2. focus
    @@ -1455,6 +1668,9 @@
    +
    Cancelable No +
    Composed + Yes
    Default action None @@ -1472,7 +1688,7 @@
    receives focus. The focus MUST be given to the element before the dispatch of this event type. This event type is similar to focusin, but is dispatched after focus is shifted, and does not bubble.

    -
    5.2.4.3. focusin#focusinReferenced in:4.1. List of Event Types5.2.1. Interface FocusEvent5.2.2. Focus Event Order (2)5.2.4.2. focus9.2.1.1. DOMFocusIn9.2.2. Legacy FocusEvent event order (2)
    +
    5.2.4.3. focusin
    @@ -1493,6 +1709,9 @@
    +
    Cancelable No +
    Composed + Yes
    Default action None @@ -1516,7 +1735,7 @@
    event target, thus having access to both the element losing focus and the element gaining focus without the use of the blur or focusout event types.

    -
    5.2.4.4. focusout#focusoutReferenced in:4.1. List of Event Types5.2.1. Interface FocusEvent5.2.2. Focus Event Order5.2.4.1. blur5.2.4.3. focusin9.2.1.2. DOMFocusOut9.2.2. Legacy FocusEvent event order
    +
    5.2.4.4. focusout
    @@ -1537,6 +1756,9 @@
    +
    Cancelable No +
    Composed + Yes
    Default action None @@ -1567,29 +1789,29 @@

    Ancestors of the targeted element can use event bubbling to obtain notifications of mouse events which occur within their descendent elements.

    -

    To create an instance of the MouseEvent interface, use the MouseEvent constructor, passing an optional MouseEventInit dictionary.

    +

    To create an instance of the MouseEvent interface, use the MouseEvent constructor, passing an optional MouseEventInit dictionary.

    When initializing MouseEvent objects using initMouseEvent, - implementations can use the client coordinates clientX and clientY for calculation of other coordinates (such + implementations can use the client coordinates clientX and clientY for calculation of other coordinates (such as target coordinates exposed by DOM Level 0 implementations or other proprietary attributes, e.g., pageX).

    -
    [Constructor(DOMString type, optional MouseEventInit eventInitDict)]
    -interface MouseEvent#mouseeventReferenced in:3.6. Constructing Mouse and Keyboard Events (2) (3) (4)4.1. List of Event Types (2) (3) (4) (5) (6) (7) (8) (9)5.3.1. Interface MouseEvent (2) (3) (4) (5)5.3.2. Event Modifier Initializers (2) (3) (4) (5) (6)5.3.4.1. click (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)5.3.4.2. dblclick (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)5.3.4.3. mousedown (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)5.3.4.4. mouseenter (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)5.3.4.5. mouseleave (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)5.3.4.6. mousemove (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)5.3.4.7. mouseout (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)5.3.4.8. mouseover (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)5.3.4.9. mouseup (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)5.4.1. Interface WheelEvent5.4.2.1. wheel (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)7.1.2. Initializers for interface MouseEvent12.1. Changes between DOM Level 2 Events and UI Events12.1.3. Changes to DOM Level 2 Events interfaces (2) : UIEvent {
    -  readonly attribute long screenX;
    -  readonly attribute long screenY;
    -  readonly attribute long clientX;
    -  readonly attribute long clientY;
    +
    [Constructor(DOMString type, optional MouseEventInit eventInitDict)]
    +interface MouseEvent : UIEvent {
    +  readonly attribute long screenX;
    +  readonly attribute long screenY;
    +  readonly attribute long clientX;
    +  readonly attribute long clientY;
     
    -  readonly attribute boolean ctrlKey#dom-mouseevent-ctrlkeyReferenced in:5.3.4.1. click5.3.4.2. dblclick5.3.4.3. mousedown5.3.4.4. mouseenter5.3.4.5. mouseleave5.3.4.6. mousemove5.3.4.7. mouseout5.3.4.8. mouseover5.3.4.9. mouseup5.4.2.1. wheel7.1.2. Initializers for interface MouseEvent7.1.3. Initializers for interface WheelEvent;
    -  readonly attribute boolean shiftKey#dom-mouseevent-shiftkeyReferenced in:5.3.4.1. click5.3.4.2. dblclick5.3.4.3. mousedown5.3.4.4. mouseenter5.3.4.5. mouseleave5.3.4.6. mousemove5.3.4.7. mouseout5.3.4.8. mouseover5.3.4.9. mouseup5.4.2.1. wheel7.1.2. Initializers for interface MouseEvent7.1.3. Initializers for interface WheelEvent;
    -  readonly attribute boolean altKey#dom-mouseevent-altkeyReferenced in:5.3.4.1. click5.3.4.2. dblclick5.3.4.3. mousedown5.3.4.4. mouseenter5.3.4.5. mouseleave5.3.4.6. mousemove5.3.4.7. mouseout5.3.4.8. mouseover5.3.4.9. mouseup5.4.2.1. wheel7.1.2. Initializers for interface MouseEvent;
    -  readonly attribute boolean metaKey#dom-mouseevent-metakeyReferenced in:5.3.4.1. click5.3.4.2. dblclick5.3.4.3. mousedown5.3.4.4. mouseenter5.3.4.5. mouseleave5.3.4.6. mousemove5.3.4.7. mouseout5.3.4.8. mouseover5.3.4.9. mouseup5.4.2.1. wheel7.1.2. Initializers for interface MouseEvent;
    +  readonly attribute boolean ctrlKey;
    +  readonly attribute boolean shiftKey;
    +  readonly attribute boolean altKey;
    +  readonly attribute boolean metaKey;
     
    -  readonly attribute short button#dom-mouseevent-buttonReferenced in:5.3.1. Interface MouseEvent (2) (3) (4)5.3.4.1. click (2) (3)5.3.4.2. dblclick (2)5.3.4.3. mousedown5.3.4.4. mouseenter5.3.4.5. mouseleave5.3.4.6. mousemove5.3.4.7. mouseout5.3.4.8. mouseover5.3.4.9. mouseup5.4.2.1. wheel7.1.2. Initializers for interface MouseEvent7.1.3. Initializers for interface WheelEvent;
    -  readonly attribute unsigned short buttons#dom-mouseevent-buttonsReferenced in:5.3.1. Interface MouseEvent (2) (3)5.3.4.1. click (2) (3)5.3.4.2. dblclick (2)5.3.4.3. mousedown5.3.4.4. mouseenter5.3.4.5. mouseleave5.3.4.6. mousemove5.3.4.7. mouseout5.3.4.8. mouseover5.3.4.9. mouseup5.4.2.1. wheel;
    +  readonly attribute short button;
    +  readonly attribute unsigned short buttons;
     
    -  readonly attribute EventTarget? relatedTarget#dom-mouseevent-relatedtargetReferenced in:5.3.4.1. click5.3.4.2. dblclick5.3.4.3. mousedown5.3.4.4. mouseenter5.3.4.5. mouseleave5.3.4.6. mousemove5.3.4.7. mouseout5.3.4.8. mouseover5.3.4.9. mouseup5.4.2.1. wheel7.1.2. Initializers for interface MouseEvent7.1.3. Initializers for interface WheelEvent;
    +  readonly attribute EventTarget? relatedTarget;
     
    -  boolean getModifierState#dom-mouseevent-getmodifierstateReferenced in:3.6. Constructing Mouse and Keyboard Events5.3.2. Event Modifier Initializers (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14)12.1.3. Changes to DOM Level 2 Events interfaces(DOMString keyArg);
    +  boolean getModifierState(DOMString keyArg);
     };
     
    @@ -1707,15 +1929,15 @@

    Refer to the KeyboardEvent.getModifierState() method for a description of this parameter.

    -
    dictionary MouseEventInit : EventModifierInit {
    -  long screenX = 0;
    -  long screenY = 0;
    -  long clientX = 0;
    -  long clientY = 0;
    +
    dictionary MouseEventInit : EventModifierInit {
    +  long screenX = 0;
    +  long screenY = 0;
    +  long clientX = 0;
    +  long clientY = 0;
     
    -  short button = 0;
    -  unsigned short buttons = 0;
    -  EventTarget? relatedTarget = null;
    +  short button = 0;
    +  unsigned short buttons = 0;
    +  EventTarget? relatedTarget = null;
     };
     
    @@ -1778,22 +2000,22 @@

    initialize keyboard modifier attributes of the MouseEvent and KeyboardEvent interfaces, as well as the additional modifier states queried via getModifierState(). The steps for constructing events using this dictionary are defined in the event constructors section.

    -
    dictionary EventModifierInit#dictdef-eventmodifierinitReferenced in:3.6. Constructing Mouse and Keyboard Events (2)5.3.1. Interface MouseEvent5.6.1. Interface KeyboardEvent : UIEventInit {
    -  boolean ctrlKey = false;
    -  boolean shiftKey = false;
    -  boolean altKey = false;
    -  boolean metaKey = false;
    +
    dictionary EventModifierInit : UIEventInit {
    +  boolean ctrlKey = false;
    +  boolean shiftKey = false;
    +  boolean altKey = false;
    +  boolean metaKey = false;
     
    -  boolean modifierAltGraph = false;
    -  boolean modifierCapsLock = false;
    -  boolean modifierFn = false;
    -  boolean modifierFnLock = false;
    -  boolean modifierHyper = false;
    -  boolean modifierNumLock = false;
    -  boolean modifierScrollLock = false;
    -  boolean modifierSuper = false;
    -  boolean modifierSymbol = false;
    -  boolean modifierSymbolLock = false;
    +  boolean modifierAltGraph = false;
    +  boolean modifierCapsLock = false;
    +  boolean modifierFn = false;
    +  boolean modifierFnLock = false;
    +  boolean modifierHyper = false;
    +  boolean modifierNumLock = false;
    +  boolean modifierScrollLock = false;
    +  boolean modifierSuper = false;
    +  boolean modifierSymbol = false;
    +  boolean modifierSymbolLock = false;
     };
     
    @@ -2138,7 +2360,7 @@

    -
    5.3.4.1. click#clickReferenced in:3.2. Default actions and cancelable events (2)3.4. Trusted events3.5. Activation triggers and behavior4.1. List of Event Types5.3.3. Mouse Event Order (2) (3) (4) (5) (6) (7) (8)5.3.4.1. click (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13)5.3.4.2. dblclick (2) (3) (4) (5)5.6.4.1. keydown9.1.1.1. DOMActivate (2) (3) (4) (5) (6) (7) (8) (9)9.1.2. Activation event order (2)14. Glossary (2) (3) (4) (5) (6)
    +
    5.3.4.1. click
    @@ -2159,6 +2381,9 @@
    +
    Cancelable Yes +
    Composed + Yes
    Default action Varies @@ -2171,13 +2396,13 @@
    UIEvent.detail : indicates the current click count; the attribute value MUST be 1 when the user begins this action and increments by 1 for each click. -
  • MouseEvent.screenX : +
  • MouseEvent.screenX : value based on the pointer position on the screen -
  • MouseEvent.screenY : +
  • MouseEvent.screenY : value based on the pointer position on the screen -
  • MouseEvent.clientX : +
  • MouseEvent.clientX : value based on the pointer position within the viewport -
  • MouseEvent.clientY : +
  • MouseEvent.clientY : value based on the pointer position within the viewport
  • MouseEvent.altKey : true if Alt modifier was active, otherwise false
  • MouseEvent.ctrlKey : true if Control modifier was active, otherwise false @@ -2222,7 +2447,7 @@
    If the event target is focusable, the default action MUST be to give that element document focus.

    -
    5.3.4.2. dblclick#dblclickReferenced in:4.1. List of Event Types5.3.3. Mouse Event Order (2) (3) (4) (5)5.3.4.1. click5.3.4.2. dblclick (2) (3) (4) (5) (6)12.1. Changes between DOM Level 2 Events and UI Events
    +
    5.3.4.2. dblclick
    @@ -2243,6 +2468,9 @@
    +
    Cancelable Yes +
    Composed + Yes
    Default action None @@ -2254,13 +2482,13 @@
    UIEvent.view : Window
  • UIEvent.detail : indicates the current click count -
  • MouseEvent.screenX : +
  • MouseEvent.screenX : value based on the pointer position on the screen -
  • MouseEvent.screenY : +
  • MouseEvent.screenY : value based on the pointer position on the screen -
  • MouseEvent.clientX : +
  • MouseEvent.clientX : value based on the pointer position within the viewport -
  • MouseEvent.clientY : +
  • MouseEvent.clientY : value based on the pointer position within the viewport
  • MouseEvent.altKey : true if Alt modifier was active, otherwise false
  • MouseEvent.ctrlKey : true if Control modifier was active, otherwise false @@ -2288,7 +2516,7 @@
    -
    5.3.4.3. mousedown#mousedownReferenced in:3.2. Default actions and cancelable events (2)4.1. List of Event Types5.3.1. Interface MouseEvent (2) (3)5.3.3. Mouse Event Order (2) (3) (4) (5) (6) (7)5.3.4.1. click (2)5.3.4.2. dblclick5.3.4.3. mousedown (2) (3)9.1.1.1. DOMActivate14. Glossary
    +
    5.3.4.3. mousedown
    @@ -2309,6 +2537,9 @@
    +
    Cancelable Yes +
    Composed + Yes
    Default action Varies: Start a drag/drop operation; start a text selection; start a scroll/pan interaction (in combination with the middle mouse button, if supported) @@ -2321,13 +2552,13 @@
    UIEvent.detail : indicates the current click count incremented by one. For example, if no click happened before the mousedown, detail will contain the value 1 -
  • MouseEvent.screenX : +
  • MouseEvent.screenX : value based on the pointer position on the screen -
  • MouseEvent.screenY : +
  • MouseEvent.screenY : value based on the pointer position on the screen -
  • MouseEvent.clientX : +
  • MouseEvent.clientX : value based on the pointer position within the viewport -
  • MouseEvent.clientY : +
  • MouseEvent.clientY : value based on the pointer position within the viewport
  • MouseEvent.altKey : true if Alt modifier was active, otherwise false
  • MouseEvent.ctrlKey : true if Control modifier was active, otherwise false @@ -2349,7 +2580,7 @@
    mousedown event is dispatched.

    -
    5.3.4.4. mouseenter#mouseenterReferenced in:4.1. List of Event Types5.3.3. Mouse Event Order (2) (3) (4) (5) (6) (7)5.3.4.5. mouseleave5.3.4.8. mouseover
    +
    5.3.4.4. mouseenter
    @@ -2370,6 +2601,9 @@
    +
    Cancelable No +
    Composed + Yes
    Default action None @@ -2380,13 +2614,13 @@
    Event.target : topmost event target
  • UIEvent.view : Window
  • UIEvent.detail : 0 -
  • MouseEvent.screenX : +
  • MouseEvent.screenX : value based on the pointer position on the screen -
  • MouseEvent.screenY : +
  • MouseEvent.screenY : value based on the pointer position on the screen -
  • MouseEvent.clientX : +
  • MouseEvent.clientX : value based on the pointer position within the viewport -
  • MouseEvent.clientY : +
  • MouseEvent.clientY : value based on the pointer position within the viewport
  • MouseEvent.altKey : true if Alt modifier was active, otherwise false
  • MouseEvent.ctrlKey : true if Control modifier was active, otherwise false @@ -2406,7 +2640,7 @@

    There are similarities between this event type and the CSS :hover pseudo-class [CSS2]. See also the mouseleave event type.

    -
    5.3.4.5. mouseleave#mouseleaveReferenced in:4.1. List of Event Types5.3.3. Mouse Event Order (2) (3) (4) (5) (6) (7) (8)5.3.4.4. mouseenter5.3.4.7. mouseout
    +
    5.3.4.5. mouseleave
    @@ -2427,6 +2661,9 @@
    +
    Cancelable No +
    Composed + Yes
    Default action None @@ -2437,13 +2674,13 @@
    Event.target : topmost event target
  • UIEvent.view : Window
  • UIEvent.detail : 0 -
  • MouseEvent.screenX : +
  • MouseEvent.screenX : value based on the pointer position on the screen -
  • MouseEvent.screenY : +
  • MouseEvent.screenY : value based on the pointer position on the screen -
  • MouseEvent.clientX : +
  • MouseEvent.clientX : value based on the pointer position within the viewport -
  • MouseEvent.clientY : +
  • MouseEvent.clientY : value based on the pointer position within the viewport
  • MouseEvent.altKey : true if Alt modifier was active, otherwise false
  • MouseEvent.ctrlKey : true if Control modifier was active, otherwise false @@ -2463,7 +2700,7 @@

    There are similarities between this event type and the CSS :hover pseudo-class [CSS2]. See also the mouseenter event type.

    -
    5.3.4.6. mousemove#mousemoveReferenced in:4.1. List of Event Types5.3.3. Mouse Event Order (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17)5.3.4.1. click5.3.4.6. mousemove (2)12.1.2. Changes to DOM Level 2 event types
    +
    5.3.4.6. mousemove
    @@ -2484,6 +2721,9 @@
    +
    Cancelable Yes +
    Composed + Yes
    Default action None @@ -2494,13 +2734,13 @@
    Event.target : topmost event target
  • UIEvent.view : Window
  • UIEvent.detail : 0 -
  • MouseEvent.screenX : +
  • MouseEvent.screenX : value based on the pointer position on the screen -
  • MouseEvent.screenY : +
  • MouseEvent.screenY : value based on the pointer position on the screen -
  • MouseEvent.clientX : +
  • MouseEvent.clientX : value based on the pointer position within the viewport -
  • MouseEvent.clientY : +
  • MouseEvent.clientY : value based on the pointer position within the viewport
  • MouseEvent.altKey : true if Alt modifier was active, otherwise false
  • MouseEvent.ctrlKey : true if Control modifier was active, otherwise false @@ -2524,7 +2764,7 @@
    This event was formerly specified to be non-cancelable in DOM Level 2 Events [DOM-Level-2-Events], but was changed to reflect existing interoperability between user agents.

    -
    5.3.4.7. mouseout#mouseoutReferenced in:4.1. List of Event Types5.3.3. Mouse Event Order (2) (3) (4) (5) (6) (7)5.3.4.1. click5.3.4.5. mouseleave5.3.4.8. mouseover
    +
    5.3.4.7. mouseout
    @@ -2545,6 +2785,9 @@
    +
    Cancelable Yes +
    Composed + Yes
    Default action None @@ -2555,13 +2798,13 @@
    Event.target : topmost event target
  • UIEvent.view : Window
  • UIEvent.detail : 0 -
  • MouseEvent.screenX : +
  • MouseEvent.screenX : value based on the pointer position on the screen -
  • MouseEvent.screenY : +
  • MouseEvent.screenY : value based on the pointer position on the screen -
  • MouseEvent.clientX : +
  • MouseEvent.clientX : value based on the pointer position within the viewport -
  • MouseEvent.clientY : +
  • MouseEvent.clientY : value based on the pointer position within the viewport
  • MouseEvent.altKey : true if Alt modifier was active, otherwise false
  • MouseEvent.ctrlKey : true if Control modifier was active, otherwise false @@ -2579,7 +2822,7 @@
    mouseleave, but differs in that does bubble, and that it MUST be dispatched when the pointer device moves from an element onto the boundaries of one of its descendent elements.

    See also the mouseover event type.

    -
    5.3.4.8. mouseover#mouseoverReferenced in:4.1. List of Event Types5.3.3. Mouse Event Order (2) (3) (4) (5) (6)5.3.4.1. click5.3.4.4. mouseenter5.3.4.7. mouseout14. Glossary
    +
    5.3.4.8. mouseover
    @@ -2600,6 +2843,9 @@
    +
    Cancelable Yes +
    Composed + Yes
    Default action None @@ -2610,13 +2856,13 @@
    Event.target : topmost event target
  • UIEvent.view : Window
  • UIEvent.detail : 0 -
  • MouseEvent.screenX : +
  • MouseEvent.screenX : value based on the pointer position on the screen -
  • MouseEvent.screenY : +
  • MouseEvent.screenY : value based on the pointer position on the screen -
  • MouseEvent.clientX : +
  • MouseEvent.clientX : value based on the pointer position within the viewport -
  • MouseEvent.clientY : +
  • MouseEvent.clientY : value based on the pointer position within the viewport
  • MouseEvent.altKey : true if Alt modifier was active, otherwise false
  • MouseEvent.ctrlKey : true if Control modifier was active, otherwise false @@ -2635,7 +2881,7 @@
    event target for the same event listener instance.

    See also the mouseout event type.

    -
    5.3.4.9. mouseup#mouseupReferenced in:4.1. List of Event Types5.3.1. Interface MouseEvent (2) (3)5.3.3. Mouse Event Order (2) (3) (4) (5) (6) (7) (8) (9)5.3.4.1. click (2)5.3.4.2. dblclick (2)5.3.4.9. mouseup9.1.1.1. DOMActivate14. Glossary
    +
    5.3.4.9. mouseup
    @@ -2656,6 +2902,9 @@
    +
    Cancelable Yes +
    Composed + Yes
    Default action Invoke a context menu (in combination with the right mouse button, if supported) @@ -2667,13 +2916,13 @@
    UIEvent.view : Window
  • UIEvent.detail : indicates the current click count incremented by one. -
  • MouseEvent.screenX : +
  • MouseEvent.screenX : value based on the pointer position on the screen -
  • MouseEvent.screenY : +
  • MouseEvent.screenY : value based on the pointer position on the screen -
  • MouseEvent.clientX : +
  • MouseEvent.clientX : value based on the pointer position within the viewport -
  • MouseEvent.clientY : +
  • MouseEvent.clientY : value based on the pointer position within the viewport
  • MouseEvent.altKey : true if Alt modifier was active, otherwise false
  • MouseEvent.ctrlKey : true if Control modifier was active, otherwise false @@ -2731,17 +2980,17 @@

    wheel events. To create an instance of the WheelEvent interface, use the WheelEvent constructor, passing an optional WheelEventInit dictionary.

    -
    [Constructor(DOMString type, optional WheelEventInit eventInitDict)]
    -interface WheelEvent#wheeleventReferenced in:4.1. List of Event Types5.4. Wheel Events5.4.1. Interface WheelEvent (2) (3)5.4.2.1. wheel (2) (3) (4) (5)7.1.3. Initializers for interface WheelEvent12.1.4. New Interfaces14. Glossary (2) : MouseEvent {
    +
    [Constructor(DOMString type, optional WheelEventInit eventInitDict)]
    +interface WheelEvent : MouseEvent {
       // DeltaModeCode
    -  const unsigned long DOM_DELTA_PIXEL#dom-wheelevent-dom_delta_pixelReferenced in:5.4.1. Interface WheelEvent (2) = 0x00;
    -  const unsigned long DOM_DELTA_LINE#dom-wheelevent-dom_delta_lineReferenced in:5.4.1. Interface WheelEvent  = 0x01;
    -  const unsigned long DOM_DELTA_PAGE#dom-wheelevent-dom_delta_pageReferenced in:5.4.1. Interface WheelEvent  = 0x02;
    +  const unsigned long DOM_DELTA_PIXEL = 0x00;
    +  const unsigned long DOM_DELTA_LINE  = 0x01;
    +  const unsigned long DOM_DELTA_PAGE  = 0x02;
     
    -  readonly attribute double deltaX#dom-wheelevent-deltaxReferenced in:5.4.2.1. wheel7.1.3. Initializers for interface WheelEvent14. Glossary;
    -  readonly attribute double deltaY#dom-wheelevent-deltayReferenced in:5.4.2.1. wheel7.1.3. Initializers for interface WheelEvent14. Glossary;
    -  readonly attribute double deltaZ#dom-wheelevent-deltazReferenced in:5.4.2.1. wheel7.1.3. Initializers for interface WheelEvent14. Glossary;
    -  readonly attribute unsigned long deltaMode#dom-wheelevent-deltamodeReferenced in:5.4.2.1. wheel7.1.3. Initializers for interface WheelEvent14. Glossary;
    +  readonly attribute double deltaX;
    +  readonly attribute double deltaY;
    +  readonly attribute double deltaZ;
    +  readonly attribute unsigned long deltaMode;
     };
     
    @@ -2790,11 +3039,11 @@

    The un-initialized value of this attribute MUST be 0.

    -
    dictionary WheelEventInit#dictdef-wheeleventinitReferenced in:5.4.1. Interface WheelEvent (2) : MouseEventInit {
    -  double deltaX = 0.0;
    -  double deltaY = 0.0;
    -  double deltaZ = 0.0;
    -  unsigned long deltaMode = 0;
    +
    dictionary WheelEventInit : MouseEventInit {
    +  double deltaX = 0.0;
    +  double deltaY = 0.0;
    +  double deltaZ = 0.0;
    +  unsigned long deltaMode = 0;
     };
     
    @@ -2821,7 +3070,7 @@

    5.4.2. Wheel Event Types

    -
    5.4.2.1. wheel#wheelReferenced in:4.1. List of Event Types5.4. Wheel Events (2)5.4.1. Interface WheelEvent (2) (3) (4)5.4.2.1. wheel (2) (3)
    +
    5.4.2.1. wheel
    @@ -2842,6 +3091,9 @@
    +
    Cancelable Yes +
    Composed + Yes
    Default action Scroll (or zoom) the document @@ -2852,15 +3104,15 @@
    Event.target : topmost event target
  • UIEvent.view : Window
  • UIEvent.detail : 0 -
  • MouseEvent.screenX : +
  • MouseEvent.screenX : if the wheel is associated with a pointing device, the value based on the pointer position on the screen, otherwise 0 -
  • MouseEvent.screenY : +
  • MouseEvent.screenY : if the wheel is associated with a pointing device, the value based on the pointer position on the screen, otherwise 0 -
  • MouseEvent.clientX : +
  • MouseEvent.clientX : if the wheel is associated with a pointing device, the value based on the pointer position within the viewport, otherwise 0 -
  • MouseEvent.clientY : +
  • MouseEvent.clientY : if the wheel is associated with a pointing device, the value based on the pointer position within the viewport, otherwise 0
  • MouseEvent.altKey : true if Alt modifier was active, otherwise false @@ -2903,10 +3155,10 @@

    Input events are sent as notifications whenever the DOM is being updated.

    5.5.1. Interface InputEvent

    Introduced in DOM Level 3

    -
    [Constructor(DOMString type, optional InputEventInit eventInitDict)]
    -interface InputEvent#inputeventReferenced in:4.1. List of Event Types (2)5.5.3.1. beforeinput (2) (3)5.5.3.2. input (2) (3)5.6. Keyboard Events6.3.5. Default actions and cancelable keyboard events (2) (3)9.3.2. keypress event order : UIEvent {
    -  readonly attribute DOMString data#dom-inputevent-dataReferenced in:5.5.3.1. beforeinput5.5.3.2. input6.3.5. Default actions and cancelable keyboard events (2) (3)9.3.2. keypress event order;
    -  readonly attribute boolean isComposing#dom-inputevent-iscomposingReferenced in:5.5.3.1. beforeinput5.5.3.2. input;
    +
    [Constructor(DOMString type, optional InputEventInit eventInitDict)]
    +interface InputEvent : UIEvent {
    +  readonly attribute DOMString data;
    +  readonly attribute boolean isComposing;
     };
     
    @@ -2924,9 +3176,9 @@

    compositionstart event and before the corresponding compositionend event. The un-initialized value of this attribute MUST be false.

    -
    dictionary InputEventInit#dictdef-inputeventinitReferenced in:5.5.1. Interface InputEvent : UIEventInit {
    -  DOMString data = "";
    -  boolean isComposing = false;
    +
    dictionary InputEventInit : UIEventInit {
    +  DOMString data = "";
    +  boolean isComposing = false;
     };
     
    @@ -2958,7 +3210,7 @@

    5.5.3. Input Event Types

    -
    5.5.3.1. beforeinput#beforeinputReferenced in:4.1. List of Event Types (2)5.5.2. Input Event Order5.6.1. Interface KeyboardEvent5.6.3. Keyboard Event Order (2)5.6.4.1. keydown (2) (3) (4)5.6.4.2. keyup5.7.6. Input Events During Composition (2) (3) (4) (5)6.3.2. Modifier keys (2) (3) (4) (5)6.3.4. Input Method Editors (2) (3) (4)6.3.5. Default actions and cancelable keyboard events (2) (3) (4) (5)9.3. Legacy KeyboardEvent events9.3.1.1. keypress (2)9.3.2. keypress event order (2)12.2. Changes between different drafts of UI Events
    +
    5.5.3.1. beforeinput
    @@ -2979,6 +3231,9 @@
    +
    Cancelable Yes +
    Composed + Yes
    Default action Update the DOM element @@ -2997,7 +3252,7 @@

    A user agent MUST dispatch this event when the DOM is about to be updated.

    -
    5.5.3.2. input#inputReferenced in:4.1. List of Event Types (2)5.5.2. Input Event Order5.6.1. Interface KeyboardEvent5.6.3. Keyboard Event Order (2)5.6.4.1. keydown (2) (3) (4)5.6.4.2. keyup5.7.6. Input Events During Composition (2) (3) (4) (5) (6)6.3.2. Modifier keys (2) (3) (4) (5)6.3.4. Input Method Editors (2) (3) (4)6.3.5. Default actions and cancelable keyboard events (2) (3) (4) (5)9.3. Legacy KeyboardEvent events9.3.1.1. keypress9.3.2. keypress event order (2)12.2. Changes between different drafts of UI Events
    +
    5.5.3.2. input
    @@ -3018,6 +3273,9 @@
    +
    Cancelable No +
    Composed + Yes
    Default action None @@ -3055,27 +3313,27 @@

    ctrlKey, shiftKey, altKey, metaKey. These attributes are equivalent to using the method getModifierState() with Control, Shift, Alt, or Meta respectively. To create an instance of the KeyboardEvent interface, use the KeyboardEvent constructor, passing an optional KeyboardEventInit dictionary.

    -
    [Constructor(DOMString type, optional KeyboardEventInit eventInitDict)]
    -interface KeyboardEvent#keyboardevent-keyboardeventReferenced in:2. Stylistic Conventions (2) (3)3.6. Constructing Mouse and Keyboard Events (2) (3) (4)4.1. List of Event Types (2)5.3.1. Interface MouseEvent5.3.2. Event Modifier Initializers (2) (3) (4) (5) (6)5.6.1. Interface KeyboardEvent (2) (3) (4)5.6.2. Keyboard Event Key Location5.6.4.1. keydown (2) (3) (4) (5) (6) (7) (8) (9) (10)5.6.4.2. keyup (2) (3) (4) (5) (6) (7) (8) (9) (10)5.7.5. Key Events During Composition6.2.3. code Examples (2) (3) (4) (5) (6) (7) (8) (9) (10)6.3.2. Modifier keys (2) (3) (4) (5) (6)6.3.3. Dead keys (2) (3) (4)6.3.4. Input Method Editors (2) (3) (4)6.3.5. Default actions and cancelable keyboard events (2) (3)7.1.4. Initializers for interface KeyboardEvent8.1. Legacy KeyboardEvent supplemental interface8.1.1. Interface KeyboardEvent (supplemental) (2) (3) (4)8.1.2. Interface KeyboardEventInit (supplemental) (2) (3) (4) (5)9. Legacy Event Types9.3. Legacy KeyboardEvent events9.3.1. Legacy KeyboardEvent event types9.3.1.1. keypress (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13)9.3.2. keypress event order12.1.4. New Interfaces12.2. Changes between different drafts of UI Events (2) (3) : UIEvent {
    +
    [Constructor(DOMString type, optional KeyboardEventInit eventInitDict)]
    +interface KeyboardEvent : UIEvent {
       // KeyLocationCode
    -  const unsigned long DOM_KEY_LOCATION_STANDARD#dom-keyboardevent-dom_key_location_standardReferenced in:5.6.1. Interface KeyboardEvent (2) (3)5.6.2. Keyboard Event Key Location (2) (3) (4)6.3. Keyboard Event key Values = 0x00;
    -  const unsigned long DOM_KEY_LOCATION_LEFT#dom-keyboardevent-dom_key_location_leftReferenced in:5.6.1. Interface KeyboardEvent (2)5.6.2. Keyboard Event Key Location6.2.3. code Examples (2) (3) (4) (5) (6)6.3. Keyboard Event key Values = 0x01;
    -  const unsigned long DOM_KEY_LOCATION_RIGHT#dom-keyboardevent-dom_key_location_rightReferenced in:5.6.1. Interface KeyboardEvent (2)5.6.2. Keyboard Event Key Location6.2.3. code Examples (2)6.3. Keyboard Event key Values = 0x02;
    -  const unsigned long DOM_KEY_LOCATION_NUMPAD#dom-keyboardevent-dom_key_location_numpadReferenced in:5.6.1. Interface KeyboardEvent5.6.2. Keyboard Event Key Location (2) (3)6.3. Keyboard Event key Values = 0x03;
    +  const unsigned long DOM_KEY_LOCATION_STANDARD = 0x00;
    +  const unsigned long DOM_KEY_LOCATION_LEFT = 0x01;
    +  const unsigned long DOM_KEY_LOCATION_RIGHT = 0x02;
    +  const unsigned long DOM_KEY_LOCATION_NUMPAD = 0x03;
     
    -  readonly attribute DOMString key#dom-keyboardevent-keyReferenced in:2. Stylistic Conventions (2)3.5. Activation triggers and behavior5.6.1. Interface KeyboardEvent5.6.2. Keyboard Event Key Location (2)5.6.4.1. keydown5.6.4.2. keyup6.2.1. Motivation for the code Attribute (2) (3) (4)6.2.2. The Relationship Between key and code (2) (3) (4)6.2.3. code Examples (2) (3) (4) (5) (6) (7) (8)6.2.4. code and Virtual Keyboards6.3. Keyboard Event key Values (2) (3)6.3.2. Modifier keys (2) (3) (4) (5) (6) (7)6.3.3. Dead keys (2)6.3.4. Input Method Editors (2)6.3.5. Default actions and cancelable keyboard events (2) (3)6.3.6. Guidelines for selecting key values (2) (3)7.1.4. Initializers for interface KeyboardEvent8. Legacy Key Attributes8.1.1. Interface KeyboardEvent (supplemental)9.3.1.1. keypress9.3.2. keypress event order12.2. Changes between different drafts of UI Events;
    -  readonly attribute DOMString code#dom-keyboardevent-codeReferenced in:2. Stylistic Conventions (2)5.6.1. Interface KeyboardEvent5.6.4.1. keydown5.6.4.2. keyup6.2. Key codes (2) (3)6.2.1. Motivation for the code Attribute (2) (3)6.2.2. The Relationship Between key and code (2) (3)6.2.3. code Examples (2) (3) (4) (5) (6) (7) (8) (9)6.2.4. code and Virtual Keyboards (2) (3) (4) (5)6.3.2. Modifier keys9.3.1.1. keypress;
    -  readonly attribute unsigned long location#dom-keyboardevent-locationReferenced in:5.6.1. Interface KeyboardEvent (2) (3) (4) (5) (6) (7)5.6.2. Keyboard Event Key Location (2) (3) (4)5.6.4.1. keydown5.6.4.2. keyup6.3. Keyboard Event key Values (2) (3)7.1.4. Initializers for interface KeyboardEvent9.3.1.1. keypress12.2. Changes between different drafts of UI Events;
    +  readonly attribute DOMString key;
    +  readonly attribute DOMString code;
    +  readonly attribute unsigned long location;
     
    -  readonly attribute boolean ctrlKey#dom-keyboardevent-ctrlkeyReferenced in:5.3.1. Interface MouseEvent5.6.1. Interface KeyboardEvent5.6.4.1. keydown5.6.4.2. keyup6.3.2. Modifier keys (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)9.3.1.1. keypress;
    -  readonly attribute boolean shiftKey#dom-keyboardevent-shiftkeyReferenced in:5.3.1. Interface MouseEvent5.6.1. Interface KeyboardEvent5.6.4.1. keydown5.6.4.2. keyup6.2.3. code Examples (2) (3) (4) (5) (6)6.3.2. Modifier keys (2) (3) (4) (5) (6) (7) (8) (9)6.3.5. Default actions and cancelable keyboard events (2) (3) (4) (5) (6)9.3.1.1. keypress;
    -  readonly attribute boolean altKey#dom-keyboardevent-altkeyReferenced in:5.3.1. Interface MouseEvent5.6.1. Interface KeyboardEvent5.6.4.1. keydown5.6.4.2. keyup6.3.2. Modifier keys9.3.1.1. keypress;
    -  readonly attribute boolean metaKey#dom-keyboardevent-metakeyReferenced in:5.3.1. Interface MouseEvent5.6.1. Interface KeyboardEvent5.6.4.1. keydown5.6.4.2. keyup6.3.2. Modifier keys9.3.1.1. keypress;
    +  readonly attribute boolean ctrlKey;
    +  readonly attribute boolean shiftKey;
    +  readonly attribute boolean altKey;
    +  readonly attribute boolean metaKey;
     
    -  readonly attribute boolean repeat#dom-keyboardevent-repeatReferenced in:5.6.1. Interface KeyboardEvent5.6.3. Keyboard Event Order5.6.4.1. keydown5.6.4.2. keyup7.1.4. Initializers for interface KeyboardEvent9.3.1.1. keypress;
    -  readonly attribute boolean isComposing#dom-keyboardevent-iscomposingReferenced in:5.6.4.1. keydown5.6.4.2. keyup5.7.5. Key Events During Composition (2)6.3.3. Dead keys (2)6.3.4. Input Method Editors (2)9.3.1.1. keypress;
    +  readonly attribute boolean repeat;
    +  readonly attribute boolean isComposing;
     
    -  boolean getModifierState#dom-keyboardevent-getmodifierstateReferenced in:3.6. Constructing Mouse and Keyboard Events5.3.1. Interface MouseEvent5.3.2. Event Modifier Initializers (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15)5.6.1. Interface KeyboardEvent(DOMString keyArg);
    +  boolean getModifierState(DOMString keyArg);
     };
     
    @@ -3181,12 +3439,12 @@

    location.

    -
    dictionary KeyboardEventInit#dictdef-keyboardeventinitReferenced in:5.6.1. Interface KeyboardEvent (2)8.1.2. Interface KeyboardEventInit (supplemental) (2) (3) : EventModifierInit {
    -  DOMString key = "";
    -  DOMString code = "";
    -  unsigned long location = 0;
    -  boolean repeat = false;
    -  boolean isComposing = false;
    +
    dictionary KeyboardEventInit : EventModifierInit {
    +  DOMString key = "";
    +  DOMString code = "";
    +  unsigned long location = 0;
    +  boolean repeat = false;
    +  boolean isComposing = false;
     };
     
    @@ -3349,7 +3607,7 @@

    The event target might change between different key events. For example, a keydown event for the Tab key will likely have a different event target than the keyup event on the same keystroke.

    5.6.4. Keyboard Event Types

    -
    5.6.4.1. keydown#keydownReferenced in:3.5. Activation triggers and behavior4.1. List of Event Types5.6.1. Interface KeyboardEvent5.6.3. Keyboard Event Order (2) (3)5.6.4.1. keydown (2) (3)5.6.4.2. keyup (2)5.7.4. Canceling Composition Events (2) (3) (4)5.7.5. Key Events During Composition (2) (3)5.7.7.1. compositionstart6.2.3. code Examples (2) (3) (4)6.3.2. Modifier keys (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13)6.3.3. Dead keys (2) (3) (4) (5)6.3.4. Input Method Editors (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)6.3.5. Default actions and cancelable keyboard events (2) (3) (4) (5) (6) (7) (8)8.1.1. Interface KeyboardEvent (supplemental)8.2.1. How to determine keyCode for keydown and keyup events (2) (3)9.1.2. Activation event order9.3.2. keypress event order (2)14. Glossary
    +
    5.6.4.1. keydown
    @@ -3370,6 +3628,9 @@
    +
    Cancelable Yes +
    Composed + Yes
    Default action Varies: beforeinput and input events; launch text composition system; blur and focus events; keypress event; activation behavior; @@ -3420,7 +3681,7 @@
    If this event is canceled, the associated event types MUST NOT be dispatched, and the associated actions MUST NOT be performed.

    The keydown and keyup events are traditionally associated with detecting any key, not just those which produce a character value.

    -
    5.6.4.2. keyup#keyupReferenced in:4.1. List of Event Types5.6.3. Keyboard Event Order (2) (3) (4)5.6.4.1. keydown (2)5.6.4.2. keyup (2)5.7.4. Canceling Composition Events (2)5.7.5. Key Events During Composition (2) (3)6.2.3. code Examples (2) (3) (4)6.3.2. Modifier keys (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14)6.3.3. Dead keys (2) (3) (4)6.3.4. Input Method Editors (2) (3) (4) (5) (6) (7) (8) (9) (10)6.3.5. Default actions and cancelable keyboard events (2) (3) (4) (5) (6) (7) (8)8.1.1. Interface KeyboardEvent (supplemental)8.2.1. How to determine keyCode for keydown and keyup events (2)9.3.2. keypress event order (2)
    +
    5.6.4.2. keyup
    @@ -3441,6 +3702,9 @@
    +
    Cancelable Yes +
    Composed + Yes
    Default action None @@ -3496,9 +3760,9 @@

    < information associated with Composition Events.

    To create an instance of the CompositionEvent interface, use the CompositionEvent constructor, passing an optional CompositionEventInit dictionary.

    -
    [Constructor(DOMString type, optional CompositionEventInit eventInitDict)]
    -interface CompositionEvent#compositioneventReferenced in:4.1. List of Event Types (2) (3)5.7.1. Interface CompositionEvent (2) (3)5.7.3. Handwriting Recognition Systems5.7.7.1. compositionstart (2)5.7.7.2. compositionupdate (2)5.7.7.3. compositionend (2)6.3.3. Dead keys (2)6.3.4. Input Method Editors (2) (3) (4)12.1.4. New Interfaces12.2. Changes between different drafts of UI Events : UIEvent {
    -  readonly attribute DOMString data#dom-compositionevent-dataReferenced in:5.7. Composition Events5.7.3. Handwriting Recognition Systems5.7.7.1. compositionstart (2) (3)5.7.7.2. compositionupdate (2) (3)5.7.7.3. compositionend6.3. Keyboard Event key Values (2)6.3.3. Dead keys (2) (3)6.3.4. Input Method Editors (2) (3)7.1.5. Initializers for interface CompositionEvent;
    +
    [Constructor(DOMString type, optional CompositionEventInit eventInitDict)]
    +interface CompositionEvent : UIEvent {
    +  readonly attribute DOMString data;
     };
     
    @@ -3512,8 +3776,8 @@

    < attribute MAY be the empty string.

    The un-initialized value of this attribute MUST be "" (the empty string).

    -
    dictionary CompositionEventInit#dictdef-compositioneventinitReferenced in:5.7.1. Interface CompositionEvent (2) : UIEventInit {
    -  DOMString data = "";
    +
    dictionary CompositionEventInit : UIEventInit {
    +  DOMString data = "";
     };
     
    @@ -3740,7 +4004,7 @@

    5.7.7. Composition Event Types

    -
    5.7.7.1. compositionstart#compositionstartReferenced in:4.1. List of Event Types5.5.1. Interface InputEvent5.6.1. Interface KeyboardEvent5.7. Composition Events (2)5.7.2. Composition Event Order5.7.3. Handwriting Recognition Systems5.7.4. Canceling Composition Events (2)5.7.5. Key Events During Composition5.7.7.1. compositionstart (2)6.3.3. Dead keys (2)6.3.4. Input Method Editors (2)
    +
    5.7.7.1. compositionstart
    @@ -3761,6 +4025,9 @@
    preventDefault() will not stop this event’s default action.

    -
    5.7.7.2. compositionupdate#compositionupdateReferenced in:4.1. List of Event Types5.7. Composition Events5.7.2. Composition Event Order5.7.3. Handwriting Recognition Systems (2)5.7.5. Key Events During Composition5.7.6. Input Events During Composition (2) (3) (4)5.7.7.2. compositionupdate6.3.3. Dead keys (2) (3) (4) (5)6.3.4. Input Method Editors (2) (3) (4) (5) (6) (7) (8) (9)
    +
    5.7.7.2. compositionupdate
    @@ -3819,6 +4086,9 @@
    compositionend event, and the data attribute will be set to the empty string.

    -
    5.7.7.3. compositionend#compositionendReferenced in:4.1. List of Event Types5.5.1. Interface InputEvent5.6.1. Interface KeyboardEvent5.7. Composition Events5.7.2. Composition Event Order5.7.3. Handwriting Recognition Systems5.7.4. Canceling Composition Events (2)5.7.5. Key Events During Composition5.7.6. Input Events During Composition (2)5.7.7.2. compositionupdate5.7.7.3. compositionend6.3.3. Dead keys (2)6.3.4. Input Method Editors (2) (3)
    +
    5.7.7.3. compositionend
    @@ -3867,6 +4137,9 @@
    +
    Cancelable No +
    Composed + Yes
    Default action None @@ -5387,13 +5660,13 @@

    detail.
    long screenXArg -
    Specifies screenX. +
    Specifies screenX.
    long screenYArg -
    Specifies screenY. +
    Specifies screenY.
    long clientXArg -
    Specifies clientX. +
    Specifies clientX.
    long clientYArg -
    Specifies clientY. +
    Specifies clientY.
    boolean ctrlKeyArg
    Specifies ctrlKey.
    boolean altKeyArg @@ -5433,13 +5706,13 @@

    detail.
    long screenXArg -
    Specifies screenX. +
    Specifies screenX.
    long screenYArg -
    Specifies screenY. +
    Specifies screenY.
    long clientXArg -
    Specifies clientX. +
    Specifies clientX.
    long clientYArg -
    Specifies clientY. +
    Specifies clientY.
    short buttonArg
    Specifies button.
    EventTarget? relatedTargetArg @@ -5568,11 +5841,11 @@

    KeyboardEvent interface, which adds the charCode, keyCode, and which attributes.

    The partial KeyboardEvent interface can be obtained by using the createEvent() method call in implementations that support this extension.

    -
    partial interface KeyboardEvent {
    +
    partial interface KeyboardEvent {
       // The following support legacy user agents
    -  readonly attribute unsigned long charCode#dom-keyboardevent-charcodeReferenced in:6.3.1. Key Values and Unicode8. Legacy Key Attributes8.1. Legacy KeyboardEvent supplemental interface (2)8.1.1. Interface KeyboardEvent (supplemental) (2) (3)8.1.2. Interface KeyboardEventInit (supplemental) (2) (3)8.2. Legacy key models9.3. Legacy KeyboardEvent events9.3.1.1. keypress;
    -  readonly attribute unsigned long keyCode#dom-keyboardevent-keycodeReferenced in:6.3.1. Key Values and Unicode8. Legacy Key Attributes8.1. Legacy KeyboardEvent supplemental interface (2)8.1.1. Interface KeyboardEvent (supplemental) (2) (3) (4) (5)8.1.2. Interface KeyboardEventInit (supplemental) (2) (3) (4)8.2. Legacy key models (2)8.2.1. How to determine keyCode for keydown and keyup events (2)8.2.2. How to determine keyCode for keypress events (2) (3) (4)9.3. Legacy KeyboardEvent events9.3.1.1. keypress;
    -  readonly attribute unsigned long which#dom-keyboardevent-whichReferenced in:8.1. Legacy KeyboardEvent supplemental interface (2)8.1.1. Interface KeyboardEvent (supplemental) (2)8.1.2. Interface KeyboardEventInit (supplemental) (2) (3)9.3. Legacy KeyboardEvent events9.3.1.1. keypress;
    +  readonly attribute unsigned long charCode;
    +  readonly attribute unsigned long keyCode;
    +  readonly attribute unsigned long which;
     };
     
    @@ -5961,7 +6234,7 @@

    9.1. Legacy UIEvent events

    9.1.1. Legacy UIEvent event types

    -
    9.1.1.1. DOMActivate#domactivateReferenced in:5.6.4.1. keydown9. Legacy Event Types (2)9.1.1.1. DOMActivate (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13)9.1.2. Activation event order (2)9.3.1.1. keypress
    +
    9.1.1.1. DOMActivate
    @@ -6065,7 +6338,7 @@

    <

    9.2. Legacy FocusEvent events

    9.2.1. Legacy FocusEvent event types

    -
    9.2.1.1. DOMFocusIn#domfocusinReferenced in:9. Legacy Event Types9.2.1.1. DOMFocusIn9.2.2. Legacy FocusEvent event order (2) (3)
    +
    9.2.1.1. DOMFocusIn
    @@ -6106,7 +6379,7 @@
    The DOMFocusIn event type is defined in this specification for reference and completeness, but this specification deprecates the use of this event type in favor of the related event types focus and focusin.

    -
    9.2.1.2. DOMFocusOut#domfocusoutReferenced in:9. Legacy Event Types9.2.1.2. DOMFocusOut9.2.2. Legacy FocusEvent event order (2)
    +
    9.2.1.2. DOMFocusOut
    @@ -6207,7 +6480,7 @@

    Note that the keypress event is specific to key events, and has been replaced by the more general event sequence of beforeinput and input events. These new input events are not specific to keyboard actions and can be used to capture user input regardless of the original source.

    9.3.1. Legacy KeyboardEvent event types

    -
    9.3.1.1. keypress#keypressReferenced in:4.1. List of Event Types5.6.4.1. keydown6.2.3. code Examples (2)6.3.5. Default actions and cancelable keyboard events (2)8.1.1. Interface KeyboardEvent (supplemental)8.2.2. How to determine keyCode for keypress events (2)9. Legacy Event Types9.3. Legacy KeyboardEvent events (2) (3)9.3.1.1. keypress (2) (3) (4)9.3.2. keypress event order (2) (3) (4) (5)12.2. Changes between different drafts of UI Events (2)
    +
    9.3.1.1. keypress

    @@ -6432,7 +6705,7 @@

    9.4.2. Legacy MutationEvent event types

    The mutation event types are listed below.

    -
    9.4.2.1. DOMAttrModified#domattrmodifiedReferenced in:9. Legacy Event Types9.4.1. Interface MutationEvent (2) (3) (4) (5)9.4.2.1. DOMAttrModified9.4.2.3. DOMNodeInserted9.4.2.5. DOMNodeRemoved9.4.2.6. DOMNodeRemovedFromDocument
    +
    9.4.2.1. DOMAttrModified

    @@ -6480,7 +6753,7 @@
    Attr node are changed in ways that do not affect the value of Attr.value.

    The DOMAttrModified event type is defined in this specification for reference and completeness, but this specification deprecates the use of this event type.

    -
    9.4.2.2. DOMCharacterDataModified#domcharacterdatamodifiedReferenced in:9. Legacy Event Types9.4.1. Interface MutationEvent (2)9.4.2.2. DOMCharacterDataModified
    +
    9.4.2.2. DOMCharacterDataModified
    @@ -6526,7 +6799,7 @@
    The DOMCharacterDataModified event type is defined in this specification for reference and completeness, but this specification deprecates the use of this event type.

    -
    9.4.2.3. DOMNodeInserted#domnodeinsertedReferenced in:9. Legacy Event Types9.4.2.3. DOMNodeInserted9.4.2.4. DOMNodeInsertedIntoDocument12.1.2. Changes to DOM Level 2 event types
    +
    9.4.2.3. DOMNodeInserted
    @@ -6573,7 +6846,7 @@
    event target of this event MUST be the node being inserted.

    For detecting attribute insertion, use the DOMAttrModified event type instead.

    The DOMNodeInserted event type is defined in this specification for reference and completeness, but this specification deprecates the use of this event type.

    -
    9.4.2.4. DOMNodeInsertedIntoDocument#domnodeinsertedintodocumentReferenced in:9. Legacy Event Types9.4.2.4. DOMNodeInsertedIntoDocument
    +
    9.4.2.4. DOMNodeInsertedIntoDocument
    @@ -6622,7 +6895,7 @@
    9.4.2.5. DOMNodeRemoved#domnoderemovedReferenced in:9. Legacy Event Types9.4.2.5. DOMNodeRemoved9.4.2.6. DOMNodeRemovedFromDocument12.1.2. Changes to DOM Level 2 event types
    +
    9.4.2.5. DOMNodeRemoved
    @@ -6668,7 +6941,7 @@
    dispatched before the removal takes place. The event target of this event MUST be the node being removed.

    For reliably detecting attribute removal, use the DOMAttrModified event type instead.

    The DOMNodeRemoved event type is defined in this specification for reference and completeness, but this specification deprecates the use of this event type.

    -
    9.4.2.6. DOMNodeRemovedFromDocument#domnoderemovedfromdocumentReferenced in:9. Legacy Event Types9.4.2.6. DOMNodeRemovedFromDocument
    +
    9.4.2.6. DOMNodeRemovedFromDocument
    @@ -6718,7 +6991,7 @@
    9.4.2.7. DOMSubtreeModified#domsubtreemodifiedReferenced in:9. Legacy Event Types9.4.2.7. DOMSubtreeModified
    +
    9.4.2.7. DOMSubtreeModified
    @@ -7131,6 +7404,7 @@

    < Arkadiusz Michalski, Brad Pettit, Cameron McCormack, +Chris Rebert, Curt Arnold, David Flanagan, Dylan Schiemann, @@ -7168,7 +7442,7 @@

    14 the definitions for more information.

    -

    activation behavior#activation-behaviorReferenced in:3.5. Activation triggers and behavior4.1. List of Event Types (2) (3)5.6.4.1. keydown9.1.1.1. DOMActivate9.1.2. Activation event order (2)14. Glossary

    +

    activation behavior

    The action taken when an event, typically initiated by users through an input device, causes an element to fulfill a defined task. The task MAY @@ -7182,7 +7456,7 @@

    14 an HTML <input> element with the type attribute value submit is be to send the values of the form elements to an author-defined IRI by the author-defined HTTP method. See §3.5 Activation triggers and behavior for more details.

    -

    activation trigger#activation-triggerReferenced in:3.5. Activation triggers and behavior (2) (3) (4) (5)9.1.1.1. DOMActivate (2) (3)14. Glossary

    +

    activation trigger

    An event which is defined to initiate an activation behavior. Refer to §3.5 Activation triggers and behavior for more details.

    @@ -7195,20 +7469,20 @@

    14 defined in this specification. See §1.2.3 Content authors and content conformance category for more details.

    -

    body element#body-elementReferenced in:5.3.3. Mouse Event Order5.6.3. Keyboard Event Order5.6.4.1. keydown5.6.4.2. keyup9.3.1.1. keypress

    +

    body element

    In HTML or XHTML documents, the body element represents the contents of the document. In a well-formed HTML document, the body element is a first descendant of the root element.

    -

    bubbling phase#bubble-phaseReferenced in:3.1. Event dispatch and DOM event flow14. Glossary (2)

    +

    bubbling phase

    The process by which an event can be handled by one of the target’s ancestors after being handled by the event target. See the description of the bubble phase in the context of event flow for more details.

    -

    capture phase#capture-phaseReferenced in:3.1. Event dispatch and DOM event flow14. Glossary (2)

    +

    capture phase

    The process by which an event can be handled by one of the target’s ancestors before being handled by the event target. See the @@ -7230,7 +7504,7 @@

    14 listeners to be added prevents infinite loops of event listener dispatch on a given target object.

    -

    character value#character-valueReferenced in:5.6.1. Interface KeyboardEvent5.6.3. Keyboard Event Order (2)5.6.4.1. keydown5.6.4.2. keyup6.3. Keyboard Event key Values (2)6.3.1. Key Values and Unicode9.3.1.1. keypress (2)14. Glossary (2) (3)

    +

    character value

    In the context of key values, a character value is a string representing one or more Unicode characters, such as a letter or symbol, or a set of letters. @@ -7240,7 +7514,7 @@

    14 represented using the character escape syntax of the programming language in use.

    -

    current event target#current-event-targetReferenced in:3.1. Event dispatch and DOM event flow14. Glossary (2) (3)

    +

    current event target

    In an event flow, the current event target is the object associated with the event handler that is currently being dispatched. This object MAY be the event target itself or one of its ancestors. The current event @@ -7248,13 +7522,13 @@

    14 the various phases of the event flow. The current event target is the value of the currentTarget attribute.

    -

    dead key#dead-keyReferenced in:6. Keyboard events and key values6.3. Keyboard Event key Values (2)6.3.3. Dead keys (2) (3) (4) (5)6.3.5. Default actions and cancelable keyboard events (2)6.3.6. Guidelines for selecting key values14. Glossary (2)

    +

    dead key

    A dead key is a key or combination of keys which 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., "ö", "é", "â").

    -

    default action#default-actionReferenced in:3.2. Default actions and cancelable events (2) (3) (4) (5) (6) (7) (8) (9)3.4. Trusted events (2)5.3.1. Interface MouseEvent (2)5.3.4.1. click (2) (3) (4)5.3.4.2. dblclick (2) (3)5.3.4.3. mousedown5.4.2.1. wheel5.6.3. Keyboard Event Order (2) (3)5.7.4. Canceling Composition Events (2)6.3.5. Default actions and cancelable keyboard events (2) (3) (4) (5)9.1.1.1. DOMActivate (2)9.1.2. Activation event order (2) (3) (4) (5)9.3.1.1. keypress9.3.2. keypress event order14. Glossary (2) (3) (4) (5)

    +

    default action

    A default action is an OPTIONAL supplementary behavior that an implementation MUST perform in combination with the dispatch of the event @@ -7263,7 +7537,7 @@

    14 such as when associated with an activation trigger. A default action MAY be cancelled through the invocation of the preventDefault() method. For more details, see §3.2 Default actions and cancelable events.

    -

    delta#deltaReferenced in:5.4. Wheel Events (2) (3)5.4.1. Interface WheelEvent (2) (3) (4) (5)5.4.2.1. wheel (2) (3)14. Glossary (2) (3)

    +

    delta

    The estimated scroll amount (in pixels, lines, or pages) that the user agent will scroll or zoom the page in response to the physical movement of an @@ -7275,7 +7549,7 @@

    14 are directed towards the right-most edge, bottom-most edge, and farthest depth (away from the user) of the document, respectively.

    -

    deprecated#deprecatesReferenced in:1.2.1. Web browsers and other dynamic or interactive user agents (2)1.2.2. Authoring tools1.2.3. Content authors and content1.2.4. Specifications and host languages9.1.1.1. DOMActivate9.2.1.1. DOMFocusIn9.2.1.2. DOMFocusOut9.3.1.1. keypress9.4. Legacy MutationEvent events9.4.2.1. DOMAttrModified9.4.2.2. DOMCharacterDataModified9.4.2.3. DOMNodeInserted9.4.2.4. DOMNodeInsertedIntoDocument9.4.2.5. DOMNodeRemoved9.4.2.6. DOMNodeRemovedFromDocument9.4.2.7. DOMSubtreeModified

    +

    deprecated

    Features marked as deprecated are included in the specification as reference to older implementations or specifications, but are OPTIONAL and @@ -7290,7 +7564,7 @@

    14 marked as deprecated in this specification are expected to be dropped from future specifications.

    -

    dispatch#dispatchReferenced in:1.2.1. Web browsers and other dynamic or interactive user agents3.1. Event dispatch and DOM event flow14. Glossary

    +

    dispatch

    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. @@ -7303,7 +7577,7 @@

    14 root of the document tree, and provides the primary access to the document’s data.

    -

    DOM application#dom-applicationReferenced in:3.2. Default actions and cancelable events11. Security Considerations (2)

    +

    DOM application

    A DOM application is script or code, written by a content author or automatically generated, which takes advantage of the interfaces, methods, @@ -7311,7 +7585,7 @@

    14 order to make dynamic or interactive content, such as Web applications, exposed to users in a user agent.

    -

    DOM Level 0#dom-level-0Referenced in:5.3.1. Interface MouseEvent

    +

    DOM Level 0

    The term DOM Level 0 refers to a mix of HTML document functionalities, often not formally specified but traditionally supported as de facto @@ -7320,12 +7594,12 @@

    14 methods have been included for reasons of backward compatibility with DOM Level 0.

    -

    empty string#empty-stringReferenced in:5.5.1. Interface InputEvent5.5.3.1. beforeinput5.5.3.2. input5.7. Composition Events5.7.1. Interface CompositionEvent5.7.7.1. compositionstart (2)5.7.7.2. compositionupdate (2)5.7.7.3. compositionend6.3.4. Input Method Editors9.4.1. Interface MutationEvent (2) (3)9.4.2.2. DOMCharacterDataModified9.4.2.3. DOMNodeInserted (2) (3)9.4.2.4. DOMNodeInsertedIntoDocument (2) (3)9.4.2.5. DOMNodeRemoved (2) (3)9.4.2.6. DOMNodeRemovedFromDocument (2) (3)9.4.2.7. DOMSubtreeModified (2) (3)

    +

    empty string

    The empty string is a value of type DOMString of length 0, i.e., a string which contains no characters (neither printing nor control characters).

    -

    event#eventReferenced in:1.1. Overview14. Glossary (2) (3) (4) (5) (6) (7) (8) (9)

    +

    event

    An event is the representation of some occurrence (such as a mouse click on the presentation of an element, the removal of child node from an element, @@ -7333,7 +7607,7 @@

    14 target. Each event is an instantiation of one specific event type.

    -

    event focus#event-focusReferenced in:14. Glossary

    +

    event focus

    Event focus is a special state of receptivity and concentration on a particular element or other event target within a document. Each @@ -7342,7 +7616,7 @@

    14 toggling state (as for a checkbox), receiving text input (as for a text form field), or copying selected text. For more details, see §5.2.3 Document Focus and Focus Context.

    -

    event focus ring#focus-ringReferenced in:5.2.3. Document Focus and Focus Context

    +

    event focus ring

    An event focus ring is an ordered set of event focus targets within a document. A host language MAY define one or more ways to determine @@ -7353,9 +7627,9 @@

    14 rings, focus wraps around from the last focus target to the first.

    -

    event handler#event-handlerReferenced in:14. Glossary

    +

    event handler

    -

    event listener#event-listenerReferenced in:14. Glossary

    +

    event listener

    An object that implements the EventListener interface and provides an handleEvent() callback method. Event handlers are language-specific. Event handlers are invoked in the context of a particular @@ -7365,7 +7639,7 @@

    14 first parameter to the user-defined function when it is invoked. Additionally, JavaScript objects can also implement the EventListener interface when they define a handleEvent method.

    -

    event order#event-orderReferenced in:3.3. Synchronous and asynchronous events

    +

    event order

    The sequence in which events from the same event source or process occur, using the same or related event interfaces. For example, in an environment @@ -7378,16 +7652,16 @@

    14 the state of the process, not on the state of the device that initiates the state change.

    -

    event phase#event-phaseReferenced in:3.1. Event dispatch and DOM event flow14. Glossary

    +

    event phase

    See phase.

    -

    event target#event-targetReferenced in:3.1. Event dispatch and DOM event flow (2) (3)3.5. Activation triggers and behavior4.1. List of Event Types5.2.3. Document Focus and Focus Context5.2.4.1. blur (2) (3)5.2.4.2. focus (2) (3)5.2.4.3. focusin (2) (3) (4) (5)5.2.4.4. focusout (2) (3) (4)5.3.3. Mouse Event Order5.3.4.1. click (2) (3)5.3.4.2. dblclick (2)5.3.4.4. mouseenter5.3.4.5. mouseleave5.3.4.7. mouseout5.3.4.8. mouseover (2)5.4.2.1. wheel5.5.3.1. beforeinput5.5.3.2. input5.6.3. Keyboard Event Order (2) (3)9.1.1.1. DOMActivate9.2.1.1. DOMFocusIn (2)9.2.1.2. DOMFocusOut (2)9.4.2.1. DOMAttrModified9.4.2.2. DOMCharacterDataModified9.4.2.3. DOMNodeInserted9.4.2.4. DOMNodeInsertedIntoDocument9.4.2.5. DOMNodeRemoved9.4.2.6. DOMNodeRemovedFromDocument14. Glossary (2) (3) (4) (5) (6) (7) (8) (9) (10)

    +

    event target

    The object to which an event is targeted using the §3.1 Event dispatch and DOM event flow. The event target is the value of the target attribute.

    -

    event type#event-typeReferenced in:1.2.1. Web browsers and other dynamic or interactive user agents (2) (3) (4)1.2.2. Authoring tools (2)1.2.3. Content authors and content (2)1.2.4. Specifications and host languages (2) (3) (4)3.1. Event dispatch and DOM event flow9.1.1.1. DOMActivate (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)14. Glossary (2)

    +

    event type

    An event type is an event object with a particular name and which defines particular trigger conditions, properties, and other @@ -7395,11 +7669,11 @@

    14 the click event type has different characteristics than the mouseover or load event types. The event type is exposed as the type attribute on the event object. See §5 Event Types for more details. Also loosely referred to as "event", such as the click event.

    -

    fire#fireReferenced in:14. Glossary

    +

    fire

    A synonym for dispatch.

    -

    host language#host-languageReferenced in:1.2.2. Authoring tools1.2.4. Specifications and host languages (2) (3)5.1.2.5. select (2)5.2.3. Document Focus and Focus Context5.6.3. Keyboard Event Order6.3. Keyboard Event key Values (2)9.1.1.1. DOMActivate14. Glossary (2) (3)

    +

    host language

    Any language which integrates the features of another language or API specification, while normatively referencing the origin specification rather @@ -7410,7 +7684,7 @@

    14 are host languages for UI Events, and they integrate and extend the objects and models defined in this specification.

    -

    hysteresis#hysteresisReferenced in:5.3.3. Mouse Event Order5.3.4.1. click

    +

    hysteresis

    A feature of human interface design to accept input values within a certain range of location or time, in order to improve the user experience. For @@ -7419,9 +7693,9 @@

    14 closing a nested menu if the user mouses out from the parent window when transitioning to the child menu is locative hysteresis.

    -

    IME#imeReferenced in:5.6.1. Interface KeyboardEvent5.7. Composition Events5.7.7.1. compositionstart5.7.7.3. compositionend6.3.4. Input Method Editors (2) (3) (4) (5)6.3.4.1. Input Method Editor mode keys (2) (3) (4) (5)14. Glossary

    +

    IME

    -

    input method editor#input-method-editorReferenced in:5.5.3.1. beforeinput5.5.3.2. input6.3.1. Key Values and Unicode6.3.4. Input Method Editors (2)6.3.4.1. Input Method Editor mode keys (2) (3) (4) (5)9.3.1.1. keypress14. Glossary

    +

    input method editor

    An input method editor (IME), also known as a front end processor, is an application that performs the conversion between @@ -7431,7 +7705,7 @@

    14 completion, such as on mobile devices. See §6.3.4 Input Method Editors for treatment of IMEs in this specification. See also text composition system.

    -

    key mapping#key-mappingReferenced in:5.6.4.1. keydown5.6.4.2. keyup6.3. Keyboard Event key Values6.3.6. Guidelines for selecting key values9.3.1.1. keypress14. Glossary

    +

    key mapping

    Key mapping is the process of assigning a key value to a particular key, and is the result of a combination of several factors, including the operating @@ -7439,7 +7713,7 @@

    14 InScript, Chinese, etc.), and after taking into account all modifier key (Shift, Alt, et al.) and dead key states.

    -

    key value#key-valueReferenced in:6.3. Keyboard Event key Values (2)

    +

    key value

    A key value is a character value or multi-character string (such as "Enter", "Tab", or "MediaTrackNext") associated with a key in a particular state. Every key has a key value, whether or not it has a character value. This includes control keys, function keys, modifier keys, dead keys, and any other key. The key value of any given key at any given time depends upon the key mapping.

    @@ -7448,24 +7722,24 @@

    14

    See local name in [XML-Names11].

    -

    modifier key#modifier-keyReferenced in:6.3.2. Modifier keys14. Glossary (2)

    +

    modifier key

    A modifier key changes the normal behavior of a key, such as to produce a character of a different case (as with the Shift key), or to alter what functionality the key triggers (as with the Fn or Alt keys). Refer to §6.3.2 Modifier keys for a list of modifier keys.

    -

    namespace URI#namespace-urisReferenced in:1.2. Conformance

    +

    namespace URI

    A namespace URI is a URI that identifies an XML namespace. This is called the namespace name in [XML-Names11]. See also sections 1.3.2 DOM URIs and 1.3.3 XML Namespaces regarding URIs and namespace URIs handling and comparison in the DOM APIs.

    -

    phase#phaseReferenced in:14. Glossary (2)

    +

    phase

    In the context of events, a phase is set of logical traversals from node to node along the DOM tree, from the Window to the Document object, root element, and down to the event target (capture phase), at the event target itself (target phase), and back up the same chain (bubbling phase).

    -

    propagation path#propagation-pathReferenced in:3.1. Event dispatch and DOM event flow (2) (3)

    +

    propagation path

    The ordered set of current event targets though which an event object will pass sequentially on the way to and back from the event target. As the event propagates, each current event target in @@ -7473,7 +7747,7 @@

    14 propagation path is initially composed of one or more event phases as defined by the event type, but MAY be interrupted. Also known as an event target chain.

    -

    QWERTY#qwertyReferenced in:6.3. Keyboard Event key Values (2)14. Glossary

    +

    QWERTY

    QWERTY (pronounced ˈkwɜrti) is a common keyboard layout, so named because the first five character keys on the top row of letter keys @@ -7481,29 +7755,29 @@

    14 (including the Dvorak and Colemak layouts), most designed for localization or ergonomics.

    -

    root element#root-elementReferenced in:5.3.3. Mouse Event Order (2)5.6.3. Keyboard Event Order5.6.4.1. keydown5.6.4.2. keyup9.3.1.1. keypress14. Glossary (2)

    +

    root element

    The first element node of a document, of which all other elements are children. The document element.

    -

    rotation#rotationReferenced in:5.4. Wheel Events (2)5.4.1. Interface WheelEvent

    +

    rotation

    An indication of incremental change on an input device using the WheelEvent interface. 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.

    -

    target phase#target-phaseReferenced in:3.1. Event dispatch and DOM event flow14. Glossary (2)

    +

    target phase

    The process by which an event can be handled by the event target. See the description of the target phase in the context of event flow for more details.

    -

    text composition system#text-composition-systemReferenced in:4.1. List of Event Types (2)5.6.4.1. keydown (2)5.7.7.1. compositionstart (2) (3) (4) (5) (6) (7)5.7.7.2. compositionupdate (2) (3)5.7.7.3. compositionend (2)9. Legacy Event Types9.3.1.1. keypress14. Glossary

    +

    text composition system

    A software component that interprets some form of alternate input (such as a input method editor, a speech processor, or a handwriting recognition system) and converts it to text.

    -

    topmost event target#topmost-event-targetReferenced in:5.3.4.1. click (2)5.3.4.2. dblclick5.3.4.3. mousedown5.3.4.4. mouseenter5.3.4.5. mouseleave5.3.4.6. mousemove5.3.4.7. mouseout5.3.4.8. mouseover5.3.4.9. mouseup5.4.2.1. wheel14. Glossary

    +

    topmost event target

    The topmost event target MUST be the element highest in the rendering order which is capable of being an event target. In graphical user @@ -7530,7 +7804,7 @@

    14 and Symbol (Sc, Sk, Sm, So) category values.

    -

    Unicode code point#unicode-code-pointReferenced in:6.1.1. Key Legends (2)6.3.2. Modifier keys6.3.6. Guidelines for selecting key values

    +

    Unicode code point

    A Unicode code point is a unique hexadecimal number signifying a character by its index in the Unicode codespace (or library of characters). In the @@ -7539,12 +7813,12 @@

    14 range 0000 to 10FFFF, using at least four digits. See also character value.

    -

    un-initialized value#un-initialized-valueReferenced in:5.1.1. Interface UIEvent (2)5.2.1. Interface FocusEvent5.3.1. Interface MouseEvent (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)5.4.1. Interface WheelEvent (2) (3) (4)5.5.1. Interface InputEvent (2)5.6.1. Interface KeyboardEvent (2) (3) (4) (5) (6) (7) (8) (9)5.7.1. Interface CompositionEvent9.4.1. Interface MutationEvent (2) (3) (4) (5)

    +

    un-initialized value

    The value of any event attribute (such as bubbles or currentTarget) before the event has been initialized with initEvent(). The un-initialized values of an event apply immediately after a new event has been created using the method createEvent().

    -

    user agent#user-agentReferenced in:1.2. Conformance (2) (3)1.2.1. Web browsers and other dynamic or interactive user agents (2)2. Stylistic Conventions3.4. Trusted events (2)5.1.2.1. load5.1.2.2. unload5.1.2.3. abort5.1.2.4. error5.1.2.5. select5.2.4.1. blur5.2.4.2. focus5.2.4.3. focusin5.2.4.4. focusout5.3.4.2. dblclick5.3.4.3. mousedown5.3.4.4. mouseenter5.3.4.5. mouseleave5.3.4.6. mousemove5.3.4.7. mouseout5.3.4.8. mouseover5.3.4.9. mouseup5.4.2.1. wheel (2)5.5.3.1. beforeinput5.5.3.2. input5.6.1. Interface KeyboardEvent5.6.4.1. keydown (2)5.6.4.2. keyup5.7.7.1. compositionstart5.7.7.2. compositionupdate5.7.7.3. compositionend (2)7. Legacy Event Initializers8. Legacy Key Attributes (2) (3)8.1. Legacy KeyboardEvent supplemental interface9. Legacy Event Types9.1.1.1. DOMActivate (2) (3) (4) (5)9.1.2. Activation event order (2) (3)9.2.1.1. DOMFocusIn9.2.1.2. DOMFocusOut9.3.1.1. keypress9.4. Legacy MutationEvent events9.4.2.1. DOMAttrModified9.4.2.2. DOMCharacterDataModified9.4.2.3. DOMNodeInserted (2)9.4.2.4. DOMNodeInsertedIntoDocument (2)9.4.2.5. DOMNodeRemoved (2)9.4.2.6. DOMNodeRemovedFromDocument (2)14. Glossary (2)

    +

    user agent

    A program, such as a browser or content authoring tool, normally running on a client machine, which acts on a user’s behalf in retrieving, interpreting, @@ -7553,7 +7827,7 @@

    14 the §1.2.1 Web browsers and other dynamic or interactive user agents and §1.2.2 Authoring tools for details on the requirements for a conforming user agent.

    -

    Window#windowReferenced in:3.1. Event dispatch and DOM event flow (2)4.1. List of Event Types (2) (3) (4) (5) (6) (7) (8) (9)5.1.2.1. load (2) (3)5.1.2.2. unload (2)5.1.2.3. abort (2)5.1.2.4. error (2)5.1.2.5. select5.2.4.1. blur (2)5.2.4.2. focus (2)5.2.4.3. focusin (2)5.2.4.4. focusout (2)5.3.4.1. click5.3.4.2. dblclick5.3.4.3. mousedown5.3.4.4. mouseenter5.3.4.5. mouseleave5.3.4.6. mousemove5.3.4.7. mouseout5.3.4.8. mouseover5.3.4.9. mouseup5.4.2.1. wheel5.5.3.1. beforeinput5.5.3.2. input5.6.4.1. keydown5.6.4.2. keyup5.7.7.1. compositionstart5.7.7.2. compositionupdate5.7.7.3. compositionend9. Legacy Event Types (2) (3)9.1.1.1. DOMActivate9.2.1.1. DOMFocusIn (2)9.2.1.2. DOMFocusOut (2)9.3.1.1. keypress9.4.2.7. DOMSubtreeModified12.1.1. Changes to DOM Level 2 event flow14. Glossary

    +

    Window

    The Window is the object referred to by the current document’s browsing context’s Window Proxy object as defined in HTML5 [HTML5].

    @@ -7607,6 +7881,7 @@

    compositionend, in §5.7.7.3
  • CompositionEvent, in §5.7.1
  • CompositionEventInit, in §5.7.1 +
  • CompositionEvent(type), in §5.7.1
  • CompositionEvent(type, eventInitDict), in §5.7.1
  • compositionstart, in §5.7.7.1
  • compositionupdate, in §5.7.7.2 @@ -7698,6 +7973,7 @@

    focus, in §5.2.4.2
  • FocusEvent, in §5.2.1
  • FocusEventInit, in §5.2.1 +
  • FocusEvent(type), in §5.2.1
  • FocusEvent(type, eventInitDict), in §5.2.1
  • focusin, in §5.2.4.3
  • focusout, in §5.2.4.4 @@ -7714,6 +7990,7 @@

    input, in §5.5.3.2
  • InputEvent, in §5.5.1
  • InputEventInit, in §5.5.1 +
  • InputEvent(type), in §5.5.1
  • InputEvent(type, eventInitDict), in §5.5.1
  • input method editor, in §14
  • internal key modifier state, in §3.6 @@ -7733,6 +8010,7 @@

    KeyboardEvent, in §5.6.1
  • KeyboardEventInit, in §5.6.1 +
  • KeyboardEvent(type), in §5.6.1
  • KeyboardEvent(type, eventInitDict), in §5.6.1
  • keyCode, in §8.1.1
  • keydown, in §5.6.4.1 @@ -7770,6 +8048,7 @@

    mousedown, in §5.3.4.3
  • mouseenter, in §5.3.4.4
  • MouseEvent, in §5.3.1 +
  • MouseEvent(type), in §5.3.1
  • MouseEvent(type, eventInitDict), in §5.3.1
  • mouseleave, in §5.3.4.5
  • mousemove, in §5.3.4.6 @@ -7810,6 +8089,7 @@

    tree, in §14
  • UIEvent, in §5.1.1
  • UIEventInit, in §5.1.1 +
  • UIEvent(type), in §5.1.1
  • UIEvent(type, eventInitDict), in §5.1.1
  • Unicode character categories, in §14
  • Unicode code point, in §14 @@ -7825,6 +8105,7 @@

    wheel, in §5.4.2.1
  • WheelEvent, in §5.4.1
  • WheelEventInit, in §5.4.1 +
  • WheelEvent(type), in §5.4.1
  • WheelEvent(type, eventInitDict), in §5.4.1
  • which, in §8.1.1
  • Window, in §14 @@ -7832,21 +8113,21 @@

    Terms defined by reference

    • - [css-syntax-3] defines the following terms: + [css-syntax-3] defines the following terms:
    • - [cssom-view] defines the following terms: + [cssom-view-1] defines the following terms:
    • - [dom] defines the following terms: + [DOM] defines the following terms:
    • - [HTML] defines the following terms: + [HTML] defines the following terms:
    • - [SVG2] defines the following terms: + [SVG2] defines the following terms: @@ -7897,225 +8179,1903 @@

      References

      Normative References

      -
      [DOM-Level-2-Events] -
      Tom Pixley. Document Object Model (DOM) Level 2 Events Specification. 13 November 2000. REC. URL: http://www.w3.org/TR/DOM-Level-2-Events/ -
      [DOM-Level-3-Core] -
      Arnaud Le Hors; et al. Document Object Model (DOM) Level 3 Core Specification. 7 April 2004. REC. URL: http://www.w3.org/TR/DOM-Level-3-Core/ -
      [HTML] +
      [CSS-SYNTAX-3] +
      Tab Atkins Jr.; Simon Sapin. CSS Syntax Module Level 3. 20 February 2014. CR. URL: https://www.w3.org/TR/css-syntax-3/ +
      [CSSOM-VIEW-1] +
      Simon Pieters. CSSOM View Module. 17 March 2016. WD. URL: https://www.w3.org/TR/cssom-view-1/ +
      [DOM] +
      Anne van Kesteren. DOM Standard. Living Standard. URL: https://dom.spec.whatwg.org/ +
      [DOM-Level-2-Events] +
      Tom Pixley. Document Object Model (DOM) Level 2 Events Specification. 13 November 2000. REC. URL: https://www.w3.org/TR/DOM-Level-2-Events/ +
      [DOM-Level-3-Core] +
      Arnaud Le Hors; et al. Document Object Model (DOM) Level 3 Core Specification. 7 April 2004. REC. URL: https://www.w3.org/TR/DOM-Level-3-Core/ +
      [HTML]
      Ian Hickson. HTML Standard. Living Standard. URL: https://html.spec.whatwg.org/multipage/ -
      [SVG2] -
      Nikos Andronikos; et al. Scalable Vector Graphics (SVG) 2. 15 September 2015. WD. URL: https://svgwg.org/svg2-draft/ -
      [CSS-SYNTAX-3] -
      Tab Atkins Jr.; Simon Sapin. CSS Syntax Module Level 3. 20 February 2014. CR. URL: http://dev.w3.org/csswg/css-syntax/ -
      [CSSOM-VIEW] -
      Simon Pieters; Glenn Adams. CSSOM View Module. 17 December 2013. WD. URL: http://dev.w3.org/csswg/cssom-view/ -
      [DOM] -
      Anne van Kesteren; et al. W3C DOM4. 19 November 2015. REC. URL: http://www.w3.org/TR/dom/ -
      [HTML5] -
      Ian Hickson; et al. HTML5. 28 October 2014. REC. URL: http://www.w3.org/TR/html5/ -
      [RFC2119] +
      [HTML5] +
      Ian Hickson; et al. HTML5. 28 October 2014. REC. URL: https://www.w3.org/TR/html5/ +
      [RFC2119]
      S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119 -
      [UIEVENTS-CODE] -
      Gary Kacmarcik; Travis Leithead. UI Events KeyboardEvent code Values. 15 December 2015. WD. URL: http://www.w3.org/TR/uievents-code/ -
      [UIEVENTS-KEY] -
      Gary Kacmarcik; Travis Leithead. UI Events KeyboardEvent key Values. 15 December 2015. WD. URL: http://www.w3.org/TR/uievents-key/ +
      [SVG2] +
      Nikos Andronikos; et al. Scalable Vector Graphics (SVG) 2. 15 September 2015. WD. URL: https://www.w3.org/TR/SVG2/ +
      [UIEvents-Code] +
      Gary Kacmarcik; Travis Leithead. UI Events KeyboardEvent code Values. 15 December 2015. WD. URL: https://www.w3.org/TR/uievents-code/ +
      [UIEvents-Key] +
      Gary Kacmarcik; Travis Leithead. UI Events KeyboardEvent key Values. 15 December 2015. WD. URL: https://www.w3.org/TR/uievents-key/

      Informative References

      -
      [CSS2] -
      Bert Bos; et al. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. 7 June 2011. REC. URL: http://www.w3.org/TR/CSS2 -
      [DOM4] -
      Anne van Kesteren; et al. W3C DOM4. 19 November 2015. REC. URL: http://www.w3.org/TR/dom/ -
      [DWW95] +
      [CSS2] +
      Bert Bos; et al. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. 7 June 2011. REC. URL: https://www.w3.org/TR/CSS2 +
      [DWW95]
      N. Kano. Developing International Software for Windows 95 and Windows NT: A Handbook for International Software Design. 1995. -
      [EDITING] -
      HTML Editing APIs, A. Gregor. W3C Editing APIs CG. -
      [PCRE] +
      [Editing] +
      A. Gregor. HTML Editing APIs. URL: https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html +
      [HTML40] +
      Dave Raggett; Arnaud Le Hors; Ian Jacobs. HTML 4.0 Recommendation. 24 April 1998. REC. URL: https://www.w3.org/TR/html40 +
      [PCRE]
      Perl Compatible Regular Expressions library. URL: http://www.pcre.org/ -
      [UAAG20] -
      James Allan; et al. User Agent Accessibility Guidelines (UAAG) 2.0. 15 December 2015. NOTE. URL: http://www.w3.org/TR/UAAG20/ -
      [UAX15] +
      [RFC20] +
      V.G. Cerf. ASCII format for network interchange. October 1969. Internet Standard. URL: https://tools.ietf.org/html/rfc20 +
      [UAAG20] +
      James Allan; et al. User Agent Accessibility Guidelines (UAAG) 2.0. 15 December 2015. NOTE. URL: https://www.w3.org/TR/UAAG20/ +
      [UAX15]
      Mark Davis; Ken Whistler. Unicode Normalization Forms. 31 August 2012. Unicode Standard Annex #15. URL: http://www.unicode.org/reports/tr15 -
      [UNICODE] +
      [Unicode]
      The Unicode Standard. URL: http://www.unicode.org/versions/latest/ -
      [US-ASCII] +
      [US-ASCII]
      Coded Character Set - 7-Bit American Standard Code for Information Interchange. 1986. -
      [WIN1252] +
      [WebIDL] +
      Cameron McCormack; Boris Zbarsky. WebIDL Level 1. 8 March 2016. CR. URL: https://www.w3.org/TR/WebIDL-1/ +
      [WIN1252]
      Windows 1252 a Coded Character Set - 8-Bit. URL: http://www.microsoft.com/globaldev/reference/sbcs/1252.htm -
      [WebIDL] -
      Cameron McCormack; Boris Zbarsky. WebIDL Level 1. 4 August 2015. WD. URL: http://www.w3.org/TR/WebIDL-1/ -
      [HTML40] -
      Dave Raggett; Arnaud Le Hors; Ian Jacobs. HTML 4.0 Recommendation. 24 April 1998. REC. URL: http://www.w3.org/TR/html40 -
      [RFC20] -
      V.G. Cerf. ASCII format for network interchange. October 1969. Internet Standard. URL: https://tools.ietf.org/html/rfc20 -
      [XFORMS] -
      John Boyer. XForms 1.0 (Third Edition). 29 October 2007. REC. URL: http://www.w3.org/TR/xforms/ -
      [XML] -
      Tim Bray; et al. Extensible Markup Language (XML) 1.0 (Fifth Edition). 26 November 2008. REC. URL: http://www.w3.org/TR/xml -
      [XML-NAMES11] -
      Tim Bray; et al. Namespaces in XML 1.1 (Second Edition). 16 August 2006. REC. URL: http://www.w3.org/TR/xml-names11/ +
      [XFORMS] +
      John Boyer. XForms 1.0 (Third Edition). 29 October 2007. REC. URL: https://www.w3.org/TR/xforms/ +
      [XML] +
      Tim Bray; et al. Extensible Markup Language (XML) 1.0 (Fifth Edition). 26 November 2008. REC. URL: https://www.w3.org/TR/xml +
      [XML-Names11] +
      Tim Bray; et al. Namespaces in XML 1.1 (Second Edition). 16 August 2006. REC. URL: https://www.w3.org/TR/xml-names11/

      IDL Index

      -
      [Constructor(DOMString type, optional UIEventInit eventInitDict)]
      -interface UIEvent : Event {
      -  readonly attribute Window? view;
      -  readonly attribute long detail;
      +
      [Constructor(DOMString type, optional UIEventInit eventInitDict)]
      +interface UIEvent : Event {
      +  readonly attribute Window? view;
      +  readonly attribute long detail;
       };
       
      -dictionary UIEventInit : EventInit {
      -  Window? view = null;
      -  long detail = 0;
      +dictionary UIEventInit : EventInit {
      +  Window? view = null;
      +  long detail = 0;
       };
       
      -[Constructor(DOMString type, optional FocusEventInit eventInitDict)]
      -interface FocusEvent : UIEvent {
      -  readonly attribute EventTarget? relatedTarget;
      +[Constructor(DOMString type, optional FocusEventInit eventInitDict)]
      +interface FocusEvent : UIEvent {
      +  readonly attribute EventTarget? relatedTarget;
       };
       
      -dictionary FocusEventInit : UIEventInit {
      -  EventTarget? relatedTarget = null;
      +dictionary FocusEventInit : UIEventInit {
      +  EventTarget? relatedTarget = null;
       };
       
      -[Constructor(DOMString type, optional MouseEventInit eventInitDict)]
      -interface MouseEvent : UIEvent {
      -  readonly attribute long screenX;
      -  readonly attribute long screenY;
      -  readonly attribute long clientX;
      -  readonly attribute long clientY;
      +[Constructor(DOMString type, optional MouseEventInit eventInitDict)]
      +interface MouseEvent : UIEvent {
      +  readonly attribute long screenX;
      +  readonly attribute long screenY;
      +  readonly attribute long clientX;
      +  readonly attribute long clientY;
       
      -  readonly attribute boolean ctrlKey;
      -  readonly attribute boolean shiftKey;
      -  readonly attribute boolean altKey;
      -  readonly attribute boolean metaKey;
      +  readonly attribute boolean ctrlKey;
      +  readonly attribute boolean shiftKey;
      +  readonly attribute boolean altKey;
      +  readonly attribute boolean metaKey;
       
      -  readonly attribute short button;
      -  readonly attribute unsigned short buttons;
      +  readonly attribute short button;
      +  readonly attribute unsigned short buttons;
       
      -  readonly attribute EventTarget? relatedTarget;
      +  readonly attribute EventTarget? relatedTarget;
       
      -  boolean getModifierState(DOMString keyArg);
      +  boolean getModifierState(DOMString keyArg);
       };
       
      -dictionary MouseEventInit : EventModifierInit {
      -  long screenX = 0;
      -  long screenY = 0;
      -  long clientX = 0;
      -  long clientY = 0;
      +dictionary MouseEventInit : EventModifierInit {
      +  long screenX = 0;
      +  long screenY = 0;
      +  long clientX = 0;
      +  long clientY = 0;
       
      -  short button = 0;
      -  unsigned short buttons = 0;
      -  EventTarget? relatedTarget = null;
      +  short button = 0;
      +  unsigned short buttons = 0;
      +  EventTarget? relatedTarget = null;
       };
       
      -dictionary EventModifierInit : UIEventInit {
      -  boolean ctrlKey = false;
      -  boolean shiftKey = false;
      -  boolean altKey = false;
      -  boolean metaKey = false;
      +dictionary EventModifierInit : UIEventInit {
      +  boolean ctrlKey = false;
      +  boolean shiftKey = false;
      +  boolean altKey = false;
      +  boolean metaKey = false;
       
      -  boolean modifierAltGraph = false;
      -  boolean modifierCapsLock = false;
      -  boolean modifierFn = false;
      -  boolean modifierFnLock = false;
      -  boolean modifierHyper = false;
      -  boolean modifierNumLock = false;
      -  boolean modifierScrollLock = false;
      -  boolean modifierSuper = false;
      -  boolean modifierSymbol = false;
      -  boolean modifierSymbolLock = false;
      +  boolean modifierAltGraph = false;
      +  boolean modifierCapsLock = false;
      +  boolean modifierFn = false;
      +  boolean modifierFnLock = false;
      +  boolean modifierHyper = false;
      +  boolean modifierNumLock = false;
      +  boolean modifierScrollLock = false;
      +  boolean modifierSuper = false;
      +  boolean modifierSymbol = false;
      +  boolean modifierSymbolLock = false;
       };
       
      -[Constructor(DOMString type, optional WheelEventInit eventInitDict)]
      -interface WheelEvent : MouseEvent {
      +[Constructor(DOMString type, optional WheelEventInit eventInitDict)]
      +interface WheelEvent : MouseEvent {
         // DeltaModeCode
      -  const unsigned long DOM_DELTA_PIXEL = 0x00;
      -  const unsigned long DOM_DELTA_LINE  = 0x01;
      -  const unsigned long DOM_DELTA_PAGE  = 0x02;
      +  const unsigned long DOM_DELTA_PIXEL = 0x00;
      +  const unsigned long DOM_DELTA_LINE  = 0x01;
      +  const unsigned long DOM_DELTA_PAGE  = 0x02;
       
      -  readonly attribute double deltaX;
      -  readonly attribute double deltaY;
      -  readonly attribute double deltaZ;
      -  readonly attribute unsigned long deltaMode;
      +  readonly attribute double deltaX;
      +  readonly attribute double deltaY;
      +  readonly attribute double deltaZ;
      +  readonly attribute unsigned long deltaMode;
       };
       
      -dictionary WheelEventInit : MouseEventInit {
      -  double deltaX = 0.0;
      -  double deltaY = 0.0;
      -  double deltaZ = 0.0;
      -  unsigned long deltaMode = 0;
      +dictionary WheelEventInit : MouseEventInit {
      +  double deltaX = 0.0;
      +  double deltaY = 0.0;
      +  double deltaZ = 0.0;
      +  unsigned long deltaMode = 0;
       };
       
      -[Constructor(DOMString type, optional InputEventInit eventInitDict)]
      -interface InputEvent : UIEvent {
      -  readonly attribute DOMString data;
      -  readonly attribute boolean isComposing;
      +[Constructor(DOMString type, optional InputEventInit eventInitDict)]
      +interface InputEvent : UIEvent {
      +  readonly attribute DOMString data;
      +  readonly attribute boolean isComposing;
       };
       
      -dictionary InputEventInit : UIEventInit {
      -  DOMString data = "";
      -  boolean isComposing = false;
      +dictionary InputEventInit : UIEventInit {
      +  DOMString data = "";
      +  boolean isComposing = false;
       };
       
      -[Constructor(DOMString type, optional KeyboardEventInit eventInitDict)]
      -interface KeyboardEvent : UIEvent {
      +[Constructor(DOMString type, optional KeyboardEventInit eventInitDict)]
      +interface KeyboardEvent : UIEvent {
         // KeyLocationCode
      -  const unsigned long DOM_KEY_LOCATION_STANDARD = 0x00;
      -  const unsigned long DOM_KEY_LOCATION_LEFT = 0x01;
      -  const unsigned long DOM_KEY_LOCATION_RIGHT = 0x02;
      -  const unsigned long DOM_KEY_LOCATION_NUMPAD = 0x03;
      +  const unsigned long DOM_KEY_LOCATION_STANDARD = 0x00;
      +  const unsigned long DOM_KEY_LOCATION_LEFT = 0x01;
      +  const unsigned long DOM_KEY_LOCATION_RIGHT = 0x02;
      +  const unsigned long DOM_KEY_LOCATION_NUMPAD = 0x03;
       
      -  readonly attribute DOMString key;
      -  readonly attribute DOMString code;
      -  readonly attribute unsigned long location;
      +  readonly attribute DOMString key;
      +  readonly attribute DOMString code;
      +  readonly attribute unsigned long location;
       
      -  readonly attribute boolean ctrlKey;
      -  readonly attribute boolean shiftKey;
      -  readonly attribute boolean altKey;
      -  readonly attribute boolean metaKey;
      +  readonly attribute boolean ctrlKey;
      +  readonly attribute boolean shiftKey;
      +  readonly attribute boolean altKey;
      +  readonly attribute boolean metaKey;
       
      -  readonly attribute boolean repeat;
      -  readonly attribute boolean isComposing;
      +  readonly attribute boolean repeat;
      +  readonly attribute boolean isComposing;
       
      -  boolean getModifierState(DOMString keyArg);
      +  boolean getModifierState(DOMString keyArg);
       };
       
      -dictionary KeyboardEventInit : EventModifierInit {
      -  DOMString key = "";
      -  DOMString code = "";
      -  unsigned long location = 0;
      -  boolean repeat = false;
      -  boolean isComposing = false;
      +dictionary KeyboardEventInit : EventModifierInit {
      +  DOMString key = "";
      +  DOMString code = "";
      +  unsigned long location = 0;
      +  boolean repeat = false;
      +  boolean isComposing = false;
       };
       
      -[Constructor(DOMString type, optional CompositionEventInit eventInitDict)]
      -interface CompositionEvent : UIEvent {
      -  readonly attribute DOMString data;
      +[Constructor(DOMString type, optional CompositionEventInit eventInitDict)]
      +interface CompositionEvent : UIEvent {
      +  readonly attribute DOMString data;
       };
       
      -dictionary CompositionEventInit : UIEventInit {
      -  DOMString data = "";
      +dictionary CompositionEventInit : UIEventInit {
      +  DOMString data = "";
       };
       
      -partial interface KeyboardEvent {
      +partial interface KeyboardEvent {
         // The following support legacy user agents
      -  readonly attribute unsigned long charCode;
      -  readonly attribute unsigned long keyCode;
      -  readonly attribute unsigned long which;
      +  readonly attribute unsigned long charCode;
      +  readonly attribute unsigned long keyCode;
      +  readonly attribute unsigned long which;
       };
       
       
      -