[nautilus] general: Reimplement a11y for gtk4
- From: António Fernandes <antoniof src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] general: Reimplement a11y for gtk4
- Date: Sat, 30 Jul 2022 14:44:27 +0000 (UTC)
commit 1c569b008e0ed7e896c41c43ef81554370ac85dc
Author: Corey Berla <corey berla me>
Date: Thu Jul 28 09:39:39 2022 -0700
general: Reimplement a11y for gtk4
Set the accessible role for our custom UI widgets. Misc
labelling and descriptions.
src/gtk/nautilusgtkplacessidebar.c | 6 ++++++
src/gtk/nautilusgtkplacesview.c | 1 +
src/gtk/nautilusgtkplacesview.ui | 4 ++++
src/nautilus-file-operations.c | 3 ---
src/nautilus-files-view.c | 10 ----------
src/nautilus-grid-cell.c | 2 ++
src/nautilus-query-editor.c | 2 +-
src/nautilus-toolbar.c | 2 ++
src/resources/ui/nautilus-compress-dialog.ui | 6 ++++++
src/resources/ui/nautilus-create-folder-dialog.ui | 6 +++++-
src/resources/ui/nautilus-files-view.ui | 4 ++++
src/resources/ui/nautilus-rename-file-popover.ui | 3 +++
12 files changed, 34 insertions(+), 15 deletions(-)
---
diff --git a/src/gtk/nautilusgtkplacessidebar.c b/src/gtk/nautilusgtkplacessidebar.c
index 967897769..59702bbe7 100644
--- a/src/gtk/nautilusgtkplacessidebar.c
+++ b/src/gtk/nautilusgtkplacessidebar.c
@@ -3976,6 +3976,11 @@ nautilus_gtk_places_sidebar_init (NautilusGtkPlacesSidebar *sidebar)
entries, G_N_ELEMENTS (entries),
sidebar);
gtk_widget_insert_action_group (GTK_WIDGET (sidebar), "row", sidebar->row_actions);
+
+ gtk_accessible_update_property (GTK_ACCESSIBLE (sidebar),
+ GTK_ACCESSIBLE_PROPERTY_LABEL, _("Sidebar"),
+ GTK_ACCESSIBLE_PROPERTY_DESCRIPTION,
+ _("List of common shortcuts, mountpoints, and bookmarks."), -1);
}
static void
@@ -4515,6 +4520,7 @@ nautilus_gtk_places_sidebar_class_init (NautilusGtkPlacesSidebarClass *class)
g_object_class_install_properties (gobject_class, NUM_PROPERTIES, properties);
gtk_widget_class_set_css_name (widget_class, "placessidebar");
+ gtk_widget_class_set_accessible_role (widget_class, GTK_ACCESSIBLE_ROLE_LIST);
}
/*
diff --git a/src/gtk/nautilusgtkplacesview.c b/src/gtk/nautilusgtkplacesview.c
index d841cfce9..4d470eff7 100644
--- a/src/gtk/nautilusgtkplacesview.c
+++ b/src/gtk/nautilusgtkplacesview.c
@@ -2418,6 +2418,7 @@ nautilus_gtk_places_view_class_init (NautilusGtkPlacesViewClass *klass)
gtk_widget_class_install_action (widget_class, "location.properties", NULL, properties_cb);
gtk_widget_class_set_css_name (widget_class, "placesview");
+ gtk_widget_class_set_accessible_role (widget_class, GTK_ACCESSIBLE_ROLE_LIST);
}
static void
diff --git a/src/gtk/nautilusgtkplacesview.ui b/src/gtk/nautilusgtkplacesview.ui
index d7976208d..fbedf70c5 100644
--- a/src/gtk/nautilusgtkplacesview.ui
+++ b/src/gtk/nautilusgtkplacesview.ui
@@ -154,6 +154,10 @@
</child>
</object>
<template class="NautilusGtkPlacesView" parent="GtkBox">
+ <accessibility>
+ <property name="label" translatable="yes">Other Locations</property>
+ <property name="description" translatable="yes">List of common local and remote mountpoints.</property>
+ </accessibility>
<property name="orientation">1</property>
<child>
<object class="GtkStack" id="stack">
diff --git a/src/nautilus-file-operations.c b/src/nautilus-file-operations.c
index 8f5160a97..7a216d899 100644
--- a/src/nautilus-file-operations.c
+++ b/src/nautilus-file-operations.c
@@ -3030,9 +3030,6 @@ create_empty_trash_prompt (GtkWindow *parent_window)
_("Empty _Trash"), GTK_RESPONSE_ACCEPT, NULL);
gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_ACCEPT);
gtk_window_set_title (GTK_WINDOW (dialog), "");
-#if 0 && NAUTILUS_A11Y_NEEDS_GTK4_REIMPLEMENTATION
- atk_object_set_role (gtk_widget_get_accessible (dialog), ATK_ROLE_ALERT);
-#endif
return dialog;
}
diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c
index 87af936dc..fe13d576a 100644
--- a/src/nautilus-files-view.c
+++ b/src/nautilus-files-view.c
@@ -9537,9 +9537,6 @@ nautilus_files_view_init (NautilusFilesView *view)
{
NautilusFilesViewPrivate *priv;
GtkBuilder *builder;
-#if 0 && NAUTILUS_A11Y_NEEDS_GTK4_REIMPLEMENTATION
- AtkObject *atk_object;
-#endif
NautilusDirectory *scripts_directory;
NautilusDirectory *templates_directory;
GtkEventController *controller;
@@ -9670,13 +9667,6 @@ nautilus_files_view_init (NautilusFilesView *view)
priv->in_destruction = FALSE;
-#if 0 && NAUTILUS_A11Y_NEEDS_GTK4_REIMPLEMENTATION
- /* Accessibility */
- atk_object = gtk_widget_get_accessible (GTK_WIDGET (view));
- atk_object_set_name (atk_object, _("Content View"));
- atk_object_set_description (atk_object, _("View of the current folder"));
-#endif
-
priv->view_action_group = G_ACTION_GROUP (g_simple_action_group_new ());
g_action_map_add_action_entries (G_ACTION_MAP (priv->view_action_group),
view_entries,
diff --git a/src/nautilus-grid-cell.c b/src/nautilus-grid-cell.c
index 383d85b03..0eb20e281 100644
--- a/src/nautilus-grid-cell.c
+++ b/src/nautilus-grid-cell.c
@@ -203,6 +203,8 @@ nautilus_grid_cell_class_init (NautilusGridCellClass *klass)
gtk_widget_class_bind_template_child (widget_class, NautilusGridCell, first_caption);
gtk_widget_class_bind_template_child (widget_class, NautilusGridCell, second_caption);
gtk_widget_class_bind_template_child (widget_class, NautilusGridCell, third_caption);
+
+ gtk_widget_class_set_accessible_role (widget_class, GTK_ACCESSIBLE_ROLE_GRID_CELL);
}
static void
diff --git a/src/nautilus-query-editor.c b/src/nautilus-query-editor.c
index 22561b298..b671d818f 100644
--- a/src/nautilus-query-editor.c
+++ b/src/nautilus-query-editor.c
@@ -328,7 +328,7 @@ nautilus_query_editor_class_init (NautilusQueryEditorClass *class)
gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BOX_LAYOUT);
gtk_widget_class_set_css_name (widget_class, "entry");
- gtk_widget_class_set_accessible_role (widget_class, GTK_ACCESSIBLE_ROLE_TEXT_BOX);
+ gtk_widget_class_set_accessible_role (widget_class, GTK_ACCESSIBLE_ROLE_SEARCH_BOX);
}
GFile *
diff --git a/src/nautilus-toolbar.c b/src/nautilus-toolbar.c
index 0437f25a6..6ea4c7cdc 100644
--- a/src/nautilus-toolbar.c
+++ b/src/nautilus-toolbar.c
@@ -1195,6 +1195,8 @@ nautilus_toolbar_class_init (NautilusToolbarClass *klass)
gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, search_button);
gtk_widget_class_bind_template_callback (widget_class, on_operations_popover_notify_visible);
+
+ gtk_widget_class_set_accessible_role (widget_class, GTK_ACCESSIBLE_ROLE_TOOLBAR);
}
GtkWidget *
diff --git a/src/resources/ui/nautilus-compress-dialog.ui b/src/resources/ui/nautilus-compress-dialog.ui
index 096369a55..810f72cfb 100644
--- a/src/resources/ui/nautilus-compress-dialog.ui
+++ b/src/resources/ui/nautilus-compress-dialog.ui
@@ -33,6 +33,9 @@
<property name="spacing">12</property>
<child>
<object class="GtkEntry" id="name_entry">
+ <accessibility>
+ <relation name="labelled-by">name_label</relation>
+ </accessibility>
<property name="hexpand">True</property>
<property name="width-chars">30</property>
</object>
@@ -63,6 +66,9 @@
</child>
<child>
<object class="GtkEntry" id="passphrase_entry">
+ <accessibility>
+ <relation name="labelled-by">passphrase_label</relation>
+ </accessibility>
<property name="visible">False</property>
<property name="placeholder-text" translatable="yes">Enter a password here.</property>
<property name="input-purpose">password</property>
diff --git a/src/resources/ui/nautilus-create-folder-dialog.ui
b/src/resources/ui/nautilus-create-folder-dialog.ui
index 33d7f438d..699180d56 100644
--- a/src/resources/ui/nautilus-create-folder-dialog.ui
+++ b/src/resources/ui/nautilus-create-folder-dialog.ui
@@ -21,7 +21,11 @@
</object>
</child>
<child>
- <object class="GtkEntry" id="name_entry"/>
+ <object class="GtkEntry" id="name_entry">
+ <accessibility>
+ <relation name="labelled-by">name_label</relation>
+ </accessibility>
+ </object>
</child>
<child>
<object class="GtkRevealer" id="error_revealer">
diff --git a/src/resources/ui/nautilus-files-view.ui b/src/resources/ui/nautilus-files-view.ui
index 3ccdb0b09..eab5bddbe 100644
--- a/src/resources/ui/nautilus-files-view.ui
+++ b/src/resources/ui/nautilus-files-view.ui
@@ -2,6 +2,10 @@
<interface>
<requires lib="gtk" version="4.0"/>
<template class="NautilusFilesView" parent="AdwBin">
+ <accessibility>
+ <property name="label" translatable="yes">Content View</property>
+ <property name="description" translatable="yes">View of the current folder</property>
+ </accessibility>
<child>
<object class="GtkOverlay" id="overlay">
<property name="hexpand">True</property>
diff --git a/src/resources/ui/nautilus-rename-file-popover.ui
b/src/resources/ui/nautilus-rename-file-popover.ui
index c4ab2d8e3..205a85c3d 100644
--- a/src/resources/ui/nautilus-rename-file-popover.ui
+++ b/src/resources/ui/nautilus-rename-file-popover.ui
@@ -19,6 +19,9 @@
</child>
<child>
<object class="GtkEntry" id="name_entry">
+ <accessibility>
+ <property name="label" translatable="yes">New Filename</property>
+ </accessibility>
<property name="margin-bottom">12</property>
</object>
</child>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]