TouchEvents: cancelling second touchmove

The spec says touchmove event is cancellable, but implementations have a  
quirk the spec doesn't mention: only the first touchmove event can be  
cancelled:

https://bugzilla.mozilla.org/show_bug.cgi?id=653009

 From a developer point of view this is a terrible misfeature I'd rather  
see removed. One touchmove event is not enough to reliably detect velocity  
and direction of finger movement, so it's very problematic when I want to  
allow vertical page scrolling and prevent scrolling on horizontal swipe  
gesture.

"touch-action" CSS property suffers from the same limitation.

If it has to stay for web compatibility, then I'd rather see it documented  
to warn developers against it (that behavior looks like a bug/race  
condition in the code when sometimes scrolling works and sometimes  
doesn't).

I've also noticed that TouchEvent.cancellable property is always true,  
even in later touchmove events that effectively cannot be cancelled.  
Should event.cancellable property vary per event to reflect that?

-- 
regards, Kornel

Received on Tuesday, 28 January 2014 22:17:51 UTC