NEW 203335
Horizontal gestures easily cancellable inside "touch-action: pan-y" element (preventDefault() doesn't help)
https://bugs.webkit.org/show_bug.cgi?id=203335
Summary Horizontal gestures easily cancellable inside "touch-action: pan-y" element (...
Marcel Dopita
Reported 2019-10-23 14:44:56 PDT
Created attachment 381731 [details] test case I'm unable to reliably combine vertical scrolling (allowed via "touch-action: pan-y") with handling of custom horizontal gestures (pointer events). In Safari (on iOS 13.2 developer beta 4), some slow horizontal gestures are too easily cancellable by going up or down. Other browsers (Latest preview of Firefox or Chrome on other platforms) lock really fast to one axis and do not cancel gesture in progress when user moves in the direction of other axis. Please see attached test file. The steps are: 1. Tap the yellow box and continue horizontal gesture to the right. 2. At some point, change the gesture direction and go up or down. On iPhone X, even when moving the box 20-50 pixels horizontally, gesture can still be canceled by going vertically (not always, but depending on gesture distance/velocity). When moving really slow, I can even go beyond 50 pixels. As attempted in the example, calling preventDefault() from pointermove callbacks also doesn't stop scrolling in the y axis.
Attachments
test case (1.43 KB, text/html)
2019-10-23 14:44 PDT, Marcel Dopita
no flags
demo video (919.74 KB, video/mp4)
2019-10-23 14:45 PDT, Marcel Dopita
no flags
Marcel Dopita
Comment 1 2019-10-23 14:45:39 PDT
Created attachment 381732 [details] demo video
Radar WebKit Bug Importer
Comment 2 2019-10-24 15:24:30 PDT
Marcel Dopita
Comment 3 2019-10-27 00:27:49 PDT
I tried replacing touch-action and pointer events with touch events only and was able to handle everything, including the described issue (prevent undesired vertical scroll using preventDefault()).
Note You need to log in before you can comment on or make changes to this bug.