From 68d2e9c06849828d239d2b2f41e09f9ee4588de0 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Thu, 22 Feb 2024 13:19:48 +0000 Subject: [PATCH 1/2] a11y: Add "terminal" role Not in the WAI-ARIA spec, but UI toolkits have terminal widgets. --- gtk/gtkaccessible.c | 2 ++ gtk/gtkenums.h | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gtk/gtkaccessible.c b/gtk/gtkaccessible.c index 2bac2ce960..e817439caa 100644 --- a/gtk/gtkaccessible.c +++ b/gtk/gtkaccessible.c @@ -871,6 +871,7 @@ static const char *role_names[] = { [GTK_ACCESSIBLE_ROLE_BLOCK_QUOTE] = NC_("accessibility", "block quote"), [GTK_ACCESSIBLE_ROLE_ARTICLE] = NC_("accessibility", "article"), [GTK_ACCESSIBLE_ROLE_COMMENT] = NC_("accessibility", "comment"), + [GTK_ACCESSIBLE_ROLE_TERMINAL] = NC_("accessibility", "terminal"), }; /*< private > @@ -989,6 +990,7 @@ static struct { { GTK_ACCESSIBLE_ROLE_DIALOG, GTK_ACCESSIBLE_ROLE_ALERT_DIALOG }, { GTK_ACCESSIBLE_ROLE_DOCUMENT, GTK_ACCESSIBLE_ROLE_ARTICLE }, { GTK_ACCESSIBLE_ROLE_ARTICLE, GTK_ACCESSIBLE_ROLE_COMMENT }, + { GTK_ACCESSIBLE_ROLE_TERMINAL, GTK_ACCESSIBLE_ROLE_WIDGET }, }; gboolean diff --git a/gtk/gtkenums.h b/gtk/gtkenums.h index d1d7893bda..7d96b16f72 100644 --- a/gtk/gtkenums.h +++ b/gtk/gtkenums.h @@ -1432,6 +1432,13 @@ typedef enum { * Since: 4.14 */ +/** + * GTK_ACCESSIBLE_ROLE_TERMINAL: + * + * A virtual terminal. + * + * Since: 4.14 + */ typedef enum { GTK_ACCESSIBLE_ROLE_ALERT, GTK_ACCESSIBLE_ROLE_ALERT_DIALOG, @@ -1516,7 +1523,8 @@ typedef enum { GTK_ACCESSIBLE_ROLE_PARAGRAPH GDK_AVAILABLE_ENUMERATOR_IN_4_14, GTK_ACCESSIBLE_ROLE_BLOCK_QUOTE GDK_AVAILABLE_ENUMERATOR_IN_4_14, GTK_ACCESSIBLE_ROLE_ARTICLE GDK_AVAILABLE_ENUMERATOR_IN_4_14, - GTK_ACCESSIBLE_ROLE_COMMENT GDK_AVAILABLE_ENUMERATOR_IN_4_14 + GTK_ACCESSIBLE_ROLE_COMMENT GDK_AVAILABLE_ENUMERATOR_IN_4_14, + GTK_ACCESSIBLE_ROLE_TERMINAL GDK_AVAILABLE_ENUMERATOR_IN_4_14 } GtkAccessibleRole; /** From 9a05af61e8472556d0ce86618b71090170363b9d Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Thu, 22 Feb 2024 13:20:24 +0000 Subject: [PATCH 2/2] a11y: Map GTK terminal role to AT-SPI AT-SPI has a terminal role for virtual terminals. Fixes: #6462 --- gtk/a11y/gtkatspiutils.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gtk/a11y/gtkatspiutils.c b/gtk/a11y/gtkatspiutils.c index 1d2a91a376..65a4fad0a8 100644 --- a/gtk/a11y/gtkatspiutils.c +++ b/gtk/a11y/gtkatspiutils.c @@ -291,6 +291,9 @@ gtk_accessible_role_to_atspi_role (GtkAccessibleRole role) case GTK_ACCESSIBLE_ROLE_TOGGLE_BUTTON: return ATSPI_ROLE_TOGGLE_BUTTON; + case GTK_ACCESSIBLE_ROLE_TERMINAL: + return ATSPI_ROLE_TERMINAL; + default: break; }