Spaces:
Build error
Build error
| { | |
| "lang": "fr", | |
| "rules": { | |
| "accesskeys": { | |
| "description": "Vérifier que chaque valeur de l’attribut accesskey est unique", | |
| "help": "La valeur de l’attribut accesskey doit être unique" | |
| }, | |
| "area-alt": { | |
| "description": "Vérifier que les éléments <area> d’une image réactive ont une alternative textuelle", | |
| "help": "Les éléments <area> actifs doivent avoir une alternative textuelle" | |
| }, | |
| "aria-allowed-attr": { | |
| "description": "Vérifier que les attributs ARIA sont autorisés pour le rôle d’un élément", | |
| "help": "Les éléments doivent seulement utiliser les attributs ARIA autorisés" | |
| }, | |
| "aria-allowed-role": { | |
| "description": "Vérifier que l’attribut role a une valeur valide pour cet élément", | |
| "help": "Le rôle ARIA doit être valide pour cet élément" | |
| }, | |
| "aria-command-name": { | |
| "description": "Vérifier que chaque \"button\", \"link\" et \"menuitem\" ARIA a un nom accessible", | |
| "help": "Les commandes ARIA doivent avoir un nom accessible" | |
| }, | |
| "aria-dialog-name": { | |
| "description": "Vérifier que chaque nœud ARIA \"dialog\" et \"alertdialog\" a un nom accessible", | |
| "help": "Les nœuds ARIA \"dialog\" and \"alertdialog\" doivent avoir un nom accessible" | |
| }, | |
| "aria-hidden-body": { | |
| "description": "Vérifier qu’aria-hidden='true' n’est pas présent sur le corps du document (élément body)", | |
| "help": "aria-hidden='true' ne doit pas être présent sur <body>" | |
| }, | |
| "aria-hidden-focus": { | |
| "description": "Vérifier qu’aria-hidden n’est pas assigné aux éléments qui reçoivent le focus au clavier", | |
| "help": "aria-hidden n’est pas assigné aux éléments qui reçoivent le focus au clavier" | |
| }, | |
| "aria-input-field-name": { | |
| "description": "Vérifier que chaque champ de formulaire avec ARIA est doté d’un intitulé accessible", | |
| "help": "Les champs de formulaire ARIA ont un intitulé accessible" | |
| }, | |
| "aria-meter-name": { | |
| "description": "Vérifier que chaque nœud ARIA \"meter\" a un nom accessible", | |
| "help": "Les nœuds ARIA \"meter\" doivent avoir un nom accessible" | |
| }, | |
| "aria-progressbar-name": { | |
| "description": "Vérifier que chaque nœud ARIA \"progressbar\" a un nom accessible", | |
| "help": "Les nœuds ARIA \"progressbar\" doivent avoir un nom accessible" | |
| }, | |
| "aria-required-attr": { | |
| "description": "Vérifier que les éléments avec des rôles ARIA ont les attributs ARIA requis", | |
| "help": "Les attributs ARIA requis doivent être présents" | |
| }, | |
| "aria-required-children": { | |
| "description": "Vérifier que les éléments avec un rôle ARIA comportent aussi des rôles pour les descendants directs", | |
| "help": "Certains rôles ARIA doivent comporter des descendants directs spécifiques" | |
| }, | |
| "aria-required-parent": { | |
| "description": "Vérifier que les éléments avec un rôle ARIA requérant des rôles parents y sont contenus", | |
| "help": "Certains rôles ARIA doivent être contenus par des parents spécifiques" | |
| }, | |
| "aria-roledescription": { | |
| "description": "Vérifier qu’aria-roledescription n’est utilisé que sur des éléments qui ont un rôle implicite ou explicite", | |
| "help": "Utiliser aria-roledescription sur les éléments dont le rôle a une valeur sémantique" | |
| }, | |
| "aria-roles": { | |
| "description": "Vérifier que les éléments avec un attribut role utilisent une valeur valide", | |
| "help": "Les rôles ARIA doivent se conformer aux valeurs valides" | |
| }, | |
| "aria-text": { | |
| "description": "Vérifier que \"role=text\" est uniquement utilisé sur des éléments sans descendants focalisables", | |
| "help": "\"role=text\" ne doit pas avoir de descendant focalisable" | |
| }, | |
| "aria-toggle-field-name": { | |
| "description": "Vérifier que chaque champ de basculement ARIA a un libellé accessible", | |
| "help": "Les champs de basculement ARIA ont un libellé accessible" | |
| }, | |
| "aria-tooltip-name": { | |
| "description": "Vérifier que chaque nœud ARIA \"tooltip\" a un nom accessible", | |
| "help": "Les nœuds ARIA \"tooltip\" doivent avoir un nom accessible" | |
| }, | |
| "aria-treeitem-name": { | |
| "description": "Vérifier que chaque nœud ARIA \"treeitem\" a un nom accessible", | |
| "help": "Les nœuds ARIA \"treeitem\" doivent avoir un nom accessible" | |
| }, | |
| "aria-valid-attr-value": { | |
| "description": "Vérifier que tous les attributs ARIA comportent des valeurs valides", | |
| "help": "Les attributs ARIA doivent comporter des valeurs valides" | |
| }, | |
| "aria-valid-attr": { | |
| "description": "Vérifier que les attributs commençant par aria- sont des attributs ARIA valides", | |
| "help": "Les attributs ARIA doivent se conformer aux noms valides" | |
| }, | |
| "audio-caption": { | |
| "description": "Vérifier que les éléments <audio> ont des sous-titres", | |
| "help": "Les éléments <audio> doivent avoir une piste de sous-titres" | |
| }, | |
| "autocomplete-valid": { | |
| "description": "Vérifier que l’attribut autocomplete est correctement adapté au champ de formulaire", | |
| "help": "L’attribut autocomplete doit être utilisé correctement" | |
| }, | |
| "avoid-inline-spacing": { | |
| "description": "Vérifier que l’espacement du texte défini à travers une attribution de styles peut être ajusté via une feuille de style personnalisée", | |
| "help": "L’espacement du texte inline peut être ajusté avec des feuilles de style personnalisées" | |
| }, | |
| "blink": { | |
| "description": "Vérifier que l’élément <blink> n’est pas utilisé", | |
| "help": "L’élément <blink> est déprécié et ne doit pas être utilisé" | |
| }, | |
| "button-name": { | |
| "description": "Vérifier que les boutons ont un texte perceptible", | |
| "help": "Les boutons doivent avoir un texte perceptible" | |
| }, | |
| "bypass": { | |
| "description": "Vérifier que chaque page dispose au minimum d’un mécanisme de contournement de la navigation pour accéder directement au contenu", | |
| "help": "Chaque page doit fournir des moyens de contourner les contenus répétés" | |
| }, | |
| "color-contrast-enhanced": { | |
| "description": "Vérifier que les contrastes entre le premier plan et l’arrière-plan rencontrent les seuils de contrastes exigés par les WCAG 2 AAA", | |
| "help": "Les éléments doivent avoir un contraste de couleurs suffisant" | |
| }, | |
| "color-contrast": { | |
| "description": "Vérifier que les contrastes entre le premier plan et l’arrière-plan rencontrent les seuils de contrastes exigés par les WCAG 2 AA", | |
| "help": "Les éléments doivent avoir un contraste de couleurs suffisant" | |
| }, | |
| "css-orientation-lock": { | |
| "description": "Vérifier que les contenus ne sont pas limités à une orientation spécifique de l’écran, et que le contenu est utilisable sous toutes les orientations de l’écran", | |
| "help": "Les CSS Media queries ne sont pas utilisées pour verrouiller l’orientation de l’écran" | |
| }, | |
| "definition-list": { | |
| "description": "Vérifier que les éléments <dl> sont correctement structurés", | |
| "help": "Les éléments <dl> ne doivent contenir directement que des groupes d’éléments <dt> et <dd> correctement ordonnés, ou des éléments <script> ou <template>" | |
| }, | |
| "dlitem": { | |
| "description": "Vérifier que les éléments <dt> et <dd> sont contenus dans un élément <dl>", | |
| "help": "Les éléments <dt> et <dd> doivent être contenus dans un élément <dl>" | |
| }, | |
| "document-title": { | |
| "description": "Vérifier que chaque document HTML contient un élément <title> non vide", | |
| "help": "Chaque document doit avoir un élément <title> pour aider à la navigation" | |
| }, | |
| "duplicate-id-active": { | |
| "description": "Vérifier que la valeur d’attribut id de chaque élément actif est unique", | |
| "help": "Les IDs des éléments actifs doivent être uniques" | |
| }, | |
| "duplicate-id-aria": { | |
| "description": "Vérifier que chaque valeur d’attribut id utilisée avec ARIA et dans les étiquettes est unique", | |
| "help": "Les IDs utilisés avec ARIA et dans les étiquettes doivent être uniques" | |
| }, | |
| "duplicate-id": { | |
| "description": "Vérifier que la valeur de chaque attribut id est unique", | |
| "help": "La valeur de l’attribut id doit être unique" | |
| }, | |
| "empty-heading": { | |
| "description": "Vérifier que les niveaux de titre ont un texte perceptible", | |
| "help": "Les niveaux de titre ne doivent pas être vides" | |
| }, | |
| "empty-table-header": { | |
| "description": "Vérifier que les entêtes de tableaux ont un texte perceptible", | |
| "help": "Les textes d’entêtes de tableaux ne doivent pas être vides" | |
| }, | |
| "focus-order-semantics": { | |
| "description": "Vérifier que les éléments dans le parcours du focus ont un rôle approprié", | |
| "help": "Les éléments dans le parcours du focus doivent avoir un rôle approprié pour le contenu interactif" | |
| }, | |
| "form-field-multiple-labels": { | |
| "description": "Vérifier que le champ de formulaire n’a pas plusieurs éléments d’étiquettes", | |
| "help": "Le champ de formulaire ne devrait pas comporter plusieurs éléments d’étiquettes" | |
| }, | |
| "frame-focusable-content": { | |
| "description": "Vérifier que les éléments <frame> et <iframe> avec du contenu focalisable n’ont pas de tabindex=-1", | |
| "help": "Les cadres avec du contenu focalisable ne doivent pas avoir tabindex=-1" | |
| }, | |
| "frame-tested": { | |
| "description": "Vérifier que les éléments <iframe> et <frame> contiennent le script axe-core", | |
| "help": "Les cadres doivent être testés avec axe-core" | |
| }, | |
| "frame-title-unique": { | |
| "description": "Vérifier que les éléments <iframe> et <frame> ont un attribut title unique", | |
| "help": "Chaque cadre doit avoir un attribut title unique" | |
| }, | |
| "frame-title": { | |
| "description": "Vérifier que les éléments <iframe> et <frame> ont un attribut title non vide", | |
| "help": "Chaque cadre doit avoir un attribut title" | |
| }, | |
| "heading-order": { | |
| "description": "Vérifier que la hiérarchie des niveaux de titre est sémantiquement correcte", | |
| "help": "Les niveaux de titre doivent s’incrémenter d’un seul niveau à la fois" | |
| }, | |
| "hidden-content": { | |
| "description": "Informer les utilisateurs sur les contenus cachés", | |
| "help": "Le contenu caché sur la page ne peut pas être analysé" | |
| }, | |
| "html-has-lang": { | |
| "description": "Vérifier que chaque document HTML a un attribut lang", | |
| "help": "L’élément <html> doit avoir un attribut lang" | |
| }, | |
| "html-lang-valid": { | |
| "description": "Vérifier que l’attribut lang sur l’élément <html> a une valeur valide", | |
| "help": "L’élément <html> doit avoir une valeur valide pour l’attribut lang" | |
| }, | |
| "html-xml-lang-mismatch": { | |
| "description": "Vérifier que les éléments HTML avec les attributs lang et xml:lang valides indiquent la même langue de base pour la page", | |
| "help": "Les éléments HTML avec les attributs lang et xml:lang doivent avoir la même langue de base" | |
| }, | |
| "identical-links-same-purpose": { | |
| "description": "Vérifier que les liens qui ont le même nom accessible ont la même finalité", | |
| "help": "Les liens avec le même nom ont la même finalité" | |
| }, | |
| "image-alt": { | |
| "description": "Vérifier que les éléments <img> ont une alternative textuelle, ou un rôle de type 'none' ou 'presentation'", | |
| "help": "Les images doivent avoir une alternative textuelle" | |
| }, | |
| "image-redundant-alt": { | |
| "description": "Vérifier que l’intitulé des liens et boutons n’est pas répété dans l’alternative de l’image", | |
| "help": "L’intitulé des liens et boutons ne doit pas être répété dans l’alternative de l’image" | |
| }, | |
| "input-button-name": { | |
| "description": "Vérifier que la valeur textuelle des contrôles de boutons est perceptible", | |
| "help": "La valeur textuelle des contrôles de boutons doit être perceptible" | |
| }, | |
| "input-image-alt": { | |
| "description": "Vérifier que les éléments <input type=\"image\"> ont une alternative textuelle", | |
| "help": "Les boutons images doivent avoir une alternative textuelle" | |
| }, | |
| "label-content-name-mismatch": { | |
| "description": "Vérifier que dans le cas d’éléments identifiés par leur contenu textuel, le texte visible fait partie de l’intitulé accessible", | |
| "help": "Le contenu textuel des éléments doit aussi se retrouver dans leur intitulé accessible" | |
| }, | |
| "label-title-only": { | |
| "description": "Vérifier que chaque élément de formulaire n’est pas labellisé uniquement par les attributs title ou aria-describedby", | |
| "help": "Chaque élément de formulaire doit avoir un label visible" | |
| }, | |
| "label": { | |
| "description": "Vérifier que chaque élément de formulaire a une étiquette", | |
| "help": "Chaque élément de formulaire doit avoir une étiquette" | |
| }, | |
| "landmark-banner-is-top-level": { | |
| "description": "La région banner ne devrait pas être contenue dans une autre région", | |
| "help": "La région banner doit être au niveau le plus haut" | |
| }, | |
| "landmark-complementary-is-top-level": { | |
| "description": "Vérifier que les landmarks complementary ou aside se retrouvent au plus haut niveau", | |
| "help": "Aside ne doit pas être contenu dans un autre landmark" | |
| }, | |
| "landmark-contentinfo-is-top-level": { | |
| "description": "La région contentinfo ne devrait pas être contenue dans une autre région", | |
| "help": "La région contentinfo doit être au niveau le plus haut" | |
| }, | |
| "landmark-main-is-top-level": { | |
| "description": "La région main ne devrait pas être contenue dans une autre région", | |
| "help": "La région main doit être au niveau le plus haut" | |
| }, | |
| "landmark-no-duplicate-banner": { | |
| "description": "Vérifier que le document n’a pas plus d’une région banner", | |
| "help": "Le document contient au plus une région banner" | |
| }, | |
| "landmark-no-duplicate-contentinfo": { | |
| "description": "Vérifier que le document n’a pas plus d’une région contentinfo", | |
| "help": "Le document contient au plus une région contentinfo" | |
| }, | |
| "landmark-no-duplicate-main": { | |
| "description": "Vérifier que le document a tout au plus, un seul landmark main", | |
| "help": "Le document ne doit pas contenir plus d’un landmark main" | |
| }, | |
| "landmark-one-main": { | |
| "description": "Vérifier qu’une navigation pointe vers le contenu principal de la page. Si la page contient des iframes, chaque iframe ne doit contenir au plus qu’une région main", | |
| "help": "La page doit contenir une région main" | |
| }, | |
| "landmark-unique": { | |
| "help": "Vérifier que chaque landmark est unique", | |
| "description": "Les landmarks doivent comporter un rôle unique, ou une étiquette accessible par la combinaison de role/label/title" | |
| }, | |
| "link-in-text-block": { | |
| "description": "Les liens doivent pouvoir être distingués autrement que par la couleur", | |
| "help": "Les liens doivent pouvoir être distingués du texte environnant d’une façon qui ne repose pas sur la couleur" | |
| }, | |
| "link-name": { | |
| "description": "Vérifier que les liens ont un texte perceptible", | |
| "help": "Les liens doivent avoir un texte perceptible" | |
| }, | |
| "list": { | |
| "description": "Vérifier que les listes sont structurées correctement", | |
| "help": "<ul> et <ol> ne doivent contenir directement que des éléments <li>, <script> ou <template>" | |
| }, | |
| "listitem": { | |
| "description": "Vérifier que les éléments <li> sont utilisés sémantiquement", | |
| "help": "Les éléments <li> doivent être contenus dans un élément <ul> ou <ol>" | |
| }, | |
| "marquee": { | |
| "description": "Vérifier que l’élément <marquee> n’est pas utilisé", | |
| "help": "L’élément <marquee> est déprécié et ne doit pas être utilisé" | |
| }, | |
| "meta-refresh-no-exceptions": { | |
| "description": "Vérifier que <meta http-equiv=\"refresh\"> n’est pas utilisé pour une actualisation différée", | |
| "help": "L'actualisation différée ne doit pas être utilisée" | |
| }, | |
| "meta-refresh": { | |
| "description": "Vérifier que <meta http-equiv=\"refresh\"> n’est pas utilisé pour une actualisation différée", | |
| "help": "L'actualisation différée en dessous de 20 heures ne doit pas être utilisée" | |
| }, | |
| "meta-viewport-large": { | |
| "description": "Vérifier que <meta name=\"viewport\"> permet un agrandissement significatif", | |
| "help": "Les utilisateurs devraient pouvoir zoomer et agrandir le texte jusqu’à 500%" | |
| }, | |
| "meta-viewport": { | |
| "description": "Vérifier que <meta name=\"viewport\"> ne désactive pas le zoom ni l’agrandissement", | |
| "help": "Le zoom et l’agrandissement ne doivent pas être désactivés" | |
| }, | |
| "nested-interactive": { | |
| "description": "Les éléments interactifs imbriqués ne sont pas annoncés par les lecteurs d’écrans", | |
| "help": "Verifier que les éléments interactifs ne sont pas imbriqués" | |
| }, | |
| "no-autoplay-audio": { | |
| "description": "Vérifier que les éléments <video> ou <audio> ne jouent pas de son automatiquement pendant plus de 3 secondes sans mécanisme de contrôle pour stopper la lecture ou couper le son.", | |
| "help": "Les éléments <video> ou <audio> ne jouent pas de son automatiquement" | |
| }, | |
| "object-alt": { | |
| "description": "Vérifier que les éléments <object> ont une alternative textuelle", | |
| "help": "Les éléments <object> doivent avoir une alternative textuelle" | |
| }, | |
| "p-as-heading": { | |
| "description": "Vérifier que les éléments p ne sont pas utilisés pour styler des niveaux de titres", | |
| "help": "La graisse, le style et le corps du texte ne doivent pas être utilisés pour styler les éléments p comme des niveaux de titres" | |
| }, | |
| "page-has-heading-one": { | |
| "description": "Vérifier que la page, ou au moins une de ses iframes, contient un titre de niveau 1", | |
| "help": "La page doit contenir un titre de niveau 1" | |
| }, | |
| "presentation-role-conflict": { | |
| "description": "Signaler les éléments dont le rôle est 'none' ou 'presentation' et qui déclenchent la résolution de conflits de rôles.", | |
| "help": "Les éléments avec un rôle 'none' ou 'presentation' doivent être signalés" | |
| }, | |
| "region": { | |
| "description": "Vérifier que tout le contenu est localisé dans une région", | |
| "help": "Le contenu doit être localisé dans une région" | |
| }, | |
| "role-img-alt": { | |
| "description": "Vérifier que les éléments avec [role='img'] ont une équivalence textuelle", | |
| "help": "Les éléments avec [role='img'] ont une équivalence textuelle" | |
| }, | |
| "scope-attr-valid": { | |
| "description": "Vérifier que l’attribut scope est utilisé correctement dans les tableaux", | |
| "help": "L’attribut scope doit être utilisé correctement" | |
| }, | |
| "scrollable-region-focusable": { | |
| "description": "Les éléments dont le contenu défile devraient être accessibles au clavier", | |
| "help": "Vérifier que les régions défilantes sont accessibles au clavier" | |
| }, | |
| "select-name": { | |
| "description": "Vérifier que l’élément 'select' a un nom accessible", | |
| "help": "L’élément 'select' doit avoir un nom accessible" | |
| }, | |
| "server-side-image-map": { | |
| "description": "Vérifier que les images réactives côté serveur ne sont pas utilisées", | |
| "help": "Les images réactives côté serveur ne devraient pas être utilisées" | |
| }, | |
| "skip-link": { | |
| "description": "Vérifier que tous les liens d’évitement ont une cible pouvant recevoir le focus", | |
| "help": "La cible d’un lien d’évitement doit exister et pouvoir recevoir le focus" | |
| }, | |
| "svg-img-alt": { | |
| "description": "Vérifier que les éléments svg avec un rôle 'img', 'graphics-document', ou 'graphics-symbol' ont un texte accessible", | |
| "help": "Les éléments svg avec un rôle 'img' ont un texte alternatif" | |
| }, | |
| "tabindex": { | |
| "description": "Vérifier que les valeurs de l’attribut tabindex ne sont pas supérieures à 0", | |
| "help": "Aucun élément ne devrait avoir un tabindex avec une valeur supérieure à zéro" | |
| }, | |
| "table-duplicate-name": { | |
| "description": "Vérifier que chaque tableau n’ait pas un summary et un caption identiques", | |
| "help": "L’élément <caption> ne devrait pas contenir le même texte que l’attribut summary" | |
| }, | |
| "table-fake-caption": { | |
| "description": "Vérifier que les tableaux avec une légende utilisent l’élément <caption>", | |
| "help": "Les données ou les cellules d’entête ne devraient pas être utilisées pour légender un tableau de données" | |
| }, | |
| "target-size": { | |
| "description": "Vérifier que la cible tactile a une taille et un espace suffisants", | |
| "help": "Toutes les cibles tactiles doivent faire 24px de large, ou être suffisamment grandes" | |
| }, | |
| "td-has-header": { | |
| "description": "Vérifier que chaque cellule de données non vide dans un tableau de données a une ou plusieurs cellules d’entête", | |
| "help": "Chaque élément td non vide dans un tableau plus grand que 3 × 3 doit avoir une cellule d’entête associée" | |
| }, | |
| "td-headers-attr": { | |
| "description": "Vérifier que chaque cellule utilisant l’attribut headers fait référence à une autre cellule du même tableau", | |
| "help": "Les cellules utilisant l’attribut headers ne doivent faire référence qu’à d’autres cellules du même tableau" | |
| }, | |
| "th-has-data-cells": { | |
| "description": "Vérifier que chaque cellule d’entête dans un tableau de données fait référence à des cellules de données", | |
| "help": "Tous les éléments th et ceux avec role=columnheader/rowheader doivent décrire des cellules de données" | |
| }, | |
| "valid-lang": { | |
| "description": "Vérifier que les attributs lang ont des valeurs valides", | |
| "help": "L’attribut lang doit avoir une valeur valide" | |
| }, | |
| "video-caption": { | |
| "description": "Vérifier que les éléments <video> ont des sous-titres", | |
| "help": "Les éléments <video> doivent avoir des sous-titres" | |
| } | |
| }, | |
| "checks": { | |
| "abstractrole": { | |
| "pass": "Les rôles abstraits ne sont pas utilisés", | |
| "fail": { | |
| "singular": "Le rôle abstrait ne peut pas être utilisé directement : ${data.values}", | |
| "plural": "Les rôles abstraits ne peuvent pas être utilisés directement : ${data.values}" | |
| } | |
| }, | |
| "aria-allowed-attr": { | |
| "pass": "Les attributs ARIA sont utilisés correctement pour le rôle défini", | |
| "fail": { | |
| "singular": "L’attribut ARIA n’est pas autorisé : ${data.values}", | |
| "plural": "Les attributs ARIA ne sont pas autorisés : ${data.values}" | |
| } | |
| }, | |
| "aria-allowed-role": { | |
| "pass": "Le rôle ARIA est autorisé pour l’élément donné", | |
| "fail": { | |
| "singular": "Le rôle ARIA ${data.values} n’est pas autorisé pour l’élément donné", | |
| "plural": "Les rôles ARIA ${data.values} ne sont pas autorisés pour l’élément donné" | |
| }, | |
| "incomplete": { | |
| "singular": "Le rôle ARIA ${data.values} doit être retiré lorsque l’élément est rendu visible, car il n’est pas autorisé pour cet élément", | |
| "plural": "Les rôles ARIA ${data.values} doivent être retirés lorsque l’élément est rendu visible, car ils ne sont pas autorisés pour cet élément" | |
| } | |
| }, | |
| "aria-errormessage": { | |
| "pass": "Utiliser une technique prise en charge pour aria-errormessage", | |
| "fail": { | |
| "singular": "La valeur d’aria-errormessage `${data.values}` doit recourir à une technique pour annoncer le message (aria-live, aria-describedby, role=alert, etc.)", | |
| "plural": "Les valeurs aria-errormessage `${data.values}` doivent recourir à une technique pour annoncer le message (aria-live, aria-describedby, role=alert, etc.)" | |
| }, | |
| "incomplete": { | |
| "singular": "Vérifier que la valeur de l’attribut 'aria-errormessage' `${data.values}` se réfère à un élément existant", | |
| "plural": "Vérifier que les valeurs de l’attribut 'aria-errormessage' `${data.values}` se réfèrent à des éléments existants", | |
| "idrefs": "Impossible de déterminer si l’élément référencé par 'aria-errormessage' existe dans la page : ${data.values}" | |
| } | |
| }, | |
| "aria-hidden-body": { | |
| "pass": "Aucun attribut aria-hidden n’est présent sur body", | |
| "fail": "aria-hidden=true ne devrait pas être présent sur body" | |
| }, | |
| "aria-level": { | |
| "pass": "Les valeurs d’aria-level sont valides", | |
| "incomplete": "Les valeurs d’aria-level supérieures à 6 ne sont pas supportées par toutes les combinaisons de navigateurs et de lecteurs d’écrans" | |
| }, | |
| "aria-prohibited-attr": { | |
| "pass": "L’attribut ARIA est autorisé", | |
| "fail": "L’attribut ARIA ne peut pas être utilisé, ajoutez un attribut role ou utilisez un élément différent : ${data.values}", | |
| "incomplete": "L’attribut ARIA n’est pas bien supporté sur l’élément et le contenu texte sera utilisé à la place : ${data.values}" | |
| }, | |
| "aria-required-attr": { | |
| "pass": "Tous les attributs ARIA requis sont présents", | |
| "fail": { | |
| "singular": "L’attribut ARIA requis est manquant : ${data.values}", | |
| "plural": "Les attributs ARIA requis sont manquants : ${data.values}" | |
| } | |
| }, | |
| "aria-required-children": { | |
| "pass": { | |
| "default": "Les descendants ARIA requis sont présents" | |
| }, | |
| "fail": { | |
| "singular": "Le descendant ARIA requis est manquant : ${data.values}", | |
| "plural": "Les descendants ARIA requis sont manquants : ${data.values}" | |
| }, | |
| "incomplete": { | |
| "singular": "Le rôle du descendant ARIA attendu doit être ajouté : ${data.values}", | |
| "plural": "Les rôles des descendants ARIA attendus doivent être ajoutés : ${data.values}" | |
| } | |
| }, | |
| "aria-required-parent": { | |
| "pass": "Les rôles parents ARIA requis sont présents", | |
| "fail": { | |
| "singular": "Le rôle parent ARIA requis est manquant : ${data.values}", | |
| "plural": "Les rôles parents ARIA requis sont manquants : ${data.values}" | |
| } | |
| }, | |
| "aria-roledescription": { | |
| "pass": "aria-roledescription utilisé sur un élément sémantique supporté", | |
| "incomplete": "Vérifier que la valeur d’aria-roledescription est annoncée par les lecteurs d’écran supportés", | |
| "fail": "Attribuer à l’élément un rôle qui supporte aria-roledescription" | |
| }, | |
| "aria-unsupported-attr": { | |
| "pass": "L’attribut ARIA est supporté", | |
| "fail": "L’attribut ARIA n’est pas suffisamment supporté par les lecteurs d’écran et autres technologies d’assistance : ${data.values}" | |
| }, | |
| "aria-valid-attr-value": { | |
| "pass": "Les valeurs d’attribut ARIA sont valides", | |
| "fail": { | |
| "singular": "La valeur d’attribut ARIA est invalide : ${data.values}", | |
| "plural": "Les valeurs d’attribut ARIA sont invalides : ${data.values}" | |
| }, | |
| "incomplete": { | |
| "noId": "L’ID d’élément référencé par l’attribut ARIA n’existe pas dans la page : ${data.needsReview}", | |
| "ariaCurrent": "La valeur de l’attribut ARIA est invalide et sera traitée comme \"aria-current=true\" : ${data.needsReview}", | |
| "idrefs": "Impossible de vérifier si l’ID d’élément référencé par l’attribut ARIA existe dans la page : ${data.needsReview}" | |
| } | |
| }, | |
| "aria-valid-attr": { | |
| "pass": { | |
| "singular": "Les noms d’attributs ARIA sont valides", | |
| "plural": "Le nom d’attribut ARIA est valide" | |
| }, | |
| "fail": { | |
| "singular": "Le nom d’attribut ARIA est invalide : ${data.values}", | |
| "plural": "Les noms d’attributs ARIA sont invalides : ${data.values}" | |
| } | |
| }, | |
| "fallbackrole": { | |
| "pass": "Une seule valeur de rôle utilisée", | |
| "fail": "Utiliser une seule valeur de rôle, dans la mesure où les rôles de secours ne sont pas supportés par les navigateurs anciens", | |
| "incomplete": "Utiliser seulement les rôles 'presentation' ou 'none' puisqu’ils sont synonymes." | |
| }, | |
| "has-global-aria-attribute": { | |
| "pass": { | |
| "singular": "L’élément a un attribut ARIA global : ${data.values}", | |
| "plural": "L’élément a des attributs ARIA globaux : ${data.values}" | |
| }, | |
| "fail": "L’élément n’a pas d’attribut ARIA global" | |
| }, | |
| "has-widget-role": { | |
| "pass": "L’élément a un rôle widget.", | |
| "fail": "L’élément n’a pas de rôle widget." | |
| }, | |
| "invalidrole": { | |
| "pass": "Le rôle ARIA est valide", | |
| "fail": { | |
| "singular": "Le rôle doit être un rôle ARIA valide : ${data.values}", | |
| "plural": "Les rôles doivent être des rôles ARIA valides : ${data.values}" | |
| } | |
| }, | |
| "is-element-focusable": { | |
| "pass": "L’élément est focalisable.", | |
| "fail": "L’élément n’est pas focalisable." | |
| }, | |
| "no-implicit-explicit-label": { | |
| "pass": "Il n’y a pas de décalage entre le <label> et l’intitulé accessible", | |
| "incomplete": "Vérifier que le <label> n’a pas à faire partie du nom du champ de formulaire ARIA ${data}" | |
| }, | |
| "unsupportedrole": { | |
| "pass": "Le rôle ARIA est supporté", | |
| "fail": "Le rôle utilisé n’est pas suffisamment supporté par les technologies d’assistance" | |
| }, | |
| "valid-scrollable-semantics": { | |
| "pass": "L’élément a une sémantique valide pour un élément dans l’ordre de tabulation.", | |
| "fail": "L’élément n’a pas une sémantique valide pour un élément dans l’ordre de tabulation." | |
| }, | |
| "color-contrast": { | |
| "pass": "L’élément a un contraste de couleurs suffisant de ${data.contrastRatio}", | |
| "fail": { | |
| "default": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} (couleur d’avant plan : ${data.fgColor}, couleur d’arrière plan : ${data.bgColor}, taille de police : ${data.fontSize}, graisse : ${data.fontWeight}). Contraste de couleur attendu : ${data.expectedContrastRatio}", | |
| "fgOnShadowColor": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} entre l’avant plan et la couleur de l’ombre de texte (couleur d’avant plan : ${data.fgColor}, couleur de l’ombre de texte : ${data.shadowColor}, taille de police : ${data.fontSize}, graisse: ${data.fontWeight}). Contraste de couleurs attendu : ${data.expectedContrastRatio}", | |
| "shadowOnBgColor": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} entre la couleur de l’ombre de texte et l’arrière plan (couleur de l’ombre de texte : ${data.shadowColor}, couleur d’arrière plan : ${data.bgColor}, taille de police : ${data.fontSize}, graisse: ${data.fontWeight}). Contraste de couleurs attendu : ${data.expectedContrastRatio}" | |
| }, | |
| "incomplete": { | |
| "default": "Impossible de déterminer le rapport de contraste", | |
| "bgImage": "La couleur d’arrière-plan de l’élément n’a pu être déterminée à cause d’une image d’arrière-plan", | |
| "bgGradient": "La couleur d’arrière-plan de l’élément n’a pu être déterminée à cause d’un dégradé d’arrière-plan", | |
| "imgNode": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car l’élément contient une balise image", | |
| "bgOverlap": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car un autre élément le chevauche", | |
| "fgAlpha": "La couleur du texte de l’élément n’a pu être déterminée à cause d’une opacité réduite", | |
| "elmPartiallyObscured": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car l’élément est partiellement masqué par un autre élément", | |
| "elmPartiallyObscuring": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car il chevauche partiellement un autre élément", | |
| "outsideViewport": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car il est à l’extérieur du viewport", | |
| "equalRatio": "L’élément a un rapport de contraste de 1:1 avec son arrière-plan", | |
| "shortTextContent": "Le contenu de l’élément est trop court pour déterminer s’il s’agit réellement d’un contenu textuel", | |
| "nonBmp": "Le contenu de l’élément contient seulement des caractères non textuels", | |
| "pseudoContent": "La couleur d’arrière plan de l’élément n’a pu être déterminée à cause d’un pseudo-élément" | |
| } | |
| }, | |
| "color-contrast-enhanced": { | |
| "pass": "L’élément a un contraste de couleurs suffisant de ${data.contrastRatio}", | |
| "fail": { | |
| "default": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} (couleur d’avant plan : ${data.fgColor}, couleur d’arrière plan : ${data.bgColor}, taille de police : ${data.fontSize}, graisse : ${data.fontWeight}). Contraste de couleur attendu : ${data.expectedContrastRatio}", | |
| "fgOnShadowColor": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} entre l’avant plan et la couleur de l’ombre de texte (couleur d’avant plan : ${data.fgColor}, couleur de l’ombre de texte : ${data.shadowColor}, taille de police : ${data.fontSize}, graisse: ${data.fontWeight}). Contraste de couleurs attendu : ${data.expectedContrastRatio}", | |
| "shadowOnBgColor": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} entre la couleur de l’ombre de texte et l’arrière plan (couleur de l’ombre de texte : ${data.shadowColor}, couleur d’arrière plan : ${data.bgColor}, taille de police : ${data.fontSize}, graisse: ${data.fontWeight}). Contraste de couleurs attendu : ${data.expectedContrastRatio}" | |
| }, | |
| "incomplete": { | |
| "default": "Impossible de déterminer le rapport de contraste", | |
| "bgImage": "La couleur d’arrière-plan de l’élément n’a pu être déterminée à cause d’une image d’arrière-plan", | |
| "bgGradient": "La couleur d’arrière-plan de l’élément n’a pu être déterminée à cause d’un dégradé d’arrière-plan", | |
| "imgNode": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car l’élément contient une balise image", | |
| "bgOverlap": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car un autre élément le chevauche", | |
| "fgAlpha": "La couleur du texte de l’élément n’a pu être déterminée à cause d’une opacité réduite", | |
| "elmPartiallyObscured": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car l’élément est partiellement masqué par un autre élément", | |
| "elmPartiallyObscuring": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car il chevauche partiellement un autre élément", | |
| "outsideViewport": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car il est à l’extérieur du viewport", | |
| "equalRatio": "L’élément a un rapport de contraste de 1:1 avec son arrière-plan", | |
| "shortTextContent": "Le contenu de l’élément est trop court pour déterminer s’il s’agit réellement d’un contenu textuel", | |
| "nonBmp": "Le contenu de l’élément contient seulement des caractères non textuels", | |
| "pseudoContent": "La couleur d’arrière plan de l’élément n’a pu être déterminée à cause d’un pseudo-élément" | |
| } | |
| }, | |
| "link-in-text-block": { | |
| "pass": "Les liens peuvent être distingués du texte environnant par un autre moyen que la couleur", | |
| "fail": "Les liens doivent se distinguer du texte environnant par un autre moyen que la couleur", | |
| "incomplete": { | |
| "default": "Impossible de déterminer le rapport de contraste", | |
| "bgContrast": "Le rapport de contraste de l’élément n’a pu être déterminé. Recherchez un style différent pour le hover/focus.", | |
| "bgImage": "Le rapport de contraste de l’élément n’a pu être déterminé à cause d’une image d’arrière-plan", | |
| "bgGradient": "Le rapport de contraste de l’élément n’a pu être déterminé à cause d’un dégradé d’arrière-plan", | |
| "imgNode": "Le rapport de contraste de l’élément n’a pu être déterminé, car l’élément contient une balise image", | |
| "bgOverlap": "Le rapport de contraste de l’élément n’a pu être déterminé à cause d’un chevauchement" | |
| } | |
| }, | |
| "autocomplete-appropriate": { | |
| "pass": "La valeur autocomplete est sur un élément approprié", | |
| "fail": "La valeur autocomplete est inappropriée sur ce type de champ de formulaire" | |
| }, | |
| "autocomplete-valid": { | |
| "pass": "L’attribut autocomplete est formaté correctement", | |
| "fail": "L’attribut autocomplete n’est pas formaté correctement" | |
| }, | |
| "accesskeys": { | |
| "pass": "La valeur de l’attribut accesskey est unique", | |
| "fail": "Plusieurs éléments ont le même accesskey au sein du document" | |
| }, | |
| "focusable-content": { | |
| "pass": "L’élément contient des éléments focalisables", | |
| "fail": "L’élément devrait avoir du contenu focalisable" | |
| }, | |
| "focusable-disabled": { | |
| "pass": "Aucun élément focalisable contenu dans l’élément", | |
| "fail": "Le contenu focalisable devrait être désactivé ou retiré du DOM" | |
| }, | |
| "focusable-element": { | |
| "pass": "L’élément est focalisable", | |
| "fail": "L’élément devrait être focalisable" | |
| }, | |
| "focusable-modal-open": { | |
| "pass": "Pas d’élément focalisable quand une modale est ouverte", | |
| "incomplete": "Vérifiez que les éléments focalisables ne sont pas atteignables via la tabulation dans l’état actuel" | |
| }, | |
| "focusable-no-name": { | |
| "pass": "L’élément n’est pas dans l’ordre de tabulation ou a un intitulé accessible", | |
| "fail": "L’élément est dans l’ordre de tabulation et n’a pas d’intitulé accessible", | |
| "incomplete": "Impossible de déterminer si l’élément a un nom accessible" | |
| }, | |
| "focusable-not-tabbable": { | |
| "pass": "Aucun élément focalisable contenu dans l’élément", | |
| "fail": "Le contenu focalisable devrait se voir assigné un tabindex='-1' ou être retiré du DOM" | |
| }, | |
| "frame-focusable-content": { | |
| "pass": "L’élément n’a pas de descendants focalisables", | |
| "fail": "L’élément a des descendants focalisables", | |
| "incomplete": "Impossible de déterminer si l’élément a des descendants" | |
| }, | |
| "landmark-is-top-level": { | |
| "pass": "La région ${data.role} est au niveau le plus haut.", | |
| "fail": "La région ${data.role} est contenue dans une autre région." | |
| }, | |
| "no-focusable-content": { | |
| "pass": "L’élément n’a pas de descendants focalisables", | |
| "fail": "L’élément a des descendants focalisables", | |
| "incomplete": "Impossible de déterminer si l’élément a des descendants" | |
| }, | |
| "page-has-heading-one": { | |
| "pass": "La page a au moins un titre de niveau un", | |
| "fail": "La page doit avoir un titre de niveau un" | |
| }, | |
| "page-has-main": { | |
| "pass": "La page a au moins une région main", | |
| "fail": "La page doit avoir une région main" | |
| }, | |
| "page-no-duplicate-banner": { | |
| "pass": "Le document n’a pas plus d’une région banner", | |
| "fail": "Le document a plus d’une région banner" | |
| }, | |
| "page-no-duplicate-contentinfo": { | |
| "pass": "Le document n’a pas plus d’une région contentinfo", | |
| "fail": "Le document a plus d’une région contentinfo" | |
| }, | |
| "page-no-duplicate-main": { | |
| "pass": "Le document n’a pas plus d’une région main", | |
| "fail": "Le document a plus d’une région banner" | |
| }, | |
| "tabindex": { | |
| "pass": "L’élément n’a pas de tabindex supérieur à 0", | |
| "fail": "L’élément a un tabindex supérieur à 0" | |
| }, | |
| "alt-space-value": { | |
| "pass": "L’élément a une valeur d’attribut alt valide", | |
| "fail": "L’élément a un attribut alt qui contient un caractère d’espacement qui n’est pas ignoré par les lecteurs d’écran" | |
| }, | |
| "duplicate-img-label": { | |
| "pass": "L’élément ne duplique pas un texte existant dans l’alternative textuelle de l’élément <img>", | |
| "fail": "L’élément contient un élément <img> dont l’alternative textuelle duplique un texte existant" | |
| }, | |
| "explicit-label": { | |
| "pass": "L’élément de formulaire a un <label> explicite", | |
| "fail": "L’élément de formulaire n’a pas de <label> explicite", | |
| "incomplete": "Impossible de déterminer si l’élément de formulaire a un <label> explicite" | |
| }, | |
| "help-same-as-label": { | |
| "pass": "L’aide à la saisie (title ou aria-describedby) ne duplique pas le contenu du label", | |
| "fail": "L’aide à la saisie (title ou aria-describedby) est identique au contenu du label" | |
| }, | |
| "hidden-explicit-label": { | |
| "pass": "L’élément de formulaire a un <label> visible et explicite", | |
| "fail": "L’élément de formulaire a un <label> explicite qui est masqué", | |
| "incomplete": "Impossible de déterminer si l’élément de formulaire a un <label> explicite qui est masqué" | |
| }, | |
| "implicit-label": { | |
| "pass": "L’élément de formulaire a un <label> implicite (imbriqué)", | |
| "fail": "L’élément de formulaire n’a pas de <label> implicite (imbriqué)", | |
| "incomplete": "Impossible de déterminer si l’élément de formulaire a un <label> implicite (imbriqué)" | |
| }, | |
| "label-content-name-mismatch": { | |
| "pass": "L’élément contient du texte visible qui n’est pas inclus dans l’intitulé accessible", | |
| "fail": "Le texte contenu dans l’élément n’est pas inclus dans l’intitulé accessible" | |
| }, | |
| "multiple-label": { | |
| "pass": "L’élément de formulaire n’a pas plusieurs éléments <label>", | |
| "incomplete": "Des éléments associés à plusieurs étiquettes ne sont pas suffisamment supportés par les technologies d’assistance. Vérifier que la première étiquette contient toute l’information nécessaire." | |
| }, | |
| "title-only": { | |
| "pass": "L’élément de formulaire n’a pas uniquement l’attribut title comme étiquette", | |
| "fail": "Seul l’attribut title est utilisé comme étiquette pour l’élément de formulaire" | |
| }, | |
| "landmark-is-unique": { | |
| "pass": "Les landmarks doivent comporter un rôle unique, ou une étiquette accessible par la combinaison de role/label/title", | |
| "fail": "L’attribut landmark doit comporter une valeur d’attribut aria-label, aria-labelledby, ou title unique pour rendre le landmark distinct" | |
| }, | |
| "has-lang": { | |
| "pass": "L’élément <html> a un attribut lang", | |
| "fail": { | |
| "noXHTML": "L’attribut xml:lang n’est pas valide sur les pages HTML, utiliser l’attribut lang.", | |
| "noLang": "L’élément <html> n’a pas d’attribut lang" | |
| } | |
| }, | |
| "valid-lang": { | |
| "pass": "La valeur de l’attribut lang fait partie des codes de langues valides", | |
| "fail": "La valeur de l’attribut lang ne fait pas partie des codes de langues valides" | |
| }, | |
| "xml-lang-mismatch": { | |
| "pass": "Les attributs lang et xml:lang indiquent la même langue de base", | |
| "fail": "Les attributs lang et xml:lang indiquent des langues de base différentes" | |
| }, | |
| "dlitem": { | |
| "pass": "L’item de liste de description a un élément <dl> parent", | |
| "fail": "L’item de liste de description n’a pas d’élément <dl> parent" | |
| }, | |
| "listitem": { | |
| "pass": "L’item de liste a un élément <ul>, <ol> ou role=\"list\" parent", | |
| "fail": { | |
| "default": "L’item de liste n’a pas d’élément <ul> ou <ol> parent", | |
| "roleNotValid": "L’item de liste n’a pas d’élément <ul> ou <ol> parent sans un role ou un role=\"list\"" | |
| } | |
| }, | |
| "only-dlitems": { | |
| "pass": "L’élément de liste n’a que des descendants directs qui sont autorisés dans les éléments <dt> ou <dd>", | |
| "fail": "L’élément de liste a des descendants directs qui ne sont pas autorisés dans les éléments <dt> ou <dd>" | |
| }, | |
| "only-listitems": { | |
| "pass": "L’élément de liste n’a que des descendants directs qui sont autorisés dans les éléments <li>", | |
| "fail": { | |
| "default": "L’élément de liste comporte des descendants directs qui ne sont pas autorisés à l’intérieur de l’élément <li>", | |
| "roleNotValid": "L’élément de liste comporte des descendants directs avec un rôle qui n’est pas autorisé : ${data.roles}" | |
| } | |
| }, | |
| "structured-dlitems": { | |
| "pass": "S’il n’est pas vide, l’élément contient au moins un élément <dt> et un élément <dd>", | |
| "fail": "S’il n’est pas vide, l’élément doit contenir au moins un élément <dt> et un élément <dd>" | |
| }, | |
| "caption": { | |
| "pass": "L’élément multimédia a une piste de sous-titres", | |
| "incomplete": "Aucune piste de sous-titres n’a pu être trouvée pour cet élément" | |
| }, | |
| "frame-tested": { | |
| "pass": "L’iframe a été testée avec axe-core", | |
| "fail": "L’iframe n’a pu être testée avec axe-core", | |
| "incomplete": "L’iframe doit encore être testée avec axe-core" | |
| }, | |
| "no-autoplay-audio": { | |
| "pass": "<video> ou <audio> ne produit pas de son pour une durée plus grande que celle permise ou a un mécanisme de contrôle", | |
| "fail": "<video> ou <audio> produisent du son pour une durée plus grande que celle permise et n’ont pas de mécanisme de contrôle", | |
| "incomplete": "Verifier que l’élément <video> ou <audio> ne produit pas de son pour une durée plus grande que celle permise ou a un mécanisme de contrôle" | |
| }, | |
| "css-orientation-lock": { | |
| "pass": "L’utilisation de l’écran est indépendante de l’orientation et n’est pas limitée à un mode d’affichage donné", | |
| "fail": "L’utilisation de l’écran est limitée à une orientation donnée par CSS, rendant l’affichage inutilisable", | |
| "incomplete": "Le verrouillage de l’orientation d’affichage par CSS ne peut être déterminé" | |
| }, | |
| "meta-viewport-large": { | |
| "pass": "La balise <meta> ne limite pas l’agrandissement sur les appareils mobiles", | |
| "fail": "La balise <meta> limite l’agrandissement sur les appareils mobiles" | |
| }, | |
| "meta-viewport": { | |
| "pass": "La balise <meta> n’empêche pas l’agrandissement sur les appareils mobiles", | |
| "fail": "La balise <meta> empêche l’agrandissement sur les appareils mobiles" | |
| }, | |
| "header-present": { | |
| "pass": "La page a un entête", | |
| "fail": "La page n’a pas d’entête" | |
| }, | |
| "heading-order": { | |
| "pass": "Hiérarchie entre les titres valide", | |
| "fail": "Hiérarchie entre les titres invalide", | |
| "incomplete": "Impossible de déterminer le titre précédent" | |
| }, | |
| "identical-links-same-purpose": { | |
| "pass": "Il n’y a pas d’autre lien avec le même nom qui a pour destination une URL différente", | |
| "incomplete": "Vérifier que les liens ont la même finalité ou sont volontairement ambigus." | |
| }, | |
| "internal-link-present": { | |
| "pass": "Lien d’évitement valide trouvé", | |
| "fail": "Aucun lien d’évitement valide trouvé" | |
| }, | |
| "landmark": { | |
| "pass": "La page a une région", | |
| "fail": "La page n’a pas de région" | |
| }, | |
| "meta-refresh": { | |
| "pass": "Aucune balise <meta> ne rafraîchit immédiatement la page", | |
| "fail": "La balise <meta> force le rafraîchissement minuté de la page" | |
| }, | |
| "p-as-heading": { | |
| "pass": "Les éléments <p> ne sont pas stylés comme des titres", | |
| "fail": "Des titres doivent être utilisés au lieu de styler des éléments <p>" | |
| }, | |
| "region": { | |
| "pass": "Contenu imbriqué dans une région ARIA", | |
| "fail": "Contenu non imbriqué dans une région ARIA" | |
| }, | |
| "skip-link": { | |
| "pass": "La cible du lien d’évitement existe", | |
| "incomplete": "La cible du lien d’évitement devrait devenir visible lors de l’activation", | |
| "fail": "Lien d’évitement sans cible" | |
| }, | |
| "unique-frame-title": { | |
| "pass": "L’attribut title de l’élément est unique", | |
| "fail": "L’attribut title de l’élément n’est pas unique" | |
| }, | |
| "duplicate-id-active": { | |
| "pass": "Le document ne comporte aucun élément actif partageant la même valeur d’attribut id", | |
| "fail": "Le document comporte ou un plusieurs éléments actifs partageant la même valeur d’attribut id : ${data}" | |
| }, | |
| "duplicate-id-aria": { | |
| "pass": "Le document ne comporte aucun élément référencé par ARIA ou étiquettes partageant la même valeur d’attribut id", | |
| "fail": "Le document comporte un ou plusieurs éléments référencés par ARIA partageant la même valeur d’attribut id : ${data}" | |
| }, | |
| "duplicate-id": { | |
| "pass": "Le document n’a pas d’éléments qui partagent le même attribut id", | |
| "fail": "Le document a plusieurs éléments avec le même attribut id : ${data}" | |
| }, | |
| "aria-label": { | |
| "pass": "L’attribut aria-label existe et n’est pas vide", | |
| "fail": "L’attribut aria-label n’existe pas ou est vide" | |
| }, | |
| "aria-labelledby": { | |
| "pass": "L’attribut aria-labelledby existe et fait référence à des éléments visibles par les lecteurs d’écran", | |
| "fail": "L’attribut aria-labelledby n’existe pas, fait référence à des éléments qui n’existent pas ou à des éléments vides ou non visibles", | |
| "incomplete": "S’assurer que l’attribut aria-labelledby fait référence à un élément existant" | |
| }, | |
| "avoid-inline-spacing": { | |
| "pass": "Aucun style inline affectant l’espacement du texte avec '!important' n’a été spécifié", | |
| "fail": { | |
| "singular": "Retirer '!important' du style inline ${data.values}, car le remplacement n’est pas pris en charge par la plupart des navigateurs", | |
| "plural": "Retirer '!important' des styles inline ${data.values}, car le remplacement n’est pas pris en charge par la plupart des navigateurs" | |
| } | |
| }, | |
| "button-has-visible-text": { | |
| "pass": "L’élément a un contenu textuel visible par les lecteurs d’écran", | |
| "fail": "L’élément n’a aucun contenu textuel visible par les lecteurs d’écran", | |
| "incomplete": "Impossible de vérifier si l’élément a des enfants" | |
| }, | |
| "doc-has-title": { | |
| "pass": "Le document a un élément <title> non vide", | |
| "fail": "Le document n’a pas d’élément <title> non vide" | |
| }, | |
| "exists": { | |
| "pass": "L’élément n’existe pas", | |
| "incomplete": "L’élément existe" | |
| }, | |
| "has-alt": { | |
| "pass": "L’élément a un attribut alt", | |
| "fail": "L’élément n’a pas d’attribut alt" | |
| }, | |
| "has-visible-text": { | |
| "pass": "L’élément a un contenu textuel visible par les lecteurs d’écran", | |
| "fail": "L’élément n’a aucun contenu textuel visible par les lecteurs d’écran", | |
| "incomplete": "Impossible de vérifier si l’élément a des enfants" | |
| }, | |
| "is-on-screen": { | |
| "pass": "L’élément n’est pas visible", | |
| "fail": "L’élément est visible" | |
| }, | |
| "non-empty-alt": { | |
| "pass": "L’élément a un attribut alt non vide", | |
| "fail": { | |
| "noAttr": "L’élément n’a pas d’attribut alt", | |
| "emptyAttr": "L’élément a un attribut alt vide" | |
| } | |
| }, | |
| "non-empty-if-present": { | |
| "pass": { | |
| "default": "L’élément n’a pas d’attribut value", | |
| "has-label": "L’élément a un attribut value non-vide" | |
| }, | |
| "fail": "L’élément a un attribut value, et cet attribut est vide" | |
| }, | |
| "non-empty-placeholder": { | |
| "pass": "L’élément a un attribut placeholder", | |
| "fail": { | |
| "noAttr": "L’élément n’a pas d’attribut placeholder", | |
| "emptyAttr": "L’élément a un attribut placeholder vide" | |
| } | |
| }, | |
| "non-empty-title": { | |
| "pass": "L’élément a un attribut title", | |
| "fail": { | |
| "noAttr": "L’élément n’a pas d’attribut title", | |
| "emptyAttr": "L’élément a un attribut title vide" | |
| } | |
| }, | |
| "non-empty-value": { | |
| "pass": "L’élément a un attribut value non vide", | |
| "fail": { | |
| "noAttr": "L’élément n’a pas d’attribut value", | |
| "emptyAttr": "L’élément a un attribut value vide" | |
| } | |
| }, | |
| "presentational-role": { | |
| "pass": "La sémantique par défaut de l’élément a été remplacée par role=\"${data.role}\"", | |
| "fail": { | |
| "default": "La sémantique par défaut de l’élément n’a pas été remplacée par role=\"none\" ou role=\"presentation\"", | |
| "globalAria": "Le rôle de l’élément n’est pas un rôle de présentation car il a un attribut ARIA global", | |
| "focusable": "Le rôle de l’élément n’est pas un rôle de présentation car il est focalisable", | |
| "both": "Le rôle de l’élément n’est pas un rôle de présentation car il a un attribut ARIA global et est focalisable" | |
| } | |
| }, | |
| "role-none": { | |
| "pass": "La sémantique par défaut de l’élément est annulée avec role=\"none\"", | |
| "fail": "La sémantique par défaut de l’élément n’est pas annulée avec role=\"none\"" | |
| }, | |
| "role-presentation": { | |
| "pass": "La sémantique par défaut de l’élément est annulée avec role=\"presentation\"", | |
| "fail": "La sémantique par défaut de l’élément n’est pas annulée avec role=\"presentation\"" | |
| }, | |
| "svg-non-empty-title": { | |
| "pass": "L’élément a un enfant qui est un titre", | |
| "fail": { | |
| "noTitle": "L’élément n’a pas d’enfant qui est un titre", | |
| "emptyTitle": "Le titre qui est enfant de cet élément est vide" | |
| }, | |
| "incomplete": "Impossible de déterminer si l’élément a un enfant qui est un titre" | |
| }, | |
| "caption-faked": { | |
| "pass": "La première ligne d’un tableau n’est pas utilisée en guise de légende", | |
| "fail": "La première ligne d’un tableau devrait être un caption et non des cellules de tableau" | |
| }, | |
| "html5-scope": { | |
| "pass": "L’attribut scope est utilisé uniquement sur des cellules d’entête de tableau", | |
| "fail": "En HTML 5, l’attribut scope ne peut être utilisé que sur des cellules d’entête de tableau" | |
| }, | |
| "same-caption-summary": { | |
| "pass": "Les contenus de l’attribut summary et de <caption> ne sont pas identiques", | |
| "fail": "Les contenus de l’attribut summary et de <caption> sont identiques" | |
| }, | |
| "scope-value": { | |
| "pass": "L’attribut scope est utilisé correctement", | |
| "fail": "La valeur de l’attribut scope ne peut être que 'row' ou 'col'" | |
| }, | |
| "td-has-header": { | |
| "pass": "Toutes les cellules de données non vides ont un entête de tableau", | |
| "fail": "Certaines cellules de données non vides n’ont pas d’entête de tableau" | |
| }, | |
| "td-headers-attr": { | |
| "pass": "L’attribut headers est utilisé exclusivement pour faire référence à d’autres cellules dans le tableau", | |
| "incomplete": "L’attribut headers est vide", | |
| "fail": "L’attribut headers n’est pas utilisé exclusivement pour faire référence à d’autres cellules dans le tableau" | |
| }, | |
| "th-has-data-cells": { | |
| "pass": "Toutes les cellules d’entête de tableau font référence à des cellules de données", | |
| "fail": "Toutes les cellules d’entête de tableau ne font pas référence à des cellules de données", | |
| "incomplete": "Les cellules de données sont absentes ou vides" | |
| }, | |
| "hidden-content": { | |
| "pass": "Tout le contenu de la page a été analysé.", | |
| "fail": "Il y a eu des problèmes pour analyser le contenu de cette page.", | |
| "incomplete": "Il y a du contenu caché sur la page qui n’a pas été analysé. Vous allez devoir modifier l’affichage de ce contenu afin de l’analyser." | |
| } | |
| }, | |
| "failureSummaries": { | |
| "any": { | |
| "failureMessage": "Corriger l’un des éléments suivants : {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}" | |
| }, | |
| "none": { | |
| "failureMessage": "Corriger tous les éléments suivants : {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}" | |
| } | |
| }, | |
| "incompleteFallbackMessage": "axe n’a pu en déterminer la raison. Il est temps de sortir l’inspecteur d’éléments !" | |
| } | |