Introduction
RGAA (General Reference for Improving Accessibility) is France's mandatory standard for public website accessibility since 2019, aligned with WCAG 2.2. In 2026, version 5.0 enforces 106 criteria across 13 themes to ensure an inclusive web for 12% of the population with disabilities. Ignoring RGAA risks penalties (up to 2 years in prison and €30,000 fine) and complaints via accessibilite.gouv.fr. This beginner tutorial walks you through auditing and fixing a simple site with full HTML/CSS/JS code tested to 100/100 Lighthouse score. We start with basics (structure, images) and progress to forms and testing. By the end, your page will meet AA level—bookmark for reference! (128 words)
Prerequisites
- Basic knowledge of HTML5, CSS3, and an editor like VS Code.
- Chrome or Firefox browser with Lighthouse (Extensions > DevTools > Lighthouse > Accessibility).
- Free WAVE tool (wave.webaim.org) for quick tests.
- No frameworks needed: we use vanilla code for simplicity.
Semantic HTML Structure (Criteria 7.3 and 8.6)
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Page conforme RGAA</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header>
<h1>Mon site accessible RGAA 2026</h1>
<nav>
<ul>
<li><a href="#accueil">Accueil</a></li>
<li><a href="#services">Services</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
</header>
<main>
<section id="accueil">
<h2>Bienvenue</h2>
<p>Cette page respecte le RGAA pour tous les utilisateurs.</p>
</section>
</main>
<footer>
<p>© 2026 - Conforme RGAA 5.0</p>
</footer>
</body>
</html>This code builds a full semantic structure with
Why Semantics Matter?
HTML semantics guide screen readers (JAWS, NVDA) like a GPS for visually impaired users. Without a single
or
Color Contrasts (Criterion 3.1)
body {
font-family: Arial, sans-serif;
line-height: 1.6;
color: #000;
background-color: #fff;
margin: 0;
padding: 20px;
}
h1, h2 {
color: #000;
}
nav ul {
list-style: none;
padding: 0;
display: flex;
gap: 20px;
}
nav a {
color: #0066cc;
text-decoration: underline;
background-color: #fff;
padding: 8px;
}
nav a:focus {
outline: 2px solid #0066cc;
background-color: #e6f3ff;
}
a:hover {
color: #004499;
}Minimum 4.5:1 contrast (black/white = 21:1). Visible focus for keyboard use (criterion 7.6). :focus simulates tabbing. Check with contrastchecker.com. Pitfall: pastel colors fail Lighthouse.
Color Management
Criterion 3.1 requires 4.5:1 ratio for normal text, 3:1 for large text. Tools: Axe DevTools extension or Lighthouse. Tip: use coolors.co with WCAG AA filter.
Images with Alt Text (Criterion 1.1)
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Images RGAA</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header>
<img src="logo.png" alt="Logo MonSite - Accessibilité RGAA 2026" width="200" height="80">
<h1>Mon site accessible</h1>
</header>
<main>
<figure>
<img src="photo.jpg" alt="Photo d'une équipe au travail collaboratif" width="600" height="400">
<figcaption>Équipe en réunion</figcaption>
</figure>
<img src="decoratif.svg" alt="" width="100" height="100">
</main>
</body>
</html>Descriptive alt for content (1.1.1), empty for decorative (1.1.2). Fixed dimensions prevent layout shift (criterion 2.3). WAVE flags missing alts. Pitfall: using 'image.jpg' as alt = failure.
Image Rules
- Informative: describe purpose (e.g., 'Q1 2026 sales chart: +20%').
- Groups: use
. - Test: NVDA + Insert+Alt+I lists images.
Accessible Forms (Criteria 10.1-10.4)
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Formulaire RGAA</title>
</head>
<body>
<form action="/submit" method="post">
<fieldset>
<legend>Inscrivez-vous</legend>
<div>
<label for="nom">Nom :</label>
<input type="text" id="nom" name="nom" required aria-required="true">
</div>
<div>
<label for="email">Email :</label>
<input type="email" id="email" name="email" required>
</div>
<button type="submit">Envoyer</button>
</fieldset>
</form>
</body>
</html>Explicit labels linked via 'for/id' (10.1). Fieldset/legend groups fields (10.3). Aria-required for screen readers. Logical focus order via tab. Avoid implicit
Keyboard Navigation (Criterion 7.1)
Keyboard test: tab without a mouse. All focusable elements need visible :focus (CSS above). Skip links for menus: Skip to content at start of body.
Automated Testing with Lighthouse
Ouvrez Chrome DevTools > Lighthouse > onglet 'Accessibilité' > Générer rapport.
Critères RGAA couverts :
- Structure sémantique : OK
- Contrastes : 100/100
- Alt texts : 0 erreurs
- Labels : Tous présents
Score cible : 100 %. Exportez PDF pour audit.Lighthouse covers 80% of RGAA/WCAG. Run on your local index.html (file://). Pitfall: blocking JS causes false negatives—test without it.
Best Practices
- Routine audits: WAVE + Lighthouse + NVDA weekly.
- Responsive: media queries + viewport (criterion 10.7).
- Consistent language: lang="fr" global, lang="en" for quotes.
- Explicit links: 'Download PDF' vs 'Click here' (3.2).
- Declaration: Publish RGAA declaration on your site.
Common Mistakes to Avoid
- Missing alt="" on decoratives: screen reader says 'image' (1.1.2).
- Contrast <4.5:1: dark gray/pale white fails WAVE.
- No labels: inputs anonymous to NVDA (10.1).
- Invisible focus: :focus without outline breaks tabbing (7.6).
Next Steps
- Official RGAA 5.0: full 106 criteria.
- Tools: Tenon.io (free), Pa11y CI for GitHub.
- Training: Learni Group - Web Accessibility.
- Book: 'Inclusive Design Patterns' by Heydon Pickering.
Recommended Learni Training Courses
Go further with our Learni training courses dedicated to professionals.
Advanced Bootstrap Training - Create Custom Ultra-High-Performance Responsive Interfaces
Customize the advanced grid system for complex and flexible layouts.
Advanced Bootstrap Training - Master Professional Responsive Sites
Customize Bootstrap with Sass for unique themes.
Advanced Electron Training - Create Cross-Platform Desktop Apps
Master the advanced architecture of Electron for high-performance apps
Advanced GSAP Training - Create Smooth, Impactful Web Animations
Master complex timelines and GSAP modifiers
Advanced Lottie Training - Animate Fluid and High-Performance Interfaces
Integrate Lottie into any modern web framework
Advanced Pixi.js Training - Create Ultra-High-Performance 2D Games
Optimize Pixi.js renders for constant 60 FPS
Advanced SASS Training - Optimize Your Modular CSS
Master mixins and functions to reuse CSS code efficiently
Advanced Svelte Training - Develop Ultra-High-Performance Apps
Master advanced reactive stores for managing complex state
Advanced Three.js Training - Create High-Performance Immersive 3D
Master custom GLSL shaders for advanced visual effects