Règles

Les 37 règles composites d’agrégation par critère de succès WCAG ne figurent pas ici : ce ne sont pas des règles configurables individuellement, elles relèvent de la section Conformité. Consultez l’organisation des règles pour la distinction entre automatique et manuel, la structure des identifiants de règle et les facettes WCAG. La colonne Questions compte les questions qu’une règle peut laisser à une personne (cantTell) ; chacune est accompagnée, sur la page de la règle, des étapes pour y répondre.

Automatiques (86), peuvent renvoyer fail

86 règles automatiques
ID de règleTitreCritère WCAGNiveauQuestionsConfianceGravité
area-alt-present<area> doit avoir un nom accessible1.1.1A—highserious
aria-allowed-attrLes attributs aria-* doivent être autorisés pour le rôle de l’élément4.1.2A1mediummoderate
aria-allowed-roleLe rôle explicite doit être autorisé pour son élément hôte——1highmoderate
aria-braille-equivalentaria-braillelabel/aria-brailleroledescription doivent avoir un équivalent non braille4.1.2A1highmoderate
aria-conditional-attraria-errormessage exige qu’aria-invalid ait une valeur autre que false4.1.2A1highmoderate
aria-deprecated-roleL’attribut role ne devrait pas utiliser un rôle ARIA obsolète ou déconseillé aux auteurs4.1.2A2highmoderate
aria-hidden-bodyLe <body> du document ne doit pas être aria-hidden1.3.1, 4.1.2A—highcritical
aria-hidden-focusLes éléments masqués par ARIA ne doivent pas pouvoir recevoir le focus4.1.2A2highserious
aria-owns-validaria-owns doit donner un seul propriétaire à chaque élément, et jamais un ancêtre du propriétaire1.3.1, 4.1.2A—highserious
aria-prohibited-attrLes attributs de nommage ARIA ne doivent pas être utilisés sur les rôles qui les interdisent4.1.2A1highmoderate
aria-prohibited-childrenLes rôles conteneurs ne doivent pas posséder d’enfant au rôle non autorisé1.3.1A—mediummoderate
aria-required-attrLes rôles dotés d’un état ou d’une propriété ARIA requis doivent le porter4.1.2A2highserious
aria-required-childrenLes rôles conteneurs doivent posséder au moins un enfant au rôle requis1.3.1A1mediummoderate
aria-required-parentLes rôles qui exigent un rôle de contexte précis doivent se trouver dans ce contexte1.3.1A—mediummoderate
aria-role-name-presentLes rôles ARIA qui exigent un nom accessible en ont un4.1.2A1highserious
aria-roles-validL’attribut role doit être un rôle ARIA valide et non abstrait1.3.1, 4.1.2A2highserious
aria-valid-attrLes attributs aria-* doivent être des attributs ARIA réels et définis4.1.2A1highserious
aria-valid-attr-valueLes valeurs des attributs aria-* doivent correspondre à leur type déclaré4.1.2A3highserious
autocomplete-validL’attribut autocomplete doit être une valeur de remplissage automatique valide1.3.5AA—highmoderate
avoid-inline-spacingLe style en ligne ne doit pas imposer un espacement du texte inférieur à la métrique WCAG1.4.12AA3highmoderate
binary-control-name-presentLes contrôles binaires ont un nom accessible4.1.2A1highserious
button-name-presentLes boutons ont un nom accessible4.1.2A3highserious
canvas-text-alternative-present<canvas> doit fournir une alternative textuelle1.1.1A—highserious
click-handler-keyboard-operableLes gestionnaires de clic sur des éléments qui ne sont pas des contrôles natifs doivent fonctionner au clavier2.1.1, 2.1.3AAA5mediumserious
combobox-name-presentLes combobox ont un nom accessible4.1.2A1highserious
contrast-computableLe contraste des couleurs peut être calculé pour le texte affiché1.4.3, 1.4.6AAA18highserious
contrast-enhancedLe texte respecte le contraste des couleurs renforcé (AAA)1.4.6AAA4highserious
contrast-minimumLe texte respecte le contraste des couleurs minimal (AA)1.4.3AA9highserious
css-orientation-lockLe CSS ne doit pas verrouiller la page dans une seule orientation1.3.4AA3highserious
definition-list-children-validLes listes de description doivent être correctement structurées1.3.1A—highserious
deprecated-elements-not-usedLe contenu défilant de <marquee> doit pouvoir être mis en pause, arrêté ou masqué2.2.2A1highserious
dialog-name-presentLes boîtes de dialogue ont un nom accessible4.1.2A1highserious
dlitem-parent-validLes éléments de liste de description doivent se trouver dans une liste de description1.3.1A—highserious
duplicate-idLes ID doivent être uniques4.1.1A2highmoderate
duplicate-id-ariaLes ID référencés par ARIA doivent être uniques4.1.2A1highserious
embed-text-alternative-present<embed> doit fournir une alternative textuelle1.1.1A—highserious
empty-headingLes titres ne doivent pas être vides——3highminor
focus-not-removed-by-scriptUn script ne doit pas retirer le focus d’un élément au moment où il le reçoit2.1.1, 2.4.7AA3mediumserious
form-control-programmatic-label-presentLes contrôles de formulaire doivent avoir un libellé programmatique1.3.1, 3.3.2, 4.1.2A—mediumserious
form-control-single-labelLes contrôles de formulaire ne devraient pas avoir plusieurs libellés3.3.2A2highmoderate
html-lang-attr-presentLa langue de la page est déclarée3.1.1A—highserious
html-xml-lang-mismatchlang et xml:lang ne doivent pas se contredire3.1.1A—highserious
identical-iframes-same-purposeLes cadres portant le même nom intègrent la même ressource4.1.2A2mediummoderate
iframe-focusable-contentLes cadres avec tabindex="-1" ne doivent pas contenir de contenu focalisable2.1.1A1highmoderate
iframe-name-presentLes cadres ont un nom accessible4.1.2A—highserious
iframe-title-uniqueUnicité des titres de cadres (obsolète) obsolète4.1.2A—highmoderate
img-alt-present<img> doit avoir un attribut alt1.1.1A—highserious
input-image-alt-present<input type="image"> doit avoir un attribut alt1.1.1, 4.1.2A1highserious
invalid-field-error-messageLes champs marqués comme invalides devraient avoir un message d’erreur affiché3.3.1A6highserious
label-in-nameÉtiquette dans le nom : le nom accessible contient le texte visible2.5.3A4highserious
landmark-role-name-presentLes rôles region et form doivent avoir un nom accessible——1highminor
link-in-text-blockLes liens dans un bloc de texte doivent se distinguer du texte environnant sans reposer uniquement sur la couleur1.4.1A16highserious
link-name-presentLes liens ont un nom accessible2.4.4, 2.4.9, 4.1.2AAA3highserious
list-children-validLes listes ne doivent contenir directement que des éléments de liste1.3.1A—highserious
listbox-name-presentLes listbox ont un nom accessible4.1.2A1highserious
listitem-parent-validLes éléments de liste doivent se trouver dans un conteneur de liste1.3.1A—highserious
menuitem-name-presentLes éléments de menu ont un nom accessible4.1.2A3highserious
meta-refresh-no-exceptionsLa page ne doit utiliser aucune actualisation meta temporisée (AAA)2.2.4, 3.2.5AAA—highmoderate
meta-refresh-timing-absentLa page ne doit pas utiliser d’actualisation meta temporisée2.2.1, 2.2.4, 3.2.5AAA—highserious
meta-viewport-zoom-enabledLa balise meta viewport ne doit pas désactiver le zoom1.4.4AA1highserious
meter-name-presentLes jauges (meter) ont un nom accessible1.1.1A1highserious
nested-interactive-controls-absentLes contrôles interactifs ne doivent pas être imbriqués4.1.2A—highserious
object-text-alternative-present<object> doit fournir une alternative textuelle1.1.1A—highserious
option-name-presentLes options ont un nom accessible4.1.2A3highserious
page-title-presentLa page a un titre non vide2.4.2A—highserious
presentational-children-focusable-absentLes rôles à enfants présentationnels ne doivent pas contenir de contenu focalisable4.1.2A—highserious
progressbar-name-presentLes barres de progression ont un nom accessible1.1.1A1highserious
role-img-text-alternative-present[role="img"/"graphics-symbol"/"graphics-document"] doit avoir une alternative textuelle accessible1.1.1A1highserious
searchbox-name-presentLes champs de recherche (searchbox) ont un nom accessible4.1.2A1highserious
server-side-image-map-absentLes cartes-images côté serveur doivent avoir une alternative utilisable au clavier2.1.1A1highserious
slider-name-presentLes curseurs (slider) ont un nom accessible4.1.2A1highserious
spinbutton-name-presentLes champs numériques (spinbutton) ont un nom accessible4.1.2A1highserious
summary-name-presentLes éléments summary ont un nom accessible4.1.2A2highserious
svg-image-text-alternative-presentL’élément SVG <image> doit avoir une alternative textuelle1.1.1A—mediumserious
svg-text-alternative-present<svg> doit fournir une alternative textuelle1.1.1A—highserious
tab-name-presentLes onglets ont un nom accessible4.1.2A3highserious
table-headers-attr-validL’attribut « headers » des cellules de tableau doit faire référence à des cellules d’en-tête valides1.3.1A—highserious
table-th-has-data-cellsLes éléments <th> doivent décrire au moins une cellule de données1.3.1A1highmoderate
target-size-minimumLes cibles de pointeur doivent mesurer au moins 24x24px ou être suffisamment espacées des autres cibles2.5.8AA—mediumserious
td-has-headerLes cellules de données des grands tableaux doivent avoir un en-tête associé1.3.1A1highserious
text-spacing-content-lossLe texte reste lisible lorsque l’utilisateur augmente l’espacement du texte1.4.12AA8mediumserious
textbox-name-presentLes zones de texte (textbox) ont un nom accessible4.1.2A1highserious
tooltip-name-presentLes infobulles ont un nom accessible4.1.2A3highserious
treeitem-name-presentLes éléments d’arborescence ont un nom accessible4.1.2A3highserious
valid-langL’attribut lang d’un élément doit être syntaxiquement valide3.1.2AA—highmoderate
video-poster-text-alternative-presentL’image poster d’une <video> doit avoir une alternative textuelle1.1.1A1mediumserious

