--- title: ARIA slug: Web/Accessibility/ARIA tags: - ARIA - Accessibilité - Applications - Web translation_of: Web/Accessibility/ARIA original_slug: Accessibilité/ARIA ---
Accessible Rich Internet Applications (ARIA) (qu'on pourrait traduire par « applications internet riches et accessibles ») sont un ensemble un attribut qui définit comment rendre le contenu et les applications web accessibles.
ARIA complète HTML afin que les éléments interactifs et les widgets puissent être utilisés par les outils d'assistance quand les fonctionnalités standard ne le permettent pas. Ainsi, ARIA permet de rendre accessible les widgets JavaScript, les indications dans les formulaires, les messages d'erreur et les mises à jour dynamiques du contenu, etc.
Attention ! La plupart de ces widgets ont été intégrés au sein d'HTML5 et mieux vaudra donc utiliser les éléments « sémantiques » HTML lorsqu'ils sont disponibles. Ainsi, les éléments natifs disposent de fonctionnalités de navigation au clavier, de rôles et d'états définis en standard. Toutefois, lorsque vous choisissez d'utiliser ARIA, il vous revient de recoder les fonctionnalités équivalentes dans vos scripts.
Voici un widget utilisé pour une barre de progression :
<div id="percent-loaded" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" />
Cette barre de progression utilise un élément <div>
qui n'a pas de sémantique forte. Malheureusement, HTML 4 ne possède pas d'élément natif avec la sémantique nécessaire et on doit donc inclure les rôles et propriétés ARIA. Ici, l'attribut role="progressbar"
indique au navigateur qu'il s'agit d'une barre de progression mise à jour en JavaScript. Les attributs aria-valuemin
et aria-valuemax
indiquent les valeurs minimales et maximales pour cette barre tandis que aria-valuenow
décrit l'état actuel de la barre et cette valeur doit être mise à jour par le code JavaScript.
En plus des déclarations statiques dans le contenu HTML, les attributs ARIA peuvent être ajoutés aux éléments et être mis à jour grâce à JavaScript :
// Trouver la barre de progression <div> dans le DOM. var progressBar = document.getElementById("percent-loaded");
// Définir les rôles et les états ARIA // afin que les technologies d'assistance puissent les // identifier/exploiter correctement
progressBar.setAttribute("role", "progressbar"); progressBar.setAttribute("aria-valuemin", 0); progressBar.setAttribute("aria-valuemax", 100); // Créer une fonction qui peut être appelée à tout moment // pour mettre à jour la valeur de la barre de progression function updateProgress(percentComplete) { progressBar.setAttribute("aria-valuenow", percentComplete); }
Note : ARIA a été inventé après HTML4 et ne valide pas HTML4 ou les variantes XHTML. Toutefois, les gains d'accessibilité l'emportent sur cette invalidité.
En HTML5, tous les attributs ARIA sont valides. Les nouveaux éléments de navigation (<main>
, <header>
, <nav>
etc.) possèdent des rôles ARIA natifs et il n'est pas nécessaire de les dupliquer.
À l'instar des autres technologies web, la prise en charge d'ARIA est plus ou moins hétérogène parmi les différents navigateurs. La prise en charge d'ARIA repose à la fois sur le navigateur, sur le système d'exploitation sous-jacent et sur la technologie d'assistance utilisée. Certaines versions antérieures de logiciels pourront ne pas prendre en charge (ou que partiellement) certains rôles ARIA.
On notera également que certaines personnes qui utilisent des outils d'assistance hésitent à mettre à jour leurs logiciels de peur de perdre les fonctionnalités liées à l'ordinateur et au navigateur. Pour ces raisons, mieux vaudra utiliser des éléments HTML « sémantiques » dès que possible car cela maximisera la prise en charge des technologies d'assistance.
Il est aussi important de tester l'ARIA écrit avec des technologies d'assistance réelles. Bien qu'il existe certains émulateurs et simulateurs, rien ne vaut un test réel afin d'obtenir suffisamment de garanties.
<input>
, <button>
disposent de fonctionnalités natives pour l'utilisation au clavier. Si on triche en utilisant des <div>
et ARIA, on doit s'assurer que l'accessibilité au clavier soit préservée.Les documents officiels décrivant les meilleurs pratiques pour appliquer ARIA aux widgets et aux mécanismes interactifs.