All widgets should have an easily-identifiable accessible action that corresponds to what happens when a user clicks on the widget
TL;DR: Gtk3 accessible actions are mostly in place with reasonable names, but not for notebook tabs. Gtk4 accessible actions have hard-to-identify names. This poses an accessibility issue for Orca users.
Steps to reproduce, flavor 1:
- Launch the "Printing" demo of gtk3-demo
- Use Accerciser to examine the "Page Setup" tab in the resulting "Print" dialog.
Expected results: There would be an accessible action like "select" or "press" or "click" or "activate".
Actual results: There are no available actions.
Steps to reproduce, flavor 2:
- Launch gtk-demo for Gtk4
- Use Accerciser to inspect the actions of the accessible push buttons (children of the list items that correspond to the available demos)
Expected results: There would be an obvious action that corresponds to "click" (push buttons in Gtk3 expose a "press" action. This would meet my expectations.).
Actual results: "listitem.toggle-expand", "listitem.collapse", "listitem.expand"
Impact: For various reasons (personal preference, lack of keyboard navigability, etc.), Orca users sometimes perform a synthesized click on a widget. Here's how that works:
-
Before trying to synthesize an actual click, Orca looks at the
AtspiAction
interface for an action that seems like it corresponds to click. Those action names are:- "click"
- "press"
- "open"
- "jump" (what web browsers expose on links).
- EDIT: "activate" was added on 4 April in response to @matthiasc's comment
- If Orca finds one of the above, it calls
atspi_action_do_action
on that item. "Click" performed. - Otherwise (the case in both sets of steps to reproduce above), Orca tries to synthesize an actual click.
Synthesizing the click worked fairly reliably -- back when we could use screen coordinates to get the position of the widget, which we could then use with atspi_generate_mouse_event
. With Wayland and Gtk4, that's no longer an option. See related at-spi2-core#158 for discussion on making actual clicking work again.
BUT actually clicking has always been a workaround.
@matthiasc: I know how much you hate accessibility hacks. So what do you think about having all Gtk widgets in both Gtk3 and Gtk4 have actions with names that correspond to one of the above that Orca checks for? (I'm happy to check for a few more if they have clearly-a-click name.) Then Orca would never have to synthesize an actual click for Gtk apps again.
cc @tyrylu