Summary: | Keys for Orca (screen reader) structural navigation don't work correctly when pressed multiple times subsequently | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Michael Weghorn <m.weghorn> |
Component: | input | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | duha.bugs, m.weghorn, nate |
Priority: | NOR | Keywords: | accessibility |
Version First Reported In: | 6.4.80 | ||
Target Milestone: | --- | ||
Platform: | Debian testing | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/plasma/kwin/-/commit/6b2a1b5bbfa73b59b135acdfee9862f3c991e556 | Version Fixed In: | 6.4.3 |
Sentry Crash Report: | |||
Attachments: | Sample document with a few headings that can be used to reproduce the issue |
Description
Michael Weghorn
2025-07-07 11:37:00 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/7882 Git commit 889ffed2bbb40c44dbb8ef4268e5e0bbcb7671da by Vlad Zahorodnii, on behalf of Michael Weghorn. Committed on 07/07/2025 at 14:11. Pushed by vladz into branch 'master'. A11yKeyboardMonitor: Distinguish modifier and other key When processing a key event, only update A11yKeyboardMonitor::lastModifier and A11yKeyboardMonitor::lastModifierTime if the pressed key is actually a modifier. Otherwise, the "if the modifier was pressed twice within the key repeat delay process it normally" logic above would trigger when pressing a non-modifier key twice within the key repeat delay time, breaking e.g. Orca's structural navigation when pressing "H" twice to jump to the heading after the next, and instead result in a literal "h" getting inserted when input is accepted (e.g. in an editable LibreOffice Writer document). M +3 -3 src/a11ykeyboardmonitor.cpp https://invent.kde.org/plasma/kwin/-/commit/889ffed2bbb40c44dbb8ef4268e5e0bbcb7671da Git commit 6b2a1b5bbfa73b59b135acdfee9862f3c991e556 by Vlad Zahorodnii. Committed on 07/07/2025 at 15:06. Pushed by vladz into branch 'Plasma/6.4'. A11yKeyboardMonitor: Distinguish modifier and other key When processing a key event, only update A11yKeyboardMonitor::lastModifier and A11yKeyboardMonitor::lastModifierTime if the pressed key is actually a modifier. Otherwise, the "if the modifier was pressed twice within the key repeat delay process it normally" logic above would trigger when pressing a non-modifier key twice within the key repeat delay time, breaking e.g. Orca's structural navigation when pressing "H" twice to jump to the heading after the next, and instead result in a literal "h" getting inserted when input is accepted (e.g. in an editable LibreOffice Writer document). (cherry picked from commit 889ffed2bbb40c44dbb8ef4268e5e0bbcb7671da) Co-authored-by: Michael Weghorn <m.weghorn@posteo.de> M +3 -3 src/a11ykeyboardmonitor.cpp https://invent.kde.org/plasma/kwin/-/commit/6b2a1b5bbfa73b59b135acdfee9862f3c991e556 |