From 0ad1e59165c37a90f988fc5fb591cec018dea71a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?0x=CF=84ensor?= Date: Thu, 14 May 2026 12:53:31 -0700 Subject: [PATCH] fix(a11y): add skip-link and aria-current="page" to application layout (#1781) * fix(a11y): add skip-link and aria-current="page" to application layout * test(a11y): cover application layout skip-link and #main anchor * fix(a11y): extend skip-link and #main anchor to settings layout --- app/views/layouts/application.html.erb | 5 +++- app/views/layouts/settings.html.erb | 5 +++- app/views/layouts/shared/_nav_item.html.erb | 2 +- config/locales/views/layout/ca.yml | 1 + config/locales/views/layout/de.yml | 1 + config/locales/views/layout/en.yml | 1 + config/locales/views/layout/es.yml | 1 + config/locales/views/layout/fr.yml | 1 + config/locales/views/layout/hu.yml | 1 + config/locales/views/layout/nb.yml | 1 + config/locales/views/layout/nl.yml | 1 + config/locales/views/layout/pl.yml | 1 + config/locales/views/layout/pt-BR.yml | 1 + config/locales/views/layout/ro.yml | 1 + config/locales/views/layout/tr.yml | 1 + config/locales/views/layout/zh-CN.yml | 1 + config/locales/views/layout/zh-TW.yml | 1 + test/integration/layout_accessibility_test.rb | 27 +++++++++++++++++++ .../layouts/shared/nav_item_view_test.rb | 27 +++++++++++++++++++ 19 files changed, 77 insertions(+), 3 deletions(-) create mode 100644 test/integration/layout_accessibility_test.rb create mode 100644 test/views/layouts/shared/nav_item_view_test.rb diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 50174161d..3933020b1 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -26,6 +26,9 @@ end %> data-app-layout-expanded-sidebar-class="<%= expanded_sidebar_class %>" data-app-layout-collapsed-sidebar-class="<%= collapsed_sidebar_class %>" data-app-layout-user-id-value="<%= Current.user.id %>"> + <%= link_to t("layouts.application.skip_to_main"), "#main", + class: "sr-only focus:not-sr-only focus:fixed focus:top-2 focus:left-2 focus:z-50 focus:px-3 focus:py-2 focus:rounded-lg focus:bg-container focus:text-primary focus:shadow-border-xs" %> +