[BUG] Zhuyin (Bopomofo) IME: composition candidates scrambled and ESC confirms wrong candidate instead of canceling (desktop app chat input)
Description
When typing Traditional Chinese using the macOS built-in 注音 (Zhuyin/Bopomofo) input method inside the Claude desktop app's message input box, IME composition behaves incorrectly in two related ways. This does not happen in other native macOS apps using the same input method, so it appears to be caused by how the chat input field handles composition/key events.
- While composing several Zhuyin symbols before confirming, the candidate/association list shown is scrambled — the candidates in the popup are unrelated to what was actually typed, and the character(s) I actually want appear only as isolated single-character entries elsewhere in the list, instead of as the correctly ranked multi-character match.
- When the desired word is not in the currently highlighted position and I press ESC to cancel composition (normal macOS IME behavior — ESC should discard the in-progress candidate selection), the app appears to intercept ESC before the OS IME does. Instead of canceling, it immediately commits whichever candidate happened to be highlighted at that moment.
This looks related to the general composition-routing problem described in #50611 (composed text being routed through a key-action dispatcher instead of being treated as literal input) and the broader tracking issue #22853, but I'm filing the Zhuyin-specific symptom (ESC force-confirming instead of canceling, plus scrambled candidates) since it doesn't seem covered by existing reports, which focus mostly on Japanese/Korean or on the Enter key.
Environment
- App: Claude desktop app, message/chat input box (not a terminal)
- OS: macOS Monterey 12.7.6 (Build 21H1320)
- Claude Code CLI version (for reference, may differ from desktop app build): 2.1.233
- IME: macOS built-in 注音輸入法 (標準注音/新注音)
Steps to reproduce
- Switch macOS input source to 注音輸入法 (Zhuyin/Bopomofo).
- In the Claude desktop app's chat input box, type several Zhuyin symbols in a row without confirming.
- Observe the candidate list — it does not match the typed sequence, and the intended word appears only as a stray single-character candidate elsewhere in the list.
- If the wanted word is not selected, press ESC to cancel composition.
- Observe: instead of canceling, the currently highlighted (wrong) candidate is immediately confirmed and inserted.
Expected behavior
- The candidate list should match the typed Zhuyin sequence, as it does in other macOS apps (Notes, TextEdit, Safari, etc.) using the same input method.
- ESC should cancel the in-progress IME composition without committing any candidate, matching standard macOS IME behavior.
Related issues
#50611, #22853, #1547
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