On KDE Plasma Wayland, Orca does not receive repeated key events when using browse mode in web browsers. When holding any Orca navigation key — such as H (headings), K (links), B (buttons), arrow keys, or number keys (1–6) — only a single keypress is sent. Orca does not move to the next element unless the key is pressed repeatedly. This happens in both Firefox and Chromium. The issue occurs on any website and affects all navigation keys used in Orca's browse mode. However, Tab and Shift+Tab DO repeat normally, because they are handled directly by the browser and not by Orca. Steps to reproduce: 1. Start KDE Plasma Wayland session. 2. Start Orca. 3. Open Firefox or Chromium. 4. Open any website. 5. Hold the key "H" to move between headings. 6. Orca does not advance; only one event is sent. 7. Hold "K" to move between links: same behavior. 8. Hold "B" to move between buttons: same behavior. 9. Hold arrow keys or number keys: same behavior. 10. Hold Tab: it repeats normally. Expected: Holding navigation keys should repeat and allow fast movement between elements in Orca's browse mode. Actual: Only the first keypress is sent to Orca; key repeat does not work for any navigation key. System Information: KDE Plasma 6.6.4 on wayland KDE Frameworks 6.24.0 Qt 6.10.2 Notes: - This does not happen on GNOME (Wayland or X11). - This does not happen on KDE Plasma X11.
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/9110
Git commit 60bb46893553ab1e65a4e4c6e4b83efe78908227 by Nicolas Fella. Committed on 24/04/2026 at 11:13. Pushed by nicolasfella into branch 'master'. input: Process key repeat before A11yKeyboardMonitor Currently we process A11yKeyboardMonitor before any of the input filters/spies. This means that when A11yKeyboardMonitor grabs any key the repeat timer won't trigger for that key, resulting in missing repeat events. To avoid this process KeyboardRepeat first M +13 -0 autotests/integration/a11ykeyboardmonitor_test.cpp M +4 -3 src/keyboard_input.cpp M +2 -0 src/keyboard_input.h M +5 -6 src/keyboard_repeat.cpp M +3 -3 src/keyboard_repeat.h https://invent.kde.org/plasma/kwin/-/commit/60bb46893553ab1e65a4e4c6e4b83efe78908227
Git commit 451c12d539052c950a839697e1eae0c57c0cabb1 by Nicolas Fella. Committed on 24/04/2026 at 11:49. Pushed by nicolasfella into branch 'Plasma/6.6'. input: Process key repeat before A11yKeyboardMonitor Currently we process A11yKeyboardMonitor before any of the input filters/spies. This means that when A11yKeyboardMonitor grabs any key the repeat timer won't trigger for that key, resulting in missing repeat events. To avoid this process KeyboardRepeat first (cherry picked from commit 60bb46893553ab1e65a4e4c6e4b83efe78908227) Co-authored-by: Nicolas Fella <nicolas.fella@gmx.de> M +13 -0 autotests/integration/a11ykeyboardmonitor_test.cpp M +4 -3 src/keyboard_input.cpp M +2 -0 src/keyboard_input.h M +5 -6 src/keyboard_repeat.cpp M +3 -3 src/keyboard_repeat.h https://invent.kde.org/plasma/kwin/-/commit/451c12d539052c950a839697e1eae0c57c0cabb1