summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2020-11-04 18:59:11 +0000
committerEmmanuele Bassi <ebassi@gnome.org>2020-11-04 18:59:11 +0000
commitc48a9907786294b9221b1365fce06e16ab6c47dc (patch)
tree4256621b1d3bad7eeedeecf9ab17b40557139ac4
parent23c425618e96581db6f5a3ba72bedc93d0a3da9d (diff)
downloadgtk+-c48a9907786294b9221b1365fce06e16ab6c47dc.tar.gz
a11y: Describe window controls
The window controls for client side decorations have only icons, which means they are not accessible.
-rw-r--r--gtk/gtkwindowcontrols.c21
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)