[gtk/a11y/label-name: 3/3] a11y: Tweak name and description computation




commit dfc7d26275f1cf402e207c6e50978cedde267cc2
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Oct 19 14:58:34 2020 -0400

    a11y: Tweak name and description computation
    
    Instead of falling back to the role nick for both,
    fall back to the class name for the name, and to
    the empty string for the description. This makes
    labels show up in Accerciser the same way they
    did in GTK 3, and seems more useful to me than
    the alternative.

 gtk/gtkatcontext.c | 21 ++++-----------------
 1 file changed, 4 insertions(+), 17 deletions(-)
---
diff --git a/gtk/gtkatcontext.c b/gtk/gtkatcontext.c
index 7bd1398ebb..fbe5a44f61 100644
--- a/gtk/gtkatcontext.c
+++ b/gtk/gtkatcontext.c
@@ -805,11 +805,8 @@ gtk_at_context_get_name_accumulate (GtkATContext *self,
   if (names->len != 0)
     return;
 
-  GEnumClass *enum_class = g_type_class_peek (GTK_TYPE_ACCESSIBLE_ROLE);
-  GEnumValue *enum_value = g_enum_get_value (enum_class, role);
-
-  if (enum_value != NULL)
-    g_ptr_array_add (names, (char *) enum_value->value_nick);
+  if (self->accessible)
+    g_ptr_array_add (names, (char *)G_OBJECT_TYPE_NAME (self->accessible));
 }
 
 static void
@@ -871,8 +868,8 @@ gtk_at_context_get_description_accumulate (GtkATContext *self,
       break;
     }
 
-  /* If there is no label or labelled-by attribute, hidden elements
-   * have no name
+  /* If there is no description or described-by attribute, hidden elements
+   * have no description
    */
   if (gtk_accessible_attribute_set_contains (self->states, GTK_ACCESSIBLE_STATE_HIDDEN))
     {
@@ -881,16 +878,6 @@ gtk_at_context_get_description_accumulate (GtkATContext *self,
       if (gtk_boolean_accessible_value_get (value))
         return;
     }
-
-  /* This fallback is in place only for unlabelled elements */
-  if (labels->len != 0)
-    return;
-
-  GEnumClass *enum_class = g_type_class_peek (GTK_TYPE_ACCESSIBLE_ROLE);
-  GEnumValue *enum_value = g_enum_get_value (enum_class, role);
-
-  if (enum_value != NULL)
-    g_ptr_array_add (labels, (char *) enum_value->value_nick);
 }
 
 /*< private >


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]