https://bugs.kde.org/show_bug.cgi?id=512189
Bug ID: 512189
Summary: Orca's learn mode results in double presentation and
key bleed through
Classification: Plasma
Product: kwin
Version First unspecified
Reported In:
Platform: Other
OS: Linux
Status: REPORTED
Keywords: accessibility
Severity: normal
Priority: NOR
Component: general
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Target Milestone: ---
Nicolas: If you have a spare moment, could you please take a look at this?
Thanks in advance, and thanks for your work to make KDE accessible to Orca
users!
STEPS TO REPRODUCE
1. Launch Orca in terminal and leave focus there.
2. Press Orca Modifier + H to enter learn mode.
3. Press unmodified letters.
4. Press keys associated with Orca commands (like Orca Modifier + H).
OBSERVED RESULT
* Everything is spoken twice instead of once.
* In the case of unmodified letters, they are input into the focused terminal.
EXPECTED RESULT
* Everything is spoken once instead of twice.
* The unmodified letters would not be input into the focused terminal.
SOFTWARE/OS VERSIONS
* Linux/KDE Plasma
* KDE Plasma Version: 6.5.2
* KDE Frameworks Version: 6.19.0
* Qt Version: 6.10.0
ADDITIONAL INFORMATION
This doesn't happen with mutter.
When Orca's learn mode is started, Atspi.Device.grab_keyboard() is called. This
should presumably prevent the key bleed through, but it doesn't.
Looking at the debugging output from Orca, Orca is getting back-to-back
key-press events. This is what's causing the double presentation.
While I don't have a development environment set up for building and testing
kwin, given the behavior I'm seeing, this code in
A11yKeyboardMonitor::processKey() makes me a little suspicious:
if (data.grabbed) {
emitKeyEvent(name, released, mods, keysym, unicode, keycode);
}
(https://invent.kde.org/plasma/kwin/-/blob/master/src/a11ykeyboardmonitor.cpp#L52-54)
if data.grabbed is true, should there be an early return after the event is
emitted?
--
You are receiving this mail because:
You are watching all bug changes.