This new specification provides a better separation between the DOM event flow, the event types, and the DOM interfaces.
This new specification introduced two new concepts in the event flow:
Event.stopPropagation() does no longer stop the event
propagation entirely. It only stops it for a given event
group.
Lots of clarifications have been made on the event types. The
conformance is now explicitly defined against the event types,
and not only in terms of interfaces required by the event
types. Support for namespaces and the features
"BasicEvents", "TextEvents",
"KeyboardEvents", and
"MutationNameEvents" have been introduced.
The DOM Level 2 Event load event type can now be
dispatched to more [HTML 4.01]
elements. blur and focus have been
clarified and restricted to [HTML 4.01] applications
only.
EventEvent interface has a new attribute
Event.namespaceURI, and a four new methods:
Event.isCustom(),
Event.stopImmediatePropagation(),
Event.isDefaultPrevented(), and
Event.initEventNS.
EventTargetEventTarget interface has four new
methods:
EventTarget.addEventListenerNS(namespaceURI, type,
listener, useCapture, evtGroup),
EventTarget.removeEventListenerNS(namespaceURI,
type, listener, useCapture),
EventTarget.willTriggerNS(namespaceURI,
type),
EventTarget.hasEventListenerNS(namespaceURI,
type). The method
EventTarget.dispatchEvent(evt) was modified.
DocumentEventDocumentEvent interface has one new
method: DocumentEvent.canDispatch(namespaceURI,
type).
UIEventUIEvent interface has a new method
UIEvent.initUIEventNS(...).
MouseEventMouseEvent interface has two new methods
MouseEvent.getModifierState(keyIdentifierArg)
and MouseEvent.initMouseEventNS(...).
MutationEventMutationEvent interface has a new method
MutationEvent.initMutationEventNS(...).
EventExceptionDISPATCH_REQUEST_ERR constant has been
added.
The interfaces CustomEvent, TextEvent,
KeyboardEvent, and MutationNameEvent
were added to the Events module.