Feat/3.5 keyboard navigation#10
Merged
Merged
Conversation
- Add FR/EN language switcher buttons to base.html nav (trans() i18n) - Add Escape key handler and focus management to mobile.js filter panel - Fix compare.html: skip link, nav aria-label, main landmark, dynamic lang - Add lang_nav_label, lang_switch_fr, lang_switch_en i18n keys (EN+FR) - All axe-core checks pass (0 violations on 4 pages) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Replace aria-current with aria-pressed on language toggle buttons - Replace nested <nav> language-switcher with <div role=group> - Update aria-labels to language names (Français/English) + aria-pressed for state - Remove redundant role=main on <main> element in base.html - Add lang.js to compare.html for auto-injected language switcher (H2) - Fix lang.js createLanguageSwitcher to use role=group + aria-pressed - Replace inline onclick with event listener on share button in compare.html - Add lang_fr_label + lang_en_label i18n keys to zola.toml (EN+FR) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
trotro
commented
Mar 15, 2026
Co-authored-by: nicolas Trauwaen <trotro@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements Story 3.5 – Keyboard Navigation for All Features and includes the follow-up fixes from code review.
The goal is to ensure the main user flows are fully usable with a keyboard, with consistent accessibility semantics across both Zola templates and the standalone comparison page.
Changes
templates/base.htmlaria-pressed<nav>with a grouped control (role="group")role="main"from<main>static/mobile.jsEscapesupport to close the mobile filter panelstatic/compare.htmlaria-labelto the navigation landmark<main id="main-content" tabindex="-1">lang.jsso the language switcher is also available on this pageonclickon the share button with an event listenerstatic/lang.jsrole="group",aria-pressed)zola.tomlCode Review Follow-ups Included
This PR also addresses the issues raised during review:
aria-currentwitharia-pressedfor language toggle buttonscompare.htmlValidation
mise run buildmise run checkmise run a11yResult: 0 axe-core violations on the 4 checked pages.
BMM Tracking
_bmad-output/implementation-artifacts/3-5-keyboard-navigation-for-all-features.md3-5-keyboard-navigation-for-all-features→done