Manuelles (59), jamais fail

59 règles manuelles
ID de règleTitreCritère WCAGNiveauQuestionsConfianceGravité
accesskeysLes valeurs accesskey doivent être uniques——1mediumminor
area-alt-qualityL’alternative textuelle des <area> doit être appropriée (revue manuelle)1.1.1A1mediumminor
aria-checked-state-mismatchL’aria-checked d’une case à cocher ou d’un bouton radio natif devrait correspondre à son état réel4.1.2A1mediummoderate
aria-expanded-state-mismatcharia-expanded devrait correspondre à l’affichage du contenu contrôlé4.1.2A2mediummoderate
aria-textLes éléments role="text" ne devraient avoir aucun descendant focalisable——1mediumminor
bypass-blocks-presentLa page doit permettre de contourner les blocs répétés2.4.1A1mediummoderate
canvas-text-alternative-qualityL’alternative textuelle de <canvas> doit être appropriée (revue manuelle)1.1.1A1mediumminor
control-name-title-onlyUn bouton ou un lien ne devrait pas tirer son nom uniquement de son title——1mediumminor
css-focus-indicator-suppressedL’indicateur de focus ne doit pas être supprimé sans remplacement2.4.7AA1mediumserious
css-hidden-focusLes éléments focalisables ne doivent pas être masqués visuellement2.4.7AA2lowserious
embed-text-alternative-qualityL’alternative textuelle de <embed> doit être appropriée (revue manuelle)1.1.1A1mediumminor
empty-table-headerLes cellules d’en-tête de tableau ne doivent pas être vides——2mediumminor
focus-order-semanticsLes éléments ajoutés à l’ordre de tabulation devraient avoir une sémantique interactive——1mediumminor
form-control-label-qualityLes libellés des champs de formulaire devraient être descriptifs et distinguables2.4.6AA3mediumminor
form-control-programmatic-label-qualityLes contrôles de formulaire devraient avoir un libellé affiché à l’écran3.3.2A4mediummoderate
heading-orderLes niveaux de titre ne doivent pas sauter de niveau——1mediumminor
heading-qualityLe texte des titres devrait être descriptif, pas un texte de remplissage2.4.6AA3mediumminor
identical-links-same-purposeLes liens ayant le même nom accessible devraient mener à la même destination2.4.9AAA1lowminor
image-of-textLe texte devrait être du vrai texte, pas une image de texte1.4.5AA2lowmoderate
image-redundant-altLe texte alt d’une image ne doit pas répéter le texte visible adjacent——1mediumminor
img-alt-decorativeLes <img>/<canvas>/<svg> exclus doivent être décoratifs (revue manuelle)1.1.1A2mediumminor
img-alt-qualityLe texte alt de <img> doit être approprié (revue manuelle)1.1.1A2mediumminor
input-image-alt-decorative<input type="image"> avec alt="" doit être approprié (revue manuelle)1.1.1A1mediumminor
input-image-alt-qualityL’alternative textuelle des <input type="image"> doit être appropriée (revue manuelle)1.1.1A1mediumminor
label-for-validL’attribut for d’un label devrait nommer un contrôle qu’il peut étiqueter——2mediumminor
label-title-onlyLibellés de formulaire réduits à title (obsolète) obsolète———mediumminor
landmark-banner-is-top-levelLe landmark banner doit être de premier niveau——1mediumminor
landmark-complementary-is-top-levelLe landmark complementary doit être de premier niveau——1mediumminor
landmark-contentinfo-is-top-levelLe landmark contentinfo doit être de premier niveau——1mediumminor
landmark-main-is-top-levelLe landmark main doit être de premier niveau——1mediumminor
landmark-no-duplicate-bannerLa page ne doit pas contenir plus d’un landmark banner——1mediumminor
landmark-no-duplicate-contentinfoLa page ne doit pas contenir plus d’un landmark contentinfo——1mediumminor
landmark-no-duplicate-mainLa page ne doit pas contenir plus d’un landmark main——1mediumminor
landmark-one-mainLa page devrait avoir un landmark main——1mediumminor
landmark-uniqueLes landmarks de même rôle doivent avoir des noms uniques——1mediumminor
link-name-qualityLe texte des liens devrait être descriptif, pas générique2.4.4, 2.4.9AAA2mediumminor
live-region-announcementsLes régions live devraient pouvoir annoncer les messages d’état4.1.3AA4mediummoderate
manual-reviewRevue manuelle : navigation au clavier et ordre du focus2.1.1, 2.4.3, 2.4.7AA1mediummoderate
media-alternative-transcript-evidenceMédias temporels : indices de transcription ou d’alternative textuelle1.2.1A2lowmoderate
meta-viewport-largeLa balise meta viewport devrait autoriser un zoom jusqu’à 500 %——1mediumminor
mouse-only-event-handlersLes gestionnaires d’événements propres au pointeur devraient avoir un équivalent utilisable au clavier2.1.1, 2.1.3AAA2lowmoderate
moving-content-pausableUn contenu qui bouge de lui-même devrait pouvoir être mis en pause, arrêté ou masqué2.2.2A2lowmoderate
no-autoplay-audioL’audio en lecture automatique devrait offrir un moyen de pause/arrêt ou de réglage du volume1.4.2A3lowmoderate
object-text-alternative-qualityL’alternative textuelle de <object> doit être appropriée (revue manuelle)1.1.1A1mediumminor
p-as-headingUn texte mis en forme comme un titre devrait probablement être un vrai titre1.3.1A4lowminor
page-has-heading-oneLa page devrait avoir un titre de niveau un——1mediumminor
page-title-patternsMotifs de titre de page potentiellement trop peu descriptifs2.4.2A6mediumminor
password-paste-enabledLes champs d’authentification ne doivent pas bloquer le collage3.3.8AA2mediumserious
presentation-role-conflictUn rôle de présentation ne doit pas entrer en conflit avec un attribut ARIA global ou la focalisabilité——1mediumminor
regionLe contenu de la page devrait se trouver dans une région landmark——1mediumminor
scope-attr-validL’attribut scope doit avoir une valeur valide——1mediumminor
scrollable-region-focusableLes régions défilantes sans contenu focalisable devraient être focalisables au clavier2.1.1, 2.1.3AAA1lowmoderate
skip-linkLe lien d’évitement doit avoir une cible résoluble et utilisable——2mediumminor
svg-text-alternative-qualityL’alternative textuelle de <svg> doit être appropriée (revue manuelle)1.1.1A2mediumminor
tabindextabindex ne devrait pas être supérieur à 0——1mediumminor
table-duplicate-nameLa légende d’un tableau ne doit pas reprendre son attribut summary——1mediumminor
table-fake-captionLa première ligne d’un tableau ne devrait pas tenir lieu de véritable <caption>1.3.1A1lowminor
video-captionUne vidéo préenregistrée devrait fournir des sous-titres complets1.2.2A3lowmoderate
widget-keyboard-focusableLes widgets devraient être atteignables au clavier2.1.1A4mediumserious