W3C home > Mailing lists > Public > www-dom@w3.org > April to June 2010

Re: Proposal to ammend the composition event spec.

From: Ojan Vafai <ojan@chromium.org>
Date: Wed, 16 Jun 2010 18:47:46 -0700
Message-ID: <AANLkTililg5Ie0olQhDFOB3SMWDXu-OH-2Y0vsNddiQo@mail.gmail.com>
To: James Su <suzhe@google.com>
Cc: Hironori Bono (坊野 博典) <hbono@google.com>, Daniel Danilatos <daniel@danilatos.com>, www-dom@w3.org
I didn't mean to derail the original proposal. As best I can tell, everyone
who has voiced an opinion agrees that compositionstart/compositionend should
bound all IME related DOM modifications and that textInput should fire
before the compositionEnd event.

Whether it also fires before compositionStart is totally orthogonal. We
should try to address that after we've come to a conclusion on the other
thread about extending textInput to other input modes.


On Wed, Jun 16, 2010 at 6:08 PM, James Su <suzhe@google.com> wrote:

> To prevent all text input, I think the preferred way is to just cancel
> keydown event. In this case we don't need to care about textInput and
> composition events at all. It's also compatible with non-IME input mode. So
> I think textInput and composition events should not be fired at all if
> keydown is cancelled.
> Regards
> James Su
> 2010/6/16 Ojan Vafai <ojan@chromium.org>
> On Wed, Jun 16, 2010 at 2:38 PM, Ojan Vafai <ojan@chromium.org> wrote:
>>> to type "wo" -> 我
>>> user "w"  <-- Canceling keydown should prevent the composition from
>>> starting and the DOM should not be modified.
>> Upon further thought, I think we should also fire a textInput event here
>> (not sure if it should fire before or after compositionstart). "data" can
>> just be the empty string. It should be possible to only listen to textInput
>> and preventDefault to prevent all text insertion. You shouldn't need to
>> listen to both textInput and keydown/compositionstart.
>>> event compositionstart
>>> ("w")
>>> user "o"  <-- Not related to textInput since this keydown doesn't
>>> generate a textInput event. One cross-platform solution would be to cancel
>>> the composition.
>>> ("wo")
>>> user <space>  <-- Same as above.
>>> ("我")
>>> user <space> (to commit the composition) <-- Should cancel the textInput
>>> and thus cancel the composition.
>>> ("")
>>> event textInput (cancelable)
>>> ("我")
>>> event compositionend
>>> -Ojan
Received on Thursday, 17 June 2010 01:48:35 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 20 October 2015 10:46:16 UTC