WPT
wpt / pointerevents / pointerevent_attributes.html?pen
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 | 88/102 | 0/102 | 102/102 | 0/102 | 14/102 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| Main-frame attribute test. | PASS | FAIL | PASS | FAIL | PASS | — |
| Inner-frame attribute test. | PASS | FAIL | PASS | FAIL | FAIL | — |
| Main-frame pen pointerover event is a PointerEvent event | PASS | — | — | — | — | — |
| Main-frame pen pointerover.isTrusted value is true | PASS | — | — | — | — | — |
| Main-frame pen pointerover.composed value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointerover.bubbles value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointerover.cancelable value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointerover.pressure value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointerenter event is a PointerEvent event | PASS | — | — | — | — | — |
| Main-frame pen pointerenter.isTrusted value is true | PASS | — | — | — | — | — |
| Main-frame pen pointerenter.composed value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointerenter.bubbles value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointerenter.cancelable value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointerenter.pressure value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointermove event is a PointerEvent event | PASS | — | — | — | — | — |
| Main-frame pen pointermove.isTrusted value is true | PASS | — | — | — | — | — |
| Main-frame pen pointermove.composed value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointermove.bubbles value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointermove.cancelable value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointermove.pressure value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointerdown event is a PointerEvent event | PASS | — | — | — | PASS | — |
| Main-frame pen pointerdown.isTrusted value is true | PASS | — | — | — | PASS | — |
| Main-frame pen pointerdown.composed value is valid | PASS | — | — | — | PASS | — |
| Main-frame pen pointerdown.bubbles value is valid | PASS | — | — | — | PASS | — |
| Main-frame pen pointerdown.cancelable value is valid | PASS | — | — | — | PASS | — |
| Main-frame pen pointerdown.pressure value is valid | PASS | — | — | — | PASS | — |
| Main-frame pen pointerup event is a PointerEvent event | PASS | — | — | — | PASS | — |
| Main-frame pen pointerup.isTrusted value is true | PASS | — | — | — | PASS | — |
| Main-frame pen pointerup.composed value is valid | PASS | — | — | — | PASS | — |
| Main-frame pen pointerup.bubbles value is valid | PASS | — | — | — | PASS | — |
| Main-frame pen pointerup.cancelable value is valid | PASS | — | — | — | PASS | — |
| Main-frame pen pointerup.pressure value is valid | PASS | — | — | — | PASS | — |
| Main-frame pen pointerup properties for pointerup | PASS | — | — | — | PASS | — |
| Main-frame pen pointerout event is a PointerEvent event | PASS | — | — | — | — | — |
| Main-frame pen pointerout.isTrusted value is true | PASS | — | — | — | — | — |
| Main-frame pen pointerout.composed value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointerout.bubbles value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointerout.cancelable value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointerout.pressure value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointerleave event is a PointerEvent event | PASS | — | — | — | — | — |
| Main-frame pen pointerleave.isTrusted value is true | PASS | — | — | — | — | — |
| Main-frame pen pointerleave.composed value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointerleave.bubbles value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointerleave.cancelable value is valid | PASS | — | — | — | — | — |
| Main-frame pen pointerleave.pressure value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerover event is a PointerEvent event | PASS | — | — | — | — | — |
| Inner-frame pen pointerover.isTrusted value is true | PASS | — | — | — | — | — |
| Inner-frame pen pointerover.composed value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerover.bubbles value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerover.cancelable value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerover.pressure value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerenter event is a PointerEvent event | PASS | — | — | — | — | — |
| Inner-frame pen pointerenter.isTrusted value is true | PASS | — | — | — | — | — |
| Inner-frame pen pointerenter.composed value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerenter.bubbles value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerenter.cancelable value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerenter.pressure value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointermove event is a PointerEvent event | PASS | — | — | — | — | — |
| Inner-frame pen pointermove.isTrusted value is true | PASS | — | — | — | — | — |
| Inner-frame pen pointermove.composed value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointermove.bubbles value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointermove.cancelable value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointermove.pressure value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerdown event is a PointerEvent event | PASS | — | — | — | — | — |
| Inner-frame pen pointerdown.isTrusted value is true | PASS | — | — | — | — | — |
| Inner-frame pen pointerdown.composed value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerdown.bubbles value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerdown.cancelable value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerdown.pressure value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerup event is a PointerEvent event | PASS | — | — | — | — | — |
| Inner-frame pen pointerup.isTrusted value is true | PASS | — | — | — | — | — |
| Inner-frame pen pointerup.composed value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerup.bubbles value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerup.cancelable value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerup.pressure value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerup properties for pointerup | PASS | — | — | — | — | — |
| Inner-frame pen pointerout event is a PointerEvent event | PASS | — | — | — | — | — |
| Inner-frame pen pointerout.isTrusted value is true | PASS | — | — | — | — | — |
| Inner-frame pen pointerout.composed value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerout.bubbles value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerout.cancelable value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerout.pressure value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerleave event is a PointerEvent event | PASS | — | — | — | — | — |
| Inner-frame pen pointerleave.isTrusted value is true | PASS | — | — | — | — | — |
| Inner-frame pen pointerleave.composed value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerleave.bubbles value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerleave.cancelable value is valid | PASS | — | — | — | — | — |
| Inner-frame pen pointerleave.pressure value is valid | PASS | — | — | — | — | — |
| Main-frame mouse pointerover event is a PointerEvent event | — | — | PASS | — | — | — |
| Main-frame mouse pointerover.isTrusted value is true | — | — | PASS | — | — | — |
| Main-frame mouse pointerover.composed value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerover.bubbles value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerover.cancelable value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerover.pressure value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerover properties for pointerType = mouse | — | — | PASS | — | — | — |
| Main-frame mouse pointerenter event is a PointerEvent event | — | — | PASS | — | — | — |
| Main-frame mouse pointerenter.isTrusted value is true | — | — | PASS | — | — | — |
| Main-frame mouse pointerenter.composed value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerenter.bubbles value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerenter.cancelable value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerenter.pressure value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerenter properties for pointerType = mouse | — | — | PASS | — | — | — |
| Main-frame mouse pointermove event is a PointerEvent event | — | — | PASS | — | — | — |
| Main-frame mouse pointermove.isTrusted value is true | — | — | PASS | — | — | — |
| Main-frame mouse pointermove.composed value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointermove.bubbles value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointermove.cancelable value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointermove.pressure value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointermove properties for pointerType = mouse | — | — | PASS | — | — | — |
| Main-frame mouse pointerdown event is a PointerEvent event | — | — | PASS | — | — | — |
| Main-frame mouse pointerdown.isTrusted value is true | — | — | PASS | — | — | — |
| Main-frame mouse pointerdown.composed value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerdown.bubbles value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerdown.cancelable value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerdown.pressure value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerdown properties for pointerType = mouse | — | — | PASS | — | — | — |
| Main-frame mouse pointerup event is a PointerEvent event | — | — | PASS | — | — | — |
| Main-frame mouse pointerup.isTrusted value is true | — | — | PASS | — | — | — |
| Main-frame mouse pointerup.composed value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerup.bubbles value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerup.cancelable value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerup.pressure value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerup properties for pointerType = mouse | — | — | PASS | — | — | — |
| Main-frame mouse pointerup properties for pointerup | — | — | PASS | — | — | — |
| Main-frame mouse pointerout event is a PointerEvent event | — | — | PASS | — | — | — |
| Main-frame mouse pointerout.isTrusted value is true | — | — | PASS | — | — | — |
| Main-frame mouse pointerout.composed value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerout.bubbles value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerout.cancelable value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerout.pressure value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerout properties for pointerType = mouse | — | — | PASS | — | — | — |
| Main-frame mouse pointerleave event is a PointerEvent event | — | — | PASS | — | — | — |
| Main-frame mouse pointerleave.isTrusted value is true | — | — | PASS | — | — | — |
| Main-frame mouse pointerleave.composed value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerleave.bubbles value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerleave.cancelable value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerleave.pressure value is valid | — | — | PASS | — | — | — |
| Main-frame mouse pointerleave properties for pointerType = mouse | — | — | PASS | — | — | — |
| Inner-frame mouse pointerover event is a PointerEvent event | — | — | PASS | — | — | — |
| Inner-frame mouse pointerover.isTrusted value is true | — | — | PASS | — | — | — |
| Inner-frame mouse pointerover.composed value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerover.bubbles value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerover.cancelable value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerover.pressure value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerover properties for pointerType = mouse | — | — | PASS | — | — | — |
| Inner-frame mouse pointerenter event is a PointerEvent event | — | — | PASS | — | — | — |
| Inner-frame mouse pointerenter.isTrusted value is true | — | — | PASS | — | — | — |
| Inner-frame mouse pointerenter.composed value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerenter.bubbles value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerenter.cancelable value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerenter.pressure value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerenter properties for pointerType = mouse | — | — | PASS | — | — | — |
| Inner-frame mouse pointermove event is a PointerEvent event | — | — | PASS | — | — | — |
| Inner-frame mouse pointermove.isTrusted value is true | — | — | PASS | — | — | — |
| Inner-frame mouse pointermove.composed value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointermove.bubbles value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointermove.cancelable value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointermove.pressure value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointermove properties for pointerType = mouse | — | — | PASS | — | — | — |
| Inner-frame mouse pointerdown event is a PointerEvent event | — | — | PASS | — | — | — |
| Inner-frame mouse pointerdown.isTrusted value is true | — | — | PASS | — | — | — |
| Inner-frame mouse pointerdown.composed value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerdown.bubbles value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerdown.cancelable value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerdown.pressure value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerdown properties for pointerType = mouse | — | — | PASS | — | — | — |
| Inner-frame mouse pointerup event is a PointerEvent event | — | — | PASS | — | — | — |
| Inner-frame mouse pointerup.isTrusted value is true | — | — | PASS | — | — | — |
| Inner-frame mouse pointerup.composed value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerup.bubbles value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerup.cancelable value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerup.pressure value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerup properties for pointerType = mouse | — | — | PASS | — | — | — |
| Inner-frame mouse pointerup properties for pointerup | — | — | PASS | — | — | — |
| Inner-frame mouse pointerout event is a PointerEvent event | — | — | PASS | — | — | — |
| Inner-frame mouse pointerout.isTrusted value is true | — | — | PASS | — | — | — |
| Inner-frame mouse pointerout.composed value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerout.bubbles value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerout.cancelable value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerout.pressure value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerout properties for pointerType = mouse | — | — | PASS | — | — | — |
| Inner-frame mouse pointerleave event is a PointerEvent event | — | — | PASS | — | — | — |
| Inner-frame mouse pointerleave.isTrusted value is true | — | — | PASS | — | — | — |
| Inner-frame mouse pointerleave.composed value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerleave.bubbles value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerleave.cancelable value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerleave.pressure value is valid | — | — | PASS | — | — | — |
| Inner-frame mouse pointerleave properties for pointerType = mouse | — | — | PASS | — | — | — |