shortcutswindow: Fix up roles and labels again
authorMatthias Clasen <mclasen@redhat.com>
Wed, 21 Jun 2023 17:18:58 +0000 (13:18 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 21 Jun 2023 17:18:58 +0000 (13:18 -0400)
gtk/gtkshortcutlabel.c
gtk/gtkshortcutsgroup.c
gtk/gtkshortcutsshortcut.c
gtk/gtkshortcutswindow.c

index 405dbe1fdcb161af3da2c40b09ee9c6c53f46864..7cd0e599e5541b3457d2294595d25ab8f085e37c 100644 (file)
@@ -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
index 2be96c9cc5647d2d88ee62bc6c4f6b0413899788..94b023e9457a10601d810b08557cffc69827dc48 100644 (file)
@@ -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);
 }
index b9b8eead40e491445fd7c20668e80dee1166b508..038e60d8afbebc7df673af2954cd83fb2bbb5b6e 100644 (file)
@@ -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);
 }
index 2396d43de434545b4fb6fab4981433dcaafb28cc..0c4f109911db1ede5075e5469cfc41417d212a54 100644 (file)
@@ -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