[pointerevents] Can one active pointer cancel other pointers of different types?

mustaqahmed has just created a new issue for https://github.com/w3c/pointerevents:

== Can one active pointer cancel other pointers of different types? ==
The spec should be clear if a touch-action initiated by one pointer cancels all other pointers or not.

The model Chrome (and perhaps Edge also) supports today is that any scroll/zoom caused by _some_ active pointers triggers firing of `pointercancel` for _all_ active pointers.  This works great for multiple touch pointers because all our fingers on the touchscreen effectively define a single gesture.  But if we combine multiple pointer types, the "single gesture" idea is neither obvious nor intuitive.

Consider the case of dragging a finger on one `<div>` and while doing it, tapping on another `<div>` with a pen.  It would be wrong to say it's a pinch gesture, right?  Assume these two `<div>`s are siblings in the DOM to make this assumption more realistic.

Now consider another scenario: dragging a finger on a `touch-action: none` region and at the same time dragging a pen on a `touch-action: auto` region.  Again assume the regions are siblings in DOM, to keep effective touch-action computation off from our discussion.  Should one pointer's browser action cancel the other pointer?

I still think canceling _all_ pointers when a browser action starts is the simplest thing to do regardless of our expectations in the above scenario.  Anyone has a different opinion?

Please view or discuss this issue at https://github.com/w3c/pointerevents/issues/226 using your GitHub account

Received on Monday, 30 October 2017 15:46:19 UTC