Hello.
Currently, Firefox doesn't fire any key events (keydown, keyup and
keypress) during IME composition. There are some reasons:
1. Most firefox code handles key events without IME composition state
check. (This is our internal reason, though) Therefore, if we would fire
key events during composition, we would need to fix very many code.
2. Web application developers cannot check IME composition state
directly. If they needed to check it, they needed to listen
compositionstart and compositionend events and make a bool variable.
Therefore, if web developers handled key events without IME state check,
IME users couldn't use some web applications.
3. Some web developers may not know well about IME behavior. Their web
applications might break IME behavior by handling key events.
I'd like to *suggest* that key events shouldn't be fired during IME
composition, especially for #3. If web developers want to know the
timing of updating composition string, they can use compositionupdate or
textinput. I think that these events are better for the purpose since
IME composition string can be updated by clicking on candidate window,
i.e., it doesn't cause key events.
thanks,
On 2010/10/06 15:16, Web Applications Working Group Issue Tracker wrote:
ISSUE-137 (IME-keypress): Should keypress events fire when using an IME? [DOM3
Events]
http://www.w3.org/2008/webapps/track/issues/137
Raised by: Doug Schepers
On product: DOM3 Events
Hallvord R. M.
Steen<http://lists.w3.org/Archives/Public/www-dom/2010JulSep/0176.html>:
[[
current spec text says about the keypress event:
This event type shall be generated after the keyboard mapping
but before the processing of an input method editor, normally
associated with the dispatching of a compositionstart, compositionupdate,
or compositionend event.
I think this is wrong, if an IME is actively processing the input no
keypress event should fire.
]]
--
Masayuki Nakano <[email protected]>
Manager, Internationalization, Mozilla Japan.