diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2020-11-04 18:59:11 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2020-11-04 18:59:11 +0000 |
commit | c48a9907786294b9221b1365fce06e16ab6c47dc (patch) | |
tree | 4256621b1d3bad7eeedeecf9ab17b40557139ac4 /gtk/gtkwindowcontrols.c | |
parent | 23c425618e96581db6f5a3ba72bedc93d0a3da9d (diff) | |
download | gtk+-c48a9907786294b9221b1365fce06e16ab6c47dc.tar.gz |
a11y: Describe window controls
The window controls for client side decorations have only icons, which
means they are not accessible.
Diffstat (limited to 'gtk/gtkwindowcontrols.c')
-rw-r--r-- | gtk/gtkwindowcontrols.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gtk/gtkwindowcontrols.c b/gtk/gtkwindowcontrols.c index 3411a5d13f..d2b3667555 100644 --- a/gtk/gtkwindowcontrols.c +++ b/gtk/gtkwindowcontrols.c @@ -20,6 +20,7 @@ #include "gtkwindowcontrols.h" +#include "gtkaccessible.h" #include "gtkactionable.h" #include "gtkboxlayout.h" #include "gtkbutton.h" @@ -272,6 +273,11 @@ update_window_buttons (GtkWindowControls *self) gtk_widget_set_valign (button, GTK_ALIGN_CENTER); gtk_widget_add_css_class (button, "icon"); + /* The icon is not relevant for accessibility purposes */ + gtk_accessible_update_state (GTK_ACCESSIBLE (button), + GTK_ACCESSIBLE_STATE_HIDDEN, TRUE, + -1); + if (!update_window_icon (window, button)) { g_object_ref_sink (button); @@ -291,6 +297,11 @@ update_window_buttons (GtkWindowControls *self) gtk_widget_set_can_focus (button, FALSE); gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "window.minimize"); + gtk_accessible_update_property (GTK_ACCESSIBLE (button), + GTK_ACCESSIBLE_PROPERTY_LABEL, _("Minimize"), + GTK_ACCESSIBLE_PROPERTY_DESCRIPTION, + _("Minimize the window"), + -1); } else if (strcmp (tokens[i], "maximize") == 0 && resizable && @@ -308,6 +319,11 @@ update_window_buttons (GtkWindowControls *self) gtk_widget_set_can_focus (button, FALSE); gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "window.toggle-maximized"); + gtk_accessible_update_property (GTK_ACCESSIBLE (button), + GTK_ACCESSIBLE_PROPERTY_LABEL, _("Maximize"), + GTK_ACCESSIBLE_PROPERTY_DESCRIPTION, + _("Maximize the window"), + -1); } else if (strcmp (tokens[i], "close") == 0 && deletable) @@ -321,6 +337,11 @@ update_window_buttons (GtkWindowControls *self) gtk_widget_set_can_focus (button, FALSE); gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "window.close"); + gtk_accessible_update_property (GTK_ACCESSIBLE (button), + GTK_ACCESSIBLE_PROPERTY_LABEL, _("Close"), + GTK_ACCESSIBLE_PROPERTY_DESCRIPTION, + _("Close the window"), + -1); } if (button) |