From 96b62de6c52e0fe951d02d1e567cd1539bd892fc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 23 Apr 2026 21:39:59 +0000 Subject: [PATCH 1/3] Initial plan From f1439a740480b9b3e9198a7183baa4adfcb9ff23 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 23 Apr 2026 21:45:49 +0000 Subject: [PATCH 2/3] Add ACCESSIBILITY-REVIEW-PLAN.md and ACCESSIBILITY-GITHUB-PROJECT-PLAN.md Agent-Logs-Url: https://github.com/az-digital/az_quickstart/sessions/388d36cd-bce9-4b55-93f5-5b0a4da60aa1 Co-authored-by: accesswatch <70671938+accesswatch@users.noreply.github.com> --- ACCESSIBILITY-GITHUB-PROJECT-PLAN.md | 477 ++++++++++++++++++++++++++ ACCESSIBILITY-REVIEW-PLAN.md | 489 +++++++++++++++++++++++++++ 2 files changed, 966 insertions(+) create mode 100644 ACCESSIBILITY-GITHUB-PROJECT-PLAN.md create mode 100644 ACCESSIBILITY-REVIEW-PLAN.md diff --git a/ACCESSIBILITY-GITHUB-PROJECT-PLAN.md b/ACCESSIBILITY-GITHUB-PROJECT-PLAN.md new file mode 100644 index 0000000000..bcebd40ce5 --- /dev/null +++ b/ACCESSIBILITY-GITHUB-PROJECT-PLAN.md @@ -0,0 +1,477 @@ +# Accessibility GitHub Project Plan: az_quickstart WCAG 2.2 AA + +## Purpose + +This document defines the phased delivery structure, issue taxonomy, and +GitHub project organization for the az_quickstart accessibility program. It +translates the findings documented in `ACCESSIBILITY-REVIEW-PLAN.md` into +actionable, sequenced work. + +--- + +## Program overview + +| Attribute | Value | +|-----------|-------| +| Standard targeted | WCAG 2.2 Level AA | +| Primary user benefit | Keyboard and screen reader access to core user journeys | +| Release risk approach | Phase by impact; guard against regression in CI | +| Source of truth | `ACCESSIBILITY-REVIEW-PLAN.md` (findings) + this file (delivery) | + +--- + +## Phase structure + +### Phase 0 — Accessibility guardrails and verification setup + +**Goal:** Establish baseline measurement and CI guardrails before any +functional changes are made. Without a baseline it is impossible to verify +that later fixes work or to detect regressions in future releases. + +**Deliverables:** + +- [ ] Configure an automated axe scan step in CI (`ci.yml`) that runs against + the demo site installed in the `install` job, targeting the verification + matrix pages defined in `ACCESSIBILITY-REVIEW-PLAN.md`. +- [ ] Capture and commit baseline axe scan output so regressions become + detectable. +- [ ] Document the manual testing procedure (keyboard walk-through steps and + screen reader pairings) as a reusable checklist for PR reviews. +- [ ] Confirm the answers to the four open questions in + `ACCESSIBILITY-REVIEW-PLAN.md` with the team before Phase 1 work begins. + +**Exit criteria:** +Automated axe scan runs on every PR without blocking merges (informational +mode). Team has agreed answers to the four open questions. + +--- + +### Phase 1 — Global user experience blockers + +**Goal:** Fix the highest-impact, most broadly felt barriers first. Every page +in the site is affected by at least one Phase 1 item. + +**Deliverables:** + +#### 1.1 Fix broken skip-to-main-content link + +**Source finding:** ACCESSIBILITY-REVIEW-PLAN.md §1 + +**WCAG SC:** 2.4.1 Bypass Blocks (Level A) + +**Files to change:** +- `themes/custom/az_barrio/templates/layout/page.html.twig` + +**Change:** Add `id="content"` to the `
` element so the skip link +`href="#content"` in `html.html.twig` resolves correctly. + +```twig +{# Before #} + + +{# After #} +
+``` + +**Acceptance test:** Activate the skip link (Tab to it, press Enter). Focus +must move to the `
` element and the page must scroll to main content. + +--- + +#### 1.2 Fix pager: `aria-labelledby` and `aria-current` + +**Source finding:** ACCESSIBILITY-REVIEW-PLAN.md §5 + +**WCAG SC:** 1.3.1 Info and Relationships (Level A); 2.4.6 Headings and Labels +(Level AA) + +**Files to change:** +- `themes/custom/az_barrio/templates/navigation/pager.html.twig` + +**Changes:** +1. Replace `aria-label="{{ heading_id }}"` with + `aria-labelledby="{{ heading_id }}"` on the `