- From: Tatsunori Uchino <notifications@github.com>
- Date: Sat, 05 Apr 2025 01:09:15 -0700
- To: w3c/uievents <uievents@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/uievents/issues/202/2780549829@github.com>
tats-u left a comment (w3c/uievents#202)
> How often are these events used?
If you consider to avoid the process when the input text is half-baked because of IME, you must use at least one of them.
And React's onChange is actually onInput.
An `onInput` where `isComposing = false` must be emitted to keep the implementation simple with keeping compatibility with IME.
https://codepen.io/tats-u/pen/VYZBEWM
```js
import {micromark} from "https://esm.sh/micromark";
document.addEventListener("DOMContentLoaded", () => {
const textArea = document.querySelector("textarea");
textArea.addEventListener("input", (event) => {
if (event.isComposing) {
return;
}
// Your relatively heavy process here:
document.querySelector("pre").innerText = micromark(textArea.value);
});
});
```
The current behavior of Chromium is terrible and unfriendly.
https://tats-u.github.io/kbdevents/
Chromium emits `onCompositionEnd` after `onInput`, and it seems to be the reason why the `isComposing` of `onInput` when the complete text is sent from IME is `true`.
I believe Firefox's order is ideal and natural and the specs must be revised.
--
Reply to this email directly or view it on GitHub:
https://github.com/w3c/uievents/issues/202#issuecomment-2780549829
You are receiving this because you are subscribed to this thread.
Message ID: <w3c/uievents/issues/202/2780549829@github.com>
Received on Saturday, 5 April 2025 08:09:19 UTC