Skip to content

Rgaa requirements #183

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 6 commits into
base: chore/rgaa-fix-focus-indicators
Choose a base branch
from

Conversation

FranceBe
Copy link
Contributor

@FranceBe FranceBe commented Aug 8, 2025

  • Fix many accessibility issues to meet RGAA's requirements
  • Add jest-axe to enforce accessibility testing

@FranceBe FranceBe requested a review from Copilot August 8, 2025 15:49
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR implements comprehensive accessibility improvements to meet RGAA (French General Accessibility Guidelines) requirements. The changes focus on making interactive elements accessible, adding proper ARIA attributes, and implementing automated accessibility testing.

  • Converts non-accessible div elements to proper button/radio group structures with full keyboard navigation
  • Adds ARIA labels, landmarks, and semantic HTML structure throughout the payment widget
  • Integrates jest-axe for automated accessibility testing and adds comprehensive test coverage

Reviewed Changes

Copilot reviewed 46 out of 47 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/setupTests.ts Adds jest-axe integration for accessibility testing
src/main.css Adds sr-only utility class for screen reader accessibility
src/intl/messages/*.json Adds accessibility-focused translation keys for ARIA labels
src/components/SkipLinks/ New component providing skip navigation for modal sections
src/components/Modal/ Enhances modal with proper ARIA labels and focus indicators
src/assets/ Adds ARIA labels and role attributes to all SVG icons
src/Widgets/PaymentPlans/ Major refactor to use accessible button/radiogroup structure
src/Widgets/EligibilityModal/ Adds semantic sections, skip links, and proper heading structure
package.json Adds jest-axe dependency for accessibility testing


const SkipLinks: FC<Props> = ({ skipLinks, className }) => (
<div className={cx(s.skipLinks, className)} role="navigation" aria-label="Navigation rapide">
<ul className={s.skipLinksList}>
Copy link
Preview

Copilot AI Aug 8, 2025

Choose a reason for hiding this comment

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

The aria-label is hardcoded in French. This should use FormattedMessage for internationalization consistency with the rest of the application.

Suggested change
<ul className={s.skipLinksList}>
<FormattedMessage id="skipLinks.navigationLabel" defaultMessage="Quick navigation">
{ariaLabel => (
<div className={cx(s.skipLinks, className)} role="navigation" aria-label={ariaLabel}>
<ul className={s.skipLinksList}>

Copilot uses AI. Check for mistakes.

@@ -15,6 +17,8 @@ function CrossIcon({
viewBox="0 0 16 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
aria-label={ariaLabel || 'Fermer'}
Copy link
Preview

Copilot AI Aug 8, 2025

Choose a reason for hiding this comment

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

The fallback aria-label is hardcoded in French. This should use internationalization to support multiple languages consistently.

Copilot uses AI. Check for mistakes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant