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.

Reply via email to