Files
meeting-room/frontend/node_modules/axe-core/locales/fr.json
flying-hero 96f6318101 📩 æ·»ćŠ è™šæ‹ŸçŽŻćąƒć’ŒćŻćŠšè„šæœŹ
æ–°ćąž:
- backend/venv/ - Python è™šæ‹ŸçŽŻćąƒ
- backend/start.sh - ćŻćŠšè„šæœŹïŒˆäœżç”šè™šæ‹ŸçŽŻćąƒïŒ‰
- backend/requirements.txt - äŸè”–ćˆ—èĄš
- .gitignore - ćżœç•„è™šæ‹ŸçŽŻćąƒć’ŒçŒ“ć­˜æ–‡ä»¶

èŻŽæ˜Ž:
- æŻäžȘéĄčç›źäœżç”šç‹Źç«‹è™šæ‹ŸçŽŻćąƒ
- éżć…äŸè”–ć†ČçȘ
- ćŻćŠšè„šæœŹè‡Ș抹戛ć»șć’Œæż€æŽ»è™šæ‹ŸçŽŻćąƒ
2026-04-04 18:29:02 +08:00

995 lines
56 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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 !"
}