W3C home > Mailing lists > Public > public-webapi@w3.org > May 2008

Re: specification of "legacy" key events

From: Hallvord R. M. Steen <hallvord@opera.com>
Date: Wed, 07 May 2008 23:03:20 +0200
To: olli@pettay.fi
Cc: public-webapi@w3.org
Message-ID: <op.uasx3ujga3v5gv@hr-opera.oslo.opera.com>

On Wed, 07 May 2008 17:13:12 +0200, Olli Pettay <Olli.Pettay@helsinki.fi>  
wrote:

>> There are two types of key events:
>> * Hardware reference events.

>> * Text insertion events. The keypress and textInput events include
>> complete information about the character the input is generating, if
>> any, taking into account shift states, previous dead keys and other
>> contextual information required to decide what character will be
>> inserted by a key press.

> But does insertion mean anything visible. Or is it more like
> "pass a command to the application".

The keypress event fires even if no text is inserted, for example if a web  
page has focus but focus is not in any input field or textarea pressing  
'A' will still fire a keypress event.
Regarding textInput I guess that's up to us to specify. By the name I  
would say it sounds like it should fire only when text is actually  
inserted in some editable element.

> So if focus is for example
> on <input> and the character is visible, let's say an 'A', the text is
> added to the <input>. But if 'ESC' is pressed, keypress is dispatched
> but nothing gets updated. Or if 'ESC' is special, what about 'Backspace'?

ESC is special, I don't know why but it does fire keypress events in all  
legacy UAs I tested. Backspace does too, which in a way makes sense  
because it does cause changes to text being edited.

>> The textInput event also shows what
>> character(s) were generated by an active input method editor.

> textInput should be dispatched also when IME isn't active, right?

Up to us to specify but I'd say yes.

>> The
>> keypress event MUST NOT fire when an IME is processing the input for
>> conversion.

> Why not? IME could emulate normal keydown/keypress/keyup.

For legacy content compatibility. IMEs that process key input do not  
currently cause keypress events to fire, and I believe changing this would  
break legacy content for IME users. (I'm fairly sure this point has been  
raised by implementors and I could try to find the relevant E-mails if you  
need them.)

-- 
Hallvord R. M. Steen
Core QA JavaScript tester, Opera Software
http://www.opera.com/
Opera - simply the best Internet experience
Received on Wednesday, 7 May 2008 21:07:55 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 7 May 2008 21:07:56 GMT