pointerout and pointerleave after pointercancel

This question stems from Sangwhan's review [1] of a test case that I submitted [2], which was a clone of another test from Microsoft [3].

The tip of the PE spec says the following about pointercancel.
[[
After firing the pointercancel event, a user agent MUST also fire a pointer event named pointerout followed by firing a pointer event named pointerleave.
]]

In comparison, it says the following about pointerup.
[[
For input devices that do not support hover, a user agent MUST also fire a pointer event named pointerout followed by a pointer event named pointerleave after dispatching the pointerup event.
]]

The question here is whether the statement on pointercancel truly does apply to all pointer types (i.e. including those that support hover) and what the rationale is. (Or was that just an unfortunate bug in the spec?)

A follow-on question: why is the test case that checks that the pointerout event follows the pointercancel event [3] written to be specific to touch input? What about mouse and pen input?

- Cathy.


[1] https://critic.hoppipolla.co.uk/showcomment?chain=7058
[2] https://github.com/cathychan/web-platform-tests/blob/patch-3/pointerevents/pointerevent_pointerleave_after_pointercancel_touch.html
[3] https://github.com/w3c/web-platform-tests/blob/master/pointerevents/pointerevent_pointerout_after_pointercancel_touch.html

Received on Monday, 4 August 2014 21:30:36 UTC