Skip to content

feat(#184): enhance accessibility and testing in frontend#219

Open
0xVida wants to merge 1 commit into
BountyOnChain:mainfrom
0xVida:issue-184-accessibility-testing
Open

feat(#184): enhance accessibility and testing in frontend#219
0xVida wants to merge 1 commit into
BountyOnChain:mainfrom
0xVida:issue-184-accessibility-testing

Conversation

@0xVida

@0xVida 0xVida commented Jun 16, 2026

Copy link
Copy Markdown

Summary

This PR improves the frontend's accessibility by introducing automated accessibility testing, enforcing accessibility best practices through linting, and updating interactive components to provide a more inclusive experience for keyboard and screen reader users.

Changes

  • Integrated jest-axe and @axe-core/react for automated accessibility testing.
  • Added and configured eslint-plugin-jsx-a11y to enforce accessibility best practices during development.
  • Added accessibility assertions to component tests.
  • Configured Lighthouse CI accessibility audits.
  • Added accessible labels (aria-label/aria-labelledby) to interactive elements where required.
  • Improved keyboard accessibility with visible focus-visible styles.
  • Audited and updated color contrast to meet WCAG AA requirements.

Acceptance Criteria

  • jest-axe is integrated into component tests and runs automated accessibility assertions.
  • eslint-plugin-jsx-a11y is configured and all violations are fixed.
  • Lighthouse CI runs accessibility audits with a minimum score of 90.
  • All interactive elements have accessible names (aria-label, aria-labelledby).
  • Color contrast ratios meet WCAG AA minimum requirements (4.5:1 for normal text, 3:1 for large text).
  • Keyboard tab order is logical and visible with focus-visible styles.

Verification

  • jest-axe passes on component tests.
  • npm run lint reports no accessibility violations.
  • Lighthouse accessibility score is ≥ 90.
  • Keyboard navigation reaches all interactive elements with visible focus indicators.
  • VoiceOver/NVDA can navigate key application flows.

Closes #184

@Xuccessor Xuccessor left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nice work on the accessibility pass, @0xVida! 🎉 The a11y code, tests, and test config (jest-axe + jsx-a11y + focus/contrast tweaks) all look solid, and CI is green across the board.

Holding back on the merge for one housekeeping reason: the +13k diff is largely generated lhr-*.json / lhr-*.html Lighthouse reports and heavy package-lock.json churn that shouldn't land in this PR. Could you:

• add lhr-* to .gitignore and remove those generated files from the commit
• prune unrelated package-lock.json updates
• keep just the a11y code, specs, and config changes

Once that's cleaned up I'll merge right away. 🙏

Copy link
Copy Markdown
Contributor

Hey 👋 Accessibility and test additions look great. There's a merge conflict against main blocking this right now — could you rebase and push an update? I'll merge as soon as it's clean.

@Xuccessor Xuccessor left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hey @0xVida — really appreciate the a11y work! Branch has merge conflicts with main right now — could you rebase and re-run CI? Once green we will get this in.

@Xuccessor Xuccessor left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hey @0xVida — really appreciate the a11y work! Branch has merge conflicts with main right now — could you rebase and re-run CI? Once green we will get this in.

Copy link
Copy Markdown
Contributor

Thanks for this. The branch has real merge conflicts with main right now and won't merge cleanly — could you rebase against the latest main and push? Once it's clean I'll be glad to merge.

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.

[TESTING] No accessibility (a11y) testing

2 participants