-
Notifications
You must be signed in to change notification settings - Fork 51
Description
Two things I want to address here:
- Compositionend does not give correct information for Korean on macOS
- When problem is not on browser but on IME. What to do about it?
There are two well-known implementation for Korean IME on macOS:
- 3rd party gureum IME (I will call it GIME for the ease of mentioning it)
- macOS native Korean IME
And as far as I know (I've been developing rich-text editor like others), how GIME handles uievents is more on par with current implementation. Maybe this is more of a macOS bug, but I am unsure of how to file a bug report for it.
I was looking for a way to distinguish between deleteion during composition update and input during composition update. And found out that it was difficult to do so because of how events are all differently handled on all three browsers. The most cumbersome thing was, compositionend event sending last character instead of empty string after deletion. Note that this does not happen with Chinese or Japanese.
But when I tried another IME, GIME (which is actually my daily driver), browser event order was more understandable(?). But given that most people will use macOS builtin IME this should be addressed.
A question that comes to my mind now is that even when browsers follow the specification and guideline, there could be other factors that alter the behavior critically. It is somewhat similar to this issue #395 I think.
How do we mandate the specification(and implementation thereof) that regardless of IME implementation, the browsers work consistently?
To reproduce:
On https://d-toybox.com/studio/lib/input_event_viewer.html, check on events to show
I typed ㅇ
then, simply deleted it with Backspace key.
The logs are from keydown
until keyup
for Backspace key.
macOS / Chrome 136.0.7103.114 / 2-Set Korean (IME)

macOS / Firefox 139.0b10 (aarch64) / 2-Set Korean (IME)

macOS / Safari Version 18.4 (20621.1.15.11.10) / 2-Set Korean (IME) : it fires replacementText input event

macOS / Chrome 136.0.7103.114 / GIME

macOS / Firefox 139.0b10 (aarch64) / GIME

macOS / Safari Version 18.4 (20621.1.15.11.10) / GIME
