gtk_widget_set_sensitive (self->button, FALSE);
gtk_widget_add_css_class (GTK_WIDGET (self), "popup");
+
+ gtk_accessible_update_relation (GTK_ACCESSIBLE (self->button), GTK_ACCESSIBLE_RELATION_LABELLED_BY, self, NULL,
+ GTK_ACCESSIBLE_RELATION_DESCRIBED_BY, self, NULL,
+ -1);
}
/**
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
gtk_widget_set_halign (box, GTK_ALIGN_CENTER);
+ // Because we are setting only an icon, let the inner button be labeled by us, so the accessible label can be overridden
+ gtk_accessible_update_relation (GTK_ACCESSIBLE (menu_button->button), GTK_ACCESSIBLE_RELATION_LABELLED_BY, menu_button, NULL, -1);
+
image_widget = g_object_new (GTK_TYPE_IMAGE,
"accessible-role", GTK_ACCESSIBLE_ROLE_PRESENTATION,
"icon-name", icon_name,
gtk_button_set_child (GTK_BUTTON (menu_button->button), box);
menu_button->label_widget = label_widget;
+ // When the user explicitly set a label assume that it should be announced by assistive technologies as well
+ gtk_accessible_update_relation (GTK_ACCESSIBLE (menu_button->button), GTK_ACCESSIBLE_RELATION_LABELLED_BY, menu_button->label_widget, NULL, -1);
+
menu_button->image_widget = NULL;
update_arrow (menu_button);