From 28ef88911c5e1ae37a98dc0519173f2cb04d5aaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 19 Mar 2015 22:54:21 +0100 Subject: [PATCH] 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. https://bugzilla.gnome.org/show_bug.cgi?id=746487 --- js/ui/legacyTray.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/js/ui/legacyTray.js b/js/ui/legacyTray.js index 6e8953bf8..57a756a4b 100644 --- a/js/ui/legacyTray.js +++ b/js/ui/legacyTray.js @@ -147,6 +147,17 @@ const LegacyTray = new Lang.Class({ St.ButtonMask.THREE, can_focus: true, x_fill: true, y_fill: true }); + + let app = Shell.WindowTracker.get_default().get_app_from_pid(icon.pid); + if (!app) + app = Shell.AppSystem.get_default().lookup_startup_wmclass(wmClass); + if (!app) + app = Shell.AppSystem.get_default().lookup_desktop_wmclass(wmClass); + if (app) + button.accessible_name = app.get_name(); + else + button.accessible_name = icon.title; + button.connect('clicked', function() { icon.click(Clutter.get_current_event());