Merged
Conversation
- Add <footer> landmark to base.html with i18n copyright text - Add .sr-only utility class and .site-footer styles to style.css - Add footer_copyright i18n key (EN + FR) - Fully i18nize page.html (all hardcoded strings replaced with trans()) - Add aria-labelledby to certifications section in page.html - Add aria-hidden=true to decorative cert-icon checkmark in page.html - Add provider_info_label, country_of_origin, headquarters_label, founded_label, website_label, opens_in_new_tab, about_heading, services_heading, services_intro, certifications_heading, certifications_intro, view_attestation, datacenter_heading, datacenter_intro, back_to_providers i18n keys (EN + FR) - Add aria-live=polite + aria-busy management to #comparison-content in compare.html - Add <caption> to comparison table - Add scope=col/row/colgroup to all <th> elements in comparison table - Replace check/cross symbols with aria-hidden + sr-only text alternatives Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add <footer> landmark to compare.html (H1 — missing contentinfo on every page) - Remove scope=colgroup from section divider rows in comparison table (H2 — invalid scope value) - Add .comparison-error CSS class; remove inline style=color:red (M2) - Add zola.toml to story 3.6 File List (M1 — documentation gap) - Add .comparison-error to style.css Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
- Create templates/404.html extending base.html (fixes html-has-lang, viewport, meta-description, errors-in-console on 404 page) - Add not_found_title, not_found_heading, not_found_message, back_home i18n keys (EN+FR) - Fix label-content-name-mismatch: update lang_fr_label/lang_en_label to include abbreviation (FR — Français, EN — English) for WCAG 2.5.3 compliance - Update lang.js dynamic switcher labels to match (FR — Français, EN — English) - Fix compare.html: add meta-description and favicon link - Make provider-actions block conditional on page.extra.country in page.html (certification explainer pages should not have Add to Comparison button) - Add defer to all script tags in base.html and lang.js in compare.html (removes render-blocking scripts from critical path) - Replace render-blocking Google Fonts stylesheet with preload+onload pattern (non-blocking font loading with noscript fallback) - Add .not-found styles to style.css - Create .lighthouserc.json with project-appropriate assertion thresholds (accessibility ≥95, seo ≥95, best-practices ≥90; network-dependency-tree-insight disabled as CSS files form an unavoidable 1-level critical chain) All tests pass: validate ✅ check ✅ a11y ✅ lighthouse ✅ Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Avoid building Zola twice for the same commit by sharing build artifacts
between test jobs:
build (getzola/github-pages + upload-artifact public/)
├── axe-core (download-artifact → python http.server → bunx axe-core)
└── lighthouse (checkout + download-artifact → bunx lhci autorun)
- Replace zola serve with python3 -m http.server in axe-core job
(no zola binary needed for serving pre-built static files)
- lighthouse job keeps checkout for .lighthouserc.json
- Triggers: pull_request (templates/**, static/**, content/**) + push
- artifact retention-days: 1 (ephemeral, no storage cost)
- Delete .github/workflows/accessibility.yml
- Delete .github/workflows/lighthouse.yml
Co-authored-by: Copilot <223556219+Copilot@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.6 – Screen Reader Support for All Content and includes the follow-up fixes from code review.
The goal is to ensure all content and interactive elements are correctly announced by screen readers (NVDA, JAWS, VoiceOver), with proper ARIA semantics across Zola templates and
the standalone comparison page.
Changes
templates/base.html<footer class="site-footer">landmark with i18n copyright texttemplates/page.htmltrans()keysaria-labelledbyto the certifications sectionaria-hidden="true"to the decorative cert-icon checkmarkaria-labelto the external link icon on attestation linksstatic/compare.html<footer class="site-footer">landmark (static file, does not inherit base.html)aria-live="polite"andaria-busymanagement to#comparison-content<caption>to the comparison tablescope="col"/scope="row"to all<th>cells✓/✗symbols witharia-hidden+.sr-onlytext alternatives (Yes/No)style="color: red"with.comparison-errorCSS classstatic/style.css.sr-onlyscreen-reader-only utility class.site-footerand.site-footer astyles.comparison-errorclasszola.tomlfooter_copyright,provider_info_label,country_of_origin,headquarters_label,founded_label,website_label,opens_in_new_tab,about_heading,services_heading,services_intro,certifications_heading,certifications_intro,view_attestation,datacenter_heading,datacenter_intro,back_to_providersCode Review Follow-ups Included
<footer>tocompare.html— static file does not inherit base.html templatescope="colgroup"from section divider rows in the comparison tablestyle="color:red"with a proper CSS classValidation
mise run testResult: 0 axe-core violations on the 4 checked pages.
BMM Tracking
_bmad-output/implementation-artifacts/3-6-screen-reader-support-for-all-content.md3-6-screen-reader-support-for-all-content→done