Bug 240917

Summary: pointercancel is not dispatched when touch-action: manipulation
Product: WebKit Reporter: Liam DeBeasi <ldebeasi>
Component: UI EventsAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: darryl.noakes, graouts, thorton, webkit-bug-importer, wenson_hsieh
Priority: P2 Keywords: InRadar
Version: Safari 15   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Code reproduction none

Description Liam DeBeasi 2022-05-25 11:05:51 PDT
Created attachment 459763 [details]
Code reproduction

When scrolling on a container that has touch-action: manipulation the pointercancel event is not dispatched. However, when touch-action: pan-x pan-y pinch-zoom is set the pointercancel event is dispatched.

Steps to reproduce:

1. Open attached code reproduction on Safari for iOS.
2. Open Developer Tools and inspect the page running in Safari.
3. Scroll on the scroll area with the header "touch-action: manipulation". Observe that the pointercancel event is not dispatched.
4. Scroll on the scroll area with the header "touch-action: pan-x pan-y pinch-zoom". Observe that the pointercancel event is dispatched.

Expected Behavior:

Since "manipulation" is an alias for "pan-x pan-y pinch-zoom" according to https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action#values, I would expect the pointercancel event to be dispatched when touch-action is "manipulation".

Actual Behavior:

pointercancel is not dispatched when touch-action: manipulation.


Other Info:

- This issue does not reproduce in Chrome for Android.
- I can reproduce this all the way back to iOS 13.0, so this behavior does not appear to have regressed.
Comment 1 Radar WebKit Bug Importer 2022-06-01 11:06:18 PDT
<rdar://problem/94234307>