GNOME Bugzilla – Bug 746487
Improve accessibility of legacy tray
Last modified: 2015-03-22 08:34:51 UTC
See patches. The results are mixed at best, by I don't think we can do any better than that ...
Created attachment 299882 [details] [review] legacyTray: Try to set an accessible name for status icons While legacy status icons lack a proper accessible name of their own, we can try to find the corresponding application or the icon's window title - hopefully most status icons provide at least one, so they don't show up completely "blank" in screen readers.
Created attachment 299883 [details] [review] legacyTray: Handle StWidget::popup-menu There is currently no way to trigger an icon's right-click menu by keyboard. While there's a good chance that the event corresponding to the 'popup-menu' shortcut will just be ignored, passing it on will at least work for some icons ...
Review of attachment 299883 [details] [review]: why not connect to key event signals and send them all down? seems like it would maximize our chances of success? any downsides?
Review of attachment 299882 [details] [review]: Why not Shell.WindowTracker.get_window_app() ?
(In reply to Rui Matos from comment #3) > why not connect to key event signals and send them all down? seems like it > would maximize our chances of success? any downsides? No, good point - changed locally.
(In reply to Rui Matos from comment #4) > Why not Shell.WindowTracker.get_window_app() ? For which window?
(In reply to Florian Müllner from comment #6) > For which window? Ah, right. We could export the associated MetaWindow as a prop from ShellGtkEmbed but that's probably too much trouble for this. Still, we could at least make the logic here be the same as in FdoNotificationDaemonSource._getApp(), i.e. try with the pid first?
I'm also quite sure that ShellWindowTracker considers embedded windows uninteresting.
Created attachment 299960 [details] [review] legacyTray: Try to set an accessible name for status icons (In reply to Rui Matos from comment #7) > Still, we could at least make the logic here be the same as in > FdoNotificationDaemonSource._getApp(), i.e. try with the pid first? Sure.
Created attachment 299961 [details] [review] legacyTray: Pass on keyboard events to the icon (In reply to Florian Müllner from comment #5) > (In reply to Rui Matos from comment #3) > > why not connect to key event signals and send them all down? seems like it > > would maximize our chances of success? any downsides? > > No, good point - changed locally. I was speaking too quickly here - passing on the key-release event apparently interferes with the screen reader reading out the name of some icons. The key-press event appears to work in testing though.
Review of attachment 299960 [details] [review]: ok
Review of attachment 299961 [details] [review]: Ok, let's go with this then
Freeze break request was approved, pushing. Attachment 299960 [details] pushed as 28ef889 - legacyTray: Try to set an accessible name for status icons Attachment 299961 [details] pushed as f2c1a41 - legacyTray: Pass on keyboard events to the icon