a11y: Only allow get_name/description when realized
authorMatthias Clasen <mclasen@redhat.com>
Mon, 19 Jun 2023 15:47:59 +0000 (11:47 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 19 Jun 2023 16:38:51 +0000 (12:38 -0400)
These functions rely on self->accessible_role
being set, and that is only the case for realized
contexts.

In practice, this is not a problem. Contexts are
realized before ATs can get their names or descriptions,
and the inspector realizes contexts too, nowadays.

The only place where this caused a hickup is the
testsuite.

gtk/gtkatcontext.c

index 6e1703f9b509b6099c76654220f8ab1e13420f41..e033585338429a131dc5a60b2a32f02ff6c325c3 100644 (file)
@@ -1229,6 +1229,8 @@ gtk_at_context_get_text_accumulate (GtkATContext          *self,
 {
   GtkAccessibleValue *value = NULL;
 
+  g_warn_if_fail (self->realized);
+
   /* Step 2.A */
   if (!is_ref)
     {
@@ -1377,6 +1379,8 @@ gtk_at_context_get_text (GtkATContext          *self,
 {
   GtkATContext *parent = NULL;
 
+  g_warn_if_fail (self->realized);
+
   /* Step 1 */
   if (gtk_accessible_role_get_naming (self->accessible_role) == GTK_ACCESSIBLE_NAME_PROHIBITED)
     return g_strdup ("");