Re: [w3c/uievents] Clarify `keypress` event handling for keys that map to non-BMP Unicode symbols (Issue #346)

> Note that if you enter e.g. an emote using the Windows On-Screen Keyboard then that will be expressed as two distinct keydown/keypress/keyup sequences, with the keypress part of each describing one of the two UTF-16 surrogates.

This is not the case in Web engines originating from the platform vendor. Here are screenshots from IE and EdgeHTML-based Edge running on Windows 10 2004 showing the page https://hsivonen.com/test/moz/input.html (note that the event log shows the most recent event first) with the following actions taken with focus in the input field:

* Pressing the key QWERTY-labeled-a key with the keyboard layout set to English
* Pressing the key QWERTY-labeled-a key with the keyboard layout set to Greek
* Pressing the key QWERTY-labeled-a key with the keyboard layout set to Fulfulde (ADLaM)
* Clicking the emoji 😊 on the on-screen touch keyboard

IE:
https://hsivonen.fi/screen/ie-ascii.png
https://hsivonen.fi/screen/ie-greek.png
https://hsivonen.fi/screen/ie-adlam.png
https://hsivonen.fi/screen/ie-emoji.png

EdgeHTML-based Edge:
https://hsivonen.fi/screen/edgehtml-ascii.png
https://hsivonen.fi/screen/edgehtml-greek.png
https://hsivonen.fi/screen/edgehtml-adlam.png
https://hsivonen.fi/screen/edgehtml-emoji.png

Notably: In all cases:

* There is a single sequence of keyboard events per single Unicode Scalar Value (These screenshots don't show multi-scalar-value emoji, which I've tested earlier; those behave as if a key was pressed for each Unicode Scalar Value component)
* The string property shows the whole Unicode Scalar Value as valid UTF-16 string, which is a surrogate _pair_ for non-BMP characters.
* The `charCode` integer is bogus for non-BMP characters.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/w3c/uievents/issues/346#issuecomment-1612448355
You are receiving this because you are subscribed to this thread.

Message ID: <w3c/uievents/issues/346/1612448355@github.com>

Received on Thursday, 29 June 2023 05:26:15 UTC