GNOME Bugzilla – Bug 738705
Implement the AtkSelection interface (at least) for the switchers
Last modified: 2021-07-05 14:44:00 UTC
When the selected item in the switchers changes, an object:state-changed:selected event is emitted which assistive technologies like Orca use to present the newly-selected item to the user. Thus while the expected thing for the parent container is to implement AtkSelection, the lack of implementation in the switchers has so far proven to be no big deal. However, Orca no longer presents the initially selected item when the user gets into a switcher. See bug 738701. As alluded to in bug 738701, assistive technologies do need to be relatively flexible with respect to the ordering of the accessible events they receive. So, either of the following event orderings to fix bug 738701 are arguably valid: What I'd really, really like: [window | ] window:activate [panel | ] object:state-changed:focused [push button | ] object:state-changed:selected But what I'd have a hard time justifying is definitively wrong: [window | ] window:activate [push button | ] object:state-changed:selected [panel | ] object:state-changed:focused Some apps and toolkits do something like the second. The person fixing bug 738701 might as well. And what Orca does in that case is query the accessible selection interface to get the selected item and present it to the user. Which brings me back to this bug: This solution currently fails because the accessible panel which contains the selectable items doesn't implement AtkSelection. This is something I should be able to hack around in Orca, I'll take a look at that next. But I'm pretty sure it will involve iterating through the children checking each child's state to find the one which is selected. In the case of the switchers, that's no big deal. But because there's no 100% reliable way for Orca to know that a given panel is a switcher -- and because there are a lot of objects of ATK_ROLE_PANEL in GNOME Shell -- any panel that claims focus is going to need to be examined and possibly iterated through "just in case." Thus it would be super if the switchers (and other containers which have selectable items and which may claim focus) implemented AtkSelection. More so if I cannot have the order "I'd really, really like" in the fix for bug 738701. Thanks!
Ping?
(In reply to comment #1) > Ping? (Answering here also for bug 738701) At the beginning of the cycle, we started to discuss the priorities of the accessibility team for 3.16 (starting with a brainstorming here [1]). As far as I remember, this and bug 738701 were not included as the top objectives. Should we tweak the priorities for this cycle? [1] https://meetbot.gnome.org/a11y-meeting/2014/a11y-meeting.2014-10-16-14.05.log.txt
What prompted the pings is that an Orca user asked if I was going to commit the sad hack I added to Orca master to work around the problem described here and in bug 738701 to the 3.14 branch. Given that the cycle priorities seem to be those things which are user visible, and this issue is user-visible (especially without the hack I added to Orca), perhaps we should indeed tweak the priorities. Had I remembered these bugs at the meeting you cited in your comment, I would have mentioned them. Premature senility, my bad, etc.
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org. As part of that, we are mass-closing older open tickets in bugzilla.gnome.org which have not seen updates for a longer time (resources are unfortunately quite limited so not every ticket can get handled). If you can still reproduce the situation described in this ticket in a recent and supported software version, then please follow https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines and create a new ticket at https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/ Thank you for your understanding and your help.