[Bug 22070] Add input/beforeinput events to D3E [was "Revive textInput"]

https://www.w3.org/Bugs/Public/show_bug.cgi?id=22070

Masayuki Nakano <masayuki@d-toybox.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |masayuki@d-toybox.com

--- Comment #9 from Masayuki Nakano <masayuki@d-toybox.com> ---
First, I believe that beforeinput should be fired only before/after keypress
events and before compositionend event. I.e., I don't think it should be fired
before composition update event.

1. There must be a requirement that web developers want to treat only
committing text (i.e., except composing text).
2. beforeinput immediately before/after compositionupdate cannot cancel the
latest input in IME on any platforms AFAIK.
3. If beforeinput has "data" attribute similar to CompositionEvent, then, one
event handle can handle both beforeinput and compositionupdate events.
Although, I think that in such case, they should use input event.

When you add beforeinput to the spec, please define the event order of
beforeinput especially with keypress, compositionend event.

Additionally, if beforeinput is fired immediately before keypress and
beforeinput's default is prevented, then, browsers may stop dispatching
following keypress event(s) for reducing the cost. But I think compositionend
event shouldn't be so even beforeinput's default is prevented because
compositioend event should be fired for compositionstart. It also indicates the
term of composition.

I recommend that beforeinput should be fired immediately before first keypress
event for a set of key events. Gecko implements shortcut key handling with
keypress event. Therefore, firing keypress event after beforeinput is very good
thing for Gecko because text input in editor should win any shortcut key
handler.

And also I recommend that beforeinput should be fired immediately before
compositionend event. Even beforeinput's default is prevented, compositionend's
data value should NOT be empty string. I.e., it should have original committed
string. E.g., web application may want to cancel the input to the focused
editor, but they want to handle actual committed string in compositionend
handler.

Finally, if it's possible, any web browsers shouldn't allow to input text with
untrusted beforeinput events because of security risk.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Friday, 17 May 2013 23:44:01 UTC