Skip to content

Note Safari IME key event ordering bug affecting isComposing#30009

Open
caugner wants to merge 1 commit into
mainfrom
29998-safari-iscomposing-key-event-order-notes
Open

Note Safari IME key event ordering bug affecting isComposing#30009
caugner wants to merge 1 commit into
mainfrom
29998-safari-iscomposing-key-event-order-notes

Conversation

@caugner

@caugner caugner commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Add Safari notes documenting a known IME composition bug: the keydown and input events for the key that completes an IME composition session are dispatched after the compositionend event, so their isComposing value is incorrectly false instead of true. Notes are added to:

  • api.KeyboardEvent.isComposing
  • api.InputEvent.isComposing

Support values are left unchanged, since the bug does not warrant marking these features as partial or unsupported. The notes are scoped to the isComposing properties only, since that is the observable symptom; the keydown and input events themselves are correctly supported.

Test results and supporting details

The bug is still reproducible in Safari 26.3 on macOS. A fix (bug 311717) is implemented behind the InputMethodUsesCorrectKeyEventOrder preference, which is still marked as unstable.

Related issues

Fixes #29998

@github-actions github-actions Bot added data:api Compat data for Web APIs. https://developer.mozilla.org/docs/Web/API size:s [PR only] 7-24 LoC changed labels Jul 8, 2026
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Tip: Review these changes grouped by change (recommended for most PRs), or grouped by feature (for large PRs).

@caugner caugner force-pushed the 29998-safari-iscomposing-key-event-order-notes branch from d2b27e2 to 4a44a1d Compare July 8, 2026 13:16
Safari dispatches the keydown and input events for the key that
completes an IME composition session after the compositionend event
(WebKit bug 165004), so isComposing is incorrectly false instead of
true on those events. Document this on KeyboardEvent.isComposing and
InputEvent.isComposing without changing support values, since the bug
does not warrant marking these features partial or unsupported.
@caugner caugner force-pushed the 29998-safari-iscomposing-key-event-order-notes branch from 4a44a1d to cc4b5ad Compare July 8, 2026 13:22
Comment thread api/InputEvent.json
Comment on lines +272 to +273
"version_added": "16.4",
"notes": "In Safari, the `keydown` and `input` events for the key that completes an IME composition session are dispatched after the `compositionend` event, so their `isComposing` value is incorrectly `false` instead of `true`. Events fired earlier in the session are unaffected. See [bug 165004](https://webkit.org/b/165004)."

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this justify partial implementation? (Baseline regression)

/cc @ddbeck @Elchi3

Suggested change
"version_added": "16.4",
"notes": "In Safari, the `keydown` and `input` events for the key that completes an IME composition session are dispatched after the `compositionend` event, so their `isComposing` value is incorrectly `false` instead of `true`. Events fired earlier in the session are unaffected. See [bug 165004](https://webkit.org/b/165004)."
"version_added": "16.4",
"partial_implementation": true,
"notes": "In Safari, the `keydown` and `input` events for the key that completes an IME composition session are dispatched after the `compositionend` event, so their `isComposing` value is incorrectly `false` instead of `true`. Events fired earlier in the session are unaffected. See [bug 165004](https://webkit.org/b/165004)."

@caugner caugner marked this pull request as ready for review July 8, 2026 13:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

data:api Compat data for Web APIs. https://developer.mozilla.org/docs/Web/API size:s [PR only] 7-24 LoC changed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

api.KeyboardEvent.isComposing - Safari has buggy support

1 participant