Key Events: A Never Ending Story

Some time ago I’ve blogged about the “fun” of implementing a consistent cross-browser key event layer for qooxdoo. Today I found another nice item for my collection of key event bugs. Erich Konicek from the qooxdoo community reported a bug, where special keypress events did not fire. If the user presses any of the up, down, page up or page down keys inside of a text field, qooxdoo will not receive a kepress event in Firefox. Related keys like the left or right arrow keys do work as expected.

Firefox will create a keypress event for these keys but for some unknown reason the event does not bubble up the document tree. This is a problem for qooxdoo because we use a single keypress listener per application, which is attached to the document element. If some press events do not bubble, we are not able to handle them.

I have a very simple test case, which shows the problem. If you press the “up” key, “keypress” is fired on the text field but not on the body. I’ve filed it as a bug in the Firefox Bugzilla. I’m hoping this gets fixed soon, even though one other Firefox bug I’m following is UNVERIFIED for almost 4 months now.

5 thoughts on “Key Events: A Never Ending Story

  1. Occasionally tried the test case on Google Chrome 0.4.154.29. It doesn’t fire keypress event at all! The story truly never ends.

  2. Sorry for my poor english. In korean language, Firefox key event is the huge problem with MS IME. In korean language, One character has vowel and consonant. at least one character needs two or three times keypress. Moreover, it doesn’t fire at all any korean characters until reached at latin character.

    It is the same as Opera. but safari and chrome works well. I can’t use autocomplete in wikipedia… with firefox.. but many of sites like google… fix this with javascript tricks.

    here is source
    https://bug354358.bugzilla.mozilla.org/attachment.cgi?id=240567

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>