fix(a11y): accessibility pass for dispute-resolution UI - #216
Closed
shinzoxD wants to merge 1 commit into
Closed
Conversation
Announce open/resolve dispute errors and success to assistive tech, associate field-level validation with aria-invalid/describedby, and add jest-axe plus keyboard-navigation coverage matching the funding-flow pattern. Closes Cylo-Traders#189
4 tasks
Author
|
Closing as overlapping with #183 (@LamsOfJos), which already adds the dispute open/resolve UI for #145. #189 (jest-axe + keyboard pass) should follow that PR rather than introduce a second form implementation. |
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.
Summary
Closes #189
Accessibility pass for the dispute-resolution UI, following the jest-axe + keyboard-navigation pattern already used for the funding flow.
OpenDisputeFormdid not exist on master yet (the #145 UI PR is still open), so this adds the form in the same shape as that work and bakes in the a11y requirements.ResolveDisputeFormalready lived inCampaignAdminPanel; this pass is limited to live regions, field associations, contrast, and tests. Duplicate-dispute gating (#188) is intentionally left to that other PR.Changes
aria-invalid/aria-describedby,role="alert"for errors,role="status"for success, contrast-safesoil-600copy, visible focus on the submit button.ActionErroris now a live region (role="alert"); payout field is associated with its hint and error; success isrole="status"; labels/hints bumpedsoil-400/soil-500→soil-600.client/src/__tests__/dispute-accessibility.test.tsx— 2 jest-axe scans + 6 keyboard tests (tab order, Enter-to-submit error announcement, success announcement). No mouse.client/docs/accessibility-audit.mdcloses the "Dispute resolution has no UI yet" follow-up.Tests
npx eslinton the touched.ts/.tsxfiles: passnpx vitest run src/__tests__/dispute-accessibility.test.tsx src/__tests__/accessibility.test.tsx src/components/admin/__tests__/CampaignAdminPanel.test.tsx: 18/18 passnpm test: 69 passed, 2 failed — both failures are pre-existing inActivityFeed.test.tsx(unrelated, present on master)npm run lint: still fails repo-wide on pre-existing WindowsDelete ␍prettier errors (documented in the original audit); none in the files this PR touchesGrantFox
Payout wallet:
GBVHELLD2JE235Y2NGTDT3MWI3T65ON6SY4N6FBHYVDAQ5FZC2CP5QXH