995 lines
56 KiB
JSON
995 lines
56 KiB
JSON
|
{
|
|||
|
"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 !"
|
|||
|
}
|