[w3c/uievents] Need algorithm for how events are fired for key presses (#142)

Since it's more complicated than simply:

* keydown
* beforeinput
* keypress (deprecated)
* input
* keyup

For example, see https://github.com/whatwg/html/issues/2605 which talks about inconsistencies in how UAs treat key presses in <datalist> controllers.

Also cover how key events are handled during composition.

Starting proposal (needs to be verified):

global_state: inComposition = False

* if target is a <datalist> controller, then
   * return
* send keydown event
* if keydown is not cancelled, then
   * if key triggers composition, then
      * set inComposition = True
      * send compositionstart event
      * if compositionstart event is cancelled, then
         * ...
      * send compositionupdate event
   * else if inComposition and key triggers exiting composition, then
      * send compositionend event
      * set inComposition = False
   * else
      * send beforeinput
      * if beforeinput event is not cancelled, then:
         * if inComposition, then
            * send compositionupdate event
         * Update the DOM
         * send input event
* send keyup


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/uievents/issues/142

Received on Tuesday, 16 May 2017 18:57:14 UTC