feat(a11y): WCAG 2.1 AA / EN 301 549 accessibility remediation #65
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/wcag-aa-accessibility"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The site had no skip-link, suppressed focus outlines on interactive elements, used fla
g emoji as the sole language-switcher affordance, and linked external content without
screen-reader notice or
rel=noopener— enough combined failures to block WCAG 2.1 AAconformance.
This remediation addresses the full set. A dedicated
$brand-color-accessibletoken (#8f5200, ~6.2:1 on white) replaces the previous brand amber for all link and interacti
ve text, satisfying the 4.5:1 minimum. A skip-link component (WCAG 2.4.1) is wired int
o both layouts and rendered off-screen until focused. Scroll animations and card hover
transitions are wrapped in
prefers-reduced-motion(WCAG 2.3.3). Every layout, header, sidebar, footer, and contact include gains correct
aria-hiddenon decorative icons,
aria-labelon icon-only controls,role=region/aria-live=politeon the live-search region, and
rel=noopenerplus visually-hidden new-tab notices on alltarget= _blanklinks. Thehtmlelement now correctly derives itslangattribute fromsit e.langwith asite.localefallback. Language-switcher links carry matchinglangand
hreflangattributes.A new bilingual accessibility statement (
/dichiarazione-accessibilita///accessibi lity-statement/) documents partial-conformance status, known residual limitations, the feedback contact, and the self-assessment date. All user-visible strings are in
en. yml/it.ymlso the page inherits the standard i18n pipeline.Layouts (default.html, simple.html): - Fix lang attribute to use site.lang with site.locale fallback, ensuring the html element correctly declares the page language for screen readers. - Insert skip-link anchor before sidebar/header (WCAG 2.4.1). - Add id="main-content" to <main> as the skip-link target (WCAG 2.4.1). Header / sidebar (header.html, sidebar.html): - Wrap flag emoji in aria-hidden span; add visible text label and correct hreflang + lang attributes to the language-switcher links (WCAG 1.3.1, 3.1.2, 2.4.4). - Add aria-hidden to decorative search icon. - Add role=region, aria-live=polite, aria-label to the live search results container (WCAG 4.1.3). Footer (footer.html): - Add noopener to every target=_blank link (security + WCAG best practice). - Add aria-hidden to decorative icons already covered by aria-label. - Add visually-hidden new-tab notices on the source-code link. - Add accessibility statement link alongside privacy-policy link. Contact includes (contact-cta.html, contacts.html): - Add noopener and visually-hidden new-tab notices to all external CTAs. - Add aria-hidden to decorative icons. Pages (about-us.html, news.html): - Replace title-only icon links with aria-label equivalents and aria-hidden icons; add noopener to all target=_blank social links. - Add noopener + new-tab notice to Telegram CTA. New page (src/_pages/accessibility.html): - Jekyll page with layout=default rendering the accessibility.* i18n section. - Bilingual (it: /dichiarazione-accessibilita/, en: /accessibility-statement/). - Documents WCAG 2.1 AA partial-conformance status, known limitations, feedback contact, and self-assessment preparation date (2025-05-30).