Quand utiliser ARIA plutôt que le HTML natif
Suivez la première règle d’ARIA : privilégiez les sémantiques natives.
Quand utiliser ARIA plutôt que le HTML natif est une leçon HTML Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage HTML Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours HTML Academy comprend 4 leçons au total.
Qu’est-ce qu’ARIA ?
ARIA (applications Internet riches et accessibles) est un ensemble d’attributs qui peuvent être ajoutés au HTML afin d’améliorer l’accessibilité pour les technologies d’assistance. ARIA comble les lacunes lorsque la sémantique HTML native ne suffit pas.
La première règle d’ARIA
La règle ARIA la plus importante : n’utilisez pas ARIA si le HTML natif permet de faire la même chose :
<!-- BAD: ARIA on a div -->
<div role="button" tabindex="0" onclick="submit()">Submit</div>
<!-- GOOD: use a real button -->
<button type="submit">Submit</button>
<!-- Native HTML elements:
- Are keyboard accessible by default
- Have correct semantics built in
- Work in more contexts
- Require less code
-->Quand le HTML natif ne suffit pas
ARIA est nécessaire lorsque :
- Les composants d’interface utilisateur personnalisés n’ont pas d’équivalent HTML (onglets, zones de liste combinées)
- Le rôle d’un élément natif doit être redéfini
- Les mises à jour de contenu dynamique doivent être annoncées
- Les relations complexes entre les éléments doivent être explicites
ARIA n’ajoute pas de comportement
Une confusion importante : ARIA ajoute des métadonnées d’accessibilité, mais pas de fonctionnalité :
<!-- Adding role="button" to a div does NOT:
- Make it keyboard-focusable (add tabindex="0")
- Make Enter/Space activate it (add event listeners)
- Make it styled like a button (add CSS)
-->
<!-- You must implement ALL behavior yourself -->
<!-- Native <button> handles all this for free -->La taxonomie d’ARIA
ARIA comprend trois catégories d’attributs :
- Rôles — définissent ce qu’est un élément :
role="button",role="dialog" - Propriétés — décrivent les caractéristiques statiques :
aria-label,aria-required - États — décrivent les conditions dynamiques :
aria-expanded,aria-checked
HTML sémantique et équivalents ARIA
La plupart des éléments HTML possèdent déjà des rôles ARIA implicites :
<nav> ≡ role="navigation"
<main> ≡ role="main"
<aside> ≡ role="complementary"
<header> ≡ role="banner" (page-level)
<footer> ≡ role="contentinfo" (page-level)
<button> ≡ role="button"
<a href> ≡ role="link"
<h1-h6> ≡ role="heading"
<ul> ≡ role="list"Utilisations valides courantes d’ARIA
Exemples d’utilisation légitime d’ARIA :
<!-- 1. Custom dropdown (no native equivalent): -->
<div role="combobox" aria-expanded="false">...</div>
<!-- 2. Loading state announcement: -->
<div role="status" aria-live="polite">Loading results...</div>
<!-- 3. Override landmark label: -->
<nav aria-label="Primary navigation">...</nav>
<!-- 4. Associate error with input: -->
<input aria-describedby="error-msg">
<span id="error-msg" role="alert">Invalid email</span>Utilisations incorrectes d’ARIA
Erreurs courantes avec ARIA :
<!-- BAD: ARIA role contradicts the element -->
<h2 role="button">Heading</h2> <!-- don't turn a heading into a button -->
<!-- BAD: ARIA on an unsupported element -->
<div role="listitem">Item</div> <!-- listitem must be inside list role -->
<!-- BAD: ARIA where HTML works fine -->
<p role="paragraph">Text</p> <!-- p already has paragraph semantics -->
<!-- BAD: aria-label on hidden element -->
<span aria-hidden="true" aria-label="something"> <!-- contradictory -->Rôles de repère
Les rôles de repère ARIA aident les utilisateurs de lecteurs d’écran à parcourir les régions de la page :
<div role="banner"> <!-- header for the whole page -->
<div role="navigation"> <!-- major navigation -->
<div role="main"> <!-- main content -->
<div role="complementary"> <!-- aside content -->
<div role="contentinfo"> <!-- page footer -->
<div role="search"> <!-- search form -->
<div role="form"> <!-- form with label -->
<!-- These are ONLY needed if using divs instead of semantic elements -->
<!-- Prefer the native HTML elements instead -->Tester l’implémentation d’ARIA
Comment vérifier que votre ARIA est correct :
- Utilisez le panneau Accessibilité des DevTools de Chrome ou Firefox
- Écoutez avec VoiceOver (Mac) ou NVDA (Windows)
- Exécutez l’extension axe DevTools
- Vérifiez l’arbre d’accessibilité — reflète-t-il ce que vous attendez ?
Piège courant avec aria-hidden
Erreur courante avec aria-hidden :
<!-- BAD: aria-hidden on element that still receives focus -->
<button aria-hidden="true">Close</button>
<!-- The button is still focusable but invisible to screen readers
Screen reader users reach it via Tab but hear nothing -->
<!-- GOOD: for focus + hide, use hidden attribute or display:none: -->
<button hidden>Close</button> <!-- removes from both tab order and AT -->
<!-- Or: if you must keep visible: -->
<button style="display:none" aria-hidden="true">Close</button>Vérification rapide
Que vous apporte automatiquement l’ajout de role="button" à une div ?
Récapitulatif : ARIA et HTML natif
Principes essentiels d’ARIA :
- Première règle : utilisez le HTML natif lorsque c’est possible
- ARIA ajoute uniquement de la sémantique — vous devez implémenter le comportement
- Trois catégories : rôles, propriétés, états
- Les rôles de repère facilitent la navigation avec un lecteur d’écran
- Testez avec le panneau Accessibilité des DevTools et un lecteur d’écran
Questions Fréquemment Posées
La leçon « Quand utiliser ARIA plutôt que le HTML natif » est-elle gratuite ?
Oui — le texte complet de « Quand utiliser ARIA plutôt que le HTML natif » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours HTML Academy, passe à CoddyKit PRO. Le cours HTML Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Quand utiliser ARIA plutôt que le HTML natif » ?
Suivez la première règle d’ARIA : privilégiez les sémantiques natives. Tu pratiques HTML Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer HTML Academy ?
Aucune expérience préalable n'est requise. HTML Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Quand utiliser ARIA plutôt que le HTML natif » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon HTML Academy ?
Oui. Chaque leçon HTML Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Quand utiliser ARIA plutôt que le HTML natif
- `role`, `button`, `alert`, `dialog` et repère
- `aria-label`, `aria-labelledby` et `aria-describedby`
- `aria-hidden` et `aria-live`