Accessible window-event spam from popups like volume up/down
Steps to reproduce:
- Run this accessible-event listener in a terminal:
#!/usr/bin/python3
import pyatspi
def listener(e):
string = f"{e.source} {e.type}"
if "active" in e.type:
string += f":{bool(e.detail1)}"
print(string)
pyatspi.Registry.registerEventListener(listener, "object:state-changed:active", "window:")
pyatspi.Registry.start()
- Quickly tap the keyboard's Volume Up key three times (i.e. fast enough that the volume slider remains on screen).
Expected results: The window that had focus prior to increasing the volume would not claim to have be deactivated and activated three times (i.e. once for each tap).
Actual results: The window that had focus prior to increasing the volume claims to have be deactivated and activated three times (i.e. once for each tap).
Sample output from the listener:
# Tap 1:
[frame | *Untitled Document 1 - gedit] window:deactivate
[frame | *Untitled Document 1 - gedit] object:state-changed:active:False
[frame | *Untitled Document 1 - gedit] window:activate
[frame | *Untitled Document 1 - gedit] object:state-changed:active:True
# Tap 2:
[frame | *Untitled Document 1 - gedit] window:deactivate
[frame | *Untitled Document 1 - gedit] object:state-changed:active:False
[frame | *Untitled Document 1 - gedit] window:activate
[frame | *Untitled Document 1 - gedit] object:state-changed:active:True
# Tap 3:
[frame | *Untitled Document 1 - gedit] window:deactivate
[frame | *Untitled Document 1 - gedit] object:state-changed:active:False
[frame | *Untitled Document 1 - gedit] window:activate
[frame | *Untitled Document 1 - gedit] object:state-changed:active:True
Impact: Every time you increase the volume, Orca announces the window which just claimed to be active.
@fmuellner: Any ideas on how this can be stopped on your end so I don't have to try to heuristically stop it on mine (Orca's)? Thanks in advance!