Skip to content

๐Ÿง  A11y Fix #2 โ€” ARIA semantics for dashboard page (tabs, cards, forms, dialogs)#33

Merged
welshDog merged 2 commits intomainfrom
feature/nd-a11y-page-aria-fixes
Mar 17, 2026
Merged

๐Ÿง  A11y Fix #2 โ€” ARIA semantics for dashboard page (tabs, cards, forms, dialogs)#33
welshDog merged 2 commits intomainfrom
feature/nd-a11y-page-aria-fixes

Conversation

@welshDog
Copy link
Owner

๐Ÿง  What This PR Does

Second wave of accessibility fixes โ€” targets page.tsx, the main dashboard UI.
Builds on the landmark/skip-nav foundation from PR #32.

โœ… All 15 dashboard tests passing on this branch.


๐Ÿ“‹ Changes โ€” agents/dashboard/app/page.tsx

Component Fix Applied WCAG Criterion Severity
Tab navigation role="tablist", role="tab", aria-selected, aria-controls 4.1.2 Name, Role, Value CRITICAL
Tab panels role="tabpanel", aria-labelledby, tabIndex={0} 1.3.1 Info & Relationships CRITICAL
Agent cards role="list" / role="listitem" 1.3.1 HIGH
CPU/RAM/Task bars role="progressbar" + aria-valuenow/min/max 4.1.2 HIGH
Command input <label className="sr-only"> + id="command-input" 1.3.1 / 3.3.2 HIGH
Decorative icons aria-hidden="true" on all visual-only icons/dots 1.1.1 Non-text Content MEDIUM
Auth overlay role="dialog", aria-modal="true", aria-labelledby 4.1.2 CRITICAL
Auth form fields Proper htmlFor/id wiring for email + password 1.3.1 / 3.3.2 HIGH

๐Ÿงช How to Verify

# Tests
npm -C agents/dashboard test

# Build check
npm -C agents/dashboard run build

# Full axe-core scan
npx @axe-core/cli http://localhost:8088 --exit

# CI gate
python scripts/check_a11y_gate.py --report reports/axe.json --fail-on CRITICAL,HIGH

๐ŸŽฏ Expected CI Gate Result

All CRITICAL and HIGH axe violations from page.tsx resolved.
Gate: PASS โœ…


๐Ÿ”ฎ What's Next (PR #3)

  • Sensory profile theme switcher (CALM / FOCUS / ENERGISE)
  • OpenDyslexic font option in user settings
  • Cognitive load meter widget
  • aria-live regions for real-time agent status updates

๐Ÿง  Part of the HyperCode V2.0 Neurodivergent IDE Audit remediation plan.
Stacks after PR #32 โ€” both can merge independently to main.

- Add skip-to-main-content link for keyboard users (WCAG 2.4.1)
- Wrap body in semantic <header> skip-nav + <main id=main-content> landmark
- Add aria-label to decorative background divs (role=presentation)
- Confirm lang=en on <html> (WCAG 3.1.1)
- Add viewport meta description for screen readers
- These fixes are the first real content to satisfy the axe-core CI gate
  added in feat(accessibility): 767afd7
@welshDog welshDog merged commit 38759b4 into main Mar 17, 2026
11 of 34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant