shell
shell copied to clipboard
Screen reader/accessibility: Does not read search results
Summary
- The launcher openable with
super+/doesn't read search results when a screen reader is enabled!
- I am unable to determine how to get the screen reader to read search results.
Steps to reproduce
- Enable the screen reader in settings
- Press
super+/ - Type
settings - Press the up and down arrows
- Press tab
- Press shift+tab
- Delete everything and type
=1+1 - Press
Ctrl+1
Expected Behavior
- Screen reader should read the currently selected suggestion when I move the focus up/down with arrow keys (
0:44in the recording below). - Screen reader should announce changes to the input box (e.g. changing from
=1+1to=2when I press ctrl+1) - Dialog/text entry should be appropriately described when it first appears (see
0:36in the recording below)
Recording
https://user-images.githubusercontent.com/46334387/167257951-c5fbf896-3c09-411e-a8ba-28acab5996ef.mp4
To hear the screen reader in the recording above, please ensure that the video is unmuted. GitHub may mute it by default:

https://github.com/pop-os/shell/blob/b299641fb472f47f062d6457252b072360cedca2/src/search.ts#L323
Emitting a signal-value-changed here would make sense, but I haven't figured out how to do that...
Here's what I've found so far:
- We probably want to be looking at
CallyandAtk(documentation) - Calling
get_accessible()on a ClutterActorreturns aCallyActor.- Has/inherits
set_descriptionandset_relationshipmethods.- A Cally
Actorinherits from bothAtk#ObjectandAtk#Action, both of which have aset_descriptionmethod.- It might be necessary to use
imports.gi.Atk.Object.prototype.set_description.call(callyActor, descriptionStr)to use the one-argument version ofset_description.
- It might be necessary to use
- A Cally
- Has/inherits
-
imports.gi.Atkgives access to enums likeStateType.