WPT
wpt / pointerevents / idlharness.https.window.html
Spec: Pointer Events ↗
Runs: Chrome 155.0.8039.0 (wpt@6ec9fd59f, 2026-09-03) | Firefox 157.0a1 (wpt@6ec9fd59f, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-795e1 (wpt@7e3d005d7, 2026-09-03) | Servo Servo 0.6 (wpt@09159dcb3, 2026-09-02) | Blitz 188486089 (wpt@a95401e4e, 2026-09-02)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 203/203 | 200/203 | 193/203 | 198/203 | 178/203 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| idl_test setup | PASS | PASS | PASS | PASS | PASS | — |
| idl_test validation | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Element: original interface defined | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Element: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface mixin GlobalEventHandlers: original interface mixin defined | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface mixin GlobalEventHandlers: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Navigator: original interface defined | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Navigator: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface MouseEvent: original interface defined | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface MouseEvent: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface UIEvent: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface UIEvent[2]: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial dictionary UIEventInit: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Document: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Navigator[2]: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Element[2]: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface mixin NavigatorID: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Document[2]: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Window: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Document includes GlobalEventHandlers: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| HTMLElement includes GlobalEventHandlers: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| HTMLElement includes ElementContentEditable: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| HTMLElement includes HTMLOrSVGOrMathMLElement: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes GlobalEventHandlers: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes WindowEventHandlers: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes WindowOrWorkerGlobalScope: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorID: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorLanguage: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorOnLine: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorContentUtils: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorCookies: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorPlugins: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorConcurrentHardware: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes AnimationFrameProvider: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes WindowSessionStorage: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes WindowLocalStorage: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Document includes NonElementParentNode: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Document includes DocumentOrShadowRoot: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Document includes ParentNode: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Element includes ParentNode: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Element includes NonDocumentTypeChildNode: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Element includes ChildNode: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Element includes Slottable: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Document includes XPathEvaluatorBase: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: existence and properties of interface object | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface object length | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface object name | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: existence and properties of interface prototype object | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: attribute screenX | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: attribute screenY | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: attribute clientX | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: attribute clientY | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: attribute layerX | PASS | FAIL | FAIL | FAIL | FAIL | — |
| MouseEvent interface: attribute layerY | PASS | FAIL | FAIL | FAIL | FAIL | — |
| MouseEvent interface: attribute ctrlKey | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: attribute shiftKey | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: attribute altKey | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: attribute metaKey | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: attribute button | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: attribute buttons | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: attribute relatedTarget | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: operation getModifierState(DOMString) | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: operation initMouseEvent(DOMString, optional boolean, optional boolean, optional Window?, optional long, optional long, optional long, optional long, optional long, optional boolean, optional boolean, optional boolean, optional boolean, optional short, optional EventTarget?) | PASS | PASS | PASS | PASS | FAIL | — |
| PointerEvent interface: existence and properties of interface object | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface object length | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface object name | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: existence and properties of interface prototype object | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: attribute pointerId | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: attribute width | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: attribute height | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: attribute pressure | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: attribute tangentialPressure | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: attribute tiltX | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: attribute tiltY | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: attribute twist | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: attribute altitudeAngle | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: attribute azimuthAngle | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: attribute pointerType | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: attribute isPrimary | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: attribute persistentDeviceId | PASS | PASS | FAIL | PASS | FAIL | — |
| PointerEvent interface: operation getCoalescedEvents() | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: operation getPredictedEvents() | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent must be primary interface of new PointerEvent("type") | PASS | PASS | PASS | PASS | PASS | — |
| Stringification of new PointerEvent("type") | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: new PointerEvent("type") must inherit property "pointerId" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: new PointerEvent("type") must inherit property "width" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: new PointerEvent("type") must inherit property "height" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: new PointerEvent("type") must inherit property "pressure" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: new PointerEvent("type") must inherit property "tangentialPressure" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: new PointerEvent("type") must inherit property "tiltX" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: new PointerEvent("type") must inherit property "tiltY" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: new PointerEvent("type") must inherit property "twist" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: new PointerEvent("type") must inherit property "altitudeAngle" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: new PointerEvent("type") must inherit property "azimuthAngle" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: new PointerEvent("type") must inherit property "pointerType" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: new PointerEvent("type") must inherit property "isPrimary" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: new PointerEvent("type") must inherit property "persistentDeviceId" with the proper type | PASS | PASS | FAIL | PASS | FAIL | — |
| PointerEvent interface: new PointerEvent("type") must inherit property "getCoalescedEvents()" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| PointerEvent interface: new PointerEvent("type") must inherit property "getPredictedEvents()" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: new PointerEvent("type") must inherit property "screenX" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: new PointerEvent("type") must inherit property "screenY" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: new PointerEvent("type") must inherit property "clientX" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: new PointerEvent("type") must inherit property "clientY" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: new PointerEvent("type") must inherit property "layerX" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MouseEvent interface: new PointerEvent("type") must inherit property "layerY" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MouseEvent interface: new PointerEvent("type") must inherit property "ctrlKey" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: new PointerEvent("type") must inherit property "shiftKey" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: new PointerEvent("type") must inherit property "altKey" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: new PointerEvent("type") must inherit property "metaKey" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: new PointerEvent("type") must inherit property "button" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: new PointerEvent("type") must inherit property "buttons" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: new PointerEvent("type") must inherit property "relatedTarget" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: new PointerEvent("type") must inherit property "getModifierState(DOMString)" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: calling getModifierState(DOMString) on new PointerEvent("type") with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: new PointerEvent("type") must inherit property "initMouseEvent(DOMString, optional boolean, optional boolean, optional Window?, optional long, optional long, optional long, optional long, optional long, optional boolean, optional boolean, optional boolean, optional boolean, optional short, optional EventTarget?)" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MouseEvent interface: calling initMouseEvent(DOMString, optional boolean, optional boolean, optional Window?, optional long, optional long, optional long, optional long, optional long, optional boolean, optional boolean, optional boolean, optional boolean, optional short, optional EventTarget?) on new PointerEvent("type") with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | PASS | — |
| WheelEvent interface: existence and properties of interface object | PASS | PASS | PASS | PASS | PASS | — |
| WheelEvent interface object length | PASS | PASS | PASS | PASS | PASS | — |
| WheelEvent interface object name | PASS | PASS | PASS | PASS | PASS | — |
| WheelEvent interface: existence and properties of interface prototype object | PASS | PASS | PASS | PASS | PASS | — |
| WheelEvent interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | PASS | PASS | — |
| WheelEvent interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | PASS | PASS | — |
| WheelEvent interface: constant DOM_DELTA_PIXEL on interface object | PASS | PASS | PASS | PASS | PASS | — |
| WheelEvent interface: constant DOM_DELTA_PIXEL on interface prototype object | PASS | PASS | PASS | PASS | PASS | — |
| WheelEvent interface: constant DOM_DELTA_LINE on interface object | PASS | PASS | PASS | PASS | PASS | — |
| WheelEvent interface: constant DOM_DELTA_LINE on interface prototype object | PASS | PASS | PASS | PASS | PASS | — |
| WheelEvent interface: constant DOM_DELTA_PAGE on interface object | PASS | PASS | PASS | PASS | PASS | — |
| WheelEvent interface: constant DOM_DELTA_PAGE on interface prototype object | PASS | PASS | PASS | PASS | PASS | — |
| WheelEvent interface: attribute deltaX | PASS | PASS | PASS | PASS | PASS | — |
| WheelEvent interface: attribute deltaY | PASS | PASS | PASS | PASS | PASS | — |
| WheelEvent interface: attribute deltaZ | PASS | PASS | PASS | PASS | PASS | — |
| WheelEvent interface: attribute deltaMode | PASS | PASS | PASS | PASS | PASS | — |
| WheelEvent interface: attribute momentum | PASS | FAIL | FAIL | FAIL | FAIL | — |
| HTMLElement interface: attribute onpointerover | PASS | PASS | PASS | PASS | PASS | — |
| HTMLElement interface: attribute onpointerenter | PASS | PASS | PASS | PASS | PASS | — |
| HTMLElement interface: attribute onpointerdown | PASS | PASS | PASS | PASS | PASS | — |
| HTMLElement interface: attribute onpointermove | PASS | PASS | PASS | PASS | PASS | — |
| HTMLElement interface: attribute onpointerrawupdate | PASS | PASS | FAIL | PASS | FAIL | — |
| HTMLElement interface: attribute onpointerup | PASS | PASS | PASS | PASS | PASS | — |
| HTMLElement interface: attribute onpointercancel | PASS | PASS | PASS | PASS | PASS | — |
| HTMLElement interface: attribute onpointerout | PASS | PASS | PASS | PASS | PASS | — |
| HTMLElement interface: attribute onpointerleave | PASS | PASS | PASS | PASS | PASS | — |
| HTMLElement interface: attribute ongotpointercapture | PASS | PASS | PASS | PASS | FAIL | — |
| HTMLElement interface: attribute onlostpointercapture | PASS | PASS | PASS | PASS | FAIL | — |
| Window interface: attribute onpointerover | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: attribute onpointerenter | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: attribute onpointerdown | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: attribute onpointermove | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: attribute onpointerrawupdate | PASS | PASS | FAIL | PASS | FAIL | — |
| Window interface: attribute onpointerup | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: attribute onpointercancel | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: attribute onpointerout | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: attribute onpointerleave | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: attribute ongotpointercapture | PASS | PASS | PASS | PASS | FAIL | — |
| Window interface: attribute onlostpointercapture | PASS | PASS | PASS | PASS | FAIL | — |
| Window interface: window must inherit property "onpointerover" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: window must inherit property "onpointerenter" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: window must inherit property "onpointerdown" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: window must inherit property "onpointermove" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: window must inherit property "onpointerrawupdate" with the proper type | PASS | PASS | FAIL | PASS | FAIL | — |
| Window interface: window must inherit property "onpointerup" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: window must inherit property "onpointercancel" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: window must inherit property "onpointerout" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: window must inherit property "onpointerleave" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: window must inherit property "ongotpointercapture" with the proper type | PASS | PASS | PASS | PASS | FAIL | — |
| Window interface: window must inherit property "onlostpointercapture" with the proper type | PASS | PASS | PASS | PASS | FAIL | — |
| Navigator interface: attribute maxTouchPoints | PASS | PASS | PASS | PASS | FAIL | — |
| Navigator interface: navigator must inherit property "maxTouchPoints" with the proper type | PASS | PASS | PASS | PASS | FAIL | — |
| Document interface: attribute onpointerover | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: attribute onpointerenter | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: attribute onpointerdown | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: attribute onpointermove | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: attribute onpointerrawupdate | PASS | PASS | FAIL | PASS | FAIL | — |
| Document interface: attribute onpointerup | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: attribute onpointercancel | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: attribute onpointerout | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: attribute onpointerleave | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: attribute ongotpointercapture | PASS | PASS | PASS | PASS | FAIL | — |
| Document interface: attribute onlostpointercapture | PASS | PASS | PASS | PASS | FAIL | — |
| Document interface: document must inherit property "onpointerover" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: document must inherit property "onpointerenter" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: document must inherit property "onpointerdown" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: document must inherit property "onpointermove" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: document must inherit property "onpointerrawupdate" with the proper type | PASS | PASS | FAIL | PASS | FAIL | — |
| Document interface: document must inherit property "onpointerup" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: document must inherit property "onpointercancel" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: document must inherit property "onpointerout" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: document must inherit property "onpointerleave" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: document must inherit property "ongotpointercapture" with the proper type | PASS | PASS | PASS | PASS | FAIL | — |
| Document interface: document must inherit property "onlostpointercapture" with the proper type | PASS | PASS | PASS | PASS | FAIL | — |
| Element interface: operation setPointerCapture(long) | PASS | PASS | PASS | PASS | PASS | — |
| Element interface: operation releasePointerCapture(long) | PASS | PASS | PASS | PASS | PASS | — |
| Element interface: operation hasPointerCapture(long) | PASS | PASS | PASS | PASS | PASS | — |
| Element interface: document.body must inherit property "setPointerCapture(long)" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Element interface: calling setPointerCapture(long) on document.body with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | PASS | — |
| Element interface: document.body must inherit property "releasePointerCapture(long)" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Element interface: calling releasePointerCapture(long) on document.body with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | PASS | — |
| Element interface: document.body must inherit property "hasPointerCapture(long)" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Element interface: calling hasPointerCapture(long) on document.body with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | PASS | — |