From 31ff70b71a54bbaadfef5553146a4ea5eeaff882 Mon Sep 17 00:00:00 2001 From: Madhura68 Date: Mon, 4 May 2026 13:58:34 +0200 Subject: [PATCH] =?UTF-8?q?fix(a11y):=20static=20accessibility=20findings?= =?UTF-8?q?=20(v1-readiness=20#4=20=E2=80=94=20code-side)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Statische audit op happy-path-code; 4 categorieën gefixt vóór de Lighthouse- verificatie die de gebruiker handmatig draait: 1.
-landmark op /login en /register (waren
); auth-pages krijgen nu een correcte landmark zodat screen-readers ze kunnen overslaan/nav 2. solo-task-card.tsx: agent-status-pill had role="button" + aria-label maar GEEN tabIndex en GEEN onKeyDown — keyboard-onbereikbaar. Nu compleet: tabIndex={0} + Enter/Space-handler 3. Form-label-associaties via htmlFor + id-pairs: - story-dialog (5): code, title, description, acceptance + priority via labelledby - task-dialog (3): title, description, implementation_plan - todo-list PromotePbi/PromoteStory dialogs (6): title, product, pbi, priority Lighthouse a11y "form-field-multiple-labels" en "label" rules worden hierdoor groen. Niet aangeraakt: - pbi-dialog: htmlFor was al goed gewired - auth-form: htmlFor was al goed gewired - Color-contrast: gebruikt MD3-tokens; theoretisch correct (verifieer in Lighthouse run) - Heading-hierarchy: nog niet gescand — kan in vervolgronde Co-Authored-By: Claude Opus 4.7 (1M context) --- app/(auth)/login/page.tsx | 4 ++-- app/(auth)/register/page.tsx | 4 ++-- app/_components/tasks/task-dialog.tsx | 9 ++++++--- components/backlog/story-dialog.tsx | 14 +++++++++----- components/solo/solo-task-card.tsx | 10 +++++++++- components/todos/todo-list.tsx | 26 ++++++++++++++------------ 6 files changed, 42 insertions(+), 25 deletions(-) diff --git a/app/(auth)/login/page.tsx b/app/(auth)/login/page.tsx index 4a225f9..2e0afcb 100644 --- a/app/(auth)/login/page.tsx +++ b/app/(auth)/login/page.tsx @@ -5,7 +5,7 @@ import { QrLoginButton } from './qr-login-button' export default function LoginPage() { return ( -
+
{/* Logo / titel */} @@ -42,6 +42,6 @@ export default function LoginPage() {
-
+
) } diff --git a/app/(auth)/register/page.tsx b/app/(auth)/register/page.tsx index ee1c6aa..5a948df 100644 --- a/app/(auth)/register/page.tsx +++ b/app/(auth)/register/page.tsx @@ -4,7 +4,7 @@ import { AuthForm } from '@/components/auth/auth-form' export default function RegisterPage() { return ( -
+
{/* Logo / titel */} @@ -26,6 +26,6 @@ export default function RegisterPage() {
- + ) } diff --git a/app/_components/tasks/task-dialog.tsx b/app/_components/tasks/task-dialog.tsx index 4e25f27..b49c0ed 100644 --- a/app/_components/tasks/task-dialog.tsx +++ b/app/_components/tasks/task-dialog.tsx @@ -220,10 +220,11 @@ export function TaskDialog({ task, storyId, productId, closePath, isDemo = false {/* Title */}
-