w3c / uievents

UI Events
https://w3c.github.io/uievents/
Other
144 stars 51 forks source link

Need procedural algorithms for all events #200

Open garykac opened 6 years ago

garykac commented 6 years ago

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.

domenic commented 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.

garykac commented 6 years ago

General comment: Whenever we "queue a task", we should specify the "task source".

domenic commented 3 years ago

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.

garykac commented 3 years ago

@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).

garykac commented 3 years ago

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.