From 3e6c6a6f5a682c34d785ec08ced3b0ebefab12c2 Mon Sep 17 00:00:00 2001 From: Dave Iverson Date: Fri, 2 May 2025 15:33:17 -0500 Subject: [PATCH] Added a label to the index table's "actions" columns The "actions" columns in the collection table did not have any text in the column header cells. This was fine visually because it's a common pattern to use the final cells for action buttons. But people using a screen readers may not have this visual context. By adding a title of "Actions" to the column, this title is now announced by screen readers when moving into that column. --- .../_collection_header_actions.html.erb | 11 ++++++++--- config/locales/administrate.ar.yml | 2 ++ config/locales/administrate.bs.yml | 2 ++ config/locales/administrate.ca.yml | 2 ++ config/locales/administrate.da.yml | 2 ++ config/locales/administrate.de.yml | 2 ++ config/locales/administrate.en.yml | 2 ++ config/locales/administrate.es.yml | 2 ++ config/locales/administrate.fi.yml | 2 ++ config/locales/administrate.fr.yml | 2 ++ config/locales/administrate.id.yml | 2 ++ config/locales/administrate.it.yml | 2 ++ config/locales/administrate.ja.yml | 2 ++ config/locales/administrate.ko.yml | 2 ++ config/locales/administrate.nl.yml | 2 ++ config/locales/administrate.pl.yml | 2 ++ config/locales/administrate.pt-BR.yml | 2 ++ config/locales/administrate.pt.yml | 2 ++ config/locales/administrate.ru.yml | 2 ++ config/locales/administrate.sl.yml | 2 ++ config/locales/administrate.sq.yml | 2 ++ config/locales/administrate.sv.yml | 2 ++ config/locales/administrate.tr.yml | 2 ++ config/locales/administrate.uk.yml | 2 ++ config/locales/administrate.vi.yml | 2 ++ config/locales/administrate.zh-CN.yml | 2 ++ config/locales/administrate.zh-TW.yml | 4 +++- .../_collection_header_actions.html.erb | 17 ++++++++++------- spec/features/index_page_spec.rb | 8 ++++++++ 29 files changed, 79 insertions(+), 11 deletions(-) diff --git a/app/views/administrate/application/_collection_header_actions.html.erb b/app/views/administrate/application/_collection_header_actions.html.erb index fa3b5870ad..1a5326f9d2 100644 --- a/app/views/administrate/application/_collection_header_actions.html.erb +++ b/app/views/administrate/application/_collection_header_actions.html.erb @@ -1,4 +1,9 @@ -<% [existing_action?(collection_presenter.resource_name, :edit), - existing_action?(collection_presenter.resource_name, :destroy)].count(true).times do %> - +<% colspan = [ + existing_action?(collection_presenter.resource_name, :edit), + existing_action?(collection_presenter.resource_name, :destroy), +].count(true) +%> + +<% if colspan > 0 %> +<%= t("administrate.table.actions") %> <% end %> diff --git a/config/locales/administrate.ar.yml b/config/locales/administrate.ar.yml index 0029c96914..bd8c1ed30f 100644 --- a/config/locales/administrate.ar.yml +++ b/config/locales/administrate.ar.yml @@ -28,3 +28,5 @@ ar: search: clear: مسح البحث label: بحث %{resource} + table: + actions: العمليات diff --git a/config/locales/administrate.bs.yml b/config/locales/administrate.bs.yml index c579f32895..ab49d5fdce 100644 --- a/config/locales/administrate.bs.yml +++ b/config/locales/administrate.bs.yml @@ -27,3 +27,5 @@ bs: search: clear: Izbriši pretraživanje label: Pretraga %{resource} + table: + actions: Akcije diff --git a/config/locales/administrate.ca.yml b/config/locales/administrate.ca.yml index d6118cc316..225a6d4860 100644 --- a/config/locales/administrate.ca.yml +++ b/config/locales/administrate.ca.yml @@ -28,3 +28,5 @@ ca: search: clear: Esborrar la cerca label: Cerca %{resource} + table: + actions: Accions diff --git a/config/locales/administrate.da.yml b/config/locales/administrate.da.yml index 3d49313204..de60ba24e2 100644 --- a/config/locales/administrate.da.yml +++ b/config/locales/administrate.da.yml @@ -28,3 +28,5 @@ da: search: clear: Ryd søgning label: Søg %{resource} + table: + actions: Handlinger diff --git a/config/locales/administrate.de.yml b/config/locales/administrate.de.yml index bbb92745b7..08264e4b15 100644 --- a/config/locales/administrate.de.yml +++ b/config/locales/administrate.de.yml @@ -28,3 +28,5 @@ de: search: clear: Suche zurücksetzen label: "%{resource} durchsuchen" + table: + actions: Aktionen diff --git a/config/locales/administrate.en.yml b/config/locales/administrate.en.yml index 13c977b929..b3020a033b 100644 --- a/config/locales/administrate.en.yml +++ b/config/locales/administrate.en.yml @@ -28,3 +28,5 @@ en: search: clear: Clear search label: Search %{resource} + table: + actions: Actions diff --git a/config/locales/administrate.es.yml b/config/locales/administrate.es.yml index d18727c58d..2b415fb9cc 100644 --- a/config/locales/administrate.es.yml +++ b/config/locales/administrate.es.yml @@ -28,3 +28,5 @@ es: search: clear: Borrar búsqueda label: Buscar %{resource} + table: + actions: Acciones diff --git a/config/locales/administrate.fi.yml b/config/locales/administrate.fi.yml index cac1ca72ae..488f3e33d5 100644 --- a/config/locales/administrate.fi.yml +++ b/config/locales/administrate.fi.yml @@ -28,3 +28,5 @@ fi: search: clear: Tyhjennä haku label: Etsi %{resource} + table: + actions: Toiminnot diff --git a/config/locales/administrate.fr.yml b/config/locales/administrate.fr.yml index 5d8fcdb664..d6c6f4efc0 100644 --- a/config/locales/administrate.fr.yml +++ b/config/locales/administrate.fr.yml @@ -28,3 +28,5 @@ fr: search: clear: Effacer la recherche label: Chercher %{resource} + table: + actions: Actions diff --git a/config/locales/administrate.id.yml b/config/locales/administrate.id.yml index 4af971368d..b1aaa48e5f 100644 --- a/config/locales/administrate.id.yml +++ b/config/locales/administrate.id.yml @@ -28,3 +28,5 @@ id: search: clear: Kosongkan pencarian label: Cari %{resource} + table: + actions: Aksi diff --git a/config/locales/administrate.it.yml b/config/locales/administrate.it.yml index 0aaec73282..bd2d16356d 100644 --- a/config/locales/administrate.it.yml +++ b/config/locales/administrate.it.yml @@ -28,3 +28,5 @@ it: search: clear: Cancella ricerca label: Ricerca %{resource} + table: + actions: Azioni diff --git a/config/locales/administrate.ja.yml b/config/locales/administrate.ja.yml index 3120adc95c..807125381d 100644 --- a/config/locales/administrate.ja.yml +++ b/config/locales/administrate.ja.yml @@ -28,3 +28,5 @@ ja: search: clear: 検索をクリアする label: "%{resource}を検索" + table: + actions: 操作 diff --git a/config/locales/administrate.ko.yml b/config/locales/administrate.ko.yml index cfc28fbc98..6e6c05a661 100644 --- a/config/locales/administrate.ko.yml +++ b/config/locales/administrate.ko.yml @@ -28,3 +28,5 @@ ko: search: clear: 검색 초기화 label: "%{resource} 검색" + table: + actions: 작업 diff --git a/config/locales/administrate.nl.yml b/config/locales/administrate.nl.yml index b019e44d1e..362300e4cb 100644 --- a/config/locales/administrate.nl.yml +++ b/config/locales/administrate.nl.yml @@ -28,3 +28,5 @@ nl: search: clear: Wissen label: Zoeken %{resource} + table: + actions: Acties diff --git a/config/locales/administrate.pl.yml b/config/locales/administrate.pl.yml index 5d69230f03..38c3dca830 100644 --- a/config/locales/administrate.pl.yml +++ b/config/locales/administrate.pl.yml @@ -28,3 +28,5 @@ pl: search: clear: Wyczyść wyszukiwanie label: Szukanie %{resource} + table: + actions: Akcje diff --git a/config/locales/administrate.pt-BR.yml b/config/locales/administrate.pt-BR.yml index 1b20148fcd..6e7c3bfac8 100644 --- a/config/locales/administrate.pt-BR.yml +++ b/config/locales/administrate.pt-BR.yml @@ -29,3 +29,5 @@ pt-BR: search: clear: Limpar pesquisa label: Pesquisa %{resource} + table: + actions: Ações diff --git a/config/locales/administrate.pt.yml b/config/locales/administrate.pt.yml index eab5ab5092..e2d231d5cc 100644 --- a/config/locales/administrate.pt.yml +++ b/config/locales/administrate.pt.yml @@ -29,3 +29,5 @@ pt: search: clear: Limpar pesquisa label: Pesquisa %{resource} + table: + actions: Ações diff --git a/config/locales/administrate.ru.yml b/config/locales/administrate.ru.yml index 64d7682012..18cf4d58d9 100644 --- a/config/locales/administrate.ru.yml +++ b/config/locales/administrate.ru.yml @@ -28,3 +28,5 @@ ru: search: clear: Очистить поиск label: Поиск %{resource} + table: + actions: Действия diff --git a/config/locales/administrate.sl.yml b/config/locales/administrate.sl.yml index 6fda4af870..22fd100a9f 100644 --- a/config/locales/administrate.sl.yml +++ b/config/locales/administrate.sl.yml @@ -28,3 +28,5 @@ sl: search: clear: Počisti iskanje label: Išči %{resource} + table: + actions: Dejanja diff --git a/config/locales/administrate.sq.yml b/config/locales/administrate.sq.yml index 6139d10e7a..4bb5544ba5 100644 --- a/config/locales/administrate.sq.yml +++ b/config/locales/administrate.sq.yml @@ -28,3 +28,5 @@ sq: search: clear: Pastro kërkimin label: Kërko %{resource} + table: + actions: Veprime diff --git a/config/locales/administrate.sv.yml b/config/locales/administrate.sv.yml index fc34bced4a..0482a8e045 100644 --- a/config/locales/administrate.sv.yml +++ b/config/locales/administrate.sv.yml @@ -28,3 +28,5 @@ sv: search: clear: Rensa sökningen label: Sök %{resource} + table: + actions: Åtgärder diff --git a/config/locales/administrate.tr.yml b/config/locales/administrate.tr.yml index 249963e572..882ce906e9 100644 --- a/config/locales/administrate.tr.yml +++ b/config/locales/administrate.tr.yml @@ -28,3 +28,5 @@ tr: search: clear: Temizle label: "%{resource} içerisinde ara" + table: + actions: İşlemler diff --git a/config/locales/administrate.uk.yml b/config/locales/administrate.uk.yml index a2eeb024aa..a711abbcd1 100644 --- a/config/locales/administrate.uk.yml +++ b/config/locales/administrate.uk.yml @@ -28,3 +28,5 @@ uk: search: clear: Очистити пошук label: пошук %{resource} + table: + actions: Дії diff --git a/config/locales/administrate.vi.yml b/config/locales/administrate.vi.yml index f17b4eb6eb..4b15548ab6 100644 --- a/config/locales/administrate.vi.yml +++ b/config/locales/administrate.vi.yml @@ -28,3 +28,5 @@ vi: search: clear: Tìm kiếm rõ ràng label: Tìm kiếm %{resource} + table: + actions: Hành động diff --git a/config/locales/administrate.zh-CN.yml b/config/locales/administrate.zh-CN.yml index 7d2fa18f65..7d82059c8a 100644 --- a/config/locales/administrate.zh-CN.yml +++ b/config/locales/administrate.zh-CN.yml @@ -28,3 +28,5 @@ zh-CN: search: clear: 清除搜索 label: 搜索 %{resource} + table: + actions: 操作 diff --git a/config/locales/administrate.zh-TW.yml b/config/locales/administrate.zh-TW.yml index 4a97b4b26d..ac8c902af8 100644 --- a/config/locales/administrate.zh-TW.yml +++ b/config/locales/administrate.zh-TW.yml @@ -27,4 +27,6 @@ zh-TW: back_to_app: 返回首頁 search: clear: 清除搜尋 - label: 搜尋 %{resource} + label: 搜尋 %{resource} + table: + actions: 操作 diff --git a/spec/example_app/app/views/admin/customers/_collection_header_actions.html.erb b/spec/example_app/app/views/admin/customers/_collection_header_actions.html.erb index 82da1bb0ac..541d4c4d51 100644 --- a/spec/example_app/app/views/admin/customers/_collection_header_actions.html.erb +++ b/spec/example_app/app/views/admin/customers/_collection_header_actions.html.erb @@ -1,8 +1,11 @@ -<% - [ - existing_action?(collection_presenter.resource_name, :edit), - existing_action?(collection_presenter.resource_name, :destroy), - resources.klass == Customer, # "Become" action - ].count(true).times do %> - +<% colspan = [ + existing_action?(collection_presenter.resource_name, :edit), + existing_action?(collection_presenter.resource_name, :destroy), + # "Become" action + resources.klass == Customer +].count(true) +%> + +<% if colspan > 0 %> +<%= t("administrate.table.actions") %> <% end %> diff --git a/spec/features/index_page_spec.rb b/spec/features/index_page_spec.rb index 7e0986f33a..4a50da86be 100644 --- a/spec/features/index_page_spec.rb +++ b/spec/features/index_page_spec.rb @@ -11,6 +11,14 @@ expect(page).to have_content(customer.email) end + it "displays table headers" do + visit admin_customers_path + + expect(page).to have_table_header("Name") + expect(page).to have_table_header("Email") + expect(page).to have_table_header("Actions") + end + it "adds resource/attribute name to table headers" do visit admin_customers_path