Skip to content

fix(a11y): accessibility pass for dispute-resolution UI - #216

Closed
shinzoxD wants to merge 1 commit into
Cylo-Traders:masterfrom
shinzoxD:a11y/dispute-resolution-audit
Closed

fix(a11y): accessibility pass for dispute-resolution UI#216
shinzoxD wants to merge 1 commit into
Cylo-Traders:masterfrom
shinzoxD:a11y/dispute-resolution-audit

Conversation

@shinzoxD

Copy link
Copy Markdown

Summary

Closes #189

Accessibility pass for the dispute-resolution UI, following the jest-axe + keyboard-navigation pattern already used for the funding flow.

OpenDisputeForm did 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. ResolveDisputeForm already lived in CampaignAdminPanel; this pass is limited to live regions, field associations, contrast, and tests. Duplicate-dispute gating (#188) is intentionally left to that other PR.

Changes

  • OpenDisputeForm: labelled reason field, aria-invalid / aria-describedby, role="alert" for errors, role="status" for success, contrast-safe soil-600 copy, visible focus on the submit button.
  • ResolveDisputeForm / CampaignAdminPanel: ActionError is now a live region (role="alert"); payout field is associated with its hint and error; success is role="status"; labels/hints bumped soil-400/soil-500soil-600.
  • Tests: 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.
  • Docs: client/docs/accessibility-audit.md closes the "Dispute resolution has no UI yet" follow-up.

Tests

  • npx eslint on the touched .ts/.tsx files: pass
  • npx vitest run src/__tests__/dispute-accessibility.test.tsx src/__tests__/accessibility.test.tsx src/components/admin/__tests__/CampaignAdminPanel.test.tsx: 18/18 pass
  • npm test: 69 passed, 2 failed — both failures are pre-existing in ActivityFeed.test.tsx (unrelated, present on master)
  • npm run lint: still fails repo-wide on pre-existing Windows Delete ␍ prettier errors (documented in the original audit); none in the files this PR touches

GrantFox

Payout wallet: GBVHELLD2JE235Y2NGTDT3MWI3T65ON6SY4N6FBHYVDAQ5FZC2CP5QXH

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
Copilot AI lite review requested due to automatic review settings August 24, 2026 17:06

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@shinzoxD

Copy link
Copy Markdown
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.

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.

Accessibility pass and audit sign-off for the dispute-resolution UI

3 participants