feat(ui): add WCAG 2.1 AA accessibility compliance#134
Conversation
Add comprehensive accessibility improvements for visually impaired users including screen reader support, keyboard navigation, and cursor tracking. Closes #126
👍 GitRank PR AnalysisScore: 20 points
Eligibility Checks
Impact SummaryThis PR adds comprehensive WCAG 2.1 AA accessibility compliance across the UI by implementing ARIA labels, semantic HTML roles, keyboard navigation support, screen reader announcements, focus management, and reduced-motion preferences. The changes affect 11 files with 133 total lines modified, touching critical user-facing components like the sidebar, chat interface, composer, and forms. The implementation is thorough and well-documented with clear descriptions of each accessibility feature added. Analysis DetailsComponent Classification: This PR implements accessibility improvements across multiple UI components (sidebar, composer, chat, forms, etc.) rather than fixing a specific component-level bug. It's categorized as OTHER since it's a cross-cutting accessibility enhancement. Severity Justification: Classified as P2 (Medium) because while accessibility compliance is important for usability and legal/regulatory requirements, it does not cause service outages or data loss. The changes improve user experience for visually impaired users but the application remains functional without them. Eligibility Notes: Issue: True - PR explicitly closes issue #126 for accessibility compliance. Fix Implementation: True - code changes comprehensively implement all claimed accessibility features (ARIA labels, roles, keyboard support, etc.). PR Linked: True - detailed description with summary, file-by-file changes, and test plan provided. Tests: False - no test files modified. Tests Required: False - accessibility improvements to UI components do not require automated tests in the traditional sense; these are typically validated through manual testing with screen readers and keyboard navigation, which the PR includes in its test plan. Analyzed by GitRank 🤖 |
Summary
Adds comprehensive accessibility improvements for visually impaired users to achieve WCAG 2.1 AA baseline compliance. Closes #126.
aria-hidden="true"on all decorative SVG icons and lucide-react icons to prevent screen reader clutteraria-expandedon all collapsible/toggle controls (sidebar sections, advanced options, details blocks, thinking block)aria-currenton the active conversation in sidebararia-live="polite"live regions for agent status updates and chat messages (role="log")role="dialog"+aria-modalon mobile sidebar drawer with Escape key dismissrole="alertdialog"on permission request dialogsrole="status"on streaming indicators with descriptive labelsnavlandmark wrapping sidebar navigation itemsaria-busyon submit button during form submission:focus-visiblebase styleprefers-reduced-motion: reducenow disables all transitions and animations globallyFiles changed (11)
layout.tsxid="main-content"sidebar.tsxaria-label,aria-expanded,aria-current,navlandmark, mobile dialog role, Escape keycomposer.tsxaria-labelon textarea/button,role="status"live region, loader labelchat.tsxaria-labelon icon buttons,role="log"on messages areamessage.tsxaria-labelon articles,aria-expandedon details, sr-only completed text, streaming statusthinking-block.tsxaria-hiddenon SVGs,aria-expandedon details,role="region"permission-dialog.tsxrole="alertdialog"with labelnotice-banner.tsxaria-labelon dismiss buttoncreate-form.tsxaria-expandedon advanced toggle,aria-busyon submitspritz-list.tsxaria-hiddenon phase icons, sr-only status textindex.css:focus-visibleoutline,prefers-reduced-motionanimation disablingTest plan
prefers-reduced-motionin OS settings — verify animations are disabled