-
Notifications
You must be signed in to change notification settings - Fork 4
Accessibility
Francois edited this page Jan 20, 2026
·
2 revisions
Presentation Accessibility aims at making applications usable by everyone (including people with visual, auditory, motor, or cognitive disabilities).
We aimed at targetting a basic accessibility while developing React components, as it can have following benefits in following projects :
- compliance with WCAG (Web Content Accessibility Guidelines) 2.1/2.2 standards
- better UX all users can make use of keyboards navigation
- SEO helps bots understand the page structure
- axe DevTools : browser extension for automated audits.
- Lighthouse : gives an accessibility score
- screen Readers : test with VoiceOver (macOS), NVDA (Windows), or TalkBack (Android).
- prefer native HTML elements over React components when possible : they have built-in keyboard support
- use semantic HTML :
<button>over<div> - use ARIA attributes
- have an
altattribute for images
- ensure contrast is sufficient
- forms must be clearly labeled
-
useRefhelps to move focus
| โ Do | โ Don't |
|---|---|
Use Semantic HTML (<main>, <nav>, <button>). |
Use <div> or <span> for clickable elements. |
| Maintain a Logical Tab Order (top-to-bottom). | Use tabIndex values greater than 0. |
| Provide Alt text for all meaningful images. | Leave alt attributes empty on informative images. |
| Ensure Color Contrast (min 4.5:1 for text). | Use color as the only way to convey meaning (e.g., red for error). |
Use Fragments <> to avoid unnecessary <div> soup. |
Break HTML table or list semantics with wrapper divs. |
| Success Criterion | Requirement |
|---|---|
| 1.1.1 Non-text Content | Provide text alternatives (alt text) for images. |
| 1.4.3 Contrast (Min) | Text contrast ratio of at least 4.5:1. |
| 2.1.1 Keyboard | All functionality is available via keyboard. |
| 2.1.2 No Keyboard Trap | Users can move focus away from any element using the keyboard. |
| 2.4.3 Focus Order | Navigation follows a logical sequence. |
| 2.4.7 Focus Visible | Any keyboard-focusable element has a visible focus indicator. |
| 3.3.2 Labels or Instructions | Provide labels or instructions when content requires user input. |
| Type | Resource | Notes |
|---|---|---|
| ๐ | Official React A11y Docs | Base reference. |
| ๐ | WCAG 2.1 Guidelines | World standard. |
| ๐ ๏ธ | WAI-ARIA Authoring Practices | Best patterns for Modals, Tabs, etc. |
| ๐ป | eslint-plugin-jsx-a11y | Linting rules for React. |
| ๐ฅ | A11y Casts by Google | Video series on web accessibility. |
- Gateway Service - API Gateway & JWT validation
- Auth Service - Authentication & 2FA/TOTP
- AI Service - AI opponent
- API Documentation - OpenAPI/Swagger
- DB Schema - Databases
- Fastify - Web framework
- Prisma - ORM
- WebSockets - Real-time communication
- Restful API - API standards
- React - UI library
- CSS - Styling
- Tailwind - CSS framework
- Accessibility - WCAG compliance
- TypeScript - Language
- Zod - Schema validation
- Nginx - Reverse proxy
- Logging and Error management - Observability
- OAuth 2.0 - Authentication flows
- Two-factor authentication - 2FA/TOTP
- Avalanche - Blockchain network
- Hardhat - Development framework
- Solidity - Smart contracts language
- Open Zeppelin - Security standards
- ESLint - Linting
- Vitest - Testing
- GitHub Actions - CI/CD
- Husky, Commit lints and git hooks - Git hooks
- ELK - Logging stack
๐ Page model