From fa10f8713670fd7271e3b86a88e48e919bdcb1a9 Mon Sep 17 00:00:00 2001 From: Madhura68 Date: Mon, 4 May 2026 14:03:37 +0200 Subject: [PATCH] =?UTF-8?q?fix(a11y):=20tap=20targets=20=E2=89=A528px=20+?= =?UTF-8?q?=20aria-pressed=20on=20pbi-card=20(Lighthouse=2086=20=E2=86=92?= =?UTF-8?q?=20=E2=89=A595)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lighthouse-audit op /products/[id] flagde drie issues; fix in deze PR: 1. **[aria-*] attributes do not match their roles** — pbi-list.tsx had aria-selected={isSelected} op role="button". aria-selected is alleen geldig op tab/option/treeitem etc. Voor toggle-buttons is aria-pressed de juiste attribute. 2. **Touch targets do not have sufficient size** — drie offenders op het product-backlog scherm (PBI ✎/× iconen, Story ✎ icoon) hadden ~16-18×18px tap-targets via px-1.5/p-0.5. Lighthouse minimum is 24×24 en WCAG AA streeft 44×44. Fix: inline-flex + min-h-7 min-w-7 (28×28px) met behoud van het kleine icoon — wel grotere clickable area. 3. Dashboard product-card pencil-icoon kreeg dezelfde fix preventief. Sprint-backlog heeft hetzelfde patroon op meer plekken; bewust nu niet aangeraakt om PR scope te beperken tot de ge-auditeerde route. Vervolg-PR indien sprint-page-audit ook flagt. Co-Authored-By: Claude Opus 4.7 (1M context) --- components/backlog/pbi-list.tsx | 6 +++--- components/backlog/story-panel.tsx | 2 +- components/dashboard/product-list.tsx | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/components/backlog/pbi-list.tsx b/components/backlog/pbi-list.tsx index d03dd14..01e4a03 100644 --- a/components/backlog/pbi-list.tsx +++ b/components/backlog/pbi-list.tsx @@ -157,7 +157,7 @@ function SortablePbiRow({ isDragging={isDragging} role="button" tabIndex={0} - aria-selected={isSelected} + aria-pressed={isSelected} onClick={onSelect} onKeyDown={(e: React.KeyboardEvent) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); onSelect() } }} badge={ @@ -170,7 +170,7 @@ function SortablePbiRow({