[gnome-control-center] power: Make section headings accessible
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] power: Make section headings accessible
- Date: Fri, 10 Apr 2015 14:01:40 +0000 (UTC)
commit a14e772cad832ba41c68ddaae44c3c276005c345
Author: Matthias Clasen <mclasen redhat com>
Date: Wed Mar 25 12:13:45 2015 -0400
power: Make section headings accessible
The section headings are useful to understand the content
of this panel. Sadly, orca does not currently read them
at all. We can fix this by setting up accessible relations
that help orca figure this out.
https://bugzilla.gnome.org/show_bug.cgi?id=746755
panels/power/cc-power-panel.c | 60 ++++++++++++++++++++++++++++++-----------
1 files changed, 44 insertions(+), 16 deletions(-)
---
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
index c73a5d1..487aef4 100644
--- a/panels/power/cc-power-panel.c
+++ b/panels/power/cc-power-panel.c
@@ -1461,15 +1461,15 @@ add_power_saving_section (CcPowerPanel *self)
vbox = WID (priv->builder, "vbox_power");
s = g_strdup_printf ("<b>%s</b>", _("Power Saving"));
- widget = gtk_label_new (s);
+ label = gtk_label_new (s);
g_free (s);
- gtk_label_set_use_markup (GTK_LABEL (widget), TRUE);
- gtk_widget_set_halign (widget, GTK_ALIGN_START);
- gtk_widget_set_margin_start (widget, 56);
- gtk_widget_set_margin_end (widget, 56);
- gtk_widget_set_margin_bottom (widget, 6);
- gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, TRUE, 0);
- gtk_widget_show (widget);
+ gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
+ gtk_widget_set_halign (label, GTK_ALIGN_START);
+ gtk_widget_set_margin_start (label, 56);
+ gtk_widget_set_margin_end (label, 56);
+ gtk_widget_set_margin_bottom (label, 6);
+ gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0);
+ gtk_widget_show (label);
widget = gtk_list_box_new ();
priv->boxes_reverse = g_list_prepend (priv->boxes_reverse, widget);
@@ -1479,6 +1479,13 @@ add_power_saving_section (CcPowerPanel *self)
cc_list_box_update_header_func,
NULL, NULL);
+ atk_object_add_relationship (ATK_OBJECT (gtk_widget_get_accessible (label)),
+ ATK_RELATION_LABEL_FOR,
+ ATK_OBJECT (gtk_widget_get_accessible (widget)));
+ atk_object_add_relationship (ATK_OBJECT (gtk_widget_get_accessible (widget)),
+ ATK_RELATION_LABELLED_BY,
+ ATK_OBJECT (gtk_widget_get_accessible (label)));
+
box = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (box), GTK_SHADOW_IN);
gtk_widget_set_margin_start (box, 50);
@@ -1838,15 +1845,15 @@ add_automatic_suspend_section (CcPowerPanel *self)
vbox = WID (priv->builder, "vbox_power");
s = g_markup_printf_escaped ("<b>%s</b>", _("Suspend & Power Off"));
- widget = gtk_label_new (s);
+ label = gtk_label_new (s);
g_free (s);
- gtk_label_set_use_markup (GTK_LABEL (widget), TRUE);
- gtk_widget_set_halign (widget, GTK_ALIGN_START);
- gtk_widget_set_margin_start (widget, 56);
- gtk_widget_set_margin_end (widget, 50);
- gtk_widget_set_margin_bottom (widget, 6);
- gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, TRUE, 0);
- gtk_widget_show (widget);
+ gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
+ gtk_widget_set_halign (label, GTK_ALIGN_START);
+ gtk_widget_set_margin_start (label, 56);
+ gtk_widget_set_margin_end (label, 50);
+ gtk_widget_set_margin_bottom (label, 6);
+ gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0);
+ gtk_widget_show (label);
widget = gtk_list_box_new ();
priv->boxes_reverse = g_list_prepend (priv->boxes_reverse, widget);
@@ -1858,6 +1865,13 @@ add_automatic_suspend_section (CcPowerPanel *self)
g_signal_connect_swapped (widget, "row-activated",
G_CALLBACK (activate_row), self);
+ atk_object_add_relationship (ATK_OBJECT (gtk_widget_get_accessible (label)),
+ ATK_RELATION_LABEL_FOR,
+ ATK_OBJECT (gtk_widget_get_accessible (widget)));
+ atk_object_add_relationship (ATK_OBJECT (gtk_widget_get_accessible (widget)),
+ ATK_RELATION_LABELLED_BY,
+ ATK_OBJECT (gtk_widget_get_accessible (label)));
+
box = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (box), GTK_SHADOW_IN);
gtk_widget_set_margin_start (box, 50);
@@ -2059,6 +2073,13 @@ add_battery_section (CcPowerPanel *self)
gtk_list_box_set_sort_func (GTK_LIST_BOX (widget),
(GtkListBoxSortFunc)battery_sort_func, NULL, NULL);
+ atk_object_add_relationship (ATK_OBJECT (gtk_widget_get_accessible (priv->battery_heading)),
+ ATK_RELATION_LABEL_FOR,
+ ATK_OBJECT (gtk_widget_get_accessible (priv->battery_list)));
+ atk_object_add_relationship (ATK_OBJECT (gtk_widget_get_accessible (priv->battery_list)),
+ ATK_RELATION_LABELLED_BY,
+ ATK_OBJECT (gtk_widget_get_accessible (priv->battery_heading)));
+
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_container_add (GTK_CONTAINER (frame), widget);
@@ -2105,6 +2126,13 @@ add_device_section (CcPowerPanel *self)
gtk_list_box_set_sort_func (GTK_LIST_BOX (widget),
(GtkListBoxSortFunc)battery_sort_func, NULL, NULL);
+ atk_object_add_relationship (ATK_OBJECT (gtk_widget_get_accessible (priv->device_heading)),
+ ATK_RELATION_LABEL_FOR,
+ ATK_OBJECT (gtk_widget_get_accessible (priv->device_list)));
+ atk_object_add_relationship (ATK_OBJECT (gtk_widget_get_accessible (priv->device_list)),
+ ATK_RELATION_LABELLED_BY,
+ ATK_OBJECT (gtk_widget_get_accessible (priv->device_heading)));
+
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_container_add (GTK_CONTAINER (frame), widget);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]