feat: full WCAG AA 2.1 compliance and e2e tests - #85
Merged
Anish701 merged 4 commits intoJul 30, 2026
Conversation
Anish701
force-pushed
the
feat/full-wcag-compliance
branch
from
July 22, 2026 03:18
f98f1b0 to
5480d72
Compare
Anish701
force-pushed
the
feat/full-wcag-compliance
branch
from
July 23, 2026 13:23
d5b7934 to
9b68cdf
Compare
Signed-off-by: Anish701 <anish2sinha@gmail.com>
Signed-off-by: Anish701 <anish2sinha@gmail.com>
Signed-off-by: Anish701 <anish2sinha@gmail.com>
Anish701
force-pushed
the
feat/full-wcag-compliance
branch
from
July 23, 2026 15:04
9b68cdf to
64d2943
Compare
NP-compete
approved these changes
Jul 30, 2026
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #88
Description
Brings the template-ui to full WCAG 2.1 AA compliance. This includes semantic HTML fixes (sidebar chat list migrated from
role="listbox"+role="option"to a proper<ul>/<li>/<button>structure), colour-contrast improvements across muted and destructive tokens,aria-hiddenon decorative icons, descriptivearia-labelvalues on all interactive controls, aprefers-reduced-motionglobal CSS rule, and a hidden<h1>landmark on the chat page. A new@axe-core/playwrightE2E suite (e2e/accessibility/wcag.spec.ts) validates all pages in both light and dark mode against axe'swcag2a,wcag2aa, andwcag21aatag sets.Changes
Sidebar.tsx: replacerole="listbox"div list with semantic<ul>/<li>; move click handler onto a<button>witharia-current; addfocus-withinvisibility to action buttons; include chat title in rename/deletearia-labelsSettingsPage.tsx: remove redundant<nav>wrapping thetablist(fixes nested landmark + role conflict)ChatPage.tsx: add visually-hidden<h1>page title landmarkChatMessagesView.tsx: switcharia-livefromassertive→politeon thinking indicator; add SR-only "(opens in new tab)" text on external links; fix colour inheritance (text-inherit) on markdown<p>and<li>nodesAppLayout.tsx: add explicitrole="navigation"toPageSidebar; remove redundantaria-labelfrom non-landmarkmain-contentdivMemoryList.tsx/RulesEditor.tsx: contextualaria-labelon remove/toggle controls;aria-hiddenon decorative icons; improved contrast on info-banner and empty-state textAlwaysAllowedTools.tsx:aria-hiddenon decorative icon; bump muted text contrastTodoStrip.tsx: bump completed-state green token for sufficient contrast ratioglobal.css: addprefers-reduced-motionmedia query; fix dark-mode--destructivetoken contrastaccessibility.test.tsx: add unit-test suites forMemoryList,RulesEditor,SubAgentIndicator, andSidebar; fix duplicatedescribeblockse2e/accessibility/wcag.spec.ts(new): full axe-core/Playwright WCAG 2.1 AA E2E suite covering Home, Chat, and Settings (all 5 tabs) in light + dark modee2e/page-objects/SettingsPage.ts: fixclickTabto userole="tab"selector; addselectTabhelper that waits for panel visibilitypackage.json/package-lock.json: add@axe-core/playwright ^4.12.1dev dependencyAI Disclosure
Checklist
Deployment & Security Impact
None
Reviewer Notes
listbox→ul/li/button) is the highest-risk change — verify keyboard navigation (Arrow Up/Down, Enter) still works end-to-end.aria-live="polite"on the thinking indicator is intentional;assertivewas causing excessive AT interruptions mid-stream.@axe-core/playwrightE2E tests require a running dev server — they are gated behind the existinge2enpm script and will not run in unit-test CI.