v144 ยท user input

Interoperable Pointer and Mouse boundary events after DOM changes

After an event target gets removed from the DOM, the logical target of the pointer as implied by the Pointer and Mouse boundary events (i.e. over, out, enter and leave events) should be the nearest ancestor still attached to the DOM. PEWG has recently reached consensus on this behavior, see https://github.com/web-platform-tests/interop/issues/380. Chro

concepts

  1. Boundary Event Trace

    Chrome now matches Safari and Firefox on pointer/mouse boundary events after DOM mutations under the cursor. Removes a long-standing cross-browser difference.

  2. DOM Update Replay

    Swap an element under a stationary pointer and watch the engine fire pointerleave / pointerenter so :hover state on the new node updates without input.

  3. Swap vs Remove

    Two scenes side by side — replacing the hovered element vs removing it — with a live event trace. Confirms the still-attached-ancestor target rule that Pointer Events WG agreed on.

  4. Hover Menu

    A navigation dropdown that is actually inserted and removed from the DOM on hover โ€” not just shown/hidden. A live event log captures every pointerenter, pointerleave, pointerover, and pointerout event so you can see Chrome 144's correct ancestor-target dispatch in action.

why it shipped

After an event target gets removed from the DOM, the logical target of the pointer as implied by the Pointer and Mouse boundary events (i.e. over, out, enter and leave events) should be the nearest ancestor still attached to the DOM. PEWG has recently reached consensus on this behavior, see https://github.com/web-platform-tests/interop/issues/380. Chro

references