GtkInspector: make the inspector at least a little bit more accessible
authorLukáš Tyrychtr <lukastyrychtr@gmail.com>
Tue, 11 Oct 2022 11:34:21 +0000 (13:34 +0200)
committerLukáš Tyrychtr <lukastyrychtr@gmail.com>
Tue, 11 Oct 2022 11:34:53 +0000 (13:34 +0200)
Namely, it adds accessible name to the property value editors and to a few labels in the a11y panel.

gtk/inspector/a11y.ui
gtk/inspector/prop-editor.c
gtk/inspector/strv-editor.c

index 6c212e9d8601262a8573c803c3855f784ab22218..8e001f6c95d4bc51e433db9bd1e428c45a551de6 100644 (file)
@@ -12,7 +12,7 @@
             <property name="margin-bottom">10</property>
             <property name="spacing">40</property>
             <child>
-              <object class="GtkLabel">
+              <object class="GtkLabel" id="role_label">
                 <property name="label" translatable="yes">Role</property>
                 <property name="halign">start</property>
                 <property name="valign">baseline</property>
@@ -24,6 +24,9 @@
                 <property name="selectable">1</property>
                 <property name="halign">end</property>
                 <property name="valign">baseline</property>
+                <accessibility>
+                  <relation name="labelled-by">role_label</relation>
+                </accessibility>
               </object>
             </child>
           </object>
@@ -36,7 +39,7 @@
             <property name="margin-bottom">10</property>
             <property name="spacing">40</property>
             <child>
-              <object class="GtkLabel">
+              <object class="GtkLabel" id="path_label">
                 <property name="label" translatable="yes">Object path</property>
                 <property name="halign">start</property>
                 <property name="valign">baseline</property>
@@ -48,6 +51,9 @@
                 <property name="selectable">1</property>
                 <property name="halign">end</property>
                 <property name="valign">baseline</property>
+                <accessibility>
+                  <relation name="labelled-by">path_label</relation>
+                </accessibility>
               </object>
             </child>
           </object>
index cc3dc89e24655ed059e3e8ea533a1d797325c9c0..e08a194e0cc627128c8db823430083c09270d306 100644 (file)
@@ -1249,6 +1249,23 @@ property_editor (GObject                *object,
 
   notify_property (object, spec);
 
+  if (GTK_IS_LABEL (prop_edit))
+    {
+      gtk_widget_set_can_focus (prop_edit, TRUE);
+      gtk_accessible_update_property (GTK_ACCESSIBLE (prop_edit),
+                                      GTK_ACCESSIBLE_PROPERTY_LABEL,
+                                      g_strdup_printf ("%s: %s",
+                                                       self->name,
+                                                       gtk_label_get_text (GTK_LABEL (prop_edit))),
+                                      NULL);
+    }
+  else
+    {
+      gtk_accessible_update_property (GTK_ACCESSIBLE (prop_edit),
+                                      GTK_ACCESSIBLE_PROPERTY_LABEL, self->name,
+                                      NULL);
+    }
+
   return prop_edit;
 }
 
index 26240f9d695287604714478e5da95d1048be0d15..3230d6335193ad3d1ef157306f719fa12176c54e 100644 (file)
@@ -19,6 +19,7 @@
 #include <glib/gi18n-lib.h>
 
 #include "strv-editor.h"
+#include "gtkaccessible.h"
 #include "gtkbutton.h"
 #include "gtkentry.h"
 #include "gtkbox.h"
@@ -69,6 +70,9 @@ add_string (GtkInspectorStrvEditor *editor,
 
   entry = gtk_entry_new ();
   gtk_editable_set_text (GTK_EDITABLE (entry), str);
+  gtk_accessible_update_property (GTK_ACCESSIBLE (entry),
+                                  GTK_ACCESSIBLE_PROPERTY_LABEL, _("Value"),
+                                  NULL);
   gtk_widget_show (entry);
   gtk_box_append (GTK_BOX (box), entry);
   g_object_set_data (G_OBJECT (box), "entry", entry);
@@ -76,6 +80,10 @@ add_string (GtkInspectorStrvEditor *editor,
 
   button = gtk_button_new_from_icon_name ("user-trash-symbolic");
   gtk_widget_add_css_class (button, "image-button");
+  gtk_accessible_update_property (GTK_ACCESSIBLE (button),
+                                  GTK_ACCESSIBLE_PROPERTY_LABEL,
+                                  g_strdup_printf (_("Remove %s"), str),
+                                  NULL);
   gtk_widget_show (button);
   gtk_box_append (GTK_BOX (box), button);
   g_signal_connect (button, "clicked", G_CALLBACK (remove_string), editor);
@@ -106,6 +114,9 @@ gtk_inspector_strv_editor_init (GtkInspectorStrvEditor *editor)
   gtk_widget_add_css_class (editor->button, "image-button");
   gtk_widget_set_focus_on_click (editor->button, FALSE);
   gtk_widget_set_halign (editor->button, GTK_ALIGN_END);
+  gtk_accessible_update_property (GTK_ACCESSIBLE (editor->button),
+                                  GTK_ACCESSIBLE_PROPERTY_LABEL, _("Add"),
+                                  NULL);
   gtk_widget_show (editor->button);
   g_signal_connect (editor->button, "clicked", G_CALLBACK (add_cb), editor);