Open garykac opened 6 years ago
Recording for posterity: in addition to the likely interop issues around e.g. event ordering here, having this kind of foundation allows us to precisely and interoperably specify things like the event timing proposal (or some variant of it). Without this in place, that proposal's desire to record the time for "the operation during which [an] event was dispatched" is not really possible to ground rigorously.
General comment: Whenever we "queue a task", we should specify the "task source".
Another issue here is the relative timing of mouse events and pointer events. Although pointer events are defined in a separate spec, any spec for "what happens when you move the mouse" should really include where pointer events fit in.
@domenic We're tracking that issue in https://github.com/w3c/uievents/issues/244.
I have TODOs in the draft doc for Mouse Moves to hook into Pointer Events, but the real issue is that we're waiting for the Pointer Events editors to decide how Pointer Events fire. I currently have the hooks before the corresponding Mouse event, but the real issue is whether or not the events should be interleaved (Pointer,Mouse,Pointer,Mouse) or as bursts (Pointer,Pointer,Mouse,Mouse).
I created a more formal document for these algorithms:
https://w3c.github.io/uievents/event-algo.html
Still very much a WIP draft. Comments (github issues) welcome.
This is a tracking bug for updating the UIEvents specification to make sure that all of the events have an appropriate procedural algorithm. The intent is that we should create specific issues for each topic, and keep discussions in these more directed issues.
Keyboard events: https://github.com/w3c/uievents/issues/142 Focus events: https://github.com/w3c/uievents/issues/195 Mouse (move) events: https://github.com/w3c/uievents/issues/196 Mouse (click) events: https://github.com/w3c/uievents/issues/197 ~Input events: https://github.com/w3c/uievents/issues/198~ (merged with Keyboard events) ~Composition events: https://github.com/w3c/uievents/issues/199~ (merged with Keyboard events)
There will be some overlap as these algorithms interact with each other, but this seems like a reasonable starting point. Please feel free to add more issues as needed.
General design note: Ideally, these algorithms should make it possible to add appropriate hooks so that other specifications can make localized changes to these algorithms.