From d7a72493ae2ef637ddfb58190c0863abcd02e167 Mon Sep 17 00:00:00 2001 From: Michael Weghorn Date: Tue, 14 Nov 2023 12:14:26 +0100 Subject: [PATCH] a11y atspi: Map GTK_ACCESSIBLE_RELATION_{COL,ROW}_INDEX_TEXT to AT-SPI Map GTK_ACCESSIBLE_RELATION_COL_INDEX_TEXT and GTK_ACCESSIBLE_RELATION_ROW_INDEX_TEXT to the corresponding AT-SPI object attributes "colindextext" and "rowindextext", as it is specified e.g. in the Core Accessibility Mappings 1.2 for the corresponding attributes [1] [2]. Orca makes use of these object attributes in web browsers and since recently also for LibreOffice [3] and is planning to use that more globally. [1] https://www.w3.org/TR/core-aam-1.2/#ariaColIndexText [2] https://www.w3.org/TR/core-aam-1.2/#ariaRowIndexText [3] https://gitlab.gnome.org/GNOME/orca/-/commit/3c056cd7b58aa2cb1b3342c87d052704ef32fa24 --- gtk/a11y/gtkatspicontext.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gtk/a11y/gtkatspicontext.c b/gtk/a11y/gtkatspicontext.c index cf64b80b561..09fbc34cf41 100644 --- a/gtk/a11y/gtkatspicontext.c +++ b/gtk/a11y/gtkatspicontext.c @@ -538,6 +538,24 @@ handle_accessible_method (GDBusConnection *connection, "placeholder-text", gtk_string_accessible_value_get (value)); } + if (gtk_at_context_has_accessible_relation (GTK_AT_CONTEXT (self), GTK_ACCESSIBLE_RELATION_COL_INDEX_TEXT)) + { + GtkAccessibleValue *value = gtk_at_context_get_accessible_relation (GTK_AT_CONTEXT (self), + GTK_ACCESSIBLE_RELATION_COL_INDEX_TEXT); + + g_variant_builder_add (&builder, "{ss}", + "colindextext", gtk_string_accessible_value_get (value)); + } + + if (gtk_at_context_has_accessible_relation (GTK_AT_CONTEXT (self), GTK_ACCESSIBLE_RELATION_ROW_INDEX_TEXT)) + { + GtkAccessibleValue *value = gtk_at_context_get_accessible_relation (GTK_AT_CONTEXT (self), + GTK_ACCESSIBLE_RELATION_ROW_INDEX_TEXT); + + g_variant_builder_add (&builder, "{ss}", + "rowindextext", gtk_string_accessible_value_get (value)); + } + g_variant_builder_close (&builder); g_dbus_method_invocation_return_value (invocation, g_variant_builder_end (&builder)); -- GitLab