From 01274dfbb9ec320f902113a4a24a84d91f6abcc4 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 21 Jun 2023 13:18:58 -0400 Subject: [PATCH] shortcutswindow: Fix up roles and labels again --- gtk/gtkshortcutlabel.c | 3 ++- gtk/gtkshortcutsgroup.c | 7 +++++++ gtk/gtkshortcutsshortcut.c | 11 ++++++++--- gtk/gtkshortcutswindow.c | 2 ++ 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/gtk/gtkshortcutlabel.c b/gtk/gtkshortcutlabel.c index 405dbe1fdc..7cd0e599e5 100644 --- a/gtk/gtkshortcutlabel.c +++ b/gtk/gtkshortcutlabel.c @@ -420,7 +420,7 @@ gtk_shortcut_label_rebuild (GtkShortcutLabel *self) child = gtk_widget_get_prev_sibling (child)) { parts = g_list_prepend (parts, child); - } + } gtk_accessible_relation_init_value (relation, &value); g_value_set_pointer (&value, parts); gtk_accessible_update_relation_value (GTK_ACCESSIBLE (self), @@ -524,6 +524,7 @@ gtk_shortcut_label_class_init (GtkShortcutLabelClass *klass) gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BOX_LAYOUT); gtk_widget_class_set_css_name (widget_class, I_("shortcut")); + gtk_widget_class_set_accessible_role (widget_class, GTK_ACCESSIBLE_ROLE_GROUP); } static void diff --git a/gtk/gtkshortcutsgroup.c b/gtk/gtkshortcutsgroup.c index 2be96c9cc5..94b023e945 100644 --- a/gtk/gtkshortcutsgroup.c +++ b/gtk/gtkshortcutsgroup.c @@ -27,6 +27,7 @@ #include "gtkprivate.h" #include "gtkshortcutsshortcut.h" #include "gtksizegroup.h" +#include "gtkaccessible.h" /** * GtkShortcutsGroup: @@ -333,6 +334,7 @@ gtk_shortcuts_group_class_init (GtkShortcutsGroupClass *klass) g_object_class_install_properties (object_class, LAST_PROP, properties); gtk_widget_class_set_css_name (widget_class, I_("shortcuts-group")); + gtk_widget_class_set_accessible_role (widget_class, GTK_ACCESSIBLE_ROLE_GROUP); } static void @@ -346,6 +348,7 @@ gtk_shortcuts_group_init (GtkShortcutsGroup *self) attrs = pango_attr_list_new (); pango_attr_list_insert (attrs, pango_attr_weight_new (PANGO_WEIGHT_BOLD)); self->title = g_object_new (GTK_TYPE_LABEL, + "accessible-role", GTK_ACCESSIBLE_ROLE_CAPTION, "attributes", attrs, "visible", TRUE, "xalign", 0.0f, @@ -353,4 +356,8 @@ gtk_shortcuts_group_init (GtkShortcutsGroup *self) pango_attr_list_unref (attrs); gtk_box_append (GTK_BOX (self), GTK_WIDGET (self->title)); + + gtk_accessible_update_relation (GTK_ACCESSIBLE (self), + GTK_ACCESSIBLE_RELATION_LABELLED_BY, self->title, NULL, + -1); } diff --git a/gtk/gtkshortcutsshortcut.c b/gtk/gtkshortcutsshortcut.c index b9b8eead40..038e60d8af 100644 --- a/gtk/gtkshortcutsshortcut.c +++ b/gtk/gtkshortcutsshortcut.c @@ -709,7 +709,7 @@ gtk_shortcuts_shortcut_class_init (GtkShortcutsShortcutClass *klass) /* It is semantically a label, but the label role has such specific meaning in Orca * as to be unusable in this context. */ - gtk_widget_class_set_accessible_role (widget_class, GTK_ACCESSIBLE_ROLE_GENERIC); + gtk_widget_class_set_accessible_role (widget_class, GTK_ACCESSIBLE_ROLE_LABEL); } static void @@ -761,8 +761,13 @@ gtk_shortcuts_shortcut_init (GtkShortcutsShortcut *self) gtk_widget_add_css_class (GTK_WIDGET (self->subtitle), "dim-label"); gtk_box_append (GTK_BOX (self->title_box), GTK_WIDGET (self->subtitle)); +#if 0 gtk_accessible_update_relation (GTK_ACCESSIBLE (self), - GTK_ACCESSIBLE_RELATION_LABELLED_BY, self->title, NULL, - GTK_ACCESSIBLE_RELATION_DESCRIBED_BY, self->accelerator, NULL, + GTK_ACCESSIBLE_RELATION_LABELLED_BY, self->accelerator, self->title, NULL, + -1); +#endif + + gtk_accessible_update_property (GTK_ACCESSIBLE (self), + GTK_ACCESSIBLE_PROPERTY_DESCRIPTION, "", -1); } diff --git a/gtk/gtkshortcutswindow.c b/gtk/gtkshortcutswindow.c index 2396d43de4..0c4f109911 100644 --- a/gtk/gtkshortcutswindow.c +++ b/gtk/gtkshortcutswindow.c @@ -821,6 +821,8 @@ gtk_shortcuts_window_class_init (GtkShortcutsWindowClass *klass) g_type_ensure (GTK_TYPE_SHORTCUTS_GROUP); g_type_ensure (GTK_TYPE_SHORTCUTS_SHORTCUT); + + gtk_widget_class_set_accessible_role (widget_class, GTK_ACCESSIBLE_ROLE_GENERIC); } static void -- 2.30.2