[{"numero":1,"intitule":"Il est possible de connaître les nouveaux contenus ou services.","theme":"Contenus","contexte":"Est-il vraiment pratique de devoir tâtonner dans toutes les rubriques, sections ou menus pour identifier les nouveaux contenus et services ? Certainement pas. Alors, à vous de jouer.","solution":"À titre d’exemple, les différentes solutions ci-dessous peuvent être déployées seules ou conjointement :\n- publier un contenu du type « Actualités » ou « Quoi de neuf ? »,\n- indiquer un compte de réseau social ou un canal d’actualité où sont publiées les actualités,\n- publier un flux RSS des actualités.","controle":"Vérifier que les nouveaux contenus ou services sont accessibles par exemple grâce à un canal d’information interne (flux RSS des actualités, contenu du type « Actualités », etc.) ou un canal externe tel qu’un compte de réseau social.\nLe portail du ministère de l’Économie étend cette règle qualité à l’ensemble du parc de sites de l’État qui lui sont attachés, avec une page dédiée à leur actualité.","plan_outils":{"etapes":[{"args":{"selecteur":"link[rel=\"alternate\"][type=\"application/rss+xml\"], a[href*=\"facebook.com\"], a[href*=\"twitter.com\"], a[href*=\"x.com\"], a[href*=\"linkedin.com\"], a[href*=\"instagram.com\"], a[href*=\"youtube.com\"], a[href*=\"actualite\"], a[href*=\"news\"], a[href*=\"nouveaut\"], a[href*=\"rss\"], a[href*=\"feed\"]","profondeur":100},"cible":"page","outil":"inspecter_html"},{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["inspecter_html","lire_page"],"strategie_justification":"La présence d'un canal d'information interne (flux RSS, page d'actualités) ou externe (réseau social) se constate dans le code HTML et le texte principal de la page : deux inspections suffisent pour couvrir les deux types de canaux.","guide_analyse":"Dans les éléments HTML, cherchez un flux RSS (link[type=\"application/rss+xml\"]), un lien vers un réseau social (Facebook, Twitter/X, LinkedIn, Instagram, YouTube) ou un lien vers une page d'actualités/nouveautés (URL contenant actualite, news, nouveaut, rss, feed). Dans le texte principal, cherchez une section ou un titre du type « Actualités », « Quoi de neuf » ou « Nouveautés ». Conforme si au moins une des pages fournies présente un tel canal. Non conforme si aucune page ne contient de canal identifiable ; précisez que l'absence sur l'échantillon ne prouve pas l'absence sur l'ensemble du site.","objectifs":["permettre aux utilisateurs d’identifier immédiatement les nouveaux contenus ou services,","améliorer la prise en compte des contenus et services par les systèmes d’indexation des moteurs de recherche,","améliorer la prise en compte des contenus et services par les agents d’intelligence artificielle."],"tags":["Accessibilité","SEO","Écoconception"],"phases":["Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:35.873765"},{"numero":2,"intitule":"Les informations relatives aux droits de copie et de réutilisation sont disponibles depuis toutes les pages.","theme":"Contenus","contexte":"Rien n’est plus facile que de copier un texte, une image, un son (sachant qu’il est illusoire de vouloir l’empêcher techniquement). Quels que soient vos choix en matière de réutilisation de vos contenus, il est essentiel d’informer les utilisateurs sur leurs droits dans ce domaine.","solution":"Indiquer les droits de copie et de réutilisation des divers éléments sur chaque page ou écran, ou avec un lien pointant vers une page spécifique (mentions légales, conditions générales d’utilisation, à propos, etc.).","controle":"Dans chacune des pages ou chacun des écrans évalués, vérifier la présence de la mention complète des droits de copie et de réutilisation ou d’un lien donnant directement accès à la mention des droits de copie et de réutilisation.","plan_outils":{"etapes":[{"args":{"selecteur":"footer, [class*='footer'], [id*='footer']","profondeur":50},"cible":"page","outil":"inspecter_html"},{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","capturer_page"],"strategie_justification":"La mention des droits de copie ou le lien qui y mène se trouve quasi systématiquement dans le pied de page ; l'inspection du HTML de cette zone donne le texte et les liens en clair, et la capture de la page entière prouve leur présence visuelle.","guide_analyse":"Dans les éléments HTML relevés comme pied de page, lisez les textes et les liens : cherchez une mention complète des droits de copie et de réutilisation (par exemple un copyright, une licence ou des conditions d'usage) ou un lien dont le libellé ou l'attribut title indique qu'il donne accès à ces droits (mentions légales, CGU, à propos, etc.). Sur la capture de la page entière, confirmez visuellement la présence de cette mention ou de ce lien. Conforme si la page contient la mention complète ou un lien directement identifiable vers celle-ci ; non conforme si aucune des deux formes n'est présente.","objectifs":["informer les utilisateurs sur les conditions sous lesquelles sont publiés les contenus,","informer les utilisateurs sur les conditions de copie et de réutilisation,","renforcer la solidité juridique vis-à-vis des systèmes d’indexation des agents d’intelligence artificielle."],"tags":[],"phases":["Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":3,"intitule":"Le code source de chaque page contient une métadonnée qui en décrit le contenu.","theme":"Contenus","contexte":"Une métadonnée est une information contenue dans le code source d’une page web qui permet de la décrire ou de fournir des informations à son propos. Cette règle concerne la métadonnée description qui, comme son nom l’indique, permet de décrire les contenus.","solution":"Renseigner la balise <meta name=\"description\" content=\"\" />, ou à défaut un élément spécifique ayant la même fonction, avec une description du contenu de la page ou du site.","controle":"Dans le code source de chaque page examinée :\n- vérifier la présence de la balise <meta name=\"description\" content=\"\" /> ou d’un équivalent à l’aide, par exemple, des outils de développement des navigateurs,\n- contrôler que le texte de cette balise décrit effectivement, de façon spécifique ou plus générique, le contenu de la page.","plan_outils":{"etapes":[{"args":{"selecteur":"meta[name=\"description\"]"},"cible":"page","outil":"inspecter_html"},{"args":{},"cible":"page","outil":"lire_page"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","lire_page"],"strategie_justification":"La présence et le texte de la balise meta description se constatent dans le code HTML par un sélecteur. Le juge compare ce texte au contenu principal de la page, lu sans les menus, pour vérifier qu'il décrit effectivement le contenu, de façon spécifique ou générique.","guide_analyse":"Dans la première preuve, cherchez une balise meta avec name=\"description\" et un attribut content non vide. Dans la deuxième preuve, lisez le contenu principal de la page. Conforme si la balise existe, que son content n'est pas vide, et que ce texte décrit le contenu de la page de façon spécifique ou plus générique. Non conforme si la balise est absente, si son content est vide, ou si le texte ne correspond pas au contenu (par exemple identique sur toutes les pages ou sans rapport avec le sujet traité).","objectifs":["permettre aux outils de recherche et d’indexation d’extraire des informations à propos du contenu,","améliorer la restitution aux utilisateurs des résultats de recherche,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Basics","SEO"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":4,"intitule":"Les dates sont présentées dans des formats explicites.","theme":"Contenus","contexte":"Le 12/11/10 fait-il référence au 12 novembre 2010 (format de date européen) ou au 11 décembre 2010 (format américain) ? À vous de faire en sorte que vos utilisateurs n’aient jamais à se poser cette question.","solution":"- s’assurer que le mois est écrit en toutes lettres (« décembre ») ou en abrégé (« déc. »), mais pas au format numérique,\n- indiquer les quatre chiffres de l’année.\nCette exigence doit être prévue dans les systèmes de gestion de contenu où la datation est automatisée.","controle":"Identifier les pages comportant des dates, et pour chacune des dates trouvées :\n- vérifier que le mois n’est pas indiqué dans un format numérique, mais en lettre (complet ou abrégé),\n- vérifier que l’année est indiquée sur quatre chiffres et non deux.\nLes dates à saisir par l’utilisateur final dans les formulaires ne sont pas concernées par cette règle : leur format, quel qu’il soit, est considéré comme suffisamment explicite, dès lors que la saisie s’effectue via un datepicker ou bien manuellement, mais avec une indication du format attendu (du type « JJ/MM/AA »).","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"page","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Le texte principal de la page permet au juge de repérer les dates présentes dans le contenu éditorial et de vérifier que le mois est écrit en lettres et l'année sur quatre chiffres, conformément au contrôle officiel.","guide_analyse":"Dans le texte principal relevé, identifiez chaque date affichée (les formulaires sont exclus par l'outil et ne doivent pas être pris en compte). Pour chaque date, vérifiez que le mois est indiqué en toutes lettres ou abrégé et jamais sous forme numérique, et que l'année comporte quatre chiffres. Conforme si la page ne contient aucune date, ou si toutes les dates respectent ces deux conditions. Non conforme dès qu'une date présente un mois en chiffres ou une année sur deux chiffres.","objectifs":["éviter aux utilisateurs les risques de méprise sur le sens d’une date,","faciliter la compréhension et la réutilisation des contenus concernés."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:35.906990"},{"numero":5,"intitule":"La première occurrence d’une abréviation ou d’un acronyme dans le corps de chaque page donne accès à sa signification.","theme":"Contenus","contexte":"SIG, TVA, AVT, VAT, DTC, XML… les abréviations, sigles et acronymes pullulent, notamment dans les domaines techniques et administratifs. En les explicitant, vous rendez un fier service à vos utilisateurs et vous améliorez votre référencement.","solution":"Au moins lors de la première apparition d’un sigle, acronyme ou abréviation dans la page, il s’agira de veiller à recourir à au moins l’une des méthodes ci-dessous :\n- expliciter sa signification au sein même du texte, par exemple : « une DTD (déclaration de type de document) »,\n- fournir un lien donnant accès à sa signification dans une page de glossaire ou via un affichage dynamique (bulle d’aide JavaScript),\n- baliser avec l’élément HTML abbr et renseigner l’attribut title de celui-ci pour indiquer sa signification.\nLa règle ne fait cette exigence que pour la première occurrence dans la page : cela peut être fait ou non pour les suivantes.","controle":"Dans chaque page examinée, identifier visuellement chaque sigle, abréviation ou acronyme présent dans la page, puis vérifier, pour sa première occurrence dans la page, la présence, au moins :\n- de sa signification immédiatement indiquée dans le contexte, par exemple entre parenthèses,\n- d’un lien sur le sigle donnant accès à sa signification, par exemple dans un glossaire,\n- ou de l’élément abbr doté d’un attribut title explicitant sa signification.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"},{"args":{"selecteur":"abbr[title]"},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["lire_page","inspecter_html"],"strategie_justification":"Le texte principal permet au juge de repérer chaque sigle, abréviation ou acronyme et de vérifier qu'il est explicité dans le contexte ; les éléments abbr dotés d'un attribut title fournissent la preuve du balisage HTML. Ces deux sources couvrent les méthodes d'explication requises par le contrôle.","guide_analyse":"Dans le texte de lire_page, identifiez chaque sigle, abréviation ou acronyme. Pour sa première occurrence dans ce texte, vérifiez qu'il est immédiatement expliqué (par exemple entre parenthèses) ou qu'il apparaît dans la liste des abbr[title] avec un attribut title non vide qui en donne la signification. Conforme si chaque sigle trouvé dans le texte est explicité à sa première occurrence par l'une de ces méthodes. Non conforme si un sigle n'est ni expliqué dans le texte ni présent dans les abbr title relevés.","objectifs":["permettre à l’utilisateur d’accéder rapidement à la signification d’un sigle,","permettre l’exploitation du contenu par un robot (pour l’établissement d’un index des sigles),","favoriser le référencement du contenu,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics","SEO"],"phases":["Développement","Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":6,"intitule":"La date de publication des contenus qui le nécessitent est indiquée.","theme":"Contenus","contexte":"Dans la vraie vie, lorsque vous trouvez une revue ou un vieux journal, la première chose que vous regardez est la date de publication. C’est normal, vous avez absolument besoin de cette information pour comprendre le contenu et pour le remettre en contexte. Sur un site ou une application, c’est la même chose, certaines informations doivent absolument être accompagnées de leur date de publication.","solution":"Associer à chaque contenu qui le nécessite (article, actualité, produit, etc.) sa date de publication affichée.","controle":"Vérifier que les contenus qui le nécessitent sont tous associés à une date de publication affichée.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"La présence et la lisibilité des dates de publication associées aux contenus concernés se vérifient sur la capture de la page rendue ; une seule étape suffit.","guide_analyse":"Sur la capture de la page entière, identifiez les contenus qui nécessitent une date de publication, comme des articles, des actualités ou des fiches produit. Si la page ne contient aucun contenu de ce type, le verdict est non applicable. Pour chaque contenu concerné, vérifiez qu'une date de publication lui est associée et affichée. Conforme si tous les contenus qui le nécessitent sont datés ; non conforme si au moins un contenu concerné n'a pas de date visible.","objectifs":["permettre à l’utilisateur de remettre l’information en contexte,","prévenir la diffusion d’informations obsolètes,","renforcer la confiance dans les informations et faciliter les citations."],"tags":[],"phases":["Éditorial"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":7,"intitule":"Un lexique ou un glossaire adapté au public visé explique le vocabulaire sectoriel ou technique.","theme":"Contenus","contexte":"Les auteurs de ce livre sont des exemples vivants de la capacité quasi instantanée de l’être humain à jargonner dès qu’il accumule quelques connaissances. Un petit lexique ou un glossaire, et hop, l’utilisateur du site ou de l’application peut appréhender les contenus.","solution":"Pour mettre en œuvre cette règle, il s’agira de fournir :\n- une section, une page ou une série de pages de glossaire explicitant le vocabulaire technique ou sectoriel utilisé dans le contenu. Ce glossaire devra être disponible directement depuis chaque page,\n- ou bien un mécanisme permettant à l’utilisateur d’accéder à la définition des termes du vocabulaire technique ou sectoriel, depuis au moins leur première occurrence dans chaque page.","controle":"Pour chaque page contenant du vocabulaire spécifique, contrôler qu’il est possible d’accéder :\n- à une section jouant le rôle de glossaire dans chaque page concernée,\n- à une page ou une série de pages de glossaire disponible via les menus de navigation,\n- ou directement à la définition des termes depuis au moins leur première occurrence dans chaque page via un lien ou un tooltip.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"},{"args":{"selecteur":"abbr[title], dfn, main a, article a, section a, p a, li a","profondeur":200},"cible":"page","outil":"inspecter_html"},{"args":{"selecteur":"nav a, header a, footer a, [role=navigation] a","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":["lire_fichier"]},"outils":["lire_page","inspecter_html","lire_fichier"],"strategie_justification":"Le texte principal permet d'identifier le vocabulaire spécifique et une éventuelle section glossaire ; les éléments sémantiques et les liens du contenu révèlent les définitions inline ; les liens de navigation montrent l'accès à une page de glossaire. Le juge peut vérifier le contenu d'une page de glossaire liée.","guide_analyse":"Dans le texte principal, repérez les termes à caractère technique ou sectoriel ; s'il n'y en a pas, la règle est non applicable. Vérifiez si une section glossaire est présente dans ce texte. Dans les éléments HTML du contenu, cherchez des abbr avec title, des dfn, ou des liens entourant ces termes : conforme si leur première occurrence est ainsi reliée à une définition. Dans les liens de navigation, cherchez un accès explicite à un glossaire, lexique ou dictionnaire ; vous pouvez appeler lire_fichier sur l'URL pour confirmer qu'il s'agit bien d'un glossaire. Conforme si l'une des trois conditions est remplie ; non conforme si du vocabulaire spécifique est présent sans aucun de ces mécanismes.","objectifs":["permettre aux utilisateurs de comprendre les contenus sectoriels ou à caractère technique,","faciliter l’utilisation d’un service,","améliorer le référencement sur des mots-clés ou expressions techniques,","améliorer l’accessibilité des contenus aux personnes handicapées,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","SEO"],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":8,"intitule":"Les contenus publicitaires ou sponsorisés sont identifiés comme tels.","theme":"Contenus","contexte":"Contenu éditorial ou publicitaire ? Article de fond ou publireportage ? Avis impartial ou billet sponsorisé ? Mieux vaut préciser de quoi il s’agit, ainsi, les utilisateurs sauront à quoi s’en tenir et n’auront rien à vous reprocher.","solution":"- signaler les publicités par une mention permettant de les identifier (publicité, pub, partenariats…),\n- dans la mesure du possible, séparer graphiquement la publicité du reste du contenu,\n- signaler au minimum le début des séquences publicitaires audio et vidéo.","controle":"- identifier les contenus publicitaires,\n- vérifier que tous les espaces dédiés à la publicité se différencient du reste du contenu et comportent une mention permettant de les identifier sans ambiguïté : typiquement, la mention « publicité; » affichée au-dessus ou en dessous du contenu concerné,\n- dans le cas de contenus audio et vidéo, vérifier que les séquences publicitaires commencent et se terminent par une mention permettant de les identifier sans ambiguïté.","plan_outils":null,"outils":[],"strategie_justification":"L'identification des contenus publicitaires ou sponsorisés requiert une expertise éditoriale et contextuelle que les outils techniques ne peuvent pas mécaniser : un encart, un lien ou un article sponsorisé ne se distingue pas de manière fiable du contenu éditorial dans le code ou sur une capture. De plus, la vérification des mentions encadrant les séquences publicitaires audio et vidéo demande d'écouter ou de visionner ces médias, ce qu'aucun outil ne fait.","guide_analyse":"Vérification humaine : parcourez chaque page à la recherche de contenus publicitaires ou sponsorisés (bannières, encarts, liens affiliés, articles sponsorisés, vidéos avec pré-roll, etc.). Pour chaque contenu publicitaire identifié, vérifiez qu'il comporte une mention explicite (« Publicité », « Sponsorisé », « Partenariat », etc.) et qu'il se distingue visuellement du contenu éditorial. Pour les contenus audio et vidéo, vérifiez que chaque séquence publicitaire commence et se termine par une mention orale ou écrite permettant de l'identifier sans ambiguïté. Non conforme si un contenu publicitaire n'est pas signalé ou si une séquence audiovisuelle manque de mention d'encadrement.","objectifs":["permettre une identification immédiate des contenus publicitaires ou sponsorisés,","éviter les confusions entre contenus rédactionnels et publicitaires,","prévenir les risques associés aux conflits d’intérêts."],"tags":["SEO","Écoconception"],"phases":["Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:35.932724"},{"numero":9,"intitule":"Les conditions de modération des espaces publics sont indiquées.","theme":"Contenus","contexte":"Lorsque les règles du jeu sont connues dès le départ, il est bien plus facile d’agir. En précisant les conditions de modération, vous limiterez les risques de contestation, par exemple, en cas de suppression d’un message.","solution":"Pour chaque espace public nécessitant modération (zone de commentaire, forum, etc.) : indiquer les conditions de modération des espaces publics, dans le contexte de ceux-ci, ou bien dans une page spécifique disponible depuis ceux-ci.","controle":"Pour chaque espace public nécessitant modération (zone de commentaire, forum, etc.) vérifier la présence des conditions de modération ou, à défaut, d’un lien vers une page spécifique ou une page générique, telle que la page des mentions légales, la rubrique d’aide où elles sont indiquées.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"La capture d'écran de la page entière permet de repérer visuellement les espaces publics nécessitant modération et de vérifier si des conditions de modération y sont affichées ou si un lien vers une page les détaillant est présent dans leur contexte.","guide_analyse":"Sur la capture, identifiez chaque espace public nécessitant modération (zone de commentaire, forum, etc.). Pour chacun, vérifiez si les conditions de modération sont indiquées à proximité, ou si un lien vers une page spécifique ou une page générique (mentions légales, rubrique d'aide, etc.) où elles sont détaillées est disponible depuis cet espace. Conforme si chaque espace public présente les conditions ou un lien approprié ; non conforme si au moins un espace public en est dépourvu. Si la page ne contient aucun espace public nécessitant modération, la règle est non applicable pour cette page.","objectifs":["expliquer aux utilisateurs pour quelles raisons et dans quelle mesure leurs publications peuvent être modérées,","limiter le nombre de réclamations des utilisateurs ne voyant pas leur publication apparaître."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":1,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":10,"intitule":"Les contenus ou fichiers destinés à des espaces publics peuvent être vérifiés avant leur envoi définitif.","theme":"Contenus","contexte":"Il est fort agaçant de voir publier un message sous une forme dégradée ou de constater après envoi que l’on a écrit une grosse bêtise. La prévisualisation permet de voir les contenus en contexte et donne la possibilité de les corriger ou de les peaufiner.","solution":"Mettre en place une prévisualisation des informations saisies avant la soumission définitive du formulaire, avec possibilité de les modifier.","controle":"Pour chaque espace public (zone de commentaire, forum, page personnelle publique, avatar, portfolio de documents, etc.) :\n- saisir des informations destinées à être rendues publiques, telles que des images associées à un compte ou un commentaire,\n- vérifier que la soumission définitive du formulaire de saisie est précédée d’une étape permettant, si l’utilisateur le souhaite, de contrôler et de modifier le résultat de sa saisie avant publication.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande d'identifier des espaces publics spécifiques parmi les formulaires, de saisir des données et de vérifier un flux fonctionnel en plusieurs étapes incluant une prévisualisation modifiable avant soumission définitive, ce qui requiert une expertise humaine et des interactions que les outils ne réalisent pas.","guide_analyse":"Vérification humaine : identifiez sur le site les espaces publics proposés aux utilisateurs, tels que les formulaires de commentaires, de forum, de page personnelle ou d'avatar. Saisissez des informations dans chacun de ces formulaires et actionnez la soumission. Vérifiez qu'avant la publication définitive, une étape intermédiaire présente le contenu en contexte et offre explicitement la possibilité de le modifier. Conforme si tous les espaces publics testés intègrent cette étape de prévisualisation et de correction ; non conforme si au moins un espace public permet l'envoi définitif sans prévisualisation préalable.","objectifs":["permettre à l’utilisateur de vérifier sa saisie en contexte et, si nécessaire, de la corriger avant envoi,","diminuer le nombre de demandes de rectification ou de suppression."],"tags":[],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:35.963212"},{"numero":11,"intitule":"Les espaces publics proposent au moins un moyen de signaler les abus.","theme":"Contenus","contexte":"Plus encore que dans le cas de la règle précédente, il s’agit ici de faciliter la procédure de signalement des abus.","solution":"Par exemple, faire figurer un lien « Signaler un abus » à proximité de chaque contenu publié par les utilisateurs, qui mène vers un formulaire permettant de préciser les raisons du signalement. À défaut, indiquer l’adresse e-mail du modérateur.","controle":"Dans chaque espace public (zone de commentaire, forum, etc.) ou à défaut, dans la page Contact ou celle des Mentions légales où figureraient les conditions de modération : vérifier qu’il existe une procédure permettant de signaler directement un abus.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"},{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page","capturer_page"],"strategie_justification":"La capture d'écran révèle visuellement les liens ou formulaires de signalement à proximité des contenus publics, tandis que le texte de la page relève les mentions textuelles comme une adresse de modération ou une procédure dans les mentions légales ou la page contact ; ces deux preuves couvrent les deux modalités attendues.","guide_analyse":"Examinez la capture pour repérer un lien, un bouton ou un formulaire permettant de signaler un abus à proximité d'un contenu publié par les utilisateurs. Consultez le texte de la page pour trouver une adresse e-mail de modération ou une procédure de signalement dans les mentions légales ou la page contact. Si une page contient un espace public sans moyen de signalement direct, vérifiez qu'une autre page de l'échantillon expose une procédure applicable. Conforme si chaque espace public est couvert sur place ou par une procédure trouvée dans l'échantillon ; non conforme si un espace public existe et qu'aucune procédure n'est présente ; indéterminé si la page contact ou mentions légales manque à l'échantillon. Non applicable si aucune page ne contient d'espace public.","objectifs":["faciliter le signalement de contenus illégaux ou inappropriés,","accélérer la détection de ces contenus,","limiter les risques de consultation de contenus illégaux ou inappropriés."],"tags":[],"phases":["Fonctionnel","Éditorial"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":12,"intitule":"Chaque graphique est accompagné de ses données numériques.","theme":"Contenus","contexte":"Une image vaut souvent mieux qu’un long discours. Certes, mais tout d’abord, il peut s’avérer difficile de véritablement comprendre un graphique (courbe, diagramme, histogramme, camembert…) si l’on n’a pas les données qui ont permis de le créer. D’autre part, certains utilisateurs ne pourront pas avoir accès au rendu graphique, et l’accès aux données leur permettra de comprendre les contenus.","solution":"Pour chaque graphique représentant des données numériques (courbe, diagramme, histogramme, camembert…) :\n- afficher de manière structurée, dans le contexte immédiat du graphique, toutes les données numériques qu’il représente, par exemple sous forme de tableau de données,\n- ou fournir dans le contexte immédiat du graphique un lien vers un contenu du même type.","controle":"Vérifier la présence, pour chaque graphique, d’un contenu structuré indiquant toutes les données numériques qu’il représente, ou d’un lien vers une page fournissant celles-ci.","plan_outils":null,"outils":[],"strategie_justification":"Les outils peuvent détecter la présence d'images, de tableaux ou de liens, mais ils ne permettent pas d'identifier de manière fiable lesquelles des images sont des graphiques de données, ni d'associer chaque graphique à un contenu structuré ou à un lien dans son contexte immédiat, ni de vérifier que les données structurées correspondent bien à l'intégralité des données représentées.","guide_analyse":"Vérification humaine : sur la page, identifiez chaque graphique représentant des données numériques (courbe, diagramme, histogramme, camembert, etc.). Pour chacun, vérifiez dans son contexte immédiat la présence soit d'un tableau de données structuré reprenant l'ensemble des valeurs, soit d'un lien vers une page ou un fichier fournissant ces données. Conforme si chaque graphique dispose de l'une de ces deux solutions ; non conforme dès qu'un graphique en est dépourvu.","objectifs":["permettre ou améliorer la compréhension du graphique,","faciliter le partage des données,","améliorer l’accessibilité des contenus aux personnes handicapées,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","SEO"],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":1,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":13,"intitule":"La page des résultats de recherche indique le nombre de résultats, le nombre de pages de résultats, et le nombre de résultats par page.","theme":"Contenus","contexte":"Une liste de résultats de recherche, ça se soigne, ça se polit, c’est important. Cette règle vous permet de passer en revue les éléments les plus pratiques pour les utilisateurs.","solution":"- dans le cas des sites et applications web, le nombre global de résultats est généralement annoncé et rappelé dans le titre de chaque page de résultats (par exemple : 246 résultats correspondent à votre requête « Exemple »),\n- le nombre de pages de résultats est généralement indiqué dans le menu de navigation entre les pages de résultats,\n- le nombre de résultats par page est généralement indiqué avant la liste des résultats.","controle":"Via le moteur de recherche du service examiné :\n- effectuer une ou plusieurs requêtes sur le ou les formulaire(s) de recherche (en fonction de la configuration des résultats, il peut être nécessaire de tester des requêtes ayant successivement un nombre réduit de résultats, un nombre important et aucun résultat),\n- vérifier, dans chaque page de résultats, la présence du nombre global de résultats,\n- contrôler, en cas de résultats paginés, que le nombre total de pages de résultats et le nombre de résultats par page sont présents dans chaque page de résultats.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle officiel exige d'utiliser le moteur de recherche du site en saisissant et en envoyant des requêtes pour générer des pages de résultats, ce qui nécessite de soumettre un formulaire. Aucun outil du catalogue ne permet de transmettre une recherche au site ni de produire les différents scénarios requis (peu, beaucoup ou aucun résultat).","guide_analyse":"Vérification humaine : saisissez plusieurs requêtes dans le ou les formulaires de recherche du site, en variant les volumes de résultats attendus (aucun, peu, nombreux). Sur chaque page de résultats affichée, contrôlez la présence du nombre global de résultats. Lorsque les résultats sont paginés, vérifiez également la présence du nombre total de pages de résultats et du nombre de résultats par page. Non conforme si l'une de ces trois informations est manquante sur au moins une page de résultats.","objectifs":["permettre aux utilisateurs d’avoir l’ensemble des informations essentielles relatives à la recherche qu’ils ont effectuée."],"tags":[],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:35.986195"},{"numero":14,"intitule":"Les contenus ne détournent pas de caractères pour simuler une mise en forme visuelle.","theme":"Contenus","contexte":"Certains outils de production de contenus, notamment ceux qui permettent de publier sur les réseaux sociaux, ne permettent pas de mettre en forme les contenus avec des options comme le gras ou l’italique. Pour contourner cette impossibilité, il est possible d’utiliser des caractères Unicode mathématiques et autres, qui simulent de la mise en forme. Le rendu visuel de ce genre de contenus est certes plus varié, mais il rend les contenus incompréhensibles dans les lecteurs d’écran et plus généralement pour les outils chargés d’indexer ou de manipuler les contenus.","solution":"Utiliser les fonctions natives des éditeurs de contenus pour obtenir du gras, de l’italique, etc. Lorsque ces outils n’existent pas, ne pas détourner de caractères pour simuler des mises en forme visuelles.","controle":"Vérifier que les contenus ne contiennent pas de caractères Unicode détournés (non alphabétiques en particulier) qui simulent des mises en forme visuelles.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"page","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Le texte brut du contenu principal, hors rendu visuel, expose les caractères Unicode réellement employés ; le juge peut ainsi repérer ceux qui simulent du gras, de l'italique ou d'autres mises en forme sans utiliser les styles natifs.","guide_analyse":"Dans le texte fourni par lire_page, identifiez les caractères Unicode des blocs mathématiques, de présentation ou pleine chasse (lettres en gras, italique, script, etc.) utilisés dans du texte courant. Conforme si aucun caractère n'est détourné pour simuler du gras, de l'italique ou un effet de style. Non conforme si des mots ou passages utilisent ces caractères à la place d'une mise en forme native, sauf s'il s'agit de notations mathématiques ou scientifiques légitimes.","objectifs":["permettre la bonne restitution des contenus dans les lecteurs d’écran,","favoriser l’indexation des contenus par les moteurs de recherche,","favoriser la prise en compte des contenus par des outils d’intelligence artificielle."],"tags":["Accessibilité","SEO"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.014075"},{"numero":15,"intitule":"La politique de confidentialité et de respect de la vie privée est disponible depuis toutes les pages.","theme":"Données personnelles","contexte":"Une très grande partie des modèles d’affaires du secteur numérique repose sur le commerce et la valorisation des données personnelles. Cette règle est de nature à rassurer et à informer les utilisateurs sur la protection de ses données privées.","solution":"Indiquer ou rendre disponible la politique de confidentialité du site.","controle":"- vérifier que les informations relatives à la politique de confidentialité et de respect de la vie privée du site sont disponibles depuis chaque page : soit via un lien présent dans toutes les pages du site (par exemple, dans le pied de page), soit au sein des mentions légales, soit inscrites directement dans toutes les pages.","plan_outils":{"etapes":[{"args":{"selecteur":"footer a, .footer a, #footer a, .site-footer a, .page-footer a, .bottom a, .legals a, a[href*='confidentialite'], a[href*='privacy'], a[href*='vie-privee'], a[href*='donnees-personnelles'], a[href*='mentions-legales'], a[href*='legal'], a[href*='politique']","profondeur":100},"cible":"page","outil":"inspecter_html"},{"args":{},"cible":"page","outil":"lire_page"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","lire_page"],"strategie_justification":"La disponibilité de la politique de confidentialité se vérifie par la présence d'un lien explicite dans le code HTML (souvent le pied de page) ou par l'intégration du texte dans le contenu principal de chaque page.","guide_analyse":"Dans les éléments HTML inspectés, cherchez un lien dont le texte ou l'attribut href contient confidentialité, vie privée, privacy, données personnelles, politique ou mentions légales. Dans le texte principal (lire_page), cherchez une section exposant la politique de confidentialité. Conforme si la page contient un lien direct explicite vers la politique ou si le texte de cette politique y est intégré. Non conforme si aucun lien explicite ni texte intégré n'est trouvé. Seul un lien vers les mentions légales, sans preuve dans les pages fournies que celles-ci contiennent la politique, ne permet pas de conclure à la conformité.","objectifs":["permettre aux utilisateurs de connaître les conditions de conservation de leurs données personnelles,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Privacy"],"phases":["Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":16,"intitule":"La procédure d’accès et de rectification des données personnelles est décrite.","theme":"Données personnelles","contexte":"Cette règle est souvent traitée comme une simple mention formelle à indiquer. Elle a pourtant une vraie valeur ajoutée, puisqu’elle impose aux administrateurs de se poser la question de la mise à jour et de la durée de conservation des données personnelles.","solution":"Indiquer à l’utilisateur dans une section de contenu dédiée par quelles procédures ou moyens de contact il peut effectuer une demande d’accès, de suppression ou de rectification de ses données personnelles.","controle":"Dans la page d’accueil, la page des mentions légales, la page d’à propos, d’aide, ou encore dans les pages consacrées aux conditions générales d’utilisation ou à la politique de confidentialité :\n- vérifier la présence d’informations sur la procédure d’accès ou de rectification des données personnelles.\nLa nature de la procédure en question n’est pas évaluée ici : seule sa présence est contrôlée.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"La présence d'une procédure d'accès ou de rectification des données personnelles se constate dans le contenu textuel des pages ; lire le texte principal de chaque page fournie suffit pour en repérer la mention.","guide_analyse":"Dans le texte principal de chaque page fournie, recherchez des mentions relatives à l'accès, la rectification ou la suppression des données personnelles (par exemple : 'droit d'accès', 'rectifiez vos données', 'contactez-nous pour modifier vos informations'). Conforme si au moins une des pages fournies contient une description de cette procédure. Non conforme si aucune page de l'échantillon ne la mentionne. Si l'échantillon ne comprend aucune des pages habituellement concernées (accueil, mentions légales, politique de confidentialité, CGU, aide ou à propos) et qu'aucune page fournie ne contient l'information, l'absence de ces pages ne permet pas de conclure définitivement à la non-conformité.","objectifs":["informer l’utilisateur sur l’utilisation de ses données personnelles,","faciliter la gestion des demandes liées aux données personnelles,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Privacy"],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.037846"},{"numero":17,"intitule":"La création de compte est possible sans recours à un système d’identification tiers.","theme":"Données personnelles","contexte":"Les systèmes d’identification tiers proposés par Google, Facebook, LinkedIn et bien d’autres sont très pratiques. Ils évitent aux utilisateurs d’avoir à créer un identifiant et un mot de passe et ils permettent aux créateurs de contenus et services en ligne de se reposer sur des acteurs de référence. Mais le prix à payer peut s’avérer très élevé. La fermeture ou la désactivation d’un compte chez le fournisseur tiers rendra la connexion impossible. Le fonctionnement du système de connexion tiers rendra totalement dépendant le créateur de sites. Prévoyez au minimum une solution alternative.","solution":"Mettre en place une procédure de création de compte par saisie ou création d’un identifiant et d’un mot de passe propres au service.","controle":"Vérifier qu’il est possible de créer un compte sans avoir recours à un service tiers, par la saisie ou le choix d’un identifiant et d’un mot de passe propres.","plan_outils":{"etapes":[{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"},{"args":{"selecteur":"form","profondeur":200},"cible":"page","outil":"lire_arbre_accessibilite"}],"portee":"echantillon","outils_juge":[]},"outils":["capturer_page","lire_arbre_accessibilite"],"strategie_justification":"La capture d'écran révèle la présence d'un formulaire d'inscription local ou de boutons de connexion tiers ; l'arbre d'accessibilité des formulaires fournit le nom des champs et du bouton de soumission, permettant d'identifier une procédure de création de compte avec identifiant et mot de passe propres.","guide_analyse":"Parmi les pages fournies, cherchez une page présentant un formulaire de création de compte. Sur la capture, identifiez les formulaires affichés et les éventuels boutons de connexion tiers (Google, Facebook, etc.). Dans l'arbre d'accessibilité des formulaires, vérifiez la présence de champs permettant la saisie d'un identifiant (email, nom d'utilisateur) et d'un mot de passe, ainsi que d'un bouton de validation intitulé « S'inscrire », « Créer un compte » ou équivalent. Conforme si au moins une page fournie présente un tel formulaire local, indépendamment de la présence de boutons tiers. Non conforme si les seuls moyens de création de compte visibles sont des services tiers. Si aucune page d'inscription n'est fournie, l'absence de preuve ne permet pas de conclure.","objectifs":["laisser l’utilisateur libre de son choix d’utiliser ou non un service tiers,","fournir un moyen alternatif d’accès au service,","réduire le risque de blocage à la connexion pour des utilisateurs en situation de handicap,","fournir un moyen d’accès maîtrisé par les administrateurs du service,","limiter la dépendance à un acteur tiers dont la politique et la stratégie commerciale ou technique ne manqueront pas d’évoluer dans le temps,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Accessibilité","Basics","Privacy"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":18,"intitule":"La création d’un compte est soumise à un processus de confirmation.","theme":"Données personnelles","contexte":"Pour créer un compte en ligne, il est généralement nécessaire de saisir une adresse e-mail. Cette adresse peut alors être utilisée pour vérifier que la personne à l’origine de la demande de création de compte et le propriétaire de l’e-mail saisi sont la même personne. En l’absence d’une telle vérification, n’importe qui pourrait vous créer un compte.","solution":"Avant activation du compte créé en ligne, envoyer une demande de confirmation automatique à l’adresse e-mail correspondant à celui-ci.","controle":"Créer un compte en ligne et contrôler qu’il n’est activé qu’à partir de l’e-mail de demande de confirmation qui suit l’envoi du formulaire d’inscription.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de soumettre un formulaire d'inscription, consulter une boîte mail externe et vérifier l'activation du compte : ce sont des actions et des observations hors de la page que les outils ne peuvent ni effectuer ni constater.","guide_analyse":"Vérification humaine : créez un compte avec une adresse e-mail de test et soumettez le formulaire d'inscription. Vérifiez dans la boîte mail qu'un e-mail de demande de confirmation est reçu, et que le compte n'est pas activé avant d'avoir cliqué sur le lien de cet e-mail. Cliquez sur le lien, puis assurez-vous que le compte devient bien actif. Non conforme si le compte est utilisable immédiatement sans confirmation par e-mail.","objectifs":["réduire les risques d’inscription de l’utilisateur à son insu,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Basics","Privacy"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.063587"},{"numero":19,"intitule":"Un mécanisme de prévention des usurpations de compte ou d’identité est proposé.","theme":"Données personnelles","contexte":"Le nombre de tentatives d’usurpation de compte ou de vol d’identité en ligne est considérable. Pour éviter cela, il est possible de mettre en place des mécanismes permettant de vérifier qu’il s’agit bien de vous, et que c’est bien vous qui souhaitez effectuer vos opérations en ligne. Plusieurs mécanismes peuvent être mis en place en fonction de la criticité des contenus et des services concernés. Par exemple, si vous entendez parler de l’authentification à double facteur, il ne s’agit pas d’une double distribution matinale du courrier, mais, notamment, d’une vérification de votre identité avec un numéro de téléphone mobile, ou via un e-mail ou une application dédiée.","solution":"Mettre en place un système de type authentification à double facteur, clé d’accès ou autre authentification forte, et non une identification simple de type identifiant/mot de passe.","controle":"Vérifier lors de la connexion aux espaces privés la présence d’un mécanisme de type authentification à double facteur, clé d’accès ou autre authentification forte.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle porte sur le processus de connexion aux espaces privés, qui nécessite de s'authentifier avec des identifiants valides et d'observer si une étape d'authentification forte est proposée. Les outils ne permettent pas de se connecter, de soumettre un formulaire d'authentification ni d'observer le processus post-connexion.","guide_analyse":"Vérification humaine : créez un compte sur le site si nécessaire, puis connectez-vous. Vérifiez si, lors de la connexion ou juste après, un mécanisme d'authentification forte est proposé ou obligatoire (authentification à double facteur, clé d'accès, application d'authentification, etc.). Conforme si un tel mécanisme est présent ; non conforme si la connexion se fait uniquement par identifiant/mot de passe sans proposition de renforcement.","objectifs":["renforcer la sécurité et la confiance de l’utilisateur,","prévenir les risques d’usurpation d’identité,","limiter les coûts de traitement des usurpations pour l’utilisateur et le service en ligne,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Privacy"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":20,"intitule":"Les comptes ou abonnements ouverts en ligne peuvent être fermés par le même moyen.","theme":"Données personnelles","contexte":"De nombreux services proposent, voire exigent, la création directe d’un compte pour accéder aux contenus et services. La fermeture du compte doit pouvoir se faire avec la même facilité que son ouverture.","solution":"Fournir une procédure (formulaire) de clôture de compte automatisée si la création de compte est elle-même automatisée.\nFournir un formulaire de demande de clôture si la création de compte est différée.","controle":"Dans tout service en ligne proposant la création d’un compte utilisateur :\n- créer un compte puis contrôler la possibilité de le clore ou de demander sa clôture en ligne, via un processus similaire.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de créer un compte utilisateur, d'accéder à un espace personnel authentifié et de vérifier l'existence d'un processus de clôture en ligne. Les outils disponibles ne permettent pas d'envoyer des formulaires d'inscription, de maintenir une session connectée ni d'explorer des fonctionnalités réservées aux utilisateurs authentifiés.","guide_analyse":"Vérification humaine : créez un compte sur le service, connectez-vous, puis recherchez dans les paramètres du compte, le profil ou l'aide une option permettant de fermer, supprimer ou résilier le compte. Vérifiez que cette option est accessible en ligne et que sa difficulté est comparable à celle de l'inscription. Conforme si la fermeture peut être effectuée ou demandée en ligne par le même biais. Non conforme si la clôture nécessite un contact externe (téléphone, courrier) ou si aucune procédure en ligne n'existe.","objectifs":["faciliter la gestion des comptes utilisateurs,","éviter à l’utilisateur une recherche de contact,","conforter la confiance dans le service,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Accessibilité","Privacy","Écoconception"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":21,"intitule":"Si un espace personnel ou abonné est proposé, il est possible de télécharger les contenus personnels.","theme":"Données personnelles","contexte":"Une défaillance ou un arrêt du service sont toujours possibles. Pour prévenir les accidents et parer aux reproches éventuels, prévoyez systématiquement cette possibilité de sauvegarde des données, que le service soit payant ou gratuit.","solution":"Fournir une solution d’exportation des contenus dans un format bureautique courant, dans un format XML courant ou dans un format dont les spécifications sont publiques.","controle":"Dans chaque espace personnel au sein duquel il est possible de saisir ou créer des images, des documents ou toute autre donnée :\n- saisir ces différents types de contenus,\n- puis, vérifier qu’il est possible d’exporter les contenus personnellement saisis ou créés dans un format standard.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle officiel impose de se connecter à un espace personnel, d'y saisir ou créer plusieurs types de contenus, puis de vérifier qu'une fonction d'export existe et fonctionne : ces actions (authentification, saisie dans des formulaires, interaction avec l'interface) ne sont pas réalisables par les outils, qui ne lisent, capturent et parcourent pas au-delà de l'affichage initial.","guide_analyse":"Accédez à l'espace personnel ou abonné du site et créez-y différents types de contenus (images, documents, textes ou autres données). Recherchez ensuite une option permettant d'exporter ou de télécharger ces contenus dans un format standard (bureautique courant, XML courant ou format ouvert aux spécifications publiques). Conforme si une telle fonction est disponible et opérationnelle pour les données personnellement saisies. Non conforme si l'export est absent, impossible à trouver ou ne propose pas un format standard.","objectifs":["permettre l’archivage des contenus créés par l’utilisateur,","éviter à l’utilisateur d’éventuelles saisies redoublées en cas de réutilisation des contenus,","permettre la réutilisation de documents précédemment ajoutés,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Privacy","Écoconception"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":22,"intitule":"La connexion à tous les services proposés est possible avec les mêmes identifiants.","theme":"Données personnelles","contexte":"Certaines entités proposent plusieurs services en ligne et plusieurs espaces privés nécessitant une identification. Cette règle vérifie que l’utilisateur peut utiliser les mêmes identifiants pour accéder à tous les services proposés.","solution":"Si plusieurs services sont proposés et que chacun d’entre eux nécessite un accès authentifié, mutualiser le même jeu d’identifiant/mot de passe et le cas échéant, les mêmes moyens d’authentification à double facteur ou renforcée pour tous ces services.","controle":"Si plusieurs services sont proposés et que chacun nécessite un accès authentifié, vérifier que le même jeu d’identifiant/mot de passe et le cas échéant, les mêmes moyens d’authentification à double facteur ou renforcée peuvent être utilisés pour tous ces services.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de tester l'authentification sur plusieurs services avec les mêmes identifiants, ce qui nécessite de se connecter et de transmettre des données réelles, actions que les outils ne peuvent pas effectuer.","guide_analyse":"Vérification humaine : identifiez tous les services en ligne proposés sur le site qui nécessitent une authentification. Créez un compte ou utilisez des identifiants de test pour chacun de ces services. Vérifiez que le même identifiant et le même mot de passe permettent de se connecter à chaque service. Si une authentification à double facteur ou renforcée est proposée, vérifiez qu'elle peut être utilisée de manière identique sur tous les services. Non conforme si au moins un service nécessite des identifiants différents ou ne permet pas d'utiliser les mêmes moyens d'authentification.","objectifs":["permettre aux utilisateurs d’utiliser et de mémoriser des identifiants uniques,","accélérer la connexion et améliorer l’expérience utilisateur,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Accessibilité","Privacy"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.088153"},{"numero":23,"intitule":"Il est possible de se déconnecter des espaces privés.","theme":"Données personnelles","contexte":"Si vous êtes connecté à un espace privé ou à un service nécessitant une authentification, vous accédez généralement à des informations qui ne concernent que vous. En conséquence, vous avez à tout moment besoin de pouvoir fermer l’accès à ces informations. Vous n’avez certainement pas envie que n’importe qui puisse venir sur votre poste de travail, tablette ou mobile et puisse directement accéder aux contenus. Il est donc fondamental de pouvoir à tout moment vous déconnecter du service.","solution":"Fournir à l’utilisateur un mécanisme lui permettant de désactiver globalement toutes les connexions actives de ses différents appareils au service ou à l’espace privé.","controle":"Se connecter au service ou à l’espace privé à partir de plusieurs périphériques différents, et vérifier que le site permet de désactiver globalement toutes les connexions actives.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de s'authentifier sur plusieurs périphériques et de vérifier qu'une action de déconnexion désactive globalement toutes les sessions actives, ce qui suppose des connexions réelles, des envois de formulaires et des observations hors de la page, hors du champ des outils disponibles.","guide_analyse":"Vérification humaine : authentifiez-vous sur le service depuis au moins deux périphériques ou navigateurs différents. Sur l'un d'eux, recherchez une option de déconnexion globale ou de fermeture de toutes les sessions actives, souvent dans les paramètres de sécurité ou de compte. Activez-la, puis vérifiez sur l'autre périphérique que la session a bien été invalidée et que l'accès aux données privées est coupé. Conforme si le site propose un mécanisme permettant de désactiver toutes les connexions actives depuis n'importe quel appareil ; non conforme si seule une déconnexion locale est possible ou si aucune option globale n'existe.","objectifs":["permettre à l’utilisateur de protéger ses données et contenus personnels,","limiter les risques d’usurpation d’identité,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Accessibilité","Basics","Privacy"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.117712"},{"numero":24,"intitule":"Les alias e-mail contenant le signe + sont acceptés.","theme":"Données personnelles","contexte":"Un alias ou alias e-mail est une adresse électronique qui redirige vers une autre préexistante. Les messages envoyés à l’alias sont directement transférés, sans passer par une boîte de courrier électronique. Cette règle veille à ce que les adresses e-mail de la forme nom+xxx@domaine.fr soient acceptées. Cela permet aux utilisateurs d’utiliser un e-mail dédié à un usage spécifique sans créer de compte e-mail supplémentaire. Cela permet aussi d’améliorer la traçabilité lorsque l’adresse est cédée à des tiers.","solution":"Pour toute validation d’une adresse e-mail saisie par l’utilisateur, accepter les adresses du type foo.bar+truc@example.com.","controle":"Vérifier, pour chaque saisie d’une adresse e-mail saisie par l’utilisateur, que les adresses du type foo.bar+truc@example.com sont acceptées et sont fonctionnelles (utilisation comme identifiant, réception d’un e-mail, etc.)","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de saisir une adresse avec un signe + dans chaque formulaire e-mail, de soumettre le formulaire et de vérifier que l'adresse est fonctionnelle (réception d'e-mail, utilisation comme identifiant). Cela exige d'envoyer des données au site, de consulter une boîte e-mail externe et/ou de se connecter, ce que les outils ne permettent pas.","guide_analyse":"Vérification humaine : identifiez chaque champ de saisie d'adresse e-mail sur le site (inscription, newsletter, contact, commande, etc.). Saisissez dans chacun une adresse du type test+alias@example.com et soumettez le formulaire. Vérifiez que l'adresse est acceptée sans message d'erreur et qu'elle est fonctionnelle : si un e-mail de confirmation est attendu, vérifiez sa réception ; si elle sert d'identifiant, vérifiez que vous pouvez vous connecter ou recevoir des communications. Non conforme si un seul formulaire refuse l'adresse ou si l'adresse n'est pas fonctionnelle.","objectifs":["permettre aux utilisateurs d’utiliser des comptes e-mails dédiés à un usage spécifique,","permettre aux utilisateurs de tracer la diffusion de leurs adresses e-mail,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Privacy"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.150243"},{"numero":25,"intitule":"Les entêtes envoyés par le serveur spécifient la politique de communication des referrers.","theme":"Données personnelles","contexte":"Les serveurs informatiques et notamment les serveurs web passent leur temps à enregistrer tout un tas d’informations sur les utilisateurs. Ces données sont inscrites dans ce l’on appelle des fichiers logs. C’est très pratique, voire vital pour analyser l’audience, l’activité, pour repérer des erreurs et c’est essentiel pour les développeurs. En revanche, sur le web, parmi les infos qui sont transmises en permanence, il y a la page d’origine.","solution":"Pour chaque page, configurer le serveur pour envoyer l’entête HTTP Referrer-Policy avec comme valeur, par ordre de préférence :\n- no-referrer,\n- same-origin,\n- strict-origin,\n- strict-origin-when-cross-origin.","controle":"Vérifier pour chaque page, la présence de l’entête HTTP Referrer-Policy avec comme valeur, par ordre de préférence :\n- no-referrer,\n- same-origin,\n- strict-origin,\n- strict-origin-when-cross-origin.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"inspecter_entetes_http"}],"portee":"page","outils_juge":[]},"outils":["inspecter_entetes_http"],"strategie_justification":"La politique de referrer est transmise dans les en-têtes HTTP de la réponse serveur : l'outil d'inspection des en-têtes permet de lire directement sa présence et sa valeur sur chaque page.","guide_analyse":"Dans les en-têtes HTTP de chaque page, repérez l'en-tête Referrer-Policy. Conforme si cet en-tête est présent et que sa valeur est exactement no-referrer, same-origin, strict-origin ou strict-origin-when-cross-origin. Non conforme si l'en-tête est absent, ou si sa valeur n'est pas l'une de ces quatre, par exemple no-referrer-when-downgrade ou unsafe-url.","objectifs":["protéger les utilisateurs de la divulgation d’éventuelles informations sensibles concernant leur navigation,","sécuriser le chargement des ressources externes,","maîtriser les informations transmises par le serveur,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Privacy"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":26,"intitule":"Aucune information n’est exposée sur l’existence d’un compte utilisateur.","theme":"Données personnelles","contexte":"De très nombreux services en ligne utilisent des identifiants personnels pour la connexion. Cela peut être des pseudonymes, des noms et le plus fréquemment des adresses e-mail. Des personnes mal intentionnées peuvent tenter de se connecter avec certains identifiants prévisibles, et exploiter la réponse pour déterminer l’existence d’un compte. Une fois vérifié qu’un compte existe, il devient possible de tenter de se connecter avec différents mots de passe ou via une attaque par force brute. Pour éviter cela, il faut éviter de révéler qu’un identifiant est associé à un compte.","solution":"En réponse à une tentative de création de compte, de connexion (ou une série de tentatives), ou à une demande de renvoi du mot de passe, ne pas afficher de messages du type :\n- « Cet e-mail est déjà utilisé »,\n- « Mot de passe incorrect »,\n- « Veuillez suivre la procédure de réinitialisation du mot de passe envoyée par e-mail »,\n- « Compte verrouillé ».\nPrivilégier les messages du type :\n- « Si vous avez déjà un compte, utilisez la récupération de mot de passe. »,\n- « Identifiants incorrects. Veuillez vérifier votre adresse et mot de passe. »,\n- « Si un compte existe pour cette adresse, un e-mail de réinitialisation a été envoyé. »,\n- « Impossible de se connecter. Réessayer plus tard ou utiliser la récupération de mot de passe. ».","controle":"Vérifier qu’aucune information n’est donnée sur l’existence d’un compte utilisateur lors de tentatives de création de compte, de connexion ou de récupération du mot de passe.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de soumettre des formulaires d'inscription, de connexion et de récupération de mot de passe pour analyser les messages de réponse du serveur, ce qui requiert des actions de saisie et d'envoi hors du périmètre des outils disponibles.","guide_analyse":"Vérification humaine : tentez de créer un compte avec une adresse e-mail déjà enregistrée, puis avec une adresse inconnue. Tentez de vous connecter avec un identifiant existant et un mot de passe erroné, puis avec un identifiant inexistant. Demandez enfin la réinitialisation d'un mot de passe pour une adresse connue et inconnue. Observez les messages affichés après chaque soumission. Conforme si aucun message ne révèle l'existence ou l'absence d'un compte, par exemple en préférant « Identifiants incorrects » ou « Si un compte existe, un e-mail de réinitialisation a été envoyé ». Non conforme si un message indique explicitement qu'un compte existe, qu'un mot de passe est incorrect seul, ou qu'un e-mail est déjà utilisé.","objectifs":["prévenir les tentatives d’usurpation de comptes ou d’identité,","améliorer la sécurité des utilisateurs et utilisatrices."],"tags":["Privacy"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":27,"intitule":"Les échanges de données sensibles sont sécurisés et signalés comme tels.","theme":"Données personnelles","contexte":"Il est parfaitement possible, pour un informaticien de niveau moyen, d’intercepter des données circulant sur le réseau. Le chiffrement des données constitue une mesure minimale de sécurité.","solution":"Recourir à un certificat de sécurité informatique dans une version supportée par les versions récentes des navigateurs.\nRecourir à un service tiers d’authentification décentralisé du type OpenID.","controle":"Une page sécurisée se reconnaît à son URL qui commence par https:// ou à la présence d’un élément visuel dans le navigateur (apparition d’un cadenas, changement de couleur de la barre de saisie de l’URL).\nPour tout service en ligne proposant d’échanger des données sensibles :\n- saisir l’adresse URL en HTTP (pas en HTTPS), sans être identifié, et vérifier que vous êtes directement redirigé vers la version HTTPS et que tous les échanges sont sécurisés,\n- au minimum, vérifier que les échanges de données sensibles (pages de saisie d’identifiants, de données personnelles ou bancaires, etc.) sont en HTTPS,\n- dans le cas où les données sont saisies dans une page non sécurisée, vérifier dans le code source du formulaire qu’une adresse en HTTPS est présente au sein de l’attribut action, ce qui prouve que les données sont envoyées vers une page sécurisée.\nAttention, la troisième option n’offre pas un niveau de sécurité équivalent aux deux premières et peut être tolérée dans le cas de données personnelles, voire d’identifiants, mais jamais pour des données très sensibles (biométriques ou bancaires, par exemple).","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"inspecter_entetes_http"},{"args":{"selecteur":"form:has(input[type=\"password\"])"},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["inspecter_entetes_http","inspecter_html"],"strategie_justification":"Les entêtes HTTP indiquent si la page est servie en HTTPS et si des redirections sont présentes. Un sélecteur ciblant précisément les formulaires qui contiennent un champ de mot de passe retourne leurs attributs, notamment action, sans être affecté par la coupure du contenu textuel à 500 caractères. Cela permet de vérifier que les identifiants sont échangés de manière sécurisée.","guide_analyse":"Dans les entêtes HTTP, vérifiez si la page est en HTTPS et notez les éventuelles redirections. Dans les éléments HTML, cherchez les formulaires retournés par le sélecteur : s'il n'y en a aucun et qu'aucune autre donnée sensible n'apparaît dans les preuves, la page est non applicable. Si la page est en HTTPS, elle est conforme. Si la page est en HTTP et qu'un formulaire avec password possède un attribut action commençant par https://, elle est conforme (tolérance pour les identifiants) ; sinon, si l'action est absente ou en http://, elle est non conforme.","objectifs":["conforter la confiance de l’utilisateur,","permettre à l’utilisateur de saisir des données sensibles en sachant qu’elles seront protégées,","minimiser les risques d’utilisation frauduleuse des données des utilisateurs,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Basics"],"phases":["Développement","Éditorial"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":28,"intitule":"Les données sensibles ne sont pas transmises en clair dans les URL.","theme":"Données personnelles","contexte":"Des données personnelles peuvent être transmises et interceptées par l’intermédiaire des URL. Des adresses du type https://domaine.com/index.html?motpasse=lapin sont à proscrire. Elles sont en effet faciles à repérer sur Internet ou dans les statistiques d’audience.","solution":"Envoyer les données de formulaire sensibles par la méthode POST.\nNe pas inscrire de données sensibles dans l’URL d’un lien.","controle":"Lors de manipulations telles que connexion à un compte, saisie de données personnelles, achat, etc., vérifier qu’aucune des données saisies ne n’apparaît en clair dans l’URL via les trois contrôles suivants :\n- vérifier que l’identification n’aboutit pas à une page du type login.php?user=machin@password=123,\n- contrôler aussi que les pages ne comportent pas de liens contenant ce type d’informations. Il est en effet possible de faire un lien du type http://user:pass@example.com/ ou ftp://user:pass@example.com/. Ceci est bien évidemment très fortement déconseillé et doit être banni,\n- examiner également que l’identifiant de la session n’est pas transmis dans l’URL, ce qui donne des URL du type page.php?SESSIONID=123abc456def. Toute personne récupérant cet identifiant, y compris en lisant par-dessus l’épaule de l’utilisateur, aurait accès à son compte.\nIl est important de faire ces tests en activant et désactivant les cookies du navigateur, certains outils (frameworks, CMS) ayant la fâcheuse habitude de transmettre les informations en clair dans le second cas.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle officiel exige de soumettre des formulaires sensibles, de se connecter ou d'effectuer un achat, puis d'observer les URL générées avec et sans cookies. Les outils disponibles ne permettent pas de saisir de données ni de soumettre des formulaires, ils se limitent à lire l'état initial des pages.","guide_analyse":"Vérification humaine : sur les pages avec formulaire de connexion, d'inscription ou d'achat, saisissez des données personnelles et soumettez le formulaire en activant puis en désactivant les cookies. Vérifiez que l'URL résultante ne contient jamais ces données en clair (par exemple login.php?user=...&password=...). Contrôlez aussi dans le code source qu'aucun lien ne comporte d'identifiants en clair (http://user:pass@example.com/ ou ftp://user:pass@example.com/). Naviguez ensuite sur le site et vérifiez que l'identifiant de session n'est pas transmis dans l'URL (par exemple page.php?SESSIONID=...). Non conforme si une donnée sensible ou un identifiant de session apparaît en clair dans une URL.","objectifs":["éviter que des données sensibles ne soient publiques et stockées en clair aux différentes étapes de l’accès à la page (FAI, proxy, serveur web, historique du navigateur, services tiers…),","permettre à l’utilisateur de saisir des données sensibles en sachant qu’elles seront protégées et confidentielles,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":[],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":29,"intitule":"L’objectif des cookies et les limitations inhérentes à leur refus sont expliqués.","theme":"Données personnelles","contexte":"Pour le commun des mortels, un cookie, c’est un gâteau. Pour l’utilisateur averti, c’est un fichier qu’un service en ligne dépose sur son poste et qui est, soit un moyen de tracer son utilisation, soit une technique potentiellement très efficace pour améliorer la navigation, mémoriser des options, proposer des contenus ciblés. En fait, la technique n’est pas mauvaise en soi et se prête à toutes sortes d’utilisations. Pour rassurer vos visiteurs, il suffit d’expliquer comment et pourquoi elle est utilisée.","solution":"Préciser dans la politique de confidentialité du site si la navigation nécessite l’acceptation des cookies. Si oui, expliquer la raison de leur utilisation, la nature des données conservées et éventuellement, fournir les liens permettant leur désactivation.","controle":"Dans les mentions légales, dans la politique de confidentialité ou encore dans la page d’accueil, la page d’à propos, d’aide, ou dans les pages consacrées aux conditions générales d’utilisation :\n- contrôler que l’objectif de l’utilisation des cookies et les conséquences de leur désactivation sont bien présents.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"L'information sur les cookies et leurs conséquences se trouve dans le contenu éditorial des pages légales ou de politique de confidentialité ; lire le texte principal de chaque page fournie permet au juge de vérifier la présence de ces explications.","guide_analyse":"Parmi les pages fournies, identifiez celles susceptibles de contenir les mentions légales, la politique de confidentialité, les conditions générales d'utilisation, la page d'accueil, d'à propos ou d'aide. Dans le texte de chacune, recherchez une explication de l'objectif des cookies (pourquoi ils sont utilisés) et des conséquences de leur refus ou désactivation (limitations fonctionnelles, perte d'accès). Conforme si au moins une des pages fournies contient explicitement ces deux éléments. Non conforme si aucune page ne les contient. Si l'échantillon ne comporte aucune page de politique, mentions légales, CGU, accueil, à propos ou aide, l'absence de preuve ne permet pas de conclure.","objectifs":["informer l’utilisateur sur les cookies,","expliquer leur rôle et leur utilité,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Privacy"],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":30,"intitule":"L’achat d’un produit ou service est possible sans création de compte.","theme":"E-commerce","contexte":"Dans le commerce en ligne, tous les détails comptent. L’abandon de panier est fréquent, notamment au stade de la création de compte. Un nombre croissant de boutiques en ligne proposent l’achat direct, qui consiste à fournir uniquement les informations strictement nécessaires au traitement de la commande. C’est un vrai plus pour les clients.","solution":"Proposer deux options lors de la commande : commande sans création de compte et commande avec création d’un compte (ou avec un compte existant).","controle":"Démarrer une commande et contrôler si celle-ci peut être menée à terme sans création de compte sur le site.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de parcourir un tunnel d'achat complet, d'ajouter un produit au panier et de mener une commande à terme sans créer de compte, ce qui exige des actions de navigation, de saisie et de soumission sur plusieurs pages successives que les outils ne peuvent pas réaliser.","guide_analyse":"Vérification humaine : sélectionnez un produit ou service sur le site, ajoutez-le au panier et lancez le processus de commande. Recherchez une option explicite permettant de commander sans création de compte, telle qu'un lien « Commander en tant qu'invité » ou « Achat sans compte ». Menez le processus jusqu'à la confirmation finale sans créer de compte. Conforme si l'achat peut être finalisé sans création de compte obligatoire. Non conforme si une étape du tunnel impose la création d'un compte ou empêche de terminer la commande sans s'inscrire.","objectifs":["permettre à l’acheteur de commander immédiatement,","lever la barrière de la création de compte,","augmenter le taux de conversion,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Accessibilité","Basics","Privacy","Écoconception"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.179206"},{"numero":31,"intitule":"Le détail de chaque article est consultable depuis le panier.","theme":"E-commerce","contexte":"Le panier permet d’avoir une vue d’ensemble de ce que l’on va commander. C’est le moment par excellence où l’utilisateur peut avoir besoin de vérifier sa commande. Dans ce cas, le fait de pouvoir consulter le détail directement dans le panier ou à partir du panier est un vrai avantage.","solution":"Permettre à l’utilisateur d’accéder directement depuis le panier soit à la fiche de chaque produit sélectionné, par un lien, soit d’une autre manière à l’ensemble des informations présentes dans celle-ci.","controle":"Vérifier après avoir sélectionné des produits qu’il est possible de revenir à la fiche produit de chacun d’entre eux depuis le panier, ou d’accéder d’une autre manière à l’ensemble des informations présentes dans celle-ci.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige d'avoir préalablement ajouté des produits au panier pour vérifier l'accès à leur détail, ce qui nécessite des interactions de navigation et de clic non supportées par les outils disponibles.","guide_analyse":"Vérification humaine : ajoutez un ou plusieurs produits au panier du site, puis affichez la page panier. Pour chaque article listé, contrôlez qu'un lien vers sa fiche produit est présent, ou que l'ensemble des informations de la fiche est directement accessible dans le panier. Conforme si chaque article offre un accès à son détail ; non conforme si au moins un article n'en offre aucun.","objectifs":["permettre à l’utilisateur de vérifier sa commande,","prévenir les erreurs de commande."],"tags":[],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.207801"},{"numero":32,"intitule":"Aucun produit ni service annexe n’est ajouté au panier de commande sans que cette action soit déclenchée par l’utilisateur.","theme":"E-commerce","contexte":"Quelle serait votre réaction dans un supermarché si un personnel du magasin venait jeter des produits supplémentaires dans votre panier juste avant que vous ne passiez en caisse ?","solution":"N’inclure dans le panier de l’utilisateur que des produits ou services qu’il a explicitement sélectionnés.","controle":"Dans une boutique en ligne ou plus généralement dans un processus d’achat, vérifier qu’une commande finalisée ne donne pas lieu à des ajouts au panier de produits ou services non sélectionnés.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle porte sur le résultat d'une commande finalisée et requiert de parcourir un processus d'achat complet (ajout au panier, éventuellement connexion, passage en caisse), ce qui implique des actions interactives et transactionnelles que les outils ne peuvent pas réaliser.","guide_analyse":"Vérification humaine : ajoutez un produit au panier sans cocher aucune option ou service annexe. Passez en caisse et finalisez la commande jusqu'à la page de confirmation ou de récapitulatif. Examinez le détail de la commande finalisée : seuls les produits et services que vous avez explicitement sélectionnés doivent y figurer. Vérifiez aussi l'absence d'options pré-cochées par défaut lors du passage en caisse. Non conforme si un produit, service, assurance ou option non sollicité apparaît dans le panier ou le récapitulatif final.","objectifs":["laisser à l’utilisateur le contrôle de sa commande,","ne pas compromettre la relation de confiance avec l’utilisateur,","éviter toute forme de vente forcée."],"tags":[],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":33,"intitule":"L’inscription à des services annexes n’est pas activée par défaut.","theme":"E-commerce","contexte":"Vous vous apprêtez à passer une commande et vous vous apercevez que la case de souscription à une assurance facultative, une newsletter ou un abonnement annuel est d’ores et déjà cochée. En anglais ça s’appelle de l’ opt-out, où vous devez décocher une case, par opposition à l’ opt-in, où vous devez cocher. Bien entendu, toute inscription à des services annexes doit faire l’objet d’un vrai choix de la part de l’utilisateur.","solution":"Les éventuels services annexes ajoutés au panier de l’utilisateur (inscription à une newsletter, extension de garantie, service ou produit complémentaire) ne sont pas validés par défaut (opt-out), mais doivent être explicitement validés par l’utilisateur (opt-in).","controle":"Vérifier que, lors du processus de commande, les éventuels services annexes ajoutés au panier de l’utilisateur (inscription à une newsletter, extension de garantie, service ou produit complémentaire) ne sont pas validés par défaut (opt-out), mais sont à valider par l’utilisateur (opt-in).","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle porte sur le processus de commande, qui nécessite d'interagir avec le site (ajouter des produits au panier, remplir des formulaires, avancer d'étape en étape) et potentiellement de soumettre des données, ce que les outils disponibles ne permettent pas de réaliser.","guide_analyse":"Vérification humaine : effectuez un parcours d'achat complet jusqu'à la finalisation de la commande. Sur chaque page du processus, repérez les propositions de services annexes (newsletter, extension de garantie, produits ou services complémentaires) et vérifiez que les cases ou options correspondantes ne sont pas pré-cochées ou activées par défaut. Conforme si l'utilisateur doit explicitement cocher ou activer chaque service annexe ; non conforme si une option est déjà sélectionnée par défaut (opt-out).","objectifs":["laisser à l’utilisateur le libre choix de ses actions,","prévenir les commandes involontaires et les réclamations associées."],"tags":[],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.235964"},{"numero":34,"intitule":"La disponibilité des produits est indiquée avant la validation définitive de la commande.","theme":"E-commerce","contexte":"Il est fort tentant de proposer des produits indisponibles ou disponibles sur commande, mais, attention, faites en sorte de ne pas induire vos utilisateurs en erreur.","solution":"Indiquer avant la commande et sur le formulaire récapitulatif la disponibilité des produits sélectionnés.","controle":"Dans les pages produits et dans le formulaire récapitulant la commande :\n- contrôler que les informations relatives à la disponibilité des produits sélectionnés sont bien disponibles avant de débuter la commande et après validation (dans le panier, dans les pages produits, sur le formulaire récapitulatif de commande).","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de vérifier la disponibilité des produits dans le panier et sur le formulaire récapitulatif de commande après validation, ce qui nécessite d'ajouter des articles au panier et de franchir les étapes de commande. Les outils disponibles ne permettent pas de cliquer, de soumettre des formulaires ni d'effectuer un parcours d'achat complet.","guide_analyse":"Vérification humaine : sur une page produit, vérifiez que la disponibilité est indiquée. Ajoutez le produit au panier, consultez le panier, puis passez au formulaire récapitulatif de commande. Contrôlez que la disponibilité de chaque produit sélectionné est mentionnée à chacune de ces étapes, y compris juste avant la validation définitive. Non conforme si l'information fait défaut sur l'une de ces pages.","objectifs":["permettre d’anticiper d’éventuelles difficultés et une augmentation du délai de livraison,","prévenir d’éventuelles demandes de remboursement,","limiter les risques de dégradation de la réputation."],"tags":["Écoconception"],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":35,"intitule":"Le délai de livraison estimé est indiqué avant la validation définitive de la commande.","theme":"E-commerce","contexte":"Apprendre, après validation de la commande, qu’un produit ne sera livré que dans plusieurs semaines est une mésaventure fréquente et insatisfaisante pour les utilisateurs. Pour garder vos clients et les fidéliser, tâchez de les prévenir avant la fin de la commande.","solution":"Indiquer, sur le récapitulatif de la commande et avant validation définitive, les informations relatives aux délais de livraison estimés.","controle":"Dans le récapitulatif de la commande, vérifier la présence, avant validation définitive de la commande, des informations relatives aux délais de livraison estimés.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle porte sur le récapitulatif d'une commande en cours, accessible seulement après avoir ajouté un produit au panier et parcouru le processus d'achat. Les outils disponibles ne permettent pas de remplir un panier, de s'authentifier ni de naviguer dans un tunnel de commande, donc aucune preuve ne peut être rapportée.","guide_analyse":"Ajoutez un produit au panier et avancez jusqu'à la page de récapitulatif de commande, avant la validation définitive. Recherchez sur cette page une mention indiquant le délai de livraison estimé, par exemple 'livraison sous 3 à 5 jours'. Conforme si cette information est présente et lisible sur le récapitulatif avant le bouton de validation définitive. Non conforme si le délai n'est indiqué qu'après validation ou est totalement absent.","objectifs":["permettre aux utilisateurs d’identifier la date estimée à laquelle le bien commandé sera effectivement en leur possession,","prévenir d’éventuelles demandes de remboursement,","limiter les risques de dégradation de la réputation."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":36,"intitule":"Les frais de livraison estimés sont indiqués avant la validation définitive de la commande.","theme":"E-commerce","contexte":"Les frais de livraison font partie des informations essentielles pour décider du bienfondé d’une commande. Rien de plus désagréable pour un utilisateur que de se rendre compte que le coût de la livraison va couter autant, voire bien plus que le prix de son article. Alors, bien évidemment, faites l’impossible pour donner cette information le plus tôt possible dans le processus.","solution":"Proposer pour chaque produit, dans la page de celui-ci ou dans une page disponible avant la commande (conditions générales de vente, conditions de livraison) le tarif ou une estimation du coût de livraison en fonction du type ou du poids des produits et du lieu de livraison.","controle":"Vérifier que, pour chaque produit, le tarif ou une estimation du coût de livraison en fonction du type ou du poids des produits et du lieu de livraison est disponible dans la page produit ou dans une page disponible avant la commande (conditions générales de vente, conditions de livraison).","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"},{"args":{"selecteur":"a","profondeur":100},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":["lire_fichier"]},"outils":["lire_page","inspecter_html","lire_fichier"],"strategie_justification":"Le tarif ou l'estimation des frais de livraison doit être présent dans la page produit ou accessible via un lien vers les conditions de livraison ou les CGV. La lecture du contenu textuel et l'extraction des liens permettent de couvrir ces deux sources ; le juge peut lire la page liée pour confirmer la présence de l'information.","guide_analyse":"Dans le texte principal de la page produit, cherchez une mention des frais, tarifs ou délais de livraison (par exemple 'Livraison gratuite', 'Frais de port estimés à 5 €', ou un calculateur). Si ce texte n'en contient pas, examinez les liens relevés pour identifier un lien vers les conditions générales de vente ou les conditions de livraison (repérez les termes 'livraison', 'shipping', 'delivery', 'cgv', 'conditions', 'tarif' ou 'frais' dans le texte ou l'URL). Si vous trouvez un lien pertinent, appelez lire_fichier avec son adresse complète pour vérifier qu'il contient une estimation des frais en fonction du type, du poids ou du lieu. Conforme si la page produit ou une page liée accessible avant la commande fournit cette estimation. Non conforme si aucune source ne la présente.","objectifs":["permettre à l’utilisateur de décider en connaissance de cause. Faire gagner du temps à l’utilisateur,","limiter les abandons de commande et la frustration de l’utilisateur."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":37,"intitule":"Les modalités de récupération d’un bien dématérialisé sont précisées avant la commande.","theme":"E-commerce","contexte":"Acheter un film à télécharger depuis son smartphone en prévision de la soirée en s’attendant à le télécharger une fois à domicile, puis s’apercevoir après finalisation de la commande que le téléchargement n’est disponible que pendant une heure… Mieux vaut éviter ce genre de déception à vos clients, n’est-ce pas ?","solution":"Préciser dans la fiche produit ou dans une page dédiée accessible avant le début de la commande par quel moyen l’utilisateur accèdera-t-il au bien concerné : délai, durée de disponibilité, format, canal (e-mail, téléchargement, accès en ligne, etc.).","controle":"Contrôler manuellement la présence des informations sur les modalités de récupération du produit, accessibles avant le début de la commande.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"page","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Les modalités de récupération sont des informations textuelles éditoriales qui doivent figurer dans le contenu de la page présentant le bien dématérialisé, avant toute action de commande : le texte principal de la page suffit à en vérifier la présence.","guide_analyse":"Pour chaque page, examinez le texte pour détecter la présentation d'un bien dématérialisé (téléchargement, accès en ligne, streaming, logiciel, etc.). Si la page concerne un tel bien, vérifiez qu'elle indique dans son contenu principal les modalités de récupération : délai, durée de disponibilité, format et canal (e-mail, téléchargement, accès en ligne, etc.). Conforme si la page ne concerne pas de bien dématérialisé, ou si elle en concerne un et précise ces modalités. Non conforme si la page concerne un bien dématérialisé sans indiquer ces informations avant la commande.","objectifs":["permettre à l’utilisateur d’anticiper les conditions et les moyens d’accès au service ou au bien dématérialisé,","éviter les déceptions et le traitement de réclamations,","prévenir d’éventuelles demandes de remboursement,","limiter les risques de dégradation de la réputation."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.263008"},{"numero":38,"intitule":"La modification de la quantité, l’ajout et la suppression d’un ou plusieurs articles restent possibles avant la finalisation de la commande.","theme":"E-commerce","contexte":"Cela semble évident, mais avant de passer à la caisse du supermarché, il est encore temps d’ajouter ou de retirer un ou plusieurs articles au charriot. Les clients d’une boutique en ligne devraient bénéficier de la même possibilité.","solution":"Proposer à l’utilisateur une option spécifique sur le formulaire de commande lui permettant de modifier les quantités commandées, mais aussi d’annuler ou d’ajouter un article avant validation de la commande.","controle":"Sur une boutique ou un processus de vente en ligne :\n- faire une commande de test,\n- vérifier la possibilité de changer les quantités commandées avant la validation.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de passer une commande de test et de vérifier que le panier ou le formulaire de commande permet de modifier, ajouter ou supprimer des articles avant validation, ce qui suppose d'interagir avec un processus transactionnel que les outils ne simulent pas.","guide_analyse":"Vérification humaine : ajoutez un ou plusieurs articles au panier, puis accédez à la page panier ou au formulaire de commande avant la validation finale. Tentez de modifier la quantité d'un article, d'en supprimer un et d'en ajouter un nouveau. Conforme si ces trois actions restent possibles à chaque étape précédant la validation définitive de la commande. Non conforme si une étape bloque la modification, la suppression ou l'ajout d'articles.","objectifs":["permettre à l’utilisateur de modifier facilement sa commande."],"tags":[],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":39,"intitule":"La nature et les caractéristiques quantifiables des produits et services sont indiquées.","theme":"E-commerce","contexte":"Lorsque la petite figurine commandée sur Internet sera livrée et que vous vous rendrez compte qu’elle mesure deux mètres de haut et pèse 150 kg, vous comprendrez l’intérêt de cette règle.","solution":"Indiquer les informations relatives à la nature ainsi qu’aux caractéristiques des produits et services proposés.","controle":"Dans les pages produits, ou dans la page d’accueil, ou la page des mentions légales, la page d’aide ou encore dans les pages consacrées aux conditions générales d’utilisation ou de vente :\n- vérifier la présence d’informations relatives à la nature et aux caractéristiques des produits et services proposés.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"La présence d'informations sur la nature et les caractéristiques quantifiables des produits ou services se vérifie en lisant le contenu principal des pages fournies : le juge peut repérer ces mentions dans le texte.","guide_analyse":"Pour chaque page lue, examinez le texte principal à la recherche d'informations décrivant la nature des produits ou services (ce qu'ils sont) et leurs caractéristiques quantifiables (dimensions, poids, capacité, durée, etc.). Identifiez parmi les pages celles qui correspondent à des pages produits, d'accueil, de mentions légales, d'aide ou de CGV/CGU. Conforme si au moins une des pages fournies contient de telles informations. Non conforme si aucune page ne les contient. Si l'échantillon ne comporte que des pages ne correspondant pas aux types visés par le contrôle, l'absence d'information ne permet pas de conclure.","objectifs":["permettre aux utilisateurs d’identifier précisément la nature et les spécifications des produits proposés,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation,","renforcer la prise en compte des produits et services par les outils d’intelligence artificielle."],"tags":["SEO"],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":1,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":40,"intitule":"La période et les conditions de validité des offres spéciales et promotions sont indiquées.","theme":"E-commerce","contexte":"Quand il y a une affaire à saisir, l’utilisateur doit savoir sous quelles conditions il peut en profiter.","solution":"Indiquer les informations relatives à la période et aux conditions de validité des offres spéciales et des promotions proposées.","controle":"Dans les pages produits, ou dans la page d’accueil, ou dans la page des mentions légales, la page d’aide, ou encore dans les pages consacrées aux conditions générales d’utilisation ou de vente :\n- vérifier la présence des informations relatives à la période et aux conditions de validité des offres spéciales et de promotions proposées.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Le contrôle porte sur la présence d'informations textuelles (périodes et conditions de validité) associées aux offres promotionnelles : le texte principal de chaque page de l'échantillon suffit à repérer les offres et vérifier que ces précisions y sont écrites.","guide_analyse":"Dans le texte de chaque page fournie, identifiez les offres spéciales ou promotions (réductions, soldes, offres limitées, avantages, codes promo, etc.). Pour chaque offre trouvée, vérifiez que la période de validité (dates, durée, 'à partir du', 'jusqu'au') et les conditions (restrictions, non-cumul, limite de stock, public concerné) sont indiquées dans le texte de la page ou dans une autre page de l'échantillon (mentions légales, aide, CGU/CGV). Conforme si toute offre présente dans l'échantillon est accompagnée de ces informations dans les pages fournies, ou si aucune offre n'est présente. Non conforme si au moins une offre de l'échantillon n'a ni période ni conditions précisées dans les pages fournies.","objectifs":["permettre aux utilisateurs d’identifier la période au cours de laquelle ils peuvent bénéficier des offres proposées."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.298309"},{"numero":41,"intitule":"Le sous-total détaillé est indiqué avant la validation définitive de la commande.","theme":"E-commerce","contexte":"La transparence fait partie des fondamentaux de la relation client. Un prix global mentionnant les taxes, c’est bien. Un sous-total décomposant tous les coûts, c’est encore mieux.","solution":"Indiquer sur le formulaire récapitulatif de la commande et avant validation, le sous-total détaillé du coût du produit ou service commandé.","controle":"Dans une boutique ou un processus de vente en ligne :\n- entreprendre une commande de test,\n- vérifier la présence du sous-total détaillé (quantités, montants, frais, assurances, etc.) avant la validation.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige d'entreprendre une commande de test sur plusieurs étapes (ajout au panier, saisie des informations, récapitulatif) jusqu'à la page précédant la validation définitive, ce qui dépasse les capacités des outils : ils ne naviguent pas dans des processus transactionnels, ne remplissent pas de formulaires complexes sur plusieurs pages et ne transmettent jamais de données au serveur.","guide_analyse":"Vérification humaine : ajoutez un produit ou un service au panier et avancez dans le processus de commande jusqu'à la page de récapitulatif précédant immédiatement la validation définitive. Vérifiez que cette page affiche un sous-total détaillé incluant les quantités, les montants unitaires, les frais éventuels (livraison, assurance, etc.) et le total. Conforme si le détail complet du calcul est visible avant le bouton ou l'action de validation finale. Non conforme si seul un montant global est présenté ou si des éléments du détail du coût manquent.","objectifs":["permettre à l’utilisateur de connaître le détail du montant de sa commande,","lever un frein à la validation d’une commande."],"tags":[],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":42,"intitule":"Les conditions de financement sont indiquées.","theme":"E-commerce","contexte":"Le taux d’un crédit exerce un impact énorme sur le coût total d’un achat, et sans une information claire à ce sujet, notamment en cas de variation de ce taux, les acheteurs potentiels peuvent être réticents et ne pas aller au bout de la procédure d’achat.","solution":"Indiquer dans le site les conditions de financement des crédits proposés aux clients.","controle":"Dans la page d’accueil ou dans les contenus consacrés aux conditions générales d’utilisation ou de vente ou tout autre emplacement :\n- vérifier la présence d’informations relatives aux conditions de financement des crédits proposés aux clients.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Les conditions de financement relèvent du contenu éditorial : elles se manifestent par du texte dans le corps des pages. Lire le texte principal de chaque page fournie permet de repérer si l'une d'elles contient ces informations.","guide_analyse":"Dans le texte de chaque page fournie, cherchez des informations sur les conditions de financement : taux d'intérêt, montant total à payer, durée, TAEG, ou autres composantes du coût d'un crédit. Conforme si au moins une page contient de telles informations. Non conforme si aucune page ne les contient ; précisez toutefois que l'absence dans l'échantillon ne prouve pas qu'elles n'existent pas ailleurs sur le site.","objectifs":["permettre à l’utilisateur d’identifier le montant total qu’il aura à payer et les différentes composantes de ce montant."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":43,"intitule":"Les conditions de fonctionnement du service après-vente sont indiquées.","theme":"E-commerce","contexte":"Le service après-vente sur Internet, c’est souvent celui-dont-on-ne-doit-pas-prononcer-le-nom. Et pourtant, l’existence d’un SAV solide et d’informations correctes à son sujet peut faire toute la différence.","solution":"Indiquer, dans les conditions générales de vente ou d’utilisation, les informations relatives aux conditions de fonctionnement du service après-vente.","controle":"Dans la page d’accueil, la page des mentions légales, la page d’aide ou encore dans les pages consacrées aux conditions générales d’utilisation ou de vente :\n- vérifier la présence des informations relatives aux conditions de fonctionnement du service après-vente.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Le contrôle consiste à trouver des informations sur le service après-vente dans des pages types ; le texte principal de chaque page fournie permet au juge de vérifier leur présence.","guide_analyse":"Parmi les pages fournies, considérez celles qui sont la page d'accueil, les mentions légales, la page d'aide ou les conditions générales d'utilisation ou de vente. Dans le texte principal de chacune de ces pages, recherchez des informations relatives aux conditions de fonctionnement du service après-vente (par exemple : modalités de garantie, de réparation, de retour, de remboursement, coordonnées du SAV). Conforme si au moins une de ces pages contient de telles informations. Non conforme si aucune de ces pages pertinentes ne les contient. Si l'échantillon ne comporte aucune de ces pages, l'absence de preuve ne permet pas de conclure.","objectifs":["permettre aux utilisateurs de connaître les conditions d’assistance en cas de difficulté."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.323200"},{"numero":44,"intitule":"Les conditions de débit ou d’encaissement sont indiquées.","theme":"E-commerce","contexte":"Pour un acheteur, savoir que le paiement de sa commande sera débité après validation ou à réception de celle-ci est une information essentielle, notamment lorsque les délais de livraison sont importants.","solution":"Indiquer dans le processus de commande et de gestion du panier les conditions de débit ou d’encaissement avant la validation de celui-ci.","controle":"Dans une boutique ou un processus de vente en ligne :\n- entreprendre une procédure de commande,\n- puis, vérifier que les conditions de débit ou d’encaissement sont affichées ou disponibles avant la validation définitive du panier.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle officiel impose d'entreprendre une procédure de commande complète jusqu'à l'étape précédant la validation définitive, ce qui requiert des interactions complexes et multi-étapes (ajout au panier, connexion, soumission de formulaires) que les outils disponibles ne peuvent pas réaliser de manière planifiable et générique.","guide_analyse":"Vérification humaine : ajoutez un produit au panier et avancez dans le processus de commande jusqu'à la dernière étape avant la validation définitive. Sur cette page, recherchez une mention précisant les conditions de débit ou d'encaissement, par exemple 'débité à l'expédition', 'paiement à la commande' ou 'prélevé à la livraison'. Cette information doit être directement affichée ou accessible via un lien explicite avant le bouton de validation finale. Non conforme si aucune condition de débit ou d'encaissement n'est indiquée à cette étape.","objectifs":["permettre aux utilisateurs d’identifier précisément les conditions de l’encaissement."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":45,"intitule":"Les conditions de garantie sont indiquées.","theme":"E-commerce","contexte":"Cette règle ne s’applique que dans certains cas, mais, pour tout ce qui est commerce de biens et, pour une bonne partie des services, elle est fondamentale.","solution":"Indiquer dans les conditions générales de vente ou d’utilisation, les informations relatives aux conditions de garantie appliquées.","controle":"Dans une boutique ou un processus de vente en ligne et notamment dans la page d’accueil, ou dans la page des mentions légales, la page d’aide ou encore dans les pages consacrées aux conditions générales d’utilisation ou de vente :\n- vérifier la présence des informations relatives aux conditions de garanties appliquées.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Les conditions de garantie se vérifient par la lecture du contenu textuel des pages fournies : une étape de lecture suffit pour chercher ces mentions dans les pages d'accueil, d'aide, mentions légales ou CGV/CGU présentes dans l'échantillon.","guide_analyse":"Dans le texte de chaque page, cherchez des informations explicites sur les conditions de garantie appliquées (par exemple : 'garantie légale', 'garantie commerciale', 'durée de garantie', 'conditions de garantie'). Conforme si au moins une des pages fournies contient de telles informations précises. Non conforme si une page censée les contenir (comme les CGV ou mentions légales) est fournie mais n'en comporte pas. Si les pages attendues ne sont pas dans l'échantillon et qu'aucune page fournie ne mentionne les garanties, l'absence ne permet pas de conclure.","objectifs":["permettre aux utilisateurs d’identifier précisément la nature des services associés et leur coût."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":46,"intitule":"Les conditions de vente ou d’utilisation sont disponibles depuis toutes les pages.","theme":"E-commerce","contexte":"Le nombre de personnes qui lisent des conditions générales de vente est sans doute limité. Et pourtant, elles constituent un document fondamental en cas de litige et leur présence permet de rassurer les clients.","solution":"Faire figurer sur toutes les pages un lien pointant vers la page spécifique présentant les conditions de vente et/ou d’utilisation.\nAu-delà de cette règle, il est recommandé de dater et de versionner l’ensemble des documents contractuels relatifs aux services, afin de fournir une référence sûre en cas de litige.","controle":"Dans l’ensemble des pages, vérifier la présence d’un lien pointant vers la page présentant les conditions de vente et/ou d’utilisation.\nCette vérification peut s’effectuer manuellement au fil des autres contrôles. Elle peut également s’effectuer à partir des templates du site, sous réserve de services tiers n’implémentant pas complètement ceux-ci.","plan_outils":{"etapes":[{"args":{"selecteur":"a[href]","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html"],"strategie_justification":"Le contrôle demande de vérifier dans chaque page la présence d'un lien vers les conditions de vente ou d'utilisation ; l'inspection du HTML liste tous les liens avec leur URL et leur texte, permettant au juge d'identifier celui qui correspond.","guide_analyse":"Dans la liste des éléments <a> relevés, cherchez un lien dont le texte ou l'attribut href évoque les conditions de vente, conditions d'utilisation, CGV, CGU ou équivalent (par exemple 'Conditions générales', 'Terms of service', '/cgv', '/conditions-utilisation'). Conforme si au moins un tel lien, avec un href non vide, est présent sur la page. Non conforme si aucun lien ne correspond, y compris si seuls des liens vers les mentions légales ou la politique de confidentialité sont présents.","objectifs":["permettre un accès facile et permanent à toutes les conditions de réalisation du service."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.357688"},{"numero":47,"intitule":"Les informations relatives à la zone de livraison des produits ou de réalisation des services sont indiquées.","theme":"E-commerce","contexte":"Parmi les nombreuses mauvaises surprises possibles lors d’un achat en ligne, il y a le fait de se rendre compte que la livraison est impossible ou hors de prix. Prévenez les utilisateurs de ce qui est possible et de ce qui ne l’est pas.","solution":"Les informations relatives à la zone de livraison doivent être les suivantes :\n- lieu du « dépôt final »,\n- heure d’ouverture du « dépôt final »,\n- moyen de contact (téléphone, fax, e-mail).\nCette information doit être présente à 3 moments distincts : avant paiement, après paiement et sur l’e-mail récapitulatif de la commande.","controle":"Dans une boutique ou un processus de vente en ligne, notamment au sein de la page d’accueil, ou la page des mentions légales, la page d’aide, ou encore dans les pages consacrées aux conditions générales d’utilisation ou de vente :\n- vérifier la présence des informations relatives à la zone de livraison couverte pour les produits et les services.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"La présence d'informations sur la zone de livraison couverte se vérifie par la lecture du contenu textuel des pages fournies : une seule étape permet au juge de repérer ces mentions dans l'échantillon.","guide_analyse":"Dans le texte de chaque page fournie, cherchez des mentions indiquant la zone de livraison couverte pour les produits ou services (par exemple : lieux, pays, régions desservies, restrictions ou modalités géographiques). Conforme si au moins une page — notamment l'accueil, les mentions légales, la page d'aide ou les conditions générales — contient explicitement cette information. Non conforme si aucune page ne la mentionne. Si l'échantillon ne comporte aucune de ces pages dédiées, l'absence d'information ne permet pas de conclure à la non-conformité.","objectifs":["éviter une navigation et des commandes inutiles, voire une perte de temps pour l’utilisateur ainsi que pour la structure qui propose les biens ou les services."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":48,"intitule":"Les moyens de paiement acceptés et les procédures correspondantes sont indiqués.","theme":"E-commerce","contexte":"Tout le monde ne peut pas payer avec sa carte de crédit et, si ce moyen de paiement n’est pas disponible, autant le savoir tout de suite. Cela évitera à des utilisateurs de se retrouver face à un échec en fin de commande.","solution":"Indiquer les informations sur les modes de paiement acceptés ainsi que les procédures correspondantes.","controle":"Dans une boutique ou un processus de vente en ligne, notamment dans la page d’accueil, ou dans la page des mentions légales, ou la page d’à propos, d’aide, ou encore dans les pages consacrées aux conditions générales d’utilisation ou de vente :\n- vérifier que les informations sur les moyens de paiement acceptés ainsi que les procédures correspondantes sont disponibles.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Les moyens de paiement et les procédures associées sont des contenus textuels éditoriaux ; le texte principal de chaque page, lu par lire_page, permet au juge de les repérer dans l'échantillon fourni.","guide_analyse":"Vérifiez d'abord que le site est une boutique ou un processus de vente en ligne (présence de produits, de prix, d'un panier ou d'une commande). Parmi les pages fournies, lisez le texte principal de chacune pour y chercher les moyens de paiement acceptés et les procédures correspondantes (modalités, étapes, délais, sécurisation). Conforme si au moins une page contient ces informations. Non conforme si le site est une boutique mais qu'aucune page ne les mentionne. Si l'échantillon ne comporte pas les pages pertinentes (accueil, mentions légales, aide, CGV), l'absence d'information ne permet pas de conclure.","objectifs":["permettre aux utilisateurs d’anticiper le mode et les conditions de paiement et de vérifier avant la commande s’ils seront en mesure de la mener à son terme."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":49,"intitule":"L’identité des prestataires impliqués dans les transactions est précisée.","theme":"E-commerce","contexte":"Un processus transactionnel peut amener un utilisateur à se rendre sur un service en ligne d’une banque qui n’est pas la sienne ou d’un prestataire. Le fait d’indiquer le nom des prestataires va limiter les surprises et quelquefois même servir à renforcer la confiance en capitalisant sur la renommée de ceux qui sont impliqués.","solution":"Indiquer les informations relatives à l’identité des prestataires bancaires et/ou des solutions de paiement utilisées pour les transactions électroniques.","controle":"Dans la page du panier dans les mentions légales, la FAQ et/ou une page d’aide d’une boutique :\n- identifier la présence d’informations relatives à l’identité des prestataires bancaires et/ou des solutions de paiement utilisées pour les transactions électroniques. Au minimum, on identifiera la banque ou le prestataire par la présence d’un logo.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"}],"portee":"echantillon","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"La présence de logos ou de mentions textuelles identifiant les prestataires de paiement se constate visuellement sur la page rendue, notamment dans le pied de page, le panier ou les sections légales ; une capture pleine page suffit pour examiner chaque page de l'échantillon.","guide_analyse":"Pour chaque page fournie, examinez la capture à la recherche de logos de banques, de cartes bancaires ou de services de paiement, ainsi que de mentions textuelles identifiant le prestataire bancaire ou la solution de paiement utilisée. Conforme si au moins une des pages pertinentes (panier, mentions légales, FAQ ou page d'aide) contient une telle information, au minimum sous forme de logo. Non conforme si aucune de ces pages n'en contient. Si l'échantillon ne comporte aucune de ces pages, l'absence de preuve ne permet pas de conclure.","objectifs":["fournir aux utilisateurs des informations sur les partenaires tiers impliqués dans la transaction,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Privacy"],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":50,"intitule":"Les recours en cas de litige sont indiqués dans les conditions générales de vente ou d’utilisation.","theme":"E-commerce","contexte":"Un litige est toujours possible. Préciser les possibilités de recours est une façon simple de montrer que la situation a été envisagée et qu’elle peut donc être gérée.","solution":"Indiquer les recours en cas de litige dans les conditions de vente et/ou d’utilisation.","controle":"Dans les pages consacrées aux conditions générales d’utilisation ou de vente :\n- vérifier la présence d’informations relatives aux recours possibles en cas de litige.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Les conditions générales sont des pages textuelles dont le contenu est présent dans le texte principal envoyé par le serveur. Lire chaque page de l'échantillon permet au juge d'identifier celles qui sont des CGV/CGU et d'y vérifier la présence de mentions sur les recours en cas de litige.","guide_analyse":"Parmi les textes de pages fournis, identifiez ceux qui constituent des conditions générales d'utilisation ou de vente (recherchez des termes comme « conditions générales », « CGU », « CGV » ou des sections dédiées aux litiges). Dans le texte de ces pages, vérifiez la présence d'informations relatives aux recours possibles en cas de litige (médiation, juridiction compétente, adresse, délais). Conforme si au moins une page de conditions générales fournie contient de telles informations. Non conforme si une page identifiée comme CGV/CGU n'en contient pas. Si aucune page de l'échantillon n'est une CGV/CGU, l'absence ne permet pas de conclure.","objectifs":["rassurer les utilisateurs avant l’achat,","donner à l’acheteur toutes les informations liées à son achat, que celui-ci se passe bien ou non."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":51,"intitule":"L’adresse et les conditions de retour des produits sont indiquées.","theme":"E-commerce","contexte":"Les acheteurs qui veulent renvoyer un produit se posent plusieurs questions. Qui va prendre en charge les frais de retour ? À quelle adresse faut-il envoyer le produit ? Sous quelle forme ? Prévoyez les réponses à ces questions et rendez-les disponibles.","solution":"Indiquer, au moins dans les conditions générales de vente, les informations relatives aux conditions de retour des produits vendus (adresse, prise en charge des frais d’envoi, type de colis attendu).","controle":"Dans au moins une des pages suivantes : les pages consacrées aux conditions générales d’utilisation ou de vente, la page d’accueil, la page des mentions légales, la page produit, la page d’à propos ou encore la page d’aide :\n- vérifier la présence d’informations relatives aux conditions de retour des produits vendus (adresse de retour, prise en charge des frais d’envoi, type de colis attendu).","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Les informations sur les conditions de retour sont rédigées dans le contenu textuel des pages ; lire le texte principal de chaque page fournie permet de vérifier si au moins l'une d'elles les contient.","guide_analyse":"Dans le texte principal de chaque page fournie, cherchez les informations relatives aux conditions de retour des produits vendus : une adresse de retour, la prise en charge des frais d'envoi (par l'acheteur ou le vendeur), et le type de colis attendu. Conforme si au moins une des pages de l'échantillon — notamment les CGV, mentions légales, aide, à propos, page produit ou accueil — contient clairement ces trois éléments. Non conforme si aucune page fournie ne mentionne ces informations. Si l'échantillon ne contient aucune des pages types listées dans le contrôle, l'absence de preuve ne permet pas de conclure à la non-conformité.","objectifs":["permettre aux utilisateurs d’anticiper d’éventuelles difficultés d’utilisation et/ou de fonctionnement du bien ou du service proposé,","réduire le nombre de sollicitations du service client."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.384395"},{"numero":52,"intitule":"La charge des frais de retour est indiquée avant la validation définitive de la commande.","theme":"E-commerce","contexte":"La vente en ligne a ceci de différent du commerce classique que les produits ne peuvent pas être aussi facilement essayés et évalués par les acheteurs. Pour certains produits, les chaussures et le prêt-à-porter, notamment, l’erreur doit faire partie du processus normal. Idéalement, l’acheteur doit pouvoir renvoyer les produits qu’il a commandés si ceux-ci ne conviennent pas ou ne lui vont pas. Il est donc essentiel pour l’utilisateur de savoir comment cela va se passer et si cette opération va lui coûter de l’argent. Donnez à vos utilisateurs le droit à l’erreur.","solution":"Indiquer dans une page disponible avant validation définitive de la commande si les frais de retour sont à la charge du vendeur ou à celle de l’acheteur (récapitulatif de la commande avant validation, page des conditions générales de vente, etc.)","controle":"Vérifier que l’utilisateur est informé dans une page disponible avant validation définitive de la commande si les frais de retour sont à la charge du vendeur ou à celle de l’acheteur (récapitulatif de la commande avant validation, page des conditions générales de vente, etc.)","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"La mention des frais de retour est une information textuelle qui doit figurer dans une page accessible avant la validation de la commande (CGV, récapitulatif, panier, aide) : le texte principal de chaque page fournie permet d'en vérifier la présence.","guide_analyse":"Dans le texte de chaque page fournie, cherchez une mention indiquant qui prend en charge les frais de retour (par exemple : 'retours gratuits', 'frais de retour à votre charge', 'les frais de retour sont remboursés'). Conforme si au moins une page contient une information claire sur le coût ou la gratuité des retours et que cette page fait partie du parcours avant validation (CGV, récapitulatif de commande, panier, fiche produit, FAQ). Non conforme si aucune page fournie ne contient cette mention. Si l'échantillon ne comporte aucune page susceptible d'être lue avant l'achat (pas de CGV, de panier ni de récapitulatif), l'absence de preuve ne permet pas de conclure.","objectifs":["informer les utilisateurs du coût en cas de retour des produits,","rassurer les utilisateurs en vue de leur achat,","augmenter le taux de transformation."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":53,"intitule":"Le mode de dépôt et la procédure de traitement des réclamations sont indiqués.","theme":"E-commerce","contexte":"Une réclamation est toujours possible. Pour rassurer vos clients, prévoyez une procédure facilitant le dépôt de réclamations et donnez-leur des informations claires et précises à ce sujet.","solution":"Indiquer, dans les conditions générales de vente, par exemple, la procédure de dépôt et de traitement des réclamations.","controle":"Dans au moins une des pages suivantes : les pages consacrées aux conditions générales d’utilisation ou de vente, la page d’accueil, la page des mentions légales, la page d’à propos, la page produit ou encore la page d’aide :\n- vérifier la présence des informations relatives à la procédure de dépôt et de traitement des réclamations.\nLa nature de la procédure en question n’est pas évaluée ici : seule sa présence est contrôlée.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"La présence d'informations sur les réclamations se vérifie en lisant le contenu textuel des pages de l'échantillon ; une seule étape suffit pour fournir au juge les preuves nécessaires.","guide_analyse":"Parmi les pages fournies, examinez le texte de celles correspondant aux CGU/CGV, mentions légales, accueil, à propos, produit ou aide. Cherchez-y des mentions relatives au dépôt ou au traitement des réclamations (par exemple : 'réclamation', 'dépôt de réclamation', 'procédure de réclamation', 'traitement des réclamations'). Conforme si au moins une de ces pages contient de telles informations. Non conforme si des pages de ces types sont fournies et qu'aucune ne contient l'information. Si l'échantillon ne comporte aucune de ces pages, l'absence de preuve ne permet pas de conclure.","objectifs":["permettre aux utilisateurs de comprendre ou d’anticiper d’éventuelles difficultés lors de la transaction."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":1,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":54,"intitule":"Les conditions de remboursement et de résiliation sont indiquées.","theme":"E-commerce","contexte":"Bien évidemment, il est de votre intérêt que le consommateur dispose d’un délai de rétractation suite à un achat en ligne. Que la loi l’impose ou pas, ce délai de rétractation vous fera faire autant d’économies en réclamations.","solution":"Indiquer, au minimum dans les conditions générales de vente, les informations relatives aux conditions de remboursement : délais, frais et justificatifs exigés.","controle":"Dans au moins une des pages suivantes : les pages consacrées aux conditions générales d’utilisation ou de vente, la page d’accueil, la page des mentions légales, la page produit, la page d’à propos ou encore la page d’aide :\n- vérifier la présence d’informations relatives aux conditions de remboursement.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Le texte principal de chaque page permet de rechercher les mentions de remboursement et de résiliation ; le juge peut déterminer si au moins une page de l'échantillon contient ces informations.","guide_analyse":"Examinez le texte de chaque page fournie pour y repérer des informations sur les conditions de remboursement, de rétractation ou de résiliation (délais, frais, justificatifs, modalités). Conforme si au moins une page de l'échantillon — notamment une page de CGV, CGU, mentions légales, aide, à propos, accueil ou produit — contient de telles mentions. Non conforme si des pages de ces types sont présentes mais qu'aucune ne les mentionne. Si l'échantillon ne comporte aucune page de ces types, l'absence de preuve ne permet pas de conclure à la non-conformité.","objectifs":["permettre aux utilisateurs d’identifier précisément les pièces nécessaires en cas de nécessité de retour du produit,","anticiper d’éventuels problèmes en cas de demande de remboursement réalisée après le délai légal,","diminuer le nombre de démarches inutiles et le nombre de demandes au support client,","augmenter le taux de transformation d’une boutique ou d’un processus d’achat."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.410975"},{"numero":55,"intitule":"Les matériels et logiciels nécessaires au fonctionnement du service sont indiqués avant la validation de la commande.","theme":"E-commerce","contexte":"Certains matériels ou logiciels ne peuvent fonctionner que dans des contextes définis ou dans des environnements restreints. C’est par exemple, le cas de certains logiciels qui ne fonctionnent que sur certaines plateformes, ou de matériels qui nécessitent des prérequis ou des éléments complémentaires. Pour éviter ce type de problèmes et les déceptions et problèmes qui leur sont associés, informez les utilisateurs.","solution":"Fournir les informations nécessaires dans la page produit, ou à l’aide d’un lien à partir de celle-ci, ou via une page de support disponible avant la finalisation de la commande.","controle":"Contrôler manuellement que les informations nécessaires sont présentes dans la page produit, ou fournies à l’aide d’un lien à partir de celle-ci, ou via une page de support disponible avant la finalisation de la commande.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de vérifier la présence et l'exhaustivité d'informations spécifiques aux prérequis de chaque produit ou service avant la validation d'une commande, ce qui nécessite une expertise métier pour juger si les informations données sont effectivement celles nécessaires. De plus, s'assurer qu'elles sont bien disponibles avant la finalisation impose de parcourir un tunnel de commande (panier, paiement) par des actions de clic et de navigation que les outils ne réalisent pas.","guide_analyse":"Vérification humaine : identifiez les pages produit ou de présentation du service dans le parcours utilisateur, jusqu'à l'étape précédant la validation de la commande. Vérifiez que les matériels et logiciels nécessaires au fonctionnement (système d'exploitation, configuration minimale, éléments complémentaires, etc.) sont indiqués directement sur la page, ou accessibles via un lien depuis celle-ci, ou présents sur une page de support consultable avant la finalisation. Assurez-vous que les informations fournies sont exhaustives au regard des besoins réels du produit. Conforme si les prérequis sont clairement communiqués avant l'engagement de l'achat ; non conforme si ces informations manquent, sont incomplètes ou ne sont accessibles qu'après la commande.","objectifs":["permettre à l’utilisateur d’anticiper les conditions et les moyens d’utilisation du service,","limiter les risques de réclamations."],"tags":["Accessibilité","Écoconception"],"phases":["Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.435301"},{"numero":56,"intitule":"Les prix affichés mentionnent le détail des taxes et suppléments éventuels ainsi que le montant hors taxes.","theme":"E-commerce","contexte":"La règle d’or de la vente en ligne pourrait être « pas de surprise ». Et parmi les mauvaises surprises, il y a les frais supplémentaires non signalés. Demandez aux compagnies aériennes low cost, elles adorent faire ça. Les passagers, eux, aiment moins…","solution":"Indiquer sur le formulaire récapitulatif de la commande, ainsi que sur la facture envoyée au client, le détail de toutes les taxes intégrées au coût des produits et services proposés.","controle":"Dans le formulaire récapitulatif de la commande et au sein de la facture envoyée au client, vérifier la présence du détail de toutes les taxes intégrées au coût des produits et services proposés.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle porte sur le formulaire récapitulatif de commande et la facture envoyée au client, qui nécessitent un parcours d'achat complet (ajout au panier, saisie, validation) et l'accès à un email ou un espace client connecté, hors du périmètre des outils disponibles.","guide_analyse":"Vérification humaine : effectuez un parcours d'achat sur le site jusqu'au formulaire récapitulatif de la commande. Vérifiez que le détail de toutes les taxes et suppléments éventuels y figure, ainsi que le montant hors taxes. Finalisez la commande et consultez la facture envoyée par email ou dans l'espace client. Vérifiez que cette facture détaille également toutes les taxes intégrées. Non conforme si le détail d'une taxe, d'un supplément ou le montant HT est manquant dans l'une ou l'autre de ces étapes.","objectifs":["permettre aux utilisateurs d’identifier précisément et avant l’achat le montant total qu’ils auront à payer,","permettre aux utilisateurs d’identifier précisément les montants déductibles et les différentes imputations."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":57,"intitule":"Une adresse de livraison différente de l’adresse de facturation peut être spécifiée.","theme":"E-commerce","contexte":"Cette règle semble tellement évidente qu’il est presque inutile de l’énoncer. Et pourtant, ce simple détail peut facilement être oublié dans la conception d’une boutique ou d’un processus de vente en ligne.","solution":"Proposer au client, sur le formulaire récapitulatif de la commande, la possibilité d’indiquer une adresse de livraison différente de l’adresse de facturation.","controle":"Dans une boutique ou un processus de vente en ligne :\n- entreprendre une procédure de commande ou modifier les données d’un compte client (à l’aide d’un compte de test ou compte réel créé pour l’occasion),\n- puis, vérifier la possibilité de saisir une adresse de livraison différente de l’adresse de facturation.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande d'entreprendre une procédure de commande ou de modifier un compte client à l'aide d'un compte de test, ce qui nécessite de se connecter, naviguer dans un processus transactionnel multi-étapes et saisir des adresses : aucun outil du catalogue ne permet cette interaction fonctionnelle complexe.","guide_analyse":"Vérification humaine : créez un compte de test ou utilisez-en un existant, puis lancez une commande jusqu'au formulaire récapitulatif, ou accédez aux paramètres du compte client. Cherchez une option permettant de distinguer l'adresse de livraison de l'adresse de facturation : champs séparés, case à cocher 'livrer à une autre adresse', ou bouton d'ajout d'adresse. Conforme si le formulaire permet explicitement de spécifier une adresse de livraison différente ; non conforme si les deux adresses sont confondues ou si aucune alternative n'est proposée.","objectifs":["permettre aux utilisateurs de faire livrer un achat sur le lieu de leur choix,","permettre aux utilisateurs de faire livrer un achat sans facture, pour un cadeau, par exemple."],"tags":[],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":58,"intitule":"Au moins deux moyens de paiement sont acceptés.","theme":"E-commerce","contexte":"Certains utilisateurs n’ont pas de chéquier, d’autres n’ont pas de carte de crédit ou bien leur carte de crédit a expiré. La présence d’un moyen de paiement alternatif permet de ne pas perdre ces clients.","solution":"Informer le client le plus tôt possible, avant la fin de la commande, qu’il dispose de deux moyens de paiement.","controle":"Dans une boutique ou un processus de vente en ligne :\n- entreprendre une procédure de commande et la poursuivre au moins jusqu’à l’étape du paiement,\n- vérifier qu’au moins deux moyens de paiement sont effectivement disponibles.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige d'entreprendre une procédure de commande et de la mener jusqu'à l'étape du paiement, ce qui suppose d'interagir avec le site (ajouter au panier, remplir des formulaires, cliquer pour avancer) : aucun outil du catalogue ne simule un parcours d'achat complet ni n'envoie de formulaires de commande.","guide_analyse":"Vérification humaine : depuis une page produit ou le panier, lancez une commande et poursuivez chaque étape jusqu'à la page de paiement. Sur cette page, comptez les moyens de paiement proposés (carte bancaire, PayPal, virement, chèque, etc.). Conforme si au moins deux moyens distincts sont effectivement disponibles pour finaliser la transaction. Non conforme si un seul moyen est proposé ou si le processus est interrompu avant l'affichage des options de paiement.","objectifs":["permettre aux utilisateurs de choisir le mode de paiement qui leur convient le mieux dans leur contexte,","fournir au moins une alternative aux utilisateurs qui sont dans l’incapacité temporaire ou permanente d’utiliser un moyen de paiement."],"tags":["Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.479485"},{"numero":59,"intitule":"Les données bancaires ne sont mémorisées qu’après consentement explicite de l’utilisateur.","theme":"E-commerce","contexte":"En tant qu’utilisateur, il peut être très pratique de pouvoir laisser son numéro de carte bleue sur un site ou un service en ligne parce que l’on compte y revenir de temps en temps. Encore faut-il que la décision de mémoriser ces données ait été faite de manière volontaire et éclairée.","solution":"- ne pas enregistrer automatiquement les données permettant d’utiliser un moyen de paiement sans consentement explicite de l’utilisateur,\n- recueillir le consentement explicite de l’utilisateur pour la mémorisation d’un moyen de paiement destiné à être automatiquement réutilisé par le service (opt-in et non opt-out).","controle":"Vérifier qu’au cours du processus de commande, le moyen de paiement utilisé n’est pas mémorisé automatiquement par le service, et que son enregistrement éventuel pour une réutilisation automatique nécessite une validation explicite (opt-in et non opt-out).","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de parcourir un processus de commande complet, de saisir des données bancaires, de soumettre le paiement et de vérifier ultérieurement si le moyen de paiement a été mémorisé par le service ; aucun outil ne simule d'achat ni n'inspecte l'état persistant des données enregistrées côté serveur.","guide_analyse":"Vérification humaine : réalisez une commande test jusqu'à l'étape de paiement. Vérifiez que l'option de mémorisation des données bancaires n'est pas activée par défaut et qu'elle nécessite une action explicite de l'utilisateur (case à cocher non précochée, opt-in). Soumettez le paiement avec l'option activée, puis effectuez une nouvelle commande pour constater si le moyen de paiement a bien été mémorisé. Conforme si la mémorisation n'intervient qu'après consentement explicite et qu'elle reste désactivée par défaut ; non conforme si les données sont enregistrées sans validation explicite ou si l'option est précochée.","objectifs":["laisser l’utilisateur maître de ses choix en matière de mémorisation de données bancaires,","prévenir d’éventuels problèmes juridiques en cas de plainte ou de vol de données,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Accessibilité","Basics","Privacy"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":60,"intitule":"Les données bancaires mémorisées peuvent être modifiées ou supprimées.","theme":"E-commerce","contexte":"En tant qu’utilisateur, accorder à un service en ligne le droit de mémoriser ses données personnelles est un choix tout à fait respectable, mais avoir le droit de changer d’avis sur la question est tout aussi important. Les utilisateurs doivent pouvoir modifier ou supprimer leurs données bancaires quand ils le souhaitent.","solution":"Si le service en ligne mémorise les données bancaires de l’utilisateur permettant un paiement (identité, numéro de carte bancaire, etc.), permettre dans la gestion de son compte de modifier toutes les données mémorisées et de les supprimer.","controle":"Vérifier après mémorisation de données bancaires qu’il est possible, dans le compte utilisateur, de modifier et supprimer celles-ci.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle nécessite de mémoriser des données bancaires, ce qui impose de s'authentifier, de saisir des informations de paiement dans un formulaire et de le soumettre, puis de consulter un espace utilisateur protégé pour vérifier les options de modification et de suppression. Ces actions transactionnelles et connectées dépassent les capacités des outils, qui ne réalisent pas d'achat, de connexion ni de saisie de données sensibles.","guide_analyse":"Vérification humaine : créez un compte et effectuez un paiement avec mémorisation des données bancaires. Connectez-vous au compte utilisateur et accédez à la section de gestion des moyens de paiement ou des données personnelles. Vérifiez que chaque donnée bancaire mémorisée peut être modifiée et qu'une fonction de suppression est disponible. Conforme si les deux actions sont possibles dans le compte ; non conforme si l'une des deux est absente ou impossible.","objectifs":["prévenir les risques de fraude en permettant la suppression préventive des données,","donner aux utilisateurs la maîtrise de leurs données bancaires,","prévenir les erreurs de paiement en permettant la mise à jour préventive des données bancaires,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Basics","Privacy"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.503190"},{"numero":61,"intitule":"La référence de la transaction est affichée au client après la validation de sa commande.","theme":"E-commerce","contexte":"Chaque transaction en ligne a un identifiant ou une référence. Ce numéro permet de retracer l’historique d’une transaction bancaire. Autant dire qu’en cas de problème, c’est une donnée fondamentale.","solution":"Indiquer la référence de la transaction sur la page de confirmation après validation d’un achat en ligne.","controle":"Dans une boutique ou dans un processus de vente en ligne :\n- mener à terme une procédure de commande,\n- vérifier que la référence de la transaction est bien indiquée sur la page de confirmation de commande affichée après validation d’un achat en ligne.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de mener à terme une procédure de commande en ligne, ce qui implique de remplir des formulaires, cliquer et valider un achat. Aucun outil du catalogue ne permet d'effectuer ces actions interactives ni d'atteindre la page de confirmation post-transaction.","guide_analyse":"Vérification humaine : accédez au site en tant qu'utilisateur, ajoutez un produit au panier et menez à terme la procédure de commande jusqu'au paiement. Une fois la commande validée, examinez la page de confirmation affichée. Recherchez un identifiant, un numéro de commande ou une référence de transaction clairement indiqué. Conforme si cette référence est visible sur la page ; non conforme si elle est absente ou impossible à trouver.","objectifs":["permettre aux utilisateurs d’afficher et éventuellement d’imprimer une trace de leur commande,","fournir aux utilisateurs une preuve écrite de l’opération effectuée,","renforcer la traçabilité de la transaction."],"tags":[],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":62,"intitule":"Les factures émises sont également disponibles en ligne.","theme":"E-commerce","contexte":"Les factures sont des documents essentiels pour un très grand nombre d’actions en ligne, que ce soit dans la sphère privée ou professionnelle. L’accès aux factures en ligne est une fonctionnalité essentielle, souvent en complément d’un envoi par e-mail.","solution":"Permettre à l’utilisateur d’accéder, dans son compte utilisateur, à l’ensemble des factures correspondant à ses achats sur le site et de les télécharger.","controle":"Vérifier après un achat que la facture est disponible dans le compte utilisateur et qu’il est possible de la télécharger.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige d'effectuer un achat, de se connecter à un compte utilisateur et de vérifier la présence d'une facture téléchargeable dans l'espace personnel. Les outils ne peuvent ni acheter, ni se connecter, ni accéder à des contenus protégés par authentification.","guide_analyse":"Vérification humaine : créez un compte sur le site et effectuez un achat. Connectez-vous ensuite au compte utilisateur et recherchez une section dédiée aux commandes, factures ou historique d'achats. Vérifiez que la facture correspondant à l'achat est présente et qu'un lien ou un bouton permet de la télécharger. Non conforme si la facture est absente ou si le téléchargement est impossible.","objectifs":["faciliter les opérations de gestion et de rapprochement par les utilisateurs,","fournir une sauvegarde des données nécessaires à la comptabilité."],"tags":["Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.526902"},{"numero":63,"intitule":"Chaque facturation fait l’objet d’un e-mail de confirmation.","theme":"E-commerce","contexte":"La mise à disposition des factures en ligne est très pratique, mais il existe de nombreux cas dans lesquels le document en ligne risque de ne plus être disponible (temps légal de conservation des données, migration de données, fin d’exploitation du service). Il est donc assez prudent d’envoyer les factures par e-mail à l’utilisateur, ce qui lui permet de maîtriser lui-même la conservation de ses factures.","solution":"Envoyer chaque facture établie à l’issue d’un processus de commande par e-mail à l’utilisateur.","controle":"Vérifier que chaque facture établie à l’issue d’un processus de commande est envoyée par e-mail à l’utilisateur.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de passer une commande complète, ce qui implique de saisir des données et d'envoyer un formulaire, puis de consulter une boîte mail pour vérifier la réception de la facture. Ces actions et cette observation hors du site dépassent les capacités des outils disponibles.","guide_analyse":"Vérification humaine : passez une commande complète sur le site jusqu'à son terme avec une adresse e-mail de test. Consultez la boîte de réception de cette adresse, ainsi que les courriers indésirables, pour chercher un e-mail contenant la facture. Vérifiez que le document joint ou le lien dans le mail donne bien accès à la facture correspondant à la commande. Conforme si chaque facture établie fait l'objet d'un envoi par e-mail à l'utilisateur. Non conforme si la facture n'est pas reçue par mail ou si elle est uniquement disponible en ligne.","objectifs":["prévenir les pertes d’information et de factures,","améliorer la traçabilité des opérations."],"tags":["Accessibilité","Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.548830"},{"numero":64,"intitule":"Les mentions d’appartenance à un ordre ou groupe professionnel, d’un label ou d’une récompense sont accompagnées d’un lien vers la source.","theme":"E-commerce","contexte":"Si vous voulez renforcer la confiance en mentionnant des tiers valorisants auxquels vous êtes liés, faites-en sorte que l’utilisateur puisse vérifier la crédibilité de ces tiers.","solution":"Fournir pour chaque mention concernée un lien explicite vers la source de référence.","controle":"Dans tous les emplacements où il est fait référence à l’une de ces mentions, vérifier la présence, pour chaque mention concernée, d’un lien explicite vers la source de référence du standard concerné.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"},{"args":{"selecteur":"a","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["capturer_page","inspecter_html"],"strategie_justification":"La capture de la page entière permet de repérer les mentions d'appartenance à un ordre, de label ou de récompense dans l'ensemble du contenu visible, y compris le pied de page ; la liste de tous les liens avec leur libellé et leur href permet de vérifier que chaque mention est accompagnée d'un lien explicite vers sa source.","guide_analyse":"Sur la capture, identifiez toute mention d'appartenance à un ordre ou groupe professionnel, de label ou de récompense. Dans la liste des liens HTML, vérifiez que chaque mention repérée correspond à un élément a dont le libellé et l'attribut href renvoient explicitement vers la source de référence, ou qu'un lien explicite vers cette source est associé à la mention. Conforme si chaque mention est ainsi accompagnée d'un lien explicite vers sa source. Non conforme si une mention n'est pas liée ou si le lien n'est pas explicite. Non applicable si la page ne contient aucune de ces mentions.","objectifs":["donner un accès immédiat à l’utilisateur pour lui permettre de comprendre de quoi il s’agit,","permettre à l’utilisateur de vérifier par lui-même l’information,","accroître le degré de confiance ou de crédibilité."],"tags":[],"phases":["Éditorial"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":65,"intitule":"Les produits indisponibles font l’objet d’une différenciation visuelle et textuelle.","theme":"E-commerce","contexte":"Un produit qui n’est pas disponible doit pouvoir se distinguer d’un produit en stock. Les utilisateurs vous sauront toujours gré de votre honnêteté vis-à-vis d’eux.","solution":"Préciser, dans le contenu présentant chaque produit, une mention textuelle ou graphique du type « indisponible » ou « disponible ».","controle":"Dans les pages produits :\n- vérifier la présence d’une mention textuelle sur la disponibilité des produits,\n- ou contrôler la présence d’une indication graphique différenciant les produits disponibles de ceux qui ne le sont pas (icône, couleur, etc.) accompagnée d’une alternative textuelle appropriée.","plan_outils":{"etapes":[{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"},{"args":{},"cible":"page","outil":"lire_page"}],"portee":"page","outils_juge":[]},"outils":["capturer_page","lire_page"],"strategie_justification":"La capture d'écran permet de constater la différenciation visuelle et les mentions textuelles affichées ; le texte principal de la page permet de relever les indications de disponibilité et les alternatives textuelles. Ces deux preuves suffisent à vérifier la règle.","guide_analyse":"Dans la capture d'écran, identifiez les produits présentés et repérez ceux qui semblent indisponibles. Dans le texte lu, cherchez des mentions explicites de disponibilité (par exemple « indisponible », « épuisé », « rupture de stock »). Si la page ne contient aucun produit indisponible, le verdict est non applicable. Pour chaque produit indisponible, vérifiez qu'il porte soit une mention textuelle dans le contenu, soit une indication visuelle distincte (icône, couleur, style) sur la capture accompagnée d'une alternative textuelle appropriée dans le texte. Conforme si chaque produit indisponible est différencié par l'un de ces moyens ; non conforme si au moins un produit indisponible ne l'est ni visuellement ni textuellement.","objectifs":["permettre à l’utilisateur d’identifier immédiatement et sans confusion possible les produits indisponibles,","éviter l’effet de déception si un utilisateur débute une procédure de commande et s’aperçoit tardivement de l’indisponibilité du produit désiré."],"tags":[],"phases":["Fonctionnel","Éditorial"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":66,"intitule":"Un e-mail indiquant la référence de la transaction et les données de la commande est envoyé suite à la validation.","theme":"E-commerce","contexte":"Parmi les grands principes du management de la qualité, il y en a un qui est absolument fondamental : la traçabilité (c’est-à-dire la capacité à retracer un historique des opérations effectuées). C’est de ce principe appliqué aux achats en ligne dont il est question ici.","solution":"Utiliser ou développer des outils de gestion du panier qui envoient automatiquement une confirmation contenant le récapitulatif des données de la commande.","controle":"Dans une boutique ou un processus d’achat :\n- mener à terme une procédure de commande,\n- vérifier, à l’issue de cette dernière, que l’e-mail contenant la référence de la transaction et les données de la commande parvient effectivement au destinataire.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de mener à terme une procédure de commande, ce qui implique d'envoyer un formulaire et potentiellement de payer, puis de vérifier la réception d'un e-mail dans une boîte mail externe. Aucun outil du catalogue ne transmet de données au site ni n'accède à une boîte de réception.","guide_analyse":"Vérification humaine : créez un compte ou utilisez une adresse e-mail de test, puis menez une commande jusqu'à sa validation finale sur le site. Ouvrez ensuite la boîte de réception associée et recherchez l'e-mail de confirmation. Conforme si cet e-mail contient explicitement une référence de transaction ainsi que les données de la commande (articles, prix, adresse). Non conforme si l'e-mail est absent, ne contient pas la référence ou omet les données de la commande.","objectifs":["donner à l’utilisateur une confirmation des informations relatives à la commande,","permettre à l’utilisateur de conserver un historique de la transaction."],"tags":["Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.573331"},{"numero":67,"intitule":"Chaque réclamation fait l’objet d’un accusé de réception.","theme":"E-commerce","contexte":"Comme dans le cas d’un formulaire de contact, l’accusé de réception d’une réclamation est la certitude pour l’utilisateur que sa demande est prise en compte.","solution":"Définir une procédure de gestion de l’envoi d’un e-mail accusant réception d’une réclamation.","controle":"Via le canal de contact de réclamation indiqué :\n- adresser une réclamation fictive,\n- contrôler l’envoi par le service d’un accusé de réception.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige d'adresser une réclamation fictive via le canal dédié et de vérifier l'envoi d'un accusé de réception, souvent par e-mail. Les outils ne transmettent aucune donnée au site et ne consultent pas de boîte mail externe.","guide_analyse":"Localisez sur le site le canal de contact destiné aux réclamations (formulaire, e-mail ou tchat). Adressez-y une réclamation fictive. Vérifiez ensuite, dans les minutes ou heures suivantes, la réception d'un accusé de réception distinct, par e-mail ou dans l'interface. Conforme si un accusé de réception est bien envoyé pour chaque réclamation ; non conforme si l'accusé est absent, automatique mais non explicite, ou si aucun accusé n'est reçu.","objectifs":["permettre à l’utilisateur d’obtenir une confirmation de sa demande en dehors du contexte de la navigation sur le service en ligne,","éviter au service client de recevoir plusieurs demandes concernant une même réclamation."],"tags":[],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":68,"intitule":"La provenance des produits est indiquée.","theme":"E-commerce","contexte":"Lors d’une commande en ligne, les utilisateurs peuvent se poser de multiples questions, et notamment où sont produits ou assemblés les produits vendus. Le motif de ces questions peut être social, écologique, politique ou simplement de l’ordre de la curiosité. Il est bien évident que la provenance des produits n’est pas toujours simple à afficher, mais, dans de nombreux cas, cette information sera de nature à renforcer l’information fournie aux personnes qui achètent, et la confiance envers le service.","solution":"Mentionner dans les fiches produits, sur le site ou dans l’application, les informations concernant la provenance des produits. À défaut d’une provenance unique, il est conseillé d’indiquer des informations sur le lieu d’assemblage, de fabrication et d’expédition.","controle":"Vérifier que les fiches produits, le site ou l’application contiennent les informations concernant la provenance des produits, ou, à défaut d’une provenance unique, les informations sur le lieu d’assemblage, de fabrication et d’expédition.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"La provenance des produits est une information textuelle qui, lorsqu'elle est présente, figure dans le contenu principal des pages : le texte extrait de chaque page permet au juge de rechercher les mentions de provenance, de fabrication, d'assemblage ou d'expédition.","guide_analyse":"Parmi les pages fournies, identifiez celles qui présentent des produits (fiches produits, catalogues, offres). Pour chaque page de produit, lisez le texte principal et recherchez une indication de provenance : pays d'origine, lieu de fabrication, d'assemblage ou d'expédition. Conforme si chaque fiche produit de l'échantillon contient au moins une de ces informations. Non conforme si une fiche produit en est dépourvue. Si aucune page fournie ne présente de produit, l'absence de fiche produit ne permet pas de conclure.","objectifs":["informer les utilisateurs sur la provenance des produits,","permettre de prendre des décisions d’achat en connaissance de cause,","renforcer la confiance en ligne."],"tags":["Basics"],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.597506"},{"numero":69,"intitule":"Chaque champ de formulaire est associé dans le code source à une étiquette qui lui est propre.","theme":"Formulaires","contexte":"Ne pas savoir à quoi sert un champ de formulaire peut être extrêmement déroutant.","solution":"Donner à chaque champ de formulaire une étiquette qui lui soit explicitement associée :\n- si l’étiquette est visible, sous la forme d’un élément label doté d’un attribut for reprenant la valeur de l’attribut id affecté au champ, par exemple : <label for=\"nom1\">Nom de famille :</label> <input id=\"nom1\" type=\"text\" name=\"nom\">\n- si l’affichage de l’étiquette n’est pas souhaité (placeholder), sous la forme d’un attribut aria-label ou aria-labelledby.\nLe recours à une étiquette <label for=\"...\"> masquée via les styles CSS est déconseillé au profit de l’attribut aria-label ou aria-labelledby.","controle":"Pour chaque champ de formulaire :\n- vérifier, en regardant le code source ou à l’aide de Firebug, que l’attribut for, propre à l’élément label, ainsi que l’attribut id du champ ont exactement le même contenu. Si les valeurs de ces deux attributs sont effectivement identiques, l’étiquette (label) est bien associée au champ (input),\n- dans le cas où aucune étiquette n’est visible dans le site (placeholder), vérifier que chaque champ de formulaire est doté d’un attribut aria-label ou aria-labelledby.\nDans les deux cas, vérifier enfin que l’étiquette décrit effectivement le rôle du champ ou la nature de l’information qui doit y être saisie. Cette règle ne peut donc être automatisée, mais nécessite un examen manuel de chaque formulaire.","plan_outils":{"etapes":[{"args":{"selecteur":"input, select, textarea","profondeur":200},"cible":"page","outil":"inspecter_html"},{"args":{"selecteur":"label[for]","profondeur":200},"cible":"page","outil":"inspecter_html"},{"args":{"selecteur":"input, select, textarea","profondeur":200},"cible":"page","outil":"lire_arbre_accessibilite"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","lire_arbre_accessibilite"],"strategie_justification":"Les attributs id et for, ainsi que aria-label et aria-labelledby, sont lisibles dans le code source HTML ; l'arbre d'accessibilité fournit le nom final calculé par le navigateur, indispensable pour juger de la pertinence des étiquettes aria-labelledby. Le juge compare les valeurs techniques et évalue la qualité sémantique de chaque étiquette.","guide_analyse":"Pour chaque champ de formulaire relevé dans la première preuve, vérifiez s'il possède un attribut id référencé par un élément label via un attribut for de valeur identique dans la deuxième preuve, ou un attribut aria-label non vide, ou un attribut aria-labelledby non vide. Lisez le texte du label, la valeur de aria-label, ou le nom accessible calculé dans la troisième preuve pour aria-labelledby. Conforme si chaque champ dispose d'une étiquette ainsi associée et que son texte décrit le rôle du champ ou la nature de l'information attendue. Non conforme si un champ n'a aucune association technique, si les valeurs for et id diffèrent, ou si l'étiquette est absente, vide ou générique. Le seul placeholder ne constitue pas une étiquette valide.","objectifs":["faciliter la compréhension des données attendues dans les formulaires,","permettre aux aides techniques d’accessibilité de restituer les champs de formulaires en les associant systématiquement à une étiquette indiquant leur rôle et la nature de la saisie attendue,","faciliter la saisie en permettant de sélectionner le champ via un clic sur son étiquette aussi bien que sur le champ lui-même (particulièrement en cas de case à cocher ou de case radio),","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":1,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":70,"intitule":"Les informations complétant l’étiquette d’un champ sont associées à celui-ci dans le code source.","theme":"Formulaires","contexte":"Les formulaires sont particulièrement importants pour les personnes handicapées, car ils sont souvent associés à des services à très haute valeur ajoutée : demande de service, achat en ligne, démarche administrative, etc. C’est la raison pour laquelle il est essentiel de veiller au fonctionnement de vos formulaires dans des lecteurs d’écran, utilisés par les non-voyants. Cette règle va contribuer au fait qu’ils deviennent utilisables dans ce contexte. Par la suite, son suivi lors des évolutions du service est essentiel.","solution":"Associer explicitement dans le code source chaque information venant compléter une étiquette de champ de formulaire, ou venant informer l’utilisateur en cas d’erreur de saisie :\n- soit à l’aide d’un regroupement de champ fieldset et de l’élément legend,\n- soit à l’aide de l’attribut aria-describedby.","controle":"Vérifier dans le code source que chaque information venant compléter une étiquette de champ de formulaire, ou venant informer l’utilisateur en cas d’erreur de saisie :\n- est associée au champ en étant balisée par un élément legend inclus dans un élément fieldset regroupant les champs concernés,\n- ou est associée au champ via un attribut aria-describedby.","plan_outils":{"etapes":[{"args":{"selecteur":"input, select, textarea, form *","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html"],"strategie_justification":"Les associations dans le code source entre champs et informations complémentaires (attribut aria-describedby, éléments fieldset et legend) se vérifient par l'inspection du HTML des formulaires et de leurs éléments.","guide_analyse":"Dans les éléments relevés, examinez chaque champ de formulaire (input, select, textarea) et ses attributs. Si un champ possède un attribut aria-describedby, vérifiez que l'identifiant référencé correspond à un élément présent dans les résultats. Repérez les éléments fieldset et assurez-vous qu'ils contiennent un élément legend lorsqu'ils regroupent plusieurs champs. Vérifiez qu'aucun texte visible à proximité d'un champ ne constitue une information complémentaire ou d'erreur non associée par l'une de ces deux méthodes. Conforme si toute information complémentaire est reliée au champ via aria-describedby ou balisée dans un legend de fieldset ; non conforme dans le cas contraire.","objectifs":["optimiser le rendu dans les lecteurs d’écran en permettant d’expliciter les étiquettes des champs de formulaire,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":71,"intitule":"L’étiquette de chaque champ de formulaire indique si la saisie est obligatoire.","theme":"Formulaires","contexte":"Mieux vaut éviter à l’utilisateur de commettre une erreur parce qu’on ne lui a pas donné suffisamment d’informations dès le départ.","solution":"Indiquer le caractère obligatoire de la saisie dans l’étiquette associée au champ. Si l’indication est faite avec un symbole graphique (astérisque, par exemple), faire précéder le formulaire d’une légende explicitant ce symbole.","controle":"Pour chaque formulaire :\n- vérifier que l’étiquette associée à chaque champ en indique le caractère obligatoire, si besoin en contrôlant, avec un inspecteur de code, que l’information est bien présente dans l’élément label, dans un attribut aria-label, ou bien qu’elle est reliée au champ via un attribut aria-labelledby ou aria-describedby,\n- vérifier que les champs dont l’étiquette ne donne aucune information sur leur caractère obligatoire sont bien facultatifs, en validant le formulaire sans les remplir. Si un message d’erreur indique qu’ils doivent être remplis ou si le formulaire ne peut être validé ainsi, la règle est invalidée.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle officiel exige d'envoyer chaque formulaire sans remplir certains champs pour vérifier qu'ils sont facultatifs, ce qui constitue une action (soumettre) que les outils ne peuvent pas réaliser. L'inspection seule des étiquettes ne permet donc pas de trancher intégralement la conformité.","guide_analyse":"Pour chaque formulaire, examinez l'étiquette de chaque champ (élément label, attribut aria-label, aria-labelledby ou aria-describedby) pour y repérer une mention d'obligation ou un symbole graphique explicité dans une légende. Identifiez les champs dont l'étiquette ne donne aucune indication sur le caractère obligatoire. Tentez ensuite d'envoyer le formulaire sans remplir ces champs : s'ils déclenchent une erreur de champ obligatoire ou bloquent la soumission, la règle est non conforme. Conforme si tous les champs obligatoires sont signalés comme tels dans leur étiquette et si les champs non signalés sont effectivement facultatifs.","objectifs":["permettre aux utilisateurs de savoir à l’avance si un champ est obligatoire,","prévenir les erreurs avant qu’elles ne surviennent,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":72,"intitule":"Le format de saisie des champs de formulaire qui le nécessitent est indiqué.","theme":"Formulaires","contexte":"Évitons de transformer une saisie de date, de monnaie ou autre en jeu de devinette (avec ou sans tiret ? L’année ou le mois d’abord ? Avec ou sans les centimes ? Etc.). Et les champs de mots de passe, alors ? Faut-il un chiffre, une lettre en majuscule, une invocation magique ?","solution":"Indiquer quel est le format de saisie attendue via l’étiquette associée au champ. Par exemple : <label for=\"mail\">Adresse email (du type mail@exemple.com)</label>","controle":"Pour chaque formulaire :\n- soumettre différentes erreurs possibles dans chaque formulaire : non-respect d’un format demandé ou prévisible (format d’adresse e-mail, de date, etc.), afin de détecter les champs pour lesquels un format de saisie spécifique est imposé,\n- vérifier, à l’aide d’un inspecteur de code, que l’étiquette associée à chaque champ concerné en indique le format attendu dans l’élément label ou via un attribut ARIA.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle officiel exige de soumettre volontairement des saisies erronées dans chaque formulaire pour découvrir les champs soumis à un format spécifique, puis d’inspecter le code de ces champs. Aucun outil du catalogue ne permet d’envoyer un formulaire ni de contrôler la valeur saisie pour provoquer une erreur de format : saisir_et_cliquer ne transmet rien au site et n’accepte pas de valeur choisie.","guide_analyse":"Vérification humaine : dans chaque formulaire du site, saisissez des valeurs volontairement erronées (adresse e-mail sans @, date impossible, etc.) et soumettez. Identifiez les champs qui déclenchent un message d’erreur de format. Pour chacun de ces champs, vérifiez dans le code HTML que son étiquette (élément label associé, aria-label, aria-labelledby ou title) indique explicitement le format attendu. Non conforme si un champ à format imposé n’est pas accompagné de cette indication.","objectifs":["limiter le risque d’erreurs de saisie,","limiter les risques associés à l’envoi de données erronées ou impossibles à exploiter,","éviter que l’utilisateur ne renonce à poursuivre faute d’information sur la saisie attendue,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":73,"intitule":"L’utilisateur est averti lorsqu’une saisie est sensible à la casse.","theme":"Formulaires","contexte":"Il est agaçant de devoir recommencer une saisie pour une erreur aussi simple à éviter. Mais encore fallait-il être au courant qu’il fallait taper uniquement en majuscules.","solution":"Si la saisie attendue est sensible à la casse, préciser dans l’étiquette associée au champ qu’elle doit être réalisée en majuscules ou en minuscules selon le cas.","controle":"Pour chaque formulaire :\n- détecter les champs dont la saisie est sensible à la casse en inscrivant le texte demandé en majuscules puis en minuscules et contrôler si, dans l’un des deux cas, la saisie est rejetée,\n- en cas de rejet de la saisie à cause de sa casse, vérifier que l’étiquette associée à chaque champ, via l’élément label ou dans l’attribut aria-label, informe l’utilisateur de cette sensibilité.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de saisir des valeurs en majuscules puis en minuscules dans chaque champ, de soumettre le formulaire et d'interpréter les messages de rejet pour identifier ceux qui sont sensibles à la casse, ce qui nécessite des actions et une expertise que les outils ne permettent pas.","guide_analyse":"Vérification humaine : pour chaque formulaire, identifiez les champs susceptibles d'être sensibles à la casse (mots de passe, identifiants, codes). Saisissez une valeur valide en majuscules, soumettez, puis la même en minuscules. Si l'une des deux soumissions est rejetée pour un problème de casse, vérifiez que l'étiquette associée au champ, via l'élément label ou l'attribut aria-label, mentionne explicitement cette contrainte (par exemple « en majuscules »). Non conforme si un champ sensible à la casse n'est pas signalé comme tel dans son étiquette.","objectifs":["éviter le risque d’erreur et donc éviter à l’utilisateur de devoir remplir plusieurs fois un même champ,","éviter l’incompréhension de l’utilisateur qui pense avoir rempli correctement le champ et qui le voit signalé en erreur,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.623168"},{"numero":74,"intitule":"L’étiquette de chaque champ de formulaire qui le nécessite indique les limites de nombre de caractères.","theme":"Formulaires","contexte":"Vous est-il déjà arrivé de poster un message et d’avoir une erreur à l’envoi, ou pire de vous apercevoir après envoi que la moitié du texte que vous aviez écrit avait disparu ? Si c’est le cas, vous comprendrez aisément l’intérêt de cette règle qui consiste à préciser les limites en nombre de caractères.","solution":"Pour chaque champ faisant l’objet d’une limitation spécifique du nombre de caractères qui peuvent être saisis, indiquer le nombre de caractères maximum dans l’étiquette du champ, ou dans une mention explicitement associée à celle-ci dans le code HTML.\nAu-delà de cette règle, il est important de veiller à ce que les restrictions de ce type à la saisie d’un champ de formulaire soient cohérentes avec son contenu.","controle":"Vérifier, pour chaque champ faisant l’objet d’une limitation spécifique du nombre de caractères qui peuvent être saisis, que le nombre de caractères autorisés est indiqué dans l’étiquette du champ, ou via une mention explicitement associée à celle-ci dans le code HTML.","plan_outils":{"etapes":[{"args":{"selecteur":"input[maxlength], textarea[maxlength]"},"cible":"page","outil":"inspecter_html"},{"args":{"selecteur":"form *","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html"],"strategie_justification":"L'attribut maxlength dans le HTML révèle les champs à limitation de saisie ; l'inspection de tous les éléments des formulaires permet au juge de retrouver l'étiquette ou la mention associée par imbrication, attribut for/id ou aria-describedby.","guide_analyse":"Dans l'étape 1, identifiez chaque input ou textarea possédant un attribut maxlength et notez sa valeur. Dans l'étape 2, retrouvez l'étiquette ou la mention explicitement associée à ce champ : label parent, label dont l'attribut for correspond à l'id du champ, ou élément dont l'id est référencé par un aria-describedby du champ. Vérifiez que le texte de cette étiquette ou mention contient explicitement le nombre de caractères autorisés (la valeur du maxlength). Conforme si chaque champ maxlength trouvé dispose d'une telle indication dans le code HTML ; non conforme dès qu'un champ maxlength n'en a aucune.","objectifs":["prévenir les erreurs d’envoi de formulaires,","prévenir les pertes de données,","éviter l’agacement et l’incompréhension de l’utilisateur."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.645329"},{"numero":75,"intitule":"La création d’un mot de passe par l’utilisateur fait l’objet d’un mécanisme de prévention des erreurs de saisie.","theme":"Formulaires","contexte":"Combien de mots de passe s’avèrent-ils finalement inutilisables à cause d’une simple erreur de saisie ou d’inattention lors de leur création ?","solution":"Parmi les solutions possibles :\n- proposer, après le champ de saisie du mot de passe, un champ de confirmation où le mot de passe doit être saisi à nouveau et vérifier que les deux saisies sont effectivement identiques lors de la soumission. Dans ce cas, comme dans le cas de tous les autres champs de formulaires, veiller à permettre le copier-coller dans les champs de formulaire,\n- permettre aux utilisateurs d’afficher leur mot de passe en clair,\n- fournir un lien ou un code de connexion unique.\nLa liste ci-dessus n’est pas limitative.","controle":"Dans le cas d’une création de mot de passe :\n- vérifier qu’un mécanisme de double saisie des mots de passe, généralement présent sous la forme de deux champs successifs, est systématiquement présent.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"},{"args":{"selecteur":"input[type='password']"},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["lire_page","inspecter_html"],"strategie_justification":"Le texte de la page permet d'identifier celles qui proposent une création de mot de passe, et l'inspection du HTML révèle le nombre et l'ordre des champs de saisie de type password. Le contrôle officiel ne demande pas de tester la soumission, seulement la présence du mécanisme de double saisie.","guide_analyse":"Dans le texte principal de chaque page, repérez les formulations qui indiquent une création de compte, d'inscription ou de mot de passe. Pour les pages concernées, examinez la liste des champs input[type='password'] relevés dans le HTML : le mécanisme de double saisie est présent si vous comptez au moins deux champs password successifs ou clairement associés à la création du mot de passe. Conforme si chaque page de création de mot de passe présente ce double champ. Non conforme si une page de création de mot de passe n'en comporte qu'un seul ou si le champ de confirmation est absent.","objectifs":["éviter à l’utilisateur de saisir un mot de passe qui ne correspond finalement pas à celui qu’il a souhaité ou mémorisé."],"tags":["Accessibilité","Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":76,"intitule":"Les caractères saisis dans un champ de mot de passe peuvent être affichés en clair.","theme":"Formulaires","contexte":"Lorsque vous saisissez vos mots de passe, vous avez l’habitude de le faire dans des champs dédiés, où chaque caractère saisi est remplacé par un point ou une étoile. C’est bien, car cela évite la consultation au-dessus de votre épaule. Mais très souvent, notamment pour les mots de passe longs ou dans des contextes mobiles, cela peut être gênant. Dès lors, pourquoi ne pas donner la possibilité aux utilisateurs d’afficher leur mot de passe à leur demande, lorsqu’ils en ont besoin et qu’ils jugent que cela ne présente pas de risque en matière de confidentialité ?","solution":"Afficher un bouton associé à un script qui bascule la valeur de l’attribut type du champ de saisie entre les valeurs password et text.","controle":"Contrôler manuellement la possibilité d’afficher le mot de passe en clair via un dispositif inclus dans la page.","plan_outils":{"etapes":[{"args":{"cliquer":true,"selecteur_champs":"input[type=password]"},"cible":"page","outil":"saisir_et_cliquer"}],"portee":"page","outils_juge":[]},"outils":["saisir_et_cliquer"],"strategie_justification":"L'outil saisit une valeur factice dans chaque champ de mot de passe, ce qui peut révéler le dispositif de bascule, puis clique chaque bouton du formulaire et rapporte le type des champs avant et après : on constate directement si le type passe de password à text.","guide_analyse":"Dans les preuves de saisir_et_cliquer, vérifiez d'abord si la page contient au moins un champ input[type=password] : si aucun n'est présent, la règle ne s'applique pas. Si des champs existent, examinez le type rapporté après chaque action (saisie, puis clic sur chaque bouton du formulaire). Conforme si le type d'au moins un champ de mot de passe passe de password à text à la suite d'un clic sur un bouton. Non conforme si aucun clic ne provoque ce changement.","objectifs":["faciliter la saisie des mots de passe, notamment sur les claviers virtuels des terminaux mobiles, ainsi qu’avec un lecteur d’écran,","prévenir les erreurs."],"tags":["Accessibilité","Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":77,"intitule":"Chaque étiquette de formulaire est visuellement rattachée au champ qu’elle décrit.","theme":"Formulaires","contexte":"Pour que l’utilisateur puisse immédiatement repérer l’étiquette explicative de chaque champ, son emplacement ne doit pas prêter à confusion.","solution":"Veiller à ce que l’étiquette visible de chaque champ de formulaire soit affichée à proximité immédiate du champ concerné, afin que le rapport entre ceux-ci puisse être perçu sans ambiguïté.\nÉviter les mises en forme de formulaire entraînant la présence d’un espace vide important entre un champ et son étiquette, ou un positionnement inhabituel de l’étiquette telle qu’une étiquette placée en dessous du champ, ou une étiquette de case à cocher placée au-dessus de celle-ci.","controle":"Pour chaque formulaire :\n- s’assurer que chaque étiquette de formulaire est affichée à proximité immédiate du champ concerné sur toutes les tailles d’écran (attention au mobile),\n- vérifier que l’étiquette occupe une position prévisible : au-dessus ou à gauche d’un champ, sauf pour les champs input de type radio et checkbox où elle peut se trouver à droite ou à gauche du champ.\nLa proximité immédiate est une mesure à préciser selon le contexte, mais elle est de l’ordre d’une trentaine de pixels maximum pour une étiquette placée à gauche du champ, d’un interligne pour une étiquette placée au-dessus du champ et de quelques pixels pour l’étiquette d’une case radio ou à cocher.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"mesurer_etiquettes"},{"args":{"mode":"ecran","largeur":1280},"cible":"page","outil":"capturer_page"},{"args":{"mode":"ecran","largeur":375},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["mesurer_etiquettes","capturer_page"],"strategie_justification":"L'outil mesurer_etiquettes identifie pour chaque champ visible son étiquette la plus proche et sa position relative (au-dessus, à gauche, à droite) ; les captures à deux largeurs permettent de vérifier visuellement la proximité immédiate et le maintien de cette proximité en responsive.","guide_analyse":"Dans les résultats de mesurer_etiquettes, vérifiez que chaque champ de formulaire visible possède une étiquette et que sa position est au-dessus ou à gauche du champ (à droite ou à gauche pour les cases à cocher et boutons radio). Sur les captures desktop et mobile, contrôlez qu'aucun espace vide important ne sépare visuellement une étiquette de son champ, que l'association reste évidente et que la position ne devient pas imprévisible (par exemple une étiquette placée en dessous). Conforme si tous les champs respectent ces conditions sur les deux tailles d'écran ; non conforme dès qu'un champ présente une étiquette mal positionnée, absente ou trop éloignée.","objectifs":["permettre aux utilisateurs d’identifier sans ambiguïté les champs de formulaire et la nature des informations à saisir,","prévenir les erreurs de saisie,","faciliter et accélérer l’usage du formulaire,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":78,"intitule":"Les informations contextuelles se rapportant à un champ de formulaire lui sont visuellement rattachées.","theme":"Formulaires","contexte":"Certains champs de formulaire nécessitent de l’aide contextuelle, souvent une petite boîte modale d’explication disponible via un petit point d’interrogation. Alors, oui, ce n’est pas idéal, et si vous pouvez éviter, tant mieux. Mais si, par hasard, vous devez le faire, veillez à la proximité visuelle de ces informations de contexte et du champ concerné. Les utilisateurs de mobile et de zoom d’écran vous remercieront. Les autres utilisateurs ne vous remercieront pas, mais ils en bénéficieront aussi.","solution":"- afficher les informations qui viennent compléter l’étiquette du champ (aide à la saisie, signalement des erreurs, etc.) à proximité immédiate du champ et de son étiquette, afin que le rapport entre ceux-ci puisse être perçu sans ambiguïté,\n- éviter les mises en forme de formulaire entraînant la présence d’un espace vide important entre ces éléments.","controle":"Vérifier pour chaque champ de formulaire :\n- que les éventuelles informations complétant l’étiquette du champ (aide à la saisie, signalement des erreurs, etc.) sont affichées à proximité immédiate du champ et de son étiquette,\n- qu’il n’y a pas d’espace vide important entre ces éléments.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"La proximité visuelle entre un champ, son étiquette et les informations complémentaires affichées se juge sur le rendu de la page ; une capture pleine page permet d'examiner cette disposition pour chaque formulaire visible.","guide_analyse":"Sur la capture pleine page, identifiez chaque champ de formulaire visible, son étiquette et les éventuelles informations complémentaires affichées (aide à la saisie, signalement d'erreur, texte descriptif, icône d'aide). Vérifiez que ces éléments sont visuellement regroupés sans espace vide important entre eux. Conforme si, pour chaque champ concerné, les informations contextuelles apparaissent à proximité immédiate du champ et de son étiquette. Non conforme si une information contextuelle est visuellement éloignée ou séparée par un espace vide important.","objectifs":["faciliter l’utilisation des formulaires dans tous les contextes utilisateurs, notamment les utilisateurs de loupe d’écran ou ceux qui doivent grossir le texte de façon importante,","prévenir les erreurs de saisie,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":79,"intitule":"En cas de rejet des données saisies dans un formulaire, les champs contenant les données rejetées sont indiqués à l’utilisateur.","theme":"Formulaires","contexte":"Remplir un formulaire n’est pas toujours une tâche aisée : évitez à vos utilisateurs de devoir également partir à la recherche de leurs erreurs éventuelles.","solution":"Faire figurer en début de formulaire un message indiquant que tout ou partie des champs nécessitent une correction de la saisie précédente. Indiquer également cette information dans l’élément title de la page.\nAjouter éventuellement au message en début de formulaire la liste des champs à corriger.\nIndiquer explicitement dans l’étiquette de chaque champ concerné qu’il doit être corrigé.","controle":"Pour chaque formulaire :\n- soumettre différentes erreurs possibles dans chaque formulaire tel que absence de saisie d’un champ obligatoire, non-respect d’un format demandé ou prévisible (format d’adresse e-mail, de date, etc.), sensibilité à la casse,\n- puis, vérifier que l’utilisateur est informé de la présence d’erreurs à corriger au moins dans l’élément title de la page et que chaque champ erroné est signalé via son étiquette.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de soumettre chaque formulaire avec des erreurs volontaires et d'examiner la page de réponse, notamment son title et les étiquettes des champs rejetés. Aucun outil du catalogue n'envoie de données à un serveur ni ne déclenche de rejet de formulaire.","guide_analyse":"Vérification humaine : pour chaque formulaire du site, tentez une soumission en laissant un champ obligatoire vide, en saisissant un format invalide comme une adresse e-mail ou une date erronée, ou en modifiant la casse. Après le rejet par le serveur, vérifiez que l'élément title de la page indique la présence d'erreurs à corriger. Vérifiez ensuite que chaque champ rejeté est explicitement signalé comme erroné dans son étiquette ou à proximité immédiate. Non conforme si le title ne mentionne pas les erreurs ou si au moins un champ rejeté n'est pas identifié comme tel.","objectifs":["donner un retour à l’utilisateur sur l’action qu’il vient d’effectuer,","guider l’utilisateur directement vers les éléments sur lesquels il doit agir,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.668394"},{"numero":80,"intitule":"En cas de rejet des données saisies dans un formulaire, les raisons du rejet sont indiquées à l’utilisateur.","theme":"Formulaires","contexte":"Ce qui peut sembler évident pour l’auteur d’un formulaire risque de l’être beaucoup moins pour ses utilisateurs : aidez-les à chaque fois que possible.","solution":"Pour chaque champ contenant des données rejetées, indiquer la nature de l’erreur et fournir une aide à la correction :\n- soit en début de formulaire, dans une liste des champs erronés,\n- soit dans le contexte de chaque champ, autant que possible via leur étiquette label.","controle":"Pour chaque formulaire examiné :\n- soumettre les différentes erreurs possibles dans chaque formulaire (absence de saisie d’un champ, non-respect d’un format demandé) ou prévisibles (format d’adresse e-mail, de date, etc.), sensibilité à la casse, etc,\n- vérifier, si la saisie est rejetée, que la nature de l’erreur est précisée de manière à fournir l’aide nécessaire à sa correction, par l’un des moyens indiqués dans le paragraphe de mise en œuvre.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de soumettre des formulaires avec des données erronées et d'observer les messages d'erreur retournés après rejet. Les outils disponibles ne transmettent jamais de données au site (pas d'envoi de formulaire), donc ils ne peuvent pas provoquer ni observer le comportement de rejet.","guide_analyse":"Vérification humaine : pour chaque formulaire, tentez de le soumettre avec des champs vides, des formats invalides (email sans @, date incorrecte) ou des valeurs hors limites. Vérifiez que la page rechargée ou mise à jour affiche pour chaque champ rejeté un message précisant la nature de l'erreur et une aide à la correction, soit en tête de formulaire dans une liste, soit au niveau de chaque champ (de préférence via son label). Non conforme si une erreur est rejetée sans explication ou sans aide à la correction.","objectifs":["aider l’utilisateur à comprendre ce qu’on attend et, ainsi, faciliter le passage à l’étape suivante,","éviter la frustration de l’utilisateur face à une erreur dont il n’aurait pas la solution immédiate,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":81,"intitule":"En cas de rejet des données saisies dans un formulaire, toutes les données saisies peuvent être modifiées par l’utilisateur.","theme":"Formulaires","contexte":"Il est déjà contrariant de s’être trompé. Mais si en plus il faut tout recommencer parce que l’ensemble des données saisies a été effacé…","solution":"Stocker toutes les données saisies dans des variables de session afin de pouvoir les afficher de nouveau telles qu’elles ont été saisies dans les champs.\nRendre possible la modification des champs après rejet des données.","controle":"Pour chaque formulaire :\n- provoquer le rejet de la saisie en soumettant les différentes erreurs possibles : absence de saisie d’un champ, non-respect d’un format demandé ou prévisible (format d’adresse e-mail, de date, etc.), sensibilité à la casse,\n- puis, vérifier que le formulaire est affiché de nouveau tel qu’il a été rempli, ceci afin de pouvoir éventuellement le corriger.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de soumettre un formulaire pour provoquer un rejet de saisie et vérifier que les données sont réaffichées, mais aucun outil disponible ne transmet de données au site ni ne soumet de formulaire.","guide_analyse":"Pour chaque formulaire, saisissez des données dans tous les champs puis soumettez-le en provoquant une erreur (champ vide, format invalide, sensibilité à la casse, etc.). Vérifiez que la page de retour réaffiche le formulaire avec l'ensemble des données précédemment saisies pré-remplies dans les champs correspondants. Assurez-vous que ces champs restent modifiables par l'utilisateur. Conforme si toutes les données sont conservées et modifiables après chaque type d'erreur testé ; non conforme si une ou plusieurs données ont été effacées ou sont figées.","objectifs":["laisser la main à l’utilisateur sur la totalité des informations qu’il donne,","faciliter la correction des erreurs commises par l’utilisateur,","permettre à l’utilisateur de modifier des informations sur lesquelles il voudrait revenir,","éviter que l’utilisateur ne quitte le formulaire avant validation définitive."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.691957"},{"numero":82,"intitule":"Les messages d’erreur personnalisés sont exprimés dans la langue du formulaire.","theme":"Formulaires","contexte":"Lorsqu’ils conçoivent des formulaires, les professionnels s’occupent prioritairement du rendu visuel et de la facilité d’utilisation. La gestion des erreurs arrive souvent plus tard dans la conception. Quelquefois, ce sont les développeurs ou les systèmes de gestion de contenu qui prennent en charge la gestion des erreurs et c’est l’un des cas où l’on retrouve des messages d’erreurs dans une autre langue que le formulaire d’origine. Cela peut gêner les utilisateurs et nuire à l’image de votre service.","solution":"S’assurer que tous les messages d’erreur prévus par les outils de gestion d’erreur de saisie sont traduits et délivrés dans la même langue que les autres libellés du formulaire (étiquettes, etc.)","controle":"Vérifier que tous les messages d’erreur affichés lors de la saisie dans un formulaire sont dans la même langue que les autres libellés du formulaire (étiquettes, etc.)","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de vérifier tous les messages d'erreur affichés lors de la saisie et de la soumission des formulaires, y compris après réponse serveur. Les outils ne permettent pas de soumettre réellement les formulaires ni de forcer systématiquement l'affichage de chaque message d'erreur avec des valeurs invalides contrôlées : la couverture est forcément partielle.","guide_analyse":"Vérification humaine : sur chaque formulaire, saisissez des données volontairement erronées ou incomplètes (champs requis vides, formats invalides, valeurs hors limites) et soumettez. Vérifiez que chaque message d'erreur affiché, qu'il provienne du navigateur, d'un script ou de la réponse serveur, est rédigé dans la même langue que les étiquettes et libellés du formulaire. Non conforme si un message est dans une langue différente.","objectifs":["prévenir les difficultés de saisie et améliorer la compréhension des messages d’erreur,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.713933"},{"numero":83,"intitule":"Lors de la saisie d’un formulaire réparti sur plusieurs pages, un récapitulatif global est affiché avant l’envoi définitif.","theme":"Formulaires","contexte":"Voyons, ne me suis-je pas trompé quelque part ? Ah, tant pis pour cette commande, dans le doute, je vais y renoncer…","solution":"Stocker les informations saisies dans des variables de session afin de pouvoir en afficher un récapitulatif global avant validation.","controle":"Pour chaque formulaire réparti sur plusieurs pages :\n- soumettre complètement le formulaire,\n- vérifier que la soumission finale donne lieu à l’affichage d’un récapitulatif des saisies successives, affiché avant la validation finale du processus par l’utilisateur.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de remplir et soumettre un formulaire réparti sur plusieurs pages, ce qui nécessite de saisir des données, de naviguer entre les étapes et de valider. Aucun outil du catalogue ne permet d'interagir avec un formulaire de cette manière.","guide_analyse":"Vérification humaine : identifiez les formulaires répartis sur plusieurs pages du site. Remplissez-les entièrement, étape par étape, jusqu'à la fin du processus. Vérifiez qu'avant la validation finale, une page affiche un récapitulatif global regroupant l'ensemble des informations saisies aux étapes précédentes, et que l'utilisateur doit valider explicitement cette dernière étape. Non conforme si le processus se termine sans affichage d'un tel récapitulatif global.","objectifs":["donner à l’utilisateur une vue globale de ce qu’il a saisi dans les pages précédentes,","permettre à l’utilisateur de vérifier l’ensemble des informations d’une procédure complexe avant la soumission définitive."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":84,"intitule":"La page affichée après l’envoi d’un formulaire permet de reprendre directement la navigation.","theme":"Formulaires","contexte":"Après avoir rempli un formulaire, la vie de votre utilisateur ne s’arrête pas là, et sa navigation non plus.","solution":"Après envoi d’un formulaire, afficher une page de confirmation du succès ou d’avertissement d’échec de l’envoi, où sont présents les éléments de navigation du site.","controle":"Pour chaque formulaire examiné :\n- remplir les champs demandés et soumettre le formulaire,\n- vérifier que l’envoi final de chaque formulaire est suivi de l’affichage d’une page comportant les éléments nécessaires à la poursuite de la navigation (menu principal, lien retour en page d’accueil, etc.).","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de remplir et de soumettre chaque formulaire pour observer la page affichée ensuite ; les outils disponibles ne transmettent jamais de données au serveur et ne permettent donc pas de déclencher ni d'examiner la page post-envoi.","guide_analyse":"Vérification humaine : sur chaque page contenant un formulaire, remplissez les champs requis et soumettez-le. Sur la page suivante, vérifiez la présence d'éléments de navigation (menu principal, lien vers l'accueil, etc.) permettant de reprendre la navigation. Conforme si chaque page affichée après envoi comporte au moins un tel élément ; non conforme si une page post-envoi est une impasse.","objectifs":["éviter de dérouter l’utilisateur en le menant à une page en impasse, y compris par l’utilisation de la fonction « précédent » du navigateur ou de sa télécommande,","limiter le risque de double envoi de formulaire."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.740972"},{"numero":85,"intitule":"La soumission d’un formulaire est suivie d’un message indiquant la réussite ou non de l’action souhaitée.","theme":"Formulaires","contexte":"Il arrive fréquemment qu’un utilisateur soit directement renvoyé vers la page d’accueil d’un service en ligne après l’envoi d’un formulaire. Dans ce cas, il peut subsister un doute sur la réussite de l’envoi du formulaire. Un simple message permet de le lever.","solution":"Afficher une page de confirmation explicite après soumission d’un formulaire.","controle":"Pour chaque formulaire :\n- soumettre complètement le formulaire,\n- vérifier que la soumission finale du formulaire donne lieu à l’affichage d’une page de confirmation indiquant explicitement la réussite ou l’échec de l’opération concernée.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de soumettre complètement chaque formulaire et d'observer la page ou le message affiché après envoi, ce qui implique de transmettre des données au site. Les outils disponibles ne soumettent jamais de formulaire et ne simulent pas d'envoi au serveur.","guide_analyse":"Vérification humaine : pour chaque formulaire du site, remplissez-le avec des données adaptées et soumettez-le. Sur la page suivante ou dans le message affiché après l'envoi, vérifiez qu'un message explicite indique la réussite ou l'échec de l'opération. Non conforme si la soumission redirige silencieusement vers une autre page sans confirmation claire, ou si aucun retour n'est donné à l'utilisateur.","objectifs":["fournir à l’utilisateur un retour immédiat et explicite sur l’action qu’il vient d’effectuer,","éviter la frustration ultérieure d’un utilisateur qui pense, sur le moment, que le processus s’est déroulé avec succès alors qu’il y a eu un problème."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":86,"intitule":"L’utilisateur est averti au début d’un processus complexe de la nature des données et documents exigés.","theme":"Formulaires","contexte":"Obtenir en quelques clics une évaluation du prix de votre voiture ou de votre maison, obtenir en quelques clics un devis pour une nouvelle mutuelle santé, c’est tellement alléchant, n’est-ce pas ? Quelle sera la déception des utilisateurs lorsqu’ils se rendront compte qu’il est nécessaire de saisir son e-mail ou son numéro de carte bleue pour obtenir les informations promises ? Pour éviter ça, soyez transparents, annoncez la couleur dès le début du processus.","solution":"Pour tout processus complexe, par exemple un formulaire de commande, afficher avant la première étape de celui-ci la liste des documents ou informations spécifiques qui devront être fournis par l’utilisateur pour finaliser le processus.","controle":"Vérifier pour chaque processus complexe que la liste des documents ou informations spécifiques nécessaires pour finaliser le processus est indiquée à l’utilisateur avant la première étape de celui-ci.","plan_outils":{"etapes":[{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"La capture d'écran rendue montre le contenu visible de la page, y compris tout avertissement placé avant le premier champ ou bouton d'un processus complexe ; une seule étape suffit donc à constater la conformité.","guide_analyse":"Sur la capture, déterminez si la page contient un processus complexe (formulaire de commande, devis, inscription en plusieurs étapes, etc.). S'il n'y en a pas, le verdict est non applicable. Si un processus complexe est présent, vérifiez qu'avant sa première étape (premier champ, premier bouton d'action) une liste des documents ou informations spécifiques nécessaires est affichée. Conforme si cette information est visible avant le début du processus ; non conforme si elle est absente ou n'apparaît qu'après le début.","objectifs":["augmenter le taux de réussite du processus complexe,","maintenir et améliorer l’image de marque,","permettre à l’utilisateur de préparer les éventuels documents nécessaires."],"tags":["Accessibilité","Écoconception"],"phases":["Fonctionnel","Éditorial"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":87,"intitule":"Les processus complexes sont accompagnés de la liste de leurs étapes.","theme":"Formulaires","contexte":"Il est toujours appréciable de connaître à l’avance le nombre d’étapes et de pouvoir estimer le temps nécessaire pour réaliser une longue démarche.","solution":"Pour tout processus complexe, par exemple un formulaire de commande, afficher à chaque étape la liste intégrale de toutes ses étapes.","controle":"Dans le cas de processus complexes :\n- vérifier, pour chaque page concernée, que la liste des étapes y est indiquée, en règle générale sous forme d’un chemin d’étapes en tête de page ou de formulaire.","plan_outils":{"etapes":[{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"},{"args":{},"cible":"page","outil":"lire_page"}],"portee":"page","outils_juge":[]},"outils":["capturer_page","lire_page"],"strategie_justification":"La capture d'écran permet de repérer visuellement un processus complexe et son chemin d'étapes, tandis que le texte principal complète par les mentions textuelles d'étapes ; cela suffit à vérifier la présence ou l'absence de la liste sur chaque page.","guide_analyse":"Dans la capture d'écran, identifiez les processus complexes (formulaires multi-étapes, tunnels de commande, assistants) et recherchez une liste ou un chemin d'étapes (fil d'Ariane numéroté, indicateur de progression, étapes visibles). Dans le texte principal, cherchez des mentions numérotées ou nommées d'étapes du processus. Si la page ne contient aucun processus complexe, le verdict est **non applicable**. Si un processus complexe est présent, il est **conforme** lorsque la liste intégrale des étapes apparaît sur chaque page concernée, généralement en tête de page ou de formulaire ; **non conforme** si cette liste est absente.","objectifs":["donner de la visibilité à l’utilisateur sur les actions qu’il va réaliser (ordre des étapes, informations nécessaires pour les accomplir, etc.),","éviter que l’utilisateur ne se sente piégé dans un processus dont il n’avait pas prévu la durée."],"tags":["Accessibilité","Basics"],"phases":["Fonctionnel"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":88,"intitule":"L’étape en cours d’un processus complexe est indiquée.","theme":"Formulaires","contexte":"Ne vous êtes-vous jamais demandé, au beau milieu d’une démarche un peu longue répartie sur plusieurs formulaires successifs, où vous en étiez exactement ?","solution":"Préciser sur chaque page du processus l’étape correspondant à la page en cours.","controle":"Dans le cas de processus complexes, vérifier, pour chaque page concernée, que l’étape en cours y est indiquée :\n- dans le titre de page,\n- dans le contenu de page, sous la forme d’une mise en évidence dans le chemin d’étapes en tête de page ou de formulaire, par exemple « Étape 2 – Coordonnées » ou « Étape 4 – Paiement ».","plan_outils":{"etapes":[{"args":{"selecteur":"head title"},"cible":"page","outil":"inspecter_html"},{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","capturer_page"],"strategie_justification":"Le contrôle vérifie la présence de l'étape en cours dans le titre de page, lisible dans le HTML, ou dans le contenu visible, observable sur la capture d'écran : deux preuves suffisent pour couvrir ces deux emplacements.","guide_analyse":"Dans la preuve du titre, vérifiez s'il mentionne explicitement l'étape en cours du processus. Sur la capture, examinez la partie haute de la page ou du formulaire pour y trouver un chemin d'étapes avec mise en évidence de l'étape actuelle, par exemple « Étape 2 – Coordonnées ». Si la page ne présente aucun processus complexe en plusieurs étapes, le verdict est **non applicable**. La page est conforme si l'étape en cours est indiquée dans le titre ou par une mise en évidence dans le chemin d'étapes. Elle est non conforme si elle fait partie d'un processus complexe et qu'aucune de ces deux indications n'est visible.","objectifs":["permettre à l’utilisateur d’identifier le degré d’avancement dans un processus,","rassurer l’utilisateur lors de la réalisation d’un processus complexe."],"tags":["Accessibilité"],"phases":["Fonctionnel"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":89,"intitule":"Chaque étape d’un processus complexe permet de revenir à l’étape précédente.","theme":"Formulaires","contexte":"Après avoir décidé de passer à l’étape suivante d’un processus complexe, il arrive souvent d’avoir besoin de vérifier ce qu’on a saisi précédemment. Laissez aux utilisateurs la possibilité de douter, de vérifier, et de se tromper, bien sûr.","solution":"Fournir à chaque étape du formulaire un bouton de navigation permettant de retourner à l’étape précédente.","controle":"Vérifier manuellement la possibilité de revenir à chaque étape précédente du processus.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de vérifier manuellement la navigation dans un processus multi-étapes, ce qui nécessite de soumettre des formulaires pour avancer d'une étape à l'autre puis de tester le retour arrière. Les outils disponibles ne soumettent pas de formulaires et ne simulent pas de parcours utilisateur complet.","guide_analyse":"Vérification humaine : identifiez un processus complexe du site (inscription, commande, formulaire en plusieurs étapes). Parcourez-le jusqu'à atteindre une étape au-delà de la première. À chaque étape, vérifiez la présence et le fonctionnement d'un bouton ou d'un lien permettant de revenir à l'étape précédente. Conforme si chaque étape après la première offre un moyen de retour fonctionnel ; non conforme si une étape en manque ou si le retour échoue.","objectifs":["faciliter l’utilisation des formulaires répartis sur plusieurs pages successives,","réduire les risques d’erreurs de saisie. Limiter les risques d’abandon en cours de processus."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.766283"},{"numero":90,"intitule":"L’utilisateur est averti de la perte d’information en cas d’utilisation de l’historique de son navigateur dans un processus complexe.","theme":"Formulaires","contexte":"Ne vous est-il jamais arrivé de croire que vous pouviez tout simplement retourner voir ce que vous aviez saisi à l’étape précédente lors de votre déclaration d’impôts, par exemple, et de constater peu après que tout ce que vous aviez saisi avant ce remords était perdu ? Évitons ce genre de déception à nos utilisateurs.","solution":"Générer une alerte JavaScript en cas d’utilisation de la fonctionnalité « back » de l’historique du navigateur.","controle":"Amorcer la saisie d’un formulaire après la première étape du processus, puis activer le bouton « back » du navigateur.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande d'amorcer une saisie dans un processus multi-étapes, de passer à l'étape suivante puis d'activer le bouton « back » du navigateur pour vérifier la présence d'une alerte. Aucun outil ne permet de soumettre un formulaire, de naviguer entre les étapes d'un processus ni de simuler l'historique du navigateur.","guide_analyse":"Vérification humaine : repérez sur le site un processus complexe en plusieurs étapes, comme un formulaire de commande ou d'inscription. Amorcez la saisie à la première étape, puis passez à l'étape suivante. Activez ensuite le bouton « retour » ou « back » de votre navigateur. Conforme si une alerte JavaScript prévient l'utilisateur que des données risquent d'être perdues. Non conforme si le retour s'effectue sans avertissement et entraîne une perte des informations saisies.","objectifs":["faciliter l’utilisation des formulaires répartis sur plusieurs pages successives,","limiter les risques d’abandon en cours de processus."],"tags":["Accessibilité","Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":91,"intitule":"La navigation dans un processus complexe ne provoque pas la perte des données précédemment soumises.","theme":"Formulaires","contexte":"Il est certes extrêmement confortable pour l’utilisateur de pouvoir naviguer dans les différentes étapes d’un processus complexe. Il est évidemment essentiel de l’avertir lorsque des données peuvent être perdues. C’est d’ailleurs l’objet d’une autre des règles Opquast. Il est encore plus utile de s’assurer que l’ensemble des données saisies par l’utilisateur sont enregistrées à tout moment.","solution":"Prévoir, au niveau de la gestion de la navigation dans les étapes du processus, l’enregistrement des données saisies à chaque étape, de manière à pouvoir afficher à nouveau celle-ci sans perte de données après que l’utilisateur a utilisé le mécanisme de navigation dans les étapes.","controle":"Utiliser le mécanisme de navigation dans les étapes précédentes de la saisie et vérifier manuellement que les données saisies à chaque étape sont conservées et affichées à nouveau par la suite.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle officiel demande de saisir des données dans un processus multi-étapes, d'utiliser le mécanisme de navigation pour revenir aux étapes précédentes et de vérifier que les données sont conservées. Aucun outil disponible ne permet de soumettre des formulaires étape par étape ni de naviguer dans un processus complexe en conservant l'état entre les pages.","guide_analyse":"Vérification humaine : identifiez un processus complexe en plusieurs étapes sur le site (inscription, commande, devis, etc.). Saisissez des données factices à une étape, puis utilisez le mécanisme de navigation prévu pour revenir à l'étape précédente. Vérifiez que les données précédemment saisies sont conservées et réaffichées. Répétez l'opération pour chaque étape du processus. Conforme si les données sont toujours présentes lors du retour en arrière ; non conforme si une navigation vers une étape précédente entraîne une perte de données.","objectifs":["faciliter la saisie et sa correction dans les formulaires répartis par étapes,","limiter les risques d’abandon en cours de procédure."],"tags":[],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":92,"intitule":"Le copier-coller est possible dans les champs de formulaire.","theme":"Formulaires","contexte":"Saisissez votre adresse e-mail. C’est bon, c’est fait ? Et si, maintenant, je vous demande de la saisir à nouveau, vous allez peut-être manquer de courage et souhaiterez la copier du premier champ pour la coller dans le deuxième. De quel droit certains services voudraient-ils vous empêcher de faire cela ? Vive le copier-coller libre !","solution":"- ne pas intercepter les évènements JavaScript onpaste ou keydown pour bloquer le coller dans un champ de formulaire,\n- ne pas intercepter les évènements JavaScript oncopy ou oncut pour bloquer le copier dans un champ de formulaire.","controle":"Vérifier qu’il est possible de copier le contenu de chaque champ, y compris les champs de type password (en utilisant le menu contextuel du navigateur ou à défaut un mécanisme propre au formulaire).\nVérifier qu’il est possible de coller un contenu dans chaque champ, y compris dans les champs de type password (en utilisant le menu contextuel du navigateur ou à défaut un mécanisme propre au formulaire).","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande d'effectuer des actions de copier et de coller dans chaque champ de formulaire, y compris les mots de passe, via le menu contextuel ou des raccourcis ; aucun outil du catalogue ne simule ces interactions.","guide_analyse":"Vérification humaine : saisissez du texte dans chaque champ de formulaire, y compris ceux de type password. Tentez de copier le contenu (menu contextuel ou raccourci clavier), puis de le coller dans le même champ ou dans un autre. Vérifiez également qu'un mécanisme propre au formulaire permet l'équivalent si le menu contextuel est désactivé. Non conforme si au moins un champ empêche le copier ou le coller.","objectifs":["faciliter la saisie dans les formulaires."],"tags":["Accessibilité","Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.791835"},{"numero":93,"intitule":"Les éléments d’une liste déroulante qui peuvent être regroupés le sont de manière appropriée.","theme":"Formulaires","contexte":"Le contenu de certaines listes déroulantes est suffisamment homogène pour se suffire à lui-même, mais, dans certains cas, la liste sera plus aisée à consulter en étant mieux organisée. Dans ce cas, l’élément optgroup est votre ami.","solution":"Utiliser l’élément optgroup pour baliser les regroupements thématiques d’éléments option dans les listes select.\nUtiliser l’attribut label de l’élément optgroup pour afficher l’étiquette de chaque regroupement.","controle":"Pour chaque liste déroulante :\n- ouvrir chaque liste (select) pour détecter celles qui nécessiteraient un regroupement d’éléments option, par exemple des regroupements de modèles de voitures classés par marques ou des regroupements de villes réalisés par département,\n- vérifier, en examinant le code source à l’aide de Firebug, que chaque série d’éléments option qui devraient être regroupés est balisée avec l’élément optgroup,\n- vérifier que chaque élément optgroup est doté d’un attribut label associant un libellé pertinent au groupe d’options concerné.","plan_outils":{"etapes":[{"args":{"selecteur":"select","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html"],"strategie_justification":"La structure HTML des listes déroulantes (éléments select, optgroup, option et leurs attributs) est présente dans le code source envoyé par le serveur : son inspection suffit à vérifier si des regroupements pertinents existent et sont correctement balisés.","guide_analyse":"Pour chaque élément select relevé, examinez la liste de ses options. Si les options présentent une organisation thématique évidente qui justifierait un regroupement (par exemple des modèles par marque, des villes par département), vérifiez qu'elles sont bien structurées avec des éléments optgroup possédant un attribut label pertinent. Conforme si chaque liste qui nécessite un regroupement en contient un correctement balisé, ou si la liste est homogène et ne justifie pas de regroupement. Non conforme si des options groupables ne le sont pas, ou si un optgroup est présent sans attribut label ou avec un label non pertinent.","objectifs":["permettre aux aides techniques de restituer à l’utilisateur une liste dont l’organisation est clairement perceptible et qui facilite le passage d’un élément de la liste à un autre,","favoriser un rendu approprié des listes déroulantes complexes dans tous les navigateurs,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.819065"},{"numero":94,"intitule":"Les listes d’options de formulaires sont présentées dans un ordre identifiable.","theme":"Formulaires","contexte":"Il est difficile de s’y retrouver rapidement dans une liste présentée en vrac. Prévoir un classement logique constitue une aide simple et immédiate pour l’utilisateur.","solution":"- présenter les items dans un ordre identifiable, par exemple par ordre alphabétique ou chronologique.","controle":"Pour chaque liste déroulante contenant plusieurs items :\n- vérifier, pour chaque liste select, que les éléments option apparaissent dans un ordre identifiable (alphabétique, numérique, chronologique, thématique, etc.).\nLa vérification s’effectue manuellement en contrôlant visuellement l’ordre des éléments au sein de chaque élément select.","plan_outils":{"etapes":[{"args":{"selecteur":"select","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html"],"strategie_justification":"L'ordre des options dans une liste déroulante est défini par le code HTML envoyé par le serveur ; inspecter les éléments select permet de lire le texte de leurs options dans l'ordre de présentation et de vérifier qu'il est identifiable.","guide_analyse":"Pour chaque élément select relevé, examinez le texte de ses options dans l'ordre d'apparition. Conforme si chaque liste contenant plusieurs items respecte un ordre identifiable (alphabétique, numérique, chronologique, thématique cohérent, etc.). Non conforme si au moins une liste de plusieurs items est présentée sans ordre logique discernable. Si la page ne contient aucun select, la règle est non applicable.","objectifs":["permettre aux utilisateurs d’accéder rapidement à l’item de liste recherché,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":95,"intitule":"Les champs de saisie de type e-mail, URL, téléphone, nombre, recherche, mots de passe, heure et date sont dotés du type approprié.","theme":"Formulaires","contexte":"Dans les formulaires, il est possible de préciser quels sont les types de données attendues. Cela a de nombreux avantages. Cela permet aux systèmes d’exploitation mobile d’afficher des claviers adaptés ou de vérifier que les données respectent une forme ou une syntaxe. Bref, c’est souvent très intéressant.","solution":"Doter chaque élément input concerné d’un attribut type correspondant à la saisie attendue : email, url, tel, number, search, password, date, time.","controle":"Vérifier, pour chaque élément input concerné, la présence de l’attribut type doté de la valeur correspondant au type de saisie attendue : email, url, tel, number, search, password, date, time.","plan_outils":{"etapes":[{"args":{"selecteur":"input, label","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html"],"strategie_justification":"L'attribut type des inputs et leur étiquette associée sont écrits dans le code HTML envoyé par le serveur : une inspection du HTML suffit à constater la présence des bons types et à les rapprocher des labels.","guide_analyse":"Parmi les éléments relevés, identifiez chaque input et son étiquette associée (attribut for du label correspondant à l'id de l'input, ou attributs name, id, placeholder, aria-label de l'input). Déterminez le type de saisie attendu pour chaque input concerné (email, url, tel, number, search, password, date, time). Vérifiez que l'attribut type de l'input correspond bien à ce type attendu. Conforme si tous les inputs concernés possèdent l'attribut type avec la valeur appropriée. Non conforme si au moins un input concerné a un type inadapté ou absent, ou si un type ne correspond pas à l'étiquette.","objectifs":["permettre l’utilisation des claviers virtuels adaptés aux différents types de saisie sur les terminaux mobiles,","faciliter la validation de la saisie,","améliorer la compatibilité avec les terminaux mobiles."],"tags":["Accessibilité","Mobile"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.846476"},{"numero":96,"intitule":"Les procédures d’authentification à double facteur peuvent être relancées.","theme":"Formulaires","contexte":"Les procédures d’authentification complexes sont devenues très fréquentes dans le secteur numérique. Vous vous authentifiez une première fois et vous recevez un code ou des instructions sur un autre appareil ou via un autre moyen d’accès. Le problème, c’est qu’il arrive fréquemment que les utilisateurs ne réussissent pas ou ne soient pas en mesure d’effectuer l’opération dans le délai requis. Il faut donc veiller à ce que l’opération puisse être relancée afin d’éviter tout blocage.","solution":"Prévoir un mécanisme de régénération et de renvoi (par SMS, e-mail, application d’authentification) du jeton d’authentification, activable par l’utilisateur via un bouton ou un lien « Renvoyer le code. »\nAu-delà de cette règle, il est recommandé de proposer au moins deux moyens d’authentification différents (SMS, e-mail, application d’authentification, etc.) afin de renforcer la résilience du dispositif et l’accessibilité pour l’ensemble des utilisateurs.","controle":"Vérifier qu’il est possible, dans le formulaire de connexion, de relancer l’envoi du code de double authentification.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle nécessite de soumettre un formulaire d'authentification valide pour atteindre l'étape de double facteur, puis d'interagir avec l'interface de renvoi du code. Les outils disponibles ne transmettent aucune donnée au site et ne permettent pas de se connecter ni de déclencher l'affichage de l'étape de double authentification.","guide_analyse":"Vérification humaine : créez un compte de test ou utilisez des identifiants valides. Connectez-vous pour atteindre l'étape de double authentification. Sur l'écran de saisie du code, recherchez un bouton ou un lien permettant de renvoyer ou de régénérer le code (par exemple « Renvoyer le code »). Conforme si ce mécanisme est présent et activable ; non conforme s'il est absent ou si l'utilisateur est bloqué sans possibilité de relancer l'envoi.","objectifs":["éviter les blocages pendant les procédures d’authentification,","réduire les frustrations et les abandons."],"tags":["Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.875355"},{"numero":97,"intitule":"Les champs permettant l’autocomplétion sont signalés dans le code source.","theme":"Formulaires","contexte":"L’autocomplétion consiste à fournir des suggestions au fur et à mesure de la saisie. Cela peut être des suggestions de requêtes dans un champ de recherche ou encore des suggestions associées à un début de saisie dans un autre champ. Il est possible de signaler ce type de champ dans le code source, ce qui va permettre une utilisation optimale, notamment pour les personnes équipées de lecteurs d’écran.","solution":"Utiliser l’attribut autocomplete du champ de saisie, renseigné avec la valeur normalisée correspondant au contenu du champ. Par exemple :\n- username : identifiant de connexion,\n- email : adresse e-mail,\n- tel : numéro de téléphone,\n- country-name : nom du pays,\n- cc-name : nom figurant sur une carte bancaire,\n- cc-number : numéro de carte bancaire.","controle":"Vérifier pour chaque champ de saisie concerné la présence de l’attribut autocomplete renseigné avec la valeur normalisée correspondant au contenu du champ.","plan_outils":{"etapes":[{"args":{"selecteur":"input:not([type=submit]):not([type=button]):not([type=reset]):not([type=image]), select, textarea","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html"],"strategie_justification":"La présence et la valeur de l'attribut autocomplete sur les champs de saisie sont écrites dans le code HTML envoyé par le serveur : une inspection de ces éléments suffit à vérifier la règle.","guide_analyse":"Parmi les éléments relevés, identifiez les champs concernés par l'autocomplétion : champs de recherche, champs de formulaire collectant des informations personnelles (nom, adresse, email, téléphone, pays, carte bancaire, etc.). Pour chacun de ces champs, vérifiez la présence de l'attribut autocomplete et que sa valeur est normalisée et correspond au contenu attendu du champ (par exemple email, tel, username, country-name, cc-name, cc-number). Conforme si tous les champs concernés possèdent un attribut autocomplete avec une valeur normalisée appropriée. Non conforme si au moins un champ concerné en est dépourvu ou possède une valeur inadaptée ou non normalisée.","objectifs":["améliorer l’accessibilité,","faciliter l’expérience utilisateur."],"tags":["Accessibilité"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":98,"intitule":"Les boutons désactivés ne sont pas masqués aux lecteurs d’écran.","theme":"Formulaires","contexte":"Un bouton de validation désactivé et grisé, dans un formulaire que vous n’avez pas encore suffisamment rempli, cela semble très intuitif. Ce choix ergonomique est possible, quoique délicat. Mais notamment pour des utilisateurs d’outils d’accessibilité (et pas seulement eux), c’est une toute autre affaire. Si vous décidez de le faire, pour répondre à des besoins spécifiques bien réfléchis, prenez toutes les précautions nécessaires.","solution":"Pour que l’interface soit compréhensible, l’élément et son statut (désactivé/activé) doivent être restitués quel que soit le mode d’interaction (outils d’assistance ou non). L’action étant empêchée jusqu’au moment où le formulaire peut être validé, la raison et l’état du bouton doivent être explicites :\n- ne pas utiliser l’attribut HTML disabled, pour que l’utilisateur ne soit pas déconcerté par l’éventuelle absence de bouton de soumission, notamment quand un bouton (visible pour certains) n’est plus atteignable lors de la navigation au clavier,\n- utiliser l’attribut aria-disabled=\"true\" pour que le bouton reste perceptible, atteignable et signalé comme tel,\n- utiliser JavaScript pour bloquer l’action sur le bouton au clic et au clavier, puis sa réactivation,\n- utiliser aria-describedby ou aria-label pour expliquer pourquoi le bouton est indisponible/disponible,\n- utiliser JavaScript pour expliquer pourquoi le bouton « grisé » est indisponible lors du survol ou de l’accès clavier, via un tooltip ou autre.","controle":"Vérifier que les boutons désactivés en cours de saisie n’utilisent pas l’attribut disabled, et qu’ils sont correctement restitués de façon compréhensible à chaque état de l’utilisation du formulaire, que ce soit visuellement, lors de la navigation au clavier, ou via un lecteur d’écran ou autre.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige d'observer l'état des boutons pendant la saisie progressive d'un formulaire et à chaque état d'interaction, ce qui nécessite une saisie partielle, une inspection dynamique de l'arbre d'accessibilité et une vérification de la restitution lecteur d'écran après modification : aucun outil du catalogue ne permet cette séquence interactive.","guide_analyse":"Vérification humaine : identifiez les formulaires comportant un bouton de validation dont l'état change en fonction de la saisie. Remplissez le formulaire partiellement, puis complètement, et inspectez le code du bouton à chaque état : il ne doit pas comporter l'attribut HTML disabled, mais aria-disabled=\"true\". Vérifiez au clavier que le bouton reste atteignable et focusable quand il est inactif. Avec un lecteur d'écran, contrôlez que le bouton est annoncé comme désactivé et que la raison de l'indisponibilité est comprise. Non conforme si un bouton utilise disabled, disparaît de l'ordre de tabulation, ou si son état et sa raison ne sont pas restitués.","objectifs":["veiller à ce que les actions possibles ou indisponibles pendant la saisie d’un formulaire soient compréhensibles pour tous les utilisateurs,","ne pas créer d’incohérence entre ce qui est affiché et ce qui est utilisable,","expliciter pour tous les utilisateurs la présence et l’état d’une bouton d’action, quel que soit le mode d’accès."],"tags":["Accessibilité"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.902758"},{"numero":99,"intitule":"La page d’accueil expose la nature des contenus et services proposés.","theme":"Identification et contact","contexte":"Faites gagner du temps à vos utilisateurs : expliquez-leur directement ce que vous proposez comme contenus et services.","solution":"Prévoir sur la page d’accueil une information, une phrase, un contenu résumant les contenus et services proposés.","controle":"Dans la page d’accueil :\n- vérifier la présence d’une information, d’une phrase ou d’un contenu résumant les contenus et services proposés.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Le texte principal de chaque page permet d'identifier la page d'accueil et de vérifier si elle contient une phrase ou un contenu qui résume les contenus et services proposés.","guide_analyse":"Parmi les pages fournies, identifiez la page d'accueil, généralement celle avec l'URL la plus courte ou un contenu de bienvenue. Dans le texte principal de cette page, vérifiez la présence d'une phrase, d'un paragraphe ou d'un bloc qui résume explicitement la nature des contenus et services proposés par le site. Conforme si ce résumé est présent dans le contenu. Non conforme si la page d'accueil ne contient aucune présentation globale et se limite à des actualités, des liens ou des éléments sans description d'ensemble. Si aucune page d'accueil n'est fournie, l'absence de preuve ne permet pas de conclure.","objectifs":["donner aux utilisateurs une vision immédiate de la nature des contenus et services proposés,","éviter les recherches inutiles,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","SEO"],"phases":["Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":100,"intitule":"Si les contenus ou services sont réservés ou destinés à un public spécifique, ce public est mentionné au moins sur la page d’accueil.","theme":"Identification et contact","contexte":"Cette règle s’applique essentiellement lorsque la consultation des contenus peut poser des problèmes ou présenter des risques pour certaines catégories d’utilisateurs. Si votre site s’adresse à des plombiers, vous n’êtes pas obligé de le préciser. S’il présente des photos de plombiers nus, cela peut être en revanche utile.","solution":"Faire figurer sur la page d’accueil un message d’avertissement explicite sur la nature des contenus et le public auquel ils sont destinés ou réservés.","controle":"Pour tout contenu dont la consultation peut choquer ou n’être pas adaptée à une certaine catégorie de la population (mineurs, etc.) :\n- vérifier la présence d’un message d’avertissement explicite en page d’accueil, sur la nature des contenus proposés et sur le public auquel ils sont destinés ou réservés.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"},{"args":{},"cible":"racine","outil":"lire_page","chemin":"/"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Le texte de chaque page fournie permet d'identifier si le site propose des contenus ou services réservés ou de nature à choquer, et le texte de la page d'accueil permet de vérifier la présence d'un avertissement explicite.","guide_analyse":"Dans le texte de chaque page fournie, repérez des contenus ou services réservés à un public spécifique ou susceptibles de choquer ou de ne pas convenir à certaines catégories de public (mineurs, etc.). Dans le texte de la page d'accueil (racine du site), cherchez un message d'avertissement explicite sur la nature des contenus et le public auquel ils sont destinés ou réservés. Conforme si aucune page fournie ne contient de tel contenu, ou si la page d'accueil comporte un avertissement explicite correspondant. Non conforme si une page fournie contient de tels contenus et que la page d'accueil n'en mentionne pas la nature ou le public visé.","objectifs":["éviter des consultations inutiles,","délivrer un avertissement aux utilisateurs."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":101,"intitule":"L’identité de l’auteur, de la société ou de l’organisation est indiquée.","theme":"Identification et contact","contexte":"Dans de nombreux pays, il s’agit d’une obligation légale. Mais au-delà des aspects juridiques locaux, il est bon qu’une personne se porte garante des contenus et que cette personne soit identifiée.","solution":"Indiquer, au moins sur une page et idéalement sur chaque page, le nom de l’auteur, de l’entité ou de la société qui propose le service.\nSi le nom du service en ligne est identique à celui de l’entité qui le propose, ce qui est relativement fréquent, notamment pour les entreprises, la mention de ce nom dans le logo ou la baseline suffit à respecter la règle.","controle":"Au sein de la page d’accueil ou au moins dans une page accessible depuis la page d’accueil (fréquemment, la page des mentions légales) ou encore dans chacune des pages du service en ligne (souvent en pied de page) :\n- vérifier manuellement que le nom de l’auteur, de l’entité ou de la société proposant le service est mentionné dans au moins une de ces pages.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"}],"portee":"echantillon","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"La capture pleine page révèle l'ensemble du contenu visible, y compris le logo, la baseline et le pied de page où l'identité est généralement indiquée ; le juge peut ainsi vérifier sa présence sur au moins une page de l'échantillon.","guide_analyse":"Pour chaque page de l'échantillon, examinez la capture pleine page à la recherche du nom de l'auteur, de l'entité ou de la société proposant le service, que ce soit dans le contenu textuel, le pied de page, le logo ou la baseline. Conforme si au moins une des pages fournies mentionne explicitement cette identité. Non conforme si aucune page de l'échantillon ne présente une telle mention identifiable.","objectifs":["permettre aux utilisateurs d’identifier sans ambiguïté un interlocuteur physique capable de répondre aux questions éventuelles sur les contenus proposés, ou d’assumer les responsabilités liées à ces contenus,","rassurer l’utilisateur en lui permettant d’identifier directement l’auteur (au sens large),","limiter les risques de défiance,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["SEO"],"phases":["Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":102,"intitule":"Le titre de chaque page permet d’identifier le site.","theme":"Identification et contact","contexte":"Le titre d’une page web est amené à s’afficher dans divers endroits : navigateurs, favoris, titre d’un contenu partagé via les réseaux sociaux, etc. Si chacun de ces titres contient le nom de votre site, les utilisateurs pourront l’identifier plus facilement et retrouver rapidement les contenus qui s’y rapportent.","solution":"Rédiger le contenu de l’élément title de chaque page de manière à y indiquer le nom du site.","controle":"Pour chaque page du site, vérifier que le nom du site est présent dans le titre (élément title) de page.\nLe contrôle peut être effectué de manière exhaustive si l’on dispose d’un outil permettant de dresser la liste complète des titres de toutes les pages (c’est le cas, par exemple, de Xenu’s Link Sleuth). Il peut également être effectué à partir d’une vérification des templates utilisés par le CMS ou d’un échantillon de pages types représentatives de ceux-ci. Dans tous les cas, on veillera à prendre en compte tout particulièrement les pages dépendant de services tiers, où la règle risque davantage de ne pas avoir été prise en compte.","plan_outils":{"etapes":[{"args":{"selecteur":"head title"},"cible":"page","outil":"inspecter_html"},{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","capturer_page"],"strategie_justification":"Le texte de l'élément title se relève dans le code HTML, et la capture d'écran permet d'identifier le nom du site affiché dans l'interface (logo, en-tête ou marque) afin de vérifier qu'il figure bien dans le title.","guide_analyse":"Dans la preuve inspecter_html, lisez le texte contenu dans l'élément title. Dans la capture, identifiez le nom du site tel qu'il apparaît visuellement (logo, en-tête, marque dans l'onglet). Vérifiez que ce nom est présent dans le texte du title. Conforme si le title contient le nom du site ; non conforme si le title est absent, vide, ou ne contient pas le nom du site.","objectifs":["permettre aux utilisateurs d’identifier immédiatement le site dans les onglets, les favoris, dans la fenêtre du navigateur ou encore dans les lecteurs d’écran,","améliorer le référencement du site et sa présentation dans les moteurs de recherche,","améliorer l’accessibilité des contenus aux personnes handicapées,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","SEO"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":103,"intitule":"Le titre de chaque page permet d’identifier son contenu.","theme":"Identification et contact","contexte":"Identifier un service en ligne en regardant le titre d’une page, c’est bien, mais comprendre très vite la nature du contenu d’une page, c’est encore mieux. Et ce ne sont pas les moteurs de recherche qui diront le contraire.","solution":"Rédiger le contenu de l’élément title de chaque page de manière à ce qu’il décrive, de la façon la plus concise possible, le contenu ou la fonction de la page, y compris à la suite d’une requête Ajax modifiant de manière essentielle le contenu de la page.\nPréciser quelle est l’étape en cours d’un processus dans l’élément title des pages. Par exemple, inscrire « Étape 3 de votre inscription » dans l’élément title de la page correspondant à la troisième étape d’un formulaire d’inscription.\nPréciser, dans le cas de l’affichage d’une série de résultats de recherche, quel est l’intervalle de résultats affiché dans la page courante. Par exemple, « Résultats 10 à 19 de la recherche sur “Foo” ».\nPréciser l’état dans le titre d’une page de demande de confirmation ou d’annulation lors de la soumission d’un formulaire (exemple : « Demande de confirmation de suppression - Mes documents »).","controle":"Dans toutes les pages du service en ligne, y compris dans les pages d’un processus ou d’une série de résultats de recherche, ou encore dans les pages dont le contenu peut être modifié de manière majeure via Ajax :\n- vérifier que chaque titre de page (élément title) permet d’identifier le contenu ou la fonction de la page.","plan_outils":{"etapes":[{"args":{"selecteur":"head title"},"cible":"page","outil":"inspecter_html"},{"args":{},"cible":"page","outil":"lire_page"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","lire_page"],"strategie_justification":"Le titre de page est contenu dans l'élément title du head, lisible dans le code HTML ; le juge compare son texte au contenu principal de la page pour vérifier qu'il en identifie la fonction ou le contenu.","guide_analyse":"Dans la preuve inspecter_html, lisez le texte de l'élément title. Dans la preuve lire_page, identifiez le contenu ou la fonction principale de la page. Conforme si le texte du title est présent, non vide et décrit de manière concise le contenu ou la fonction de cette page spécifique (par exemple en précisant une étape de processus, un intervalle de résultats ou un état de confirmation). Non conforme si l'élément title est absent, vide ou trop générique pour identifier la page (par exemple seul le nom du site sans précision sur la page courante).","objectifs":["permettre aux utilisateurs d’identifier immédiatement la nature des contenus de chaque page dans les onglets, les favoris, dans la fenêtre du navigateur ou encore dans les lecteurs d’écran,","améliorer le référencement des pages et leur présentation dans les moteurs de recherche,","améliorer l’accessibilité des contenus aux personnes handicapées,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","Basics","SEO"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":104,"intitule":"Le code source des pages contient un appel valide à une icône de favori.","theme":"Identification et contact","contexte":"L’icône de favori est la petite image qui s’affiche dans votre navigateur et dans vos marque-pages ou favoris. Elle mérite d’être bien traitée, car elle joue un rôle important dans l’identification durable de votre service en ligne.","solution":"Selon le format choisi pour l’icône et son emplacement, utiliser un lien du type :\n- <link rel=\"icon\" type=\"image/png\" href=\"/img/favicon.png\"/> (format png, mais aussi jpg, gif, etc.),\n- <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/img/favicon.ico\" /> (format ico Microsoft seul reconnu par Internet Explorer).","controle":"Dans le code source de chaque page examinée :\n- vérifier, à l’aide d’un outil de développement web ou d’un inspecteur de code, que l’élément link rel est présent dans l’entête de page head,\n- vérifier que sa syntaxe est de la forme.\n<link rel=\"icon\" type=\"image/png\" href=\"/img/favicon.png\"/> pour les formats png, mais aussi jpg, gif, etc.;\nou <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/img/favicon.ico\" /> pour le format ico Microsoft.","plan_outils":{"etapes":[{"args":{"selecteur":"head link[rel~=icon]"},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html"],"strategie_justification":"L'appel à l'icône est un élément link du head, écrit dans le code envoyé par le serveur : une inspection du HTML suffit à constater sa présence et sa syntaxe.","guide_analyse":"Dans les éléments relevés, cherchez un link dont l'attribut rel contient icon. Conforme si au moins un tel élément existe dans le head avec un attribut href non vide. Non conforme si aucun élément n'est relevé, ou si le href est absent ou vide.","objectifs":["améliorer l’identification visuelle du service en ligne et de ses pages,","faciliter l’identification dans le navigateur et dans les favoris ou signets,","permettre l’affichage, l’appel, et la mémorisation éventuelle de l’icône de favori par tous les navigateurs."],"tags":["Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.931990"},{"numero":105,"intitule":"L’adresse complète et le numéro de téléphone des sociétés et organisations sont disponibles depuis toutes les pages.","theme":"Identification et contact","contexte":"De nombreux utilisateurs sont à la recherche de l’adresse ou du numéro de téléphone de l’entité. Faites-leur gagner du temps en donnant immédiatement cette information.","solution":"Indiquer l’adresse postale complète et le numéro de téléphone de la société ou de l’organisme :\n- dans chaque page du service en ligne,\n- ou dans une page Contact ou À propos, accessible directement depuis chaque page.","controle":"Dans chaque page ou dans au moins une page directement disponible depuis toutes les pages :\n- vérifier la présence de l’adresse postale complète et du numéro de téléphone de la société ou de l’organisme.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"},{"args":{"selecteur":"footer *, address","profondeur":200},"cible":"page","outil":"inspecter_html"},{"args":{"selecteur":"a[href]","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"echantillon","outils_juge":[]},"outils":["capturer_page","inspecter_html"],"strategie_justification":"La capture en page entière montre visuellement le pied de page où figurent généralement l'adresse et le téléphone ; l'inspection des éléments contenus dans footer et address fournit leur texte sans coupure prématurée, contrairement au body entier ; l'inspection des liens permet de repérer une éventuelle page Contact dans l'échantillon.","guide_analyse":"Pour chaque page, examinez la capture et les éléments du footer ou address : cherchez l'adresse postale complète et le numéro de téléphone. Si l'information n'y figure pas, vérifiez dans les liens qu'un accès direct vers une page Contact ou À propos existe, puis confirmez que cette page de l'échantillon contient l'adresse et le téléphone. Conforme si chaque page contient directement l'information, ou si une page de l'échantillon la contient et est accessible depuis les autres pages fournies. Non conforme si l'information est absente de toutes les pages et de leurs liens directs. Non applicable si le site n'est pas celui d'une société ou organisation.","objectifs":["donner aux utilisateurs qui le souhaitent la possibilité d’accéder sans difficulté aux moyens de contact téléphoniques et postaux,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation,","renforcer la confiance en associant à l’entité un élément d’identification concret."],"tags":["SEO"],"phases":["Éditorial"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":106,"intitule":"Le numéro d’immatriculation délivré aux sociétés ou organisations au terme des procédures légales d’enregistrement en vigueur dans leur pays est indiqué.","theme":"Identification et contact","contexte":"Sur Internet, une société peut être totalement fictive. La simple mention d’un numéro officiel permet de donner un indice sur sa réalité administrative.","solution":"Indiquer le numéro d’immatriculation délivré à la société ou association au terme des procédures légales d’enregistrement en vigueur dans son pays. Cette règle ne s’applique pas aux personnes physiques, sauf si elles sont constituées en entité juridique (freelances, autoentrepreneurs, etc.).","controle":"Sur la page d’accueil, ou sur la page des mentions légales, la page d’à propos, de contact, ou encore dans les pages consacrées aux conditions générales d’utilisation ou de vente :\n- vérifier que le numéro d’immatriculation délivré à la société ou association au terme des procédures légales d’enregistrement en vigueur dans son pays est indiqué.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Le numéro d'immatriculation est une information textuelle qui figure dans le contenu principal des pages légales ou de contact ; lire le texte de chaque page suffit à le repérer.","guide_analyse":"Dans le texte principal de chaque page, cherchez un numéro d'immatriculation (SIRET, SIREN, RCS, numéro de TVA intracommunautaire, numéro d'association, etc.). Conforme si au moins une page de l'échantillon — notamment la page d'accueil, les mentions légales, la page à propos, de contact, ou les CGU/CGV — contient un tel numéro. Non conforme si une page de mentions légales, à propos, contact ou CGU/CGV est présente dans l'échantillon et qu'aucune page ne comporte de numéro d'immatriculation. Si l'échantillon ne contient aucune de ces pages et qu'aucun numéro n'est trouvé, l'absence ne permet pas de conclure.","objectifs":["fournir aux utilisateurs une indication vérifiable de l’existence officielle de la structure qui propose les contenus ou le service."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.959153"},{"numero":107,"intitule":"Au moins deux moyens de contact sont proposés.","theme":"Identification et contact","contexte":"Mettre à la disposition des utilisateurs un formulaire de contact ou un numéro de téléphone, c’est une bonne chose. Cependant, l’un des deux peut être en défaut ou poser problème aux usagers.","solution":"Par exemple, indiquer l’adresse postale ou le numéro de téléphone de l’auteur et/ou du responsable et mettre en place un formulaire permettant de les contacter.","controle":"Dans l’ensemble du service en ligne :\n- vérifier la présence d’au moins deux modes de contact,\n- vérifier qu’il est possible de joindre effectivement l’auteur et/ou le responsable technique via les modes de contact proposés.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de vérifier la présence d'au moins deux moyens de contact mais aussi leur effectivité (joindre réellement le responsable). Tester qu'un numéro, une adresse ou un formulaire fonctionnent réellement dépasse les capacités des outils, qui ne transmettent aucune donnée au site et n'interagissent pas avec des services externes.","guide_analyse":"Parcourez les pages pour identifier au moins deux modes de contact distincts (formulaire, téléphone, adresse postale, email). Vérifiez que chaque moyen est complet et semble fonctionnel : formulaire avec champs et bouton d'envoi, numéro complet, adresse postale ou email correspondant à l'auteur ou responsable technique. Testez si possible l'envoi ou la validité des coordonnées. Conforme si deux moyens sont présents et permettent de joindre effectivement le responsable ; non conforme si un seul moyen existe ou si les coordonnées sont inopérantes.","objectifs":["optimiser les possibilités de retour d’information de la part des utilisateurs,","éviter de mettre l’utilisateur en difficulté en cas d’indisponibilité ou de problèmes d’utilisation de l’un des moyens de contact."],"tags":["Accessibilité"],"phases":["Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:36.985424"},{"numero":108,"intitule":"Les délais de réponse aux demandes d’information sont indiqués.","theme":"Identification et contact","contexte":"La simple mention d’un délai de réponse permet de lever beaucoup d’inquiétudes. Avant l’expiration de ce délai, un utilisateur ne s’inquiètera pas de ne pas avoir reçu de réponse.","solution":"Indiquer le délai chiffré de réponse prévu pour chaque formulaire de demande d’information.","controle":"Dans toute page comportant un formulaire de contact, vérifier qu’une indication chiffrée de délai de réponse est présente.\nNi le délai en lui-même ni son respect effectif ne font l’objet d’une validation : seule la présence de sa mention est contrôlée.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"La présence d'un délai de réponse chiffré s'apprécie sur le texte visible de la page, que le formulaire l'inclue ou non ; une capture de la page entière évite à la fois l'exclusion des formulaires par lire_page et la coupure du texte sur l'élément form par inspecter_html.","guide_analyse":"Sur la capture, identifiez un formulaire de contact. S'il n'y en a pas, la règle est non applicable. Si un formulaire de contact est présent, cherchez dans la page une indication chiffrée de délai de réponse (par exemple 'sous 48 h', 'délai : 2 jours ouvrés'). Conforme si une telle mention est visible sur la page ; non conforme si aucune indication chiffrée n'est présente. Seule la présence de la mention est contrôlée, pas la valeur du délai ni son respect effectif.","objectifs":["informer les utilisateurs sur les délais chiffrés de réponse,","Limiter les risques de relance de la part des utilisateurs,","rassurer sur la capacité à prendre en compte les demandes."],"tags":[],"phases":["Éditorial"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":109,"intitule":"Les horaires et tarifs de fonctionnement des services mis à la disposition des utilisateurs sont indiqués.","theme":"Identification et contact","contexte":"Un service en ligne est généralement ouvert 24 h/24. Les services d’assistance, les services après-vente et les hotlines ont rarement les mêmes horaires. Indiquez ces informations, vous éviterez ainsi les appels inutiles.","solution":"Indiquer les horaires et tarifs de fonctionnement des services mis à la disposition des utilisateurs.","controle":"Dans au moins une des pages suivantes : la page d’accueil, la page consacrée aux mentions légales, la page d’aide ou encore dans les pages consacrées aux conditions générales d’utilisation ou de vente :\n- vérifier que les horaires et tarifs de fonctionnement des services mis à la disposition des utilisateurs sont indiqués.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Le contrôle consiste à trouver des informations éditoriales (horaires et tarifs de services) dans le contenu de pages spécifiques ; le texte principal de chaque page, lu côté serveur, permet au juge d'y repérer ces mentions.","guide_analyse":"Dans le texte de chaque page fournie, cherchez les mentions d'horaires (ex. : jours et heures d'ouverture, 24 h/24, permanence) et de tarifs (ex. : gratuit, surtaxé, prix d'appel, coût selon opérateur) concernant les services mis à disposition des utilisateurs (assistance, hotline, SAV). Le contrôle ne vaut que pour la page d'accueil, les mentions légales, la page d'aide ou les CGU/CGV : si l'échantillon n'en contient aucune, vous ne pouvez pas conclure. Conforme si au moins une de ces pages présentes indique clairement ces informations ; non conforme si aucune ne les contient.","objectifs":["permettre aux utilisateurs de connaître les services mis à leur disposition et leur fonctionnement."],"tags":["Écoconception"],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.013088"},{"numero":110,"intitule":"Chaque demande d’information fait l’objet d’un accusé de réception.","theme":"Identification et contact","contexte":"Après l’envoi d’un formulaire, un utilisateur peut-il être vraiment certain que sa demande a bien été prise en compte ? Un simple e-mail d’accusé de réception lève ce doute et le rassure.","solution":"Faire en sorte que la validation de chaque formulaire de contact ou de demande d’information déclenche l’envoi d’un accusé de réception à l’attention de l’envoyeur. Cela suppose bien entendu de rendre obligatoire le champ de saisie de l’adresse e-mail dans chaque formulaire.","controle":"Via un formulaire de contact ou via le canal de contact e-mail indiqué :\n- adresser une demande d’information fictive en utilisant une adresse e-mail réelle,\n- contrôler qu’un accusé de réception est bien reçu à cette adresse.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige d'envoyer une demande fictive via un formulaire de contact ou un canal e-mail, puis de vérifier la réception d'un accusé dans une boîte mail externe. Aucun outil ne transmet de données au site (même saisir_et_cliquer n'envoie pas les formulaires) ni ne consulte de messagerie externe.","guide_analyse":"Vérification humaine : identifiez sur le site un formulaire de contact ou une adresse e-mail de contact. Envoyez une demande d'information fictive depuis une adresse e-mail réelle que vous contrôlez. Contrôlez ensuite cette boîte mail pour vérifier qu'un accusé de réception y a bien été reçu. Conforme si un accusé de réception est reçu à l'adresse utilisée ; non conforme si aucun accusé n'est reçu dans un délai raisonnable ou si le formulaire ne comporte pas de champ e-mail obligatoire empêchant l'envoi d'un accusé.","objectifs":["informer les utilisateurs de la prise en compte de leur demande,","permettre aux utilisateurs d’obtenir une confirmation archivable de la bonne réception de leur demande d’information."],"tags":["Accessibilité","Basics"],"phases":["Développement","Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.041330"},{"numero":111,"intitule":"Tous les mails fournissent au moins un moyen de contact.","theme":"Identification et contact","contexte":"De nombreux services en ligne envoient des messages ne permettant pas la réponse. C’est ce que l’on appelle les messages en no-reply. Il est tout à fait possible de procéder comme cela, mais il y a un risque que vous ne pouvez pas prendre : laisser l’utilisateur dans l’incapacité totale de vous joindre ou de vous répondre. Alors, pensez-y, prévoyez au moins un moyen de donner suite à l’un de vos mails.","solution":"Dans chaque e-mail adressé à l’utilisateur, y compris ceux en « no-reply », indiquer à l’utilisateur au moins un moyen de contact : adresse, téléphone, formulaire en ligne, e-mail, etc.","controle":"Vérifier pour chaque e-mail envoyé à l’utilisateur par le site, y compris ceux en « no-reply », qu’il fournit à celui-ci au moins un moyen de contact : adresse, téléphone, formulaire en ligne, e-mail, etc.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle concerne les courriels reçus par l'utilisateur, qu'il faut déclencher et consulter dans une boîte mail externe, ce qui dépasse le cadre des pages du site et les capacités des outils.","guide_analyse":"Cette règle nécessite une vérification humaine. Déclenchez chaque type d'envoi du site (création de compte, commande, alerte, réinitialisation de mot de passe) avec une adresse de test. Ouvrez chaque courriel reçu, y compris ceux émis par une adresse en no-reply, et recherchez au moins un moyen de contact : adresse postale, numéro de téléphone, formulaire en ligne ou adresse électronique. Le site est conforme si chaque courriel contient un tel moyen ; il est non conforme dès qu'un seul courriel n'en propose aucun.","objectifs":["permettre à l’utilisateur de répondre aux mails ou de prendre contact,","maintenir ou améliorer l’image de marque du service."],"tags":["Accessibilité"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":112,"intitule":"Il existe au moins un moyen de contacter le service après-vente ou le support.","theme":"Identification et contact","contexte":"Un litige est toujours possible, une réclamation l’est tout autant. Prévoyez donc cette éventualité, sans en exagérer l’importance.","solution":"Indiquer dans la page d’accueil, ou au sein de la page des mentions légales, dans la page d’à propos, d’aide, ou encore dans les conditions générales, un moyen de contacter (e-mail, téléphone, fax…) le responsable des réclamations.","controle":"Dans au moins une des pages suivantes : la page d’accueil, la page des mentions légales, la page d’à propos, d’aide, ou encore dans les pages consacrées aux conditions générales de vente ou d’utilisation :\n- vérifier la présence d’informations permettant d’entrer en contact (e-mail, téléphone, fax…) avec le responsable des réclamations.\nLa nature du moyen de contact en question n’est pas évaluée ici seule sa présence et sa mention sont contrôlées.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"}],"portee":"echantillon","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"Le moyen de contact peut apparaître dans le contenu principal, le pied de page ou une section dédiée de l'une des pages recherchées ; une capture de la page entière rendue par le navigateur permet au juge de repérer visuellement ces informations sur au moins une des pages fournies.","guide_analyse":"Pour chaque page fournie, examinez la capture de la page entière à la recherche d'informations permettant d'entrer en contact avec le responsable des réclamations (e-mail, téléphone, fax, adresse postale ou autre moyen explicite). Seule la présence et la mention de ces informations sont à vérifier, la nature exacte du moyen de contact n'est pas évaluée. Conforme si au moins une des pages de l'échantillon contient de telles coordonnées. Non conforme si aucune page ne présente de moyen de contact identifiable.","objectifs":["permettre aux utilisateurs de s’adresser ou d’adresser directement leurs réclamations au bon interlocuteur,","rassurer les utilisateurs sur le fait qu’ils pourront facilement interagir avec le service des réclamations en cas de problème."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.065552"},{"numero":113,"intitule":"Il existe au moins un moyen de contacter le modérateur des espaces publics.","theme":"Identification et contact","contexte":"Un commentaire envoyé un peu trop rapidement, un message injurieux présent dans un forum, cela peut arriver. Et souvent, les auteurs ou les utilisateurs ne manqueront pas de vous prévenir, si vous leur en donnez la possibilité.","solution":"Par exemple, indiquer l’adresse e-mail du modérateur ou mettre en place un formulaire permettant de le contacter.","controle":"Dans chaque espace public(zone de commentaire, forum, etc.) ou, à défaut, dans une page générique telle que la page des mentions légales, la page contact, la rubrique d’aide ou encore dans les conditions d’utilisation :\n- identifier un moyen de contacter le modérateur,\n- vérifier qu’il est effectivement possible de contacter le modérateur via le(s) mode(s) de contact proposé(s).","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige non seulement d'identifier un moyen de contacter le modérateur, mais aussi de vérifier qu'il est effectivement possible de le contacter par ce moyen. Tester l'effectivité d'un contact (envoyer un message, soumettre un formulaire, appeler un numéro) nécessite des actions en dehors de la simple observation de la page, que les outils ne peuvent pas réaliser.","guide_analyse":"Vérification humaine : examinez chaque espace public présent dans les pages (commentaires, forum, avis) pour y chercher un moyen de contacter le modérateur. Si aucun n'y figure, vérifiez les pages génériques fournies (mentions légales, contact, aide, conditions d'utilisation). Pour chaque moyen trouvé (adresse email, formulaire, téléphone), testez son fonctionnement réel (envoi d'un message, soumission du formulaire). Conforme si un moyen fonctionnel est présent dans l'espace public ou, à défaut, dans une page générique ; non conforme si aucun moyen n'existe ou si le moyen indiqué ne permet pas effectivement de contacter le modérateur.","objectifs":["permettre aux utilisateurs de contacter le modérateur pour demander une correction, poser une question ou signaler des abus,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":[],"phases":["Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.095472"},{"numero":114,"intitule":"L’identité de la personne ou du service responsables des contenus est indiquée.","theme":"Identification et contact","contexte":"Dans de nombreux pays, il s’agit d’une obligation légale. Mais au-delà des aspects juridiques locaux, il est bon qu’une personne se porte garante des contenus du site et que cette personne soit identifiée.","solution":"Indiquer le nom d’une personne physique responsable des contenus sur le site.","controle":"Au sein de la page d’accueil ou au moins sur une page consultable depuis la page d’accueil (fréquemment, la page des mentions légales) ou encore sur chacune des pages (souvent en pied de page) :\n- vérifier manuellement que la mention d’une personne physique ou du service responsable des contenus est présente dans au moins une des pages citées ci-dessus.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"}],"portee":"echantillon","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"La mention du responsable des contenus est un texte visible, fréquemment situé en pied de page ou sur une page dédiée comme les mentions légales ; une capture pleine page de chaque document fourni permet de lire l'intégralité du contenu affiché et d'y repérer cette mention.","guide_analyse":"Sur chaque capture, examinez le contenu principal et le pied de page à la recherche de l'identité d'une personne physique ou d'un service responsable des contenus (par exemple : 'Directeur de la publication : Jean Dupont', 'Responsable éditorial : Service communication'). Conforme si au moins une des pages fournies contient une telle mention. Si aucune page ne la contient et que l'échantillon ne comprend ni la page d'accueil ni de page de mentions légales, l'absence de mention ne permet pas de conclure ; dans les autres cas, c'est non conforme.","objectifs":["permettre aux utilisateurs d’identifier sans ambiguïté un interlocuteur physique capable de répondre aux questions éventuelles sur les contenus proposés, ou d’assumer les responsabilités liées à ces contenus."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":115,"intitule":"Si un ou plusieurs standards ou référentiels sont déclarés comme respectés, un lien est proposé vers chacun d’eux.","theme":"Identification et contact","contexte":"Imaginons que vous déclariez respecter un référentiel (Opquast, par exemple). Pour des raisons de crédibilité, il est fortement conseillé de pointer vers ce référentiel ou d’en présenter les critères. Autrement, la mention pourrait au contraire vous desservir.","solution":"Fournir un lien vers chaque standard ou référentiel concerné.","controle":"Dans l’ensemble du service en ligne, et notamment dans la page d’accueil, la page des mentions légales, la page d’à propos, d’aide ou d’accessibilité ou encore dans les pages consacrées aux conditions générales de vente ou aux conditions de livraison ou de remboursement :\n- vérifier la présence d’un lien vers chaque standard ou référentiel que le service déclare respecter.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"},{"args":{"selecteur":"a[href]","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"echantillon","outils_juge":[]},"outils":["capturer_page","inspecter_html"],"strategie_justification":"La capture en page entière permet au juge de lire l'intégralité du contenu visible, y compris le pied de page, sans être limité par la coupure de 500 caractères d'inspecter_html sur body. L'inspection de tous les liens fournit les URLs et libellés nécessaires pour vérifier qu'un lien est bien proposé vers chaque référentiel déclaré.","guide_analyse":"Dans les captures de chaque page, recherchez toute mention indiquant qu'un standard, référentiel, norme ou certification est déclaré respecté (par exemple RGAA, WCAG, Opquast). Dans la liste des liens, vérifiez qu'au moins un href pointe vers chaque référentiel ainsi identifié. Conforme si, pour chaque standard mentionné dans l'échantillon, un lien correspondant est présent au moins une fois dans les pages fournies. Non conforme si un standard est déclaré mais qu'aucun lien ne lui correspond. Non applicable si aucune des pages fournies ne mentionne de standard ou référentiel respecté.","objectifs":["faciliter la compréhension par l’utilisateur des règles de qualité, d’accessibilité ou autres appliquées,","accroître la confiance dans les informations délivrées."],"tags":[],"phases":["Éditorial"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":116,"intitule":"Chaque image décorative est dotée d’une alternative textuelle appropriée.","theme":"Images et médias","contexte":"Savez-vous qu’il est possible d’écouter une page ? C’est ce que font toutes les personnes équipées d’un logiciel lecteur d’écran, ce qui est souvent le cas des personnes malvoyantes et non-voyantes. Ce logiciel leur lit les pages. Si vous avez indiqué une alternative textuelle pour chaque image décorative, celle-ci sera systématiquement lue. Mais au bout de la vingtième fois que le lecteur d’écran aura prononcé les mots « Puce bleue », l’utilisateur sera peut-être énervé. Dans la plupart des cas, l’alternative textuelle appropriée pour une image décorative sera un attribut ou un contenu vide.","solution":"D’une manière générale, si un code (un attribut HTML, par exemple) est prévu pour l’alternative, il doit être présent, mais en restant vide. Pour les cas les plus courants :\n- donner à chaque élément img décoratif un attribut alt vide (alt=\"\"),\n- donner à chaque élément area décoratif un attribut alt vide,\n- laisser vide le contenu de chaque élément object concerné (entre les balises <object> et </object>),\n- laisser vide le contenu de chaque élément canvas concerné,\n- ne donner à chaque élément svg concerné aucun attribut ARIA qui lui confère un label (aria-labelledby, aria-describedby, etc.).","controle":"Cette vérification s’effectue dans le code HTML généré à l’aide d’un inspecteur de code ou d’une barre d’outils dédiée :\n- tester au préalable la présence des attributs alt en vérifiant la validité du code HTML généré, par exemple avec le validateur du W3C (le validateur HTML signale les images privées d’alternative) : chaque image décorative doit avoir un attribut alt (présent, mais vide),\n- vérifier que chaque image img ne véhiculant pas d’information nécessaire à la compréhension du contenu a bien un alt vide,\n- vérifier les éventuels autres objets graphiques du type object, canvas dont le contenu (entre les balises ouvrantes et fermantes) doit être vide,\n- vérifier les éventuels autres éléments du type svg susceptibles de recevoir une alternative via un attribut ARIA.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de distinguer, au cas par cas, les images décoratives des images porteuses d'information, ce qui nécessite une expertise humaine sur le rôle de chaque image dans le contexte éditorial et visuel de la page. Les outils peuvent relever la présence ou l'absence d'attributs alt et de contenus, mais ils ne peuvent pas juger du caractère décoratif d'une image ni établir de corrélation fiable entre le rendu visuel et le code pour chaque élément graphique.","guide_analyse":"Vérification humaine : dans le code HTML de chaque page, examinez chaque élément img, area, object, canvas et svg. Pour chaque image, déterminez si elle est purement décorative (elle ne véhicule aucune information nécessaire à la compréhension du contenu et n'a pas de fonction). Les images décoratives doivent avoir un attribut alt vide (alt=\"\" pour img et area), un contenu vide (pour object et canvas), et aucun attribut ARIA conférant un label (aria-labelledby, aria-describedby, etc., pour svg). Les images sans attribut alt sont non conformes. Une image informative traitée comme décorative (alternative vide) constitue aussi une anomalie.","objectifs":["éviter aux utilisateurs placés dans des contextes où les images ne sont pas perceptibles (navigateur texte, lecteur d’écran, navigateur avec images désactivées) d’être perturbés par des informations sur des images qui leur sont inutiles,","fournir aux robots d’indexation uniquement des informations pertinentes,","améliorer l’accessibilité des contenus aux personnes handicapées,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","SEO"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":117,"intitule":"Chaque image-lien est dotée d’une alternative textuelle appropriée.","theme":"Images et médias","contexte":"Aimeriez-vous naviguer sur un service en ligne dont les liens seraient libellés « 42.gif », « logo » ou « 148572156725.jpg » ? Non, n’est-ce pas ? Alors, évitons d’imposer non seulement cela aux utilisateurs de lecteurs d’écran, mais aussi à Google, qui va, du coup, trouver vos contenus bien peu pertinents et bien difficiles à référencer.","solution":"Les images-liens sont aisées à identifier (elles sont le seul contenu qui est placé entre des balises <a> et </a>). Il faut toutefois penser aussi aux liens générés avec JavaScript sur d’autres éléments.\nD’une manière générale, il faut :\n- donner à chaque élément img concerné un attribut alt indiquant la cible ou le rôle du lien,\n- donner à chaque élément area concerné un attribut alt indiquant la cible ou le rôle du lien,\n- indiquer la cible ou le rôle du lien dans le contenu de chaque élément object concerné,\n- indiquer la cible ou le rôle du lien dans le contenu de chaque élément canvas concerné.","controle":"- vérifier que l’attribut alt de chaque élément img concerné indique la cible ou le rôle du lien,\n- vérifier que l’attribut alt de chaque élément area concerné indique la cible ou le rôle du lien,\n- vérifier que le contenu de chaque élément object concerné indique la cible ou le rôle du lien,\n- vérifier que le contenu de chaque élément canvas concerné indique la cible ou le rôle du lien,\n- vérifier le libellé textuel de tout autre élément ayant le rôle d’un lien.","plan_outils":{"etapes":[{"args":{"selecteur":"a img, area[href], a object, a canvas, [role=\"link\"] img, [role=\"link\"] object, [role=\"link\"] canvas"},"cible":"page","outil":"inspecter_html"},{"args":{"selecteur":"a, [role=\"link\"]"},"cible":"page","outil":"lire_arbre_accessibilite"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","lire_arbre_accessibilite"],"strategie_justification":"L'inspection du HTML statique relève les attributs alt des images et zones cliquables ainsi que le contenu textuel des objets et canvas placés dans des liens. L'arbre d'accessibilité relève le nom de chaque lien après exécution du JavaScript, ce qui couvre les liens dynamiques et permet de vérifier leur libellé textuel.","guide_analyse":"Dans la première preuve, examinez chaque élément img, area, object ou canvas trouvé à l'intérieur d'un lien : vérifiez que l'attribut alt de img et area indique la cible ou le rôle du lien, et que le contenu textuel de object et canvas en fait autant. Dans la seconde preuve, examinez le nom accessible de chaque lien : pour les liens qui ne sont pas des images-liens, vérifiez que ce nom indique la cible ou le rôle du lien. Conforme si toutes ces alternatives sont présentes et pertinentes ; non conforme si une image-lien n'a pas d'alt, a un alt vide ou un alt inapproprié (nom de fichier, terme générique, etc.), ou si un autre lien a un libellé textuel vide ou inapproprié.","objectifs":["permettre aux utilisateurs placés dans des contextes où les images ne sont pas perceptibles (navigateur texte, lecteur d’écran, navigateur avec images désactivées) de comprendre le sens des liens présents sur des images qu’ils ne peuvent voir,","permettre aux robots d’exploiter l’information véhiculée par les images-liens (pour le référencement, l’indexation, la traduction automatique des alternatives d’images texte),","permettre l’affichage d’un texte pertinent pendant le chargement des images,","améliorer l’accessibilité des contenus aux personnes handicapées,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","Basics","SEO"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":118,"intitule":"Chaque image porteuse d’information est dotée d’une alternative textuelle appropriée.","theme":"Images et médias","contexte":"Certaines images ne se contentent pas d’être jolies ou moches. Elles apportent de vraies informations. C’est le cas du texte mis en image, mais aussi d’images présentant des informations visuelles nécessaires ou utiles à la compréhension du contenu. Dans ce cas, faites en sorte que les informations ne soient pas perdues lorsque l’image est désactivée.","solution":"- donner à chaque élément img concerné un attribut alt reproduisant l’information,\n- donner à chaque élément area concerné un attribut alt reproduisant l’information,\n- reproduire l’information dans le contenu de chaque élément object concerné,\n- reproduire l’information dans le contenu de chaque élément canvas concerné,\n- reproduire l’information dans un libellé textuel associé à chaque élément svg concerné par le biais de son attribut aria-label ou de la balise desc.\nDans le cas d’une image complexe qui ne peut être résumée de manière concise dans une alternative textuelle, le détail de l’information doit être apporté en complément à l’aide d’une description étendue :\n- soit via l’attribut longdesc de l’image indiquant l’URL de la description,\n- soit via un lien adjacent à l’image jouant le même rôle,\n- soit dans le contenu de la page, dans le contexte immédiat de l’image. Dans ce dernier cas, l’alternative peut signaler la présence de cette description et y renvoyer.","controle":"- vérifier que l’attribut alt de chaque élément img concerné reproduit l’information portée par l’image,\n- vérifier que l’attribut alt de chaque élément area concerné reproduit l’information portée par l’image,\n- vérifier que le contenu de chaque élément object concerné reproduit l’information portée par l’image,\n- vérifier que le contenu de chaque élément canvas concerné reproduit l’information portée par l’image,\n- vérifier que chaque élément svg concerné est associé à un libellé textuel reproduisant l’information portée par l’image par le biais de son attribut aria-label ou de la balise desc,\n- vérifier la présence et la pertinence de la description étendue le cas échéant.","plan_outils":{"etapes":[{"args":{"selecteur":"img, area, object, canvas, svg","profondeur":200},"cible":"page","outil":"inspecter_html"},{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","capturer_page"],"strategie_justification":"Le HTML livré par le serveur expose les alternatives textuelles (alt, contenu, aria-label, desc, longdesc) et la capture rendue montre le contenu visuel de chaque image : le juge compare les deux pour vérifier leur adéquation.","guide_analyse":"Dans les éléments HTML relevés, examinez chaque img, area, object, canvas et svg. Pour les img et area, vérifiez la présence de l'attribut alt et sa correspondance avec l'information visible sur la capture ; pour les object et canvas, vérifiez que leur contenu textuel reproduit cette information ; pour les svg, vérifiez la présence d'un aria-label ou d'une balise desc pertinente. Si une image visuellement informative n'a pas d'alternative, si celle-ci est inadéquate (nom de fichier, texte générique) ou si une image complexe manque de description étendue (longdesc, lien adjacent ou texte proche sur la capture), la page est non conforme.","objectifs":["permettre aux utilisateurs placés dans des contextes où les images ne sont pas perceptibles (navigateur texte, lecteur d’écran, navigateur avec images désactivées) de comprendre le sens des images qu’ils ne peuvent voir,","permettre aux robots d’exploiter l’information véhiculée par les images (référencement, indexation, traduction automatique des alternatives d’images texte),","permettre l’affichage d’un texte pendant le chargement des images,","améliorer l’accessibilité des contenus aux personnes handicapées,","Améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","Basics","SEO"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.124098"},{"numero":119,"intitule":"Les vignettes et aperçus ne sont pas des images de taille supérieure redimensionnées côté client.","theme":"Images et médias","contexte":"Le langage HTML permet d’indiquer pour une image des dimensions différentes de celles de l’image d’origine. Cela permet notamment de faire des vignettes et aperçus d’image. Par exemple, vous pouvez parfaitement afficher une image carrée de 100 pixels de côté alors qu’il s’agit d’une image carrée de 5000 pixels de côté dont vous vous êtes contenté de redimensionner l’affichage en HTML. L’affichage est petit, mais la quantité de données à télécharger reste la même. Et cela nuit directement aux performances.","solution":"Utiliser, pour les vignettes de prévisualisation d’images, des versions spécifiques de celles-ci et non les images originales redimensionnées via leurs attributs HTML ou leurs propriétés CSS.","controle":"Pour toutes les images HTML présentes dans le code source ou générées via JavaScript :\n- vérifier qu’elles ne sont pas dotées de propriétés CSS height ou width qui modifient la taille apparente des images par rapport à leurs dimensions réelles. Pour cela, utiliser « désactiver tous les styles CSS » à l’aide d’un outil de développement web pour repérer les images dont les dimensions changent après désactivation des styles CSS,\n- contrôler également que les dimensions indiquées dans les attributs width et height du code HTML généré correspondent aux dimensions réelles de l’image à l’aide d’un outil de développement.\nPar exemple, on invalidera donc :\n- une image du type <img height=\"300\" width=\"600\" class=\"thumb\"/> si la classe .thumb impose les propriétés CSS height: 100px et width: auto,\n- une image du type <img height=\"100\" width=\"200\"/> si les dimensions réelles de l’image sont 300 px de haut et 600 px de large.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de comparer les dimensions affichées des images (avec et sans CSS) et les attributs width/height HTML aux dimensions réelles en pixels de chaque fichier image. Aucun outil du catalogue ne fournit les dimensions intrinsèques des fichiers image (largeur et hauteur réelles), ce qui empêche de trancher complètement.","guide_analyse":"Vérification humaine : pour chaque image, désactivez les styles CSS dans les outils de développement et repérez celles dont les dimensions changent (redimensionnement CSS). Mesurez ensuite les dimensions réelles de chaque fichier image (via un éditeur ou les outils réseau du navigateur) et comparez-les aux attributs width/height du HTML généré. Non conforme si une image est affichée plus petite que sa taille réelle par le CSS ou si ses attributs HTML ne correspondent pas à ses dimensions réelles.","objectifs":["diminuer la quantité de données à télécharger,","améliorer la vitesse d’affichage de la page,","diminuer l’impact énergétique lié à la consultation."],"tags":["Écoconception"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":120,"intitule":"Les objets inclus sont dotés d’une alternative textuelle appropriée.","theme":"Images et médias","contexte":"Une vidéo, un objet Flash (oui il y en a encore), un contenu audio peuvent être impossibles à consulter dans certains contextes. Une alternative permet d’accéder à leur contenu.","solution":"Indiquer l’alternative des objets inclus via l’une des solutions suivantes :\n- le contenu de l’élément HTML object,\n- le contenu de l’élément HTML noembed,\n- un contenu présent immédiatement avant ou après l’objet,\n- un lien vers une page fournissant le contenu alternatif, placé immédiatement avant ou après l’objet.","controle":"Cette vérification nécessite la détection des éléments object et embed, en tenant compte de leur éventuelle génération via JavaScript. Pour chaque page contenant un de ces éléments :\n- désactiver le support des technologies tierces dans le navigateur,\n- s’assurer que l’information alternative est présente et affichée, ou qu’elle est accessible grâce à un lien présent dans le contexte immédiat de chaque objet.","plan_outils":{"etapes":[{"args":{"selecteur":"object, embed, noembed"},"cible":"page","outil":"inspecter_html"},{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","capturer_page"],"strategie_justification":"L'inspection du HTML statique détecte les éléments object, embed et noembed ainsi que leurs contenus alternatifs internes. La capture d'écran rendue par un navigateur sans technologies tierces montre les objets générés par JavaScript et révèle les alternatives affichées ou les contenus et liens placés dans le contexte immédiat.","guide_analyse":"Dans les éléments HTML, identifiez chaque object, embed et noembed. Pour chaque object, vérifiez qu'il contient du texte ou des éléments entre ses balises d'ouverture et de fermeture. Pour chaque embed, vérifiez la présence d'un élément noembed associé. Sur la capture d'écran, repérez chaque objet visible (même inséré par JavaScript) et cherchez un texte descriptif ou un lien placé immédiatement avant ou après l'objet. Conforme si chaque object ou embed dispose d'une alternative interne, d'un noembed, ou d'un contenu ou lien explicite dans son contexte immédiat visible. Non conforme si un objet est présent sans aucune de ces formes d'alternative.","objectifs":["fournir un accès à l’information pour les utilisateurs dont le navigateur ou la plateforme ne supporte pas l’inclusion d’objets ou les technologies utilisées dans les objets inclus,","faciliter l’exploitation de ces contenus par les robots (référencement en particulier),","améliorer l’accessibilité des contenus aux personnes handicapées,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","SEO"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":121,"intitule":"Chaque contenu audio et vidéo est accompagné de sa transcription textuelle.","theme":"Images et médias","contexte":"Les vidéos et sons contiennent des textes qui ne sont pas perceptibles par les aveugles, les sourds ou les moteurs de recherche. Cette règle montre comment faire en sorte que ces contenus soient lisibles et indexés.","solution":"Accompagner chaque contenu audio ou vidéo d’une transcription :\n- soit intégrale (contenant les paroles et une description des sons et éléments visuels nécessaires à la compréhension);,\n- soit synthétique (mais reflétant la totalité de l’information).\nLa transcription peut :\n- figurer dans la page où se trouve le contenu vidéo ou audio,\n- ou être immédiatement accessible par un lien présent dans la page où se trouve le contenu vidéo ou audio.","controle":"Identifier chaque page comportant un contenu multimédia et, dans le contexte immédiat de chaque contenu audio ou vidéo, s’assurer de la présence d’une transcription ou d’un lien y donnant immédiatement accès.","plan_outils":{"etapes":[{"args":{"selecteur":"audio, video, iframe","profondeur":50},"cible":"page","outil":"inspecter_html"},{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","capturer_page"],"strategie_justification":"La présence de contenus audio, vidéo ou de lecteurs intégrés se constate dans le code HTML, et la capture de la page entière permet de vérifier visuellement la présence d'une transcription ou d'un lien adjacent dans le contexte immédiat de chaque contenu.","guide_analyse":"Dans les éléments HTML relevés, identifiez chaque contenu audio, vidéo ou iframe de lecteur multimédia. Si aucun élément n'est présent, la page est non applicable. Pour chaque contenu identifié, examinez la capture pour vérifier qu'une transcription textuelle figure à proximité immédiate ou qu'un lien vers celle-ci est visible dans le même contexte. Conforme si chaque contenu audio ou vidéo dispose d'une transcription ou d'un lien y donnant accès ; non conforme si un contenu en est dépourvu.","objectifs":["permettre aux utilisateurs qui ne peuvent accéder au son ou à l’image proposés de disposer d’une transcription textuelle servant d’alternative,","permettre aux utilisateurs d’accéder à l’information contenue dans la vidéo,","permettre l’exploitation de l’information par des robots pour améliorer son indexation et son référencement,","permettre la traduction par des outils linguistiques en ligne,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics","SEO","Écoconception"],"phases":["Fonctionnel","Éditorial"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":122,"intitule":"Les vidéos comportent des sous-titres synchronisés.","theme":"Images et médias","contexte":"Les sous-titres sont fondamentaux pour les sourds, mais pas que pour eux. Dès qu’un utilisateur est dans l’impossibilité d’accéder au son, les sous-titres deviennent irremplaçables. Ils donnent accès aux contenus, ils peuvent servir à tout le monde. Et évidemment, ils fournissent des informations irremplaçables aux moteurs de recherche et outils d’intelligence artificielle pour restituer ou manipuler les contenus.","solution":"Associer à chaque contenu vidéo des sous-titres synchronisés reprenant au moins l’information donnée par la parole.","controle":"Vérifier, pour chaque contenu vidéo fournissant une information par la parole, que celle-ci peut être lue via des sous-titres synchronisés.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de visionner chaque vidéo pour savoir si elle porte une information par la parole et si les sous-titres sont synchronisés avec celle-ci, ce qu'aucun outil ne fait. Les sous-titres des lecteurs intégrés (YouTube, Vimeo) sont invisibles aux outils, et une vidéo muette sans sous-titres provoquerait un faux non conforme.","guide_analyse":"Vérification humaine : visionnez chaque vidéo pour déterminer si elle contient une information parlée. Si la vidéo est muette ou décorative, la règle est non applicable pour cette page. Si elle contient de la parole, vérifiez que des sous-titres synchronisés sont présents et qu'ils restituent fidèlement le contenu parlé. Conforme si toute vidéo parlante dispose de sous-titres synchronisés ; non conforme si une vidéo parlante en est dépourvue ou si les sous-titres sont absents ou non synchronisés.","objectifs":["permettre aux utilisateurs qui ne peuvent accéder au son de disposer d’une alternative visuelle synchronisée avec l’image pour suivre confortablement le déroulement de la vidéo sans devoir utiliser un transcript externe,","permettre aux utilisateurs sourds d’accéder aux contenus de la vidéo,","permettre à tous les utilisateurs d’accéder aux contenus de la vidéo,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Éditorial"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":123,"intitule":"La durée des contenus vidéo ou audio est indiquée.","theme":"Images et médias","contexte":"C’est une mention de rien du tout, mais elle va rendre de grands services. L’utilisateur va notamment pouvoir décider de l’opportunité ou du meilleur moment pour consulter un contenu audio ou vidéo.","solution":"Accompagner chaque contenu vidéo ou audio, à télécharger ou à consulter en ligne, de la mention de sa durée. Celle-ci peut être éventuellement indiquée de manière générique, sous forme d’un ordre de grandeur commun à un ensemble de contenus.","controle":"Dans chaque page comportant un contenu multimédia :\n- vérifier que la durée de chaque contenu audio ou vidéo est indiquée avant la consultation de celui-ci, c’est-à-dire dans le contexte immédiat du player,\n- contrôler que la durée indiquée correspond à la durée réelle, ou qu’il s’agit d’un ordre de grandeur suffisant.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de vérifier non seulement la présence d'une indication de durée, mais aussi sa correspondance avec la durée réelle du média ou son ordre de grandeur. Aucun outil du catalogue ne permet d'extraire la durée réelle d'un fichier audio ou vidéo ni de lire les métadonnées d'un player intégré pour la comparer à l'indication affichée.","guide_analyse":"Vérification humaine : sur chaque page contenant un média, identifiez chaque contenu audio ou vidéo. Vérifiez qu'une mention de durée est présente dans le contexte immédiat du player, par exemple un texte adjacent, les contrôles natifs du navigateur, ou l'affichage dans un player tiers. Contrôlez que cette durée correspond à la durée réelle du fichier ou en est un ordre de grandeur suffisant, par exemple en lisant les métadonnées du fichier ou en consultant l'interface du player. Non conforme si un média n'a aucune indication de durée à proximité, ou si la durée indiquée est manifestement erronée.","objectifs":["informer l’utilisateur afin qu’il puisse décider en connaissance de cause de consulter ou de télécharger ou non le contenu concerné,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Écoconception"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.149787"},{"numero":124,"intitule":"Les vidéos sont déclenchées par l’utilisateur.","theme":"Images et médias","contexte":"Le déclenchement automatique des vidéos est à double tranchant. D’un côté vous « poussez » le contenu vidéo vers vos utilisateurs, vous rendez vos contenus plus dynamiques (jeune, frais, sexy, etc.). De l’autre, vous envoyez des données en quantité importante sans l’accord explicite des utilisateurs, vous prenez le risque d’augmenter le taux de rebond, de nuire à votre référencement. Si vous déclenchez vos vidéos automatiquement (en autoplay), comme le font certains réseaux sociaux ou certaines plateformes de vidéos à la demande qui déclenchent automatiquement des extraits ou des bandes-annonces, vous prenez le risque de voir certains utilisateurs accéder à des contenus dangereux ou inappropriés pour certains publics, surtout si vous diffusez de la vidéo en direct. Bref, avant de déclencher automatiquement vos vidéos, réfléchissez bien.","solution":"Ne pas mettre en place des contenus vidéos dont le démarrage est automatique et sans action explicite de l’utilisateur en ce sens.\nNe pas incorporer dans la page d’éléments déclenchant la lecture d’une vidéo non contrôlable, par exemple avec l’élément HTML video doté de l’attribut autoplay ou sans l’attribut controls.","controle":"Dans chaque page comportant un contenu vidéo :\n- vérifier l’absence de contenus vidéos activés automatiquement au chargement de la page,\n- vérifier l’absence de contenus vidéos activés de manière imprévisible suite à une action de l’utilisateur.","plan_outils":null,"outils":[],"strategie_justification":"Le lancement automatique d'une vidéo au chargement de la page peut être observé, mais le déclenchement imprévisible suite à une action de l'utilisateur (clic, survol, défilement, focus, etc.) ne peut pas être vérifié par les outils disponibles, qui ne simulent pas d'interactions utilisateur génériques sur l'ensemble de la page ni ne détectent le lancement d'une vidéo après une action.","guide_analyse":"Vérification humaine : dans chaque page comportant un contenu vidéo, rechargez la page et vérifiez qu'aucune vidéo ne démarre automatiquement sans action de votre part. Naviguez ensuite dans la page : survolez les images, liens et boutons, cliquez sur les éléments interactifs (hors bouton de lecture), faites défiler le contenu, et vérifiez qu'aucune vidéo ne se lance de manière imprévisible. Non conforme si une vidéo démarre automatiquement au chargement ou si elle est déclenchée par une action autre qu'un clic explicite sur un contrôle de lecture.","objectifs":["laisser à l’utilisateur le contrôle de l’interface visuelle lors de la consultation du site,","ne pas imposer à l’utilisateur le déclenchement d’un contenu animé,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics","Écoconception"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":125,"intitule":"Les sons sont déclenchés par l’utilisateur.","theme":"Images et médias","contexte":"Il est 23 heures, les enfants dorment, vous naviguez sur Internet et, brutalement, un site déclenche un son tonitruant. Vous sursautez, puis vous cherchez fébrilement comment couper le son, car, oui, vous avez oublié d’éteindre vos enceintes. C’est du vécu, n’est-ce pas ? Alors, ne déclenchez pas de son automatiquement. S’il vous plaît.","solution":"Ne pas mettre en place des contenus audio dont le démarrage est automatique et sans action explicite de l’utilisateur en ce sens.\nNe pas incorporer dans la page d’éléments déclenchant la lecture d’un son non contrôlable par exemple avec l’élément HTML audio doté de l’attribut autoplay ou sans l’attribut controls.","controle":"Dans chaque page comportant un contenu audio :\n- vérifier l’absence de contenus audio activés automatiquement au chargement de la page,\n- vérifier l’absence de contenus audio activés de manière imprévisible suite à une action de l’utilisateur.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de vérifier l'absence de sons au chargement automatique, détectable par l'observation de la page, mais aussi l'absence de sons déclenchés de manière imprévisible par une action de l'utilisateur. Aucun outil ne permet de simuler les interactions utilisateur sur l'ensemble de la page ni de détecter la lecture d'un son à la suite d'un clic ou d'un survol ; le juge ne peut pas non plus entendre une preuve textuelle ou visuelle.","guide_analyse":"Vérification humaine : ouvrez la page dans un navigateur avec le son activé. Vérifiez qu'aucun son ne se déclenche automatiquement au chargement. Interagissez ensuite avec les éléments de la page (cliquez les liens, boutons, survolez les zones interactives) et vérifiez qu'aucun son ne se déclenche de manière imprévisible. Conforme si aucun son n'est activé sans action explicite de l'utilisateur sur un contrôle audio dédié ; non conforme si un son se lance automatiquement ou à l'insu de l'utilisateur.","objectifs":["laisser à l’utilisateur le contrôle du son lors de la consultation,","ne pas surprendre l’utilisateur par la diffusion inattendue d’un contenu audio,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics","Écoconception"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":126,"intitule":"Les animations, sons et clignotements peuvent être mis en pause.","theme":"Images et médias","contexte":"Au début, ça va, et puis, au bout d’un moment, ça énerve. Il fut un temps où, au moins dans certains navigateurs, la touche Échap interrompait les GIF animés, sans toutefois permettre de les consulter pas à pas. Mais ce temps semble révolu, et surtout, mieux vaut demander aux administrateurs de ne pas faire aux autres ce qu’ils ne voudraient pas qu’on leur fasse : outre les GIF animés, il y a les contenus défilants, les machins qui clignotent, etc. Sans compter les grosses basses qui font sursauter tout l’open space.","solution":"Dès lors qu’une animation visuelle a une durée de plus de 5 secondes ou qu’un son a une durée de plus de 3 secondes, doter systématiquement l’objet multimédia des moyens de contrôle nécessaires : démarrage, arrêt, muet ou volume.\nNe pas utiliser de graphismes animés non contrôlables, ou encore partiellement contrôlables par l’utilisateur (images gif animées en particulier).","controle":"Dans chaque page contenant une animation visuelle d’une durée de plus de 5 secondes ou un son d’une durée de plus de 3 secondes :\n- contrôler la possibilité de stopper l’animation, le son ou le clignotement (pause, redémarrage, volume sonore le cas échéant).\nIl existe une grande variété de moyens techniques permettant d’inclure une animation dans une page : balisage, propriété CSS, images animées, JavaScript, SVG, etc. La vérification de cette règle nécessite donc un examen au cas par cas de chaque page concernée.","plan_outils":null,"outils":[],"strategie_justification":"Les outils disponibles ne permettent pas de mesurer la durée des animations, sons ou vidéos, ni de constater de manière fiable les animations visuelles (CSS, GIF, SVG, défilement, clignotement) ni de tester le fonctionnement des commandes de pause. Le contrôle officiel exige un examen au cas par cas qui dépasse les preuves que les outils peuvent rapporter.","guide_analyse":"Vérifiez manuellement chaque page fournie. Repérez les contenus animés, les sons et les éléments clignotants (vidéos, audios, GIFs, animations CSS ou JavaScript, SVG animés, carrousels, textes défilants). Pour chaque animation visuelle d'une durée supérieure à 5 secondes ou chaque son d'une durée supérieure à 3 secondes, contrôlez la présence et le fonctionnement de commandes de pause, d'arrêt ou de réglage du volume. Conforme si chaque élément concerné dispose de tels contrôles accessibles ; non conforme si au moins un élément dépassant les seuils de durée en est dépourvu.","objectifs":["laisser à l’utilisateur le contrôle des animations lors de la consultation du contenu,","ne pas perturber l’attention en imposant des éléments pouvant gêner celle-ci,","permettre la consultation pas à pas d’animations séquentielles ou de contenus sonores,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.179730"},{"numero":127,"intitule":"Le déroulement des animations ne bloque pas la navigation ou l’accès aux contenus.","theme":"Images et médias","contexte":"Certaines animations imposées aux utilisateurs retardent l’affichage de la page à laquelle ils souhaitent avant tout accéder et peuvent même les faire fuir : proposez, mais n’imposez pas.","solution":"En cas d’animation proposée dans un splash screen, celle-ci doit comporter un lien permettant d’accéder directement aux contenus sans devoir attendre la fin de l’animation.","controle":"Pour chaque page dont l’accès est précédé par une animation :\n- vérifier qu’il est possible d’outrepasser l’animation sans devoir attendre la fin de son déroulement, soit par le biais d’un lien d’accès direct aux contenus, soit par un contrôle permettant son arrêt.\nCette règle concerne, en règle générale, la page d’accueil du site, mais elle peut également être en jeu dans des pages internes.","plan_outils":{"etapes":[{"args":{"duree_s":10},"cible":"page","outil":"observer_page"},{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["observer_page","capturer_page"],"strategie_justification":"L'observation de la page détecte les comportements automatiques (redirection, ouverture de boîte de dialogue) et la capture d'écran révèle la présence d'une animation bloquante ainsi que d'un éventuel lien ou contrôle pour l'outrepasser.","guide_analyse":"Si la capture ne montre aucune animation, splash screen ou overlay bloquant l'accès au contenu principal, et que l'observation ne signale aucun comportement automatique retardant l'accès, la page est non applicable. Si une animation bloquante est présente, vérifiez sur la capture ou dans l'observation qu'un lien d'accès direct aux contenus ou un contrôle permettant d'arrêter l'animation est disponible dès l'affichage. Conforme si un tel moyen d'outrepasser l'animation est présent ; non conforme si l'animation bloque l'accès sans possibilité de l'interrompre ou de la contourner immédiatement.","objectifs":["fournir aux utilisateurs un accès direct et immédiat aux contenus, même lorsque l’administrateur du site décide de proposer une animation ou une publicité préalable."],"tags":[],"phases":["Développement","Fonctionnel"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":128,"intitule":"L’indicatif international est disponible pour tous les numéros de téléphone.","theme":"Internationalisation","contexte":"Si votre cible est internationale, cette règle vous semblera d’emblée pertinente. Si ce n’est pas le cas, vous en douterez peut-être, et pourtant, notamment sur le web, un numéro de téléphone peut être cherché et composé depuis n’importe quel point du globe.","solution":"Ajouter à chaque numéro de téléphone l’indicatif du pays sous la forme +indicatif international - numéro de téléphone.\nRetirer pour chaque numéro le premier 0. Exemple pour la France : +33 1 23 45 67 89.","controle":"Pour chaque numéro de téléphone indiqué :\n- vérifier que tous les numéros sont précédés de l’indicatif du pays sous la forme +indicatif international - numéro de téléphone, par exemple +33 pour la France,\n- vérifier que le premier 0 des numéros a été retiré. Exemple pour la France : +33 6 11 22 33 44.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"},{"args":{"selecteur":"footer, address, a[href^=\"tel:\"]"},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["capturer_page","inspecter_html"],"strategie_justification":"La capture de la page entière permet de repérer visuellement tous les numéros affichés, y compris dans le contenu principal ; l'inspection des éléments footer, address et des liens tel: fournit le texte exact des numéros dans les emplacements les plus fréquents.","guide_analyse":"Dans la capture de la page entière, repérez tous les numéros de téléphone visibles. Dans les éléments footer, address et les liens tel:, lisez les numéros présents. Pour chaque numéro trouvé dans ces preuves, vérifiez qu'il est précédé de l'indicatif international sous la forme +XX et que le premier 0 a été retiré. Non applicable si aucun numéro n'est présent. Conforme si tous les numéros respectent ce format ; non conforme si un numéro manque d'indicatif ou conserve un 0 initial après l'indicatif.","objectifs":["permettre l’utilisation immédiate du contact téléphonique, quel que soit le contexte utilisateur."],"tags":[],"phases":["Éditorial"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":129,"intitule":"Le pays est précisé pour toutes les adresses postales.","theme":"Internationalisation","contexte":"Tous vos utilisateurs ne savent peut-être pas que votre ville (qui est pourtant le centre du monde) se trouve en France. En le précisant, vous vous adressez vraiment à tous et vous montrez que vous savez adapter votre communication à un support international.","solution":"Indiquer explicitement le pays dans l’adresse postale sous forme textuelle.","controle":"Pour chaque adresse postale indiquée :\n- vérifier la présence de la mention textuelle et explicite du pays dans toutes les adresses postales.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"page","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Les adresses postales sont présentées en texte dans le contenu de la page ; le texte principal permet au juge de repérer chaque adresse et de vérifier si le pays y est indiqué explicitement.","guide_analyse":"Dans le texte fourni, identifiez chaque bloc d'adresse postale (généralement regroupant numéro et rue, code postal et ville). Pour chacune, vérifiez que le nom du pays est écrit explicitement en toutes lettres (par exemple « France », « Belgique », « Canada ») et qu'il ne se déduit pas du seul code postal, de la ville, de la région ou d'un numéro de téléphone. Conforme si toutes les adresses postales contiennent une mention textuelle explicite du pays ; non conforme si au moins une adresse postale ne la comporte pas.","objectifs":["permettre aux utilisateurs d’identifier immédiatement le pays associé à l’adresse postale, sans ambiguïté et sans avoir recours à d’autres éléments (ville, région, code postal, numéro de téléphone)."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":130,"intitule":"Le code source de chaque page indique la langue principale du contenu.","theme":"Internationalisation","contexte":"Un contenu en ligne est rédigé dans une langue qui n’est pas forcément identifiable par les outils qui analysent les pages. Cette information doit être fournie à tous les outils automatiques dans le code source de celles-ci.","solution":"Renseigner l’attribut lang de l’élément racine HTML à l’aide du code langue approprié (tel qu’indiqué par le registre tenu par l’IANA : http://www.iana.org/assignments/language-subtag-registry). En pratique, pour le français, cela donne : <HTML lang=\"fr\"> (en HTML) et <HTML lang=\"fr\" xml:lang=\"fr\"> (en XHTML).\nÀ défaut, dans des cas plus complexes, la langue du contenu peut être indiquée via les différents éléments parents : head, body, title, etc.","controle":"La vérification consiste à contrôler la présence et la pertinence de l’attribut lang de l’élément HTML (ou à défaut de ses éléments descendants) dans le code source de chaque page :\n- vérifier que la langue par défaut du contenu est indiquée via l’attribut lang de l’élément HTML, par exemple <HTML lang=\"fr\"> (en HTML),\n- à défaut, vérifier qu’elle est au moins héritée, pour chaque élément de contenu, d’un élément parent (head, body, title, etc.) via son attribut lang.\nVérifier la validité et la pertinence du code de langue utilisé. Pour cela, recourir par exemple au Language Subtag Lookup Tool de Richard Ishida, https://r12a.github.io/app-subtags/.\nParmi les cas courants de codes de langue erronés, citons jp au lieu de ja pour le japonais, lu au lieu de lb pour le luxembourgeois, gr au lieu de el pour le grec, lat au lieu de la pour le latin et oci au lieu de oc pour l’occitan. Par ailleurs, les codes mul pour « langues multiples » et und pour « langue indéterminée » ne doivent pas être utilisés dans un contenu web. Enfin, l’attribut xml:lang peut être également renseigné en complément de l’attribut lang, mais il n’est pas suffisant pour rendre conforme cette règle.","plan_outils":{"etapes":[{"args":{"selecteur":"html, body[lang], head[lang], title[lang]"},"cible":"page","outil":"inspecter_html"},{"args":{},"cible":"page","outil":"lire_page"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","lire_page"],"strategie_justification":"La présence et la valeur de l'attribut lang se contrôlent dans le code source sur l'élément HTML et les éléments parents de repli ; la pertinence du code langue s'évalue en le comparant au texte réel de la page.","guide_analyse":"Dans les éléments HTML relevés, cherchez un attribut lang non vide sur l'élément html. À défaut, vérifiez qu'au moins un élément parent de contenu (body, head, title) possède un attribut lang non vide. Si aucun attribut lang n'est présent, la page est non conforme. Si un code est trouvé, vérifiez qu'il n'est pas une valeur erronée courante (jp, lu, gr, lat, oci, mul, und) et qu'il correspond à la langue réelle du texte lu dans la preuve textuelle. Conforme si un attribut lang valide et pertinent est présent sur html ou, à défaut, sur un élément parent couvrant le contenu ; non conforme sinon.","objectifs":["favoriser l’indexation des contenus selon leur langue,","faciliter la traduction automatique,","permettre une lecture correcte du contenu par un outil de synthèse vocale,","améliorer l’accessibilité des contenus aux personnes handicapées,","Améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","SEO"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":131,"intitule":"La langue principale de la page cible d’un lien est identifiable lorsqu’elle diffère de celle de la page d’origine.","theme":"Internationalisation","contexte":"Arriver par surprise sur un contenu en klingon quand on ne parle pas cette langue n’est jamais très agréable. Peu d’informations permettent aux utilisateurs de savoir ce qui se cache derrière un lien. Toutes les informations qui vont être transmises avant le clic sont donc de nature à limiter les clics inutiles. La langue en est une qui gagne à être précisée à l’avance.","solution":"La langue cible d’un lien peut être indiquée :\n- simplement via le libellé du lien qui sera rédigé dans la langue cible,\n- éventuellement à l’aide d’une icône appropriée (drapeau),\n- éventuellement de manière explicite dans le libellé du lien ou dans son contexte immédiat, en mentionnant la langue directement.","controle":"- identifier manuellement les liens dont le contenu de la page cible n’est pas rédigé dans la même langue que celle de la page courante,\n- vérifier, pour chacun de ces liens, que l’utilisateur est immédiatement informé de la nature de la langue concernée soit à la lecture du libellé (rédigé dans la langue cible), soit via une icône, soit via une information donnée dans le contexte du lien.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige d'identifier les liens dont la page cible est rédigée dans une langue différente de la page d'origine, ce qui nécessite de vérifier la langue de chaque destination. Aucun outil du catalogue ne permet de suivre les liens ni de déterminer la langue des contenus liés depuis la seule page d'origine.","guide_analyse":"Parcourez manuellement la page pour repérer les liens menant vers des contenus dont la langue diffère de celle de la page courante. Pour chacun de ces liens, vérifiez que l'utilisateur est immédiatement informé de la langue concernée : soit le libellé du lien est rédigé dans la langue cible, soit une icône appropriée (drapeau) est présente, soit une mention explicite figure dans le contexte immédiat du lien. Non conforme si au moins un lien vers une page étrangère ne présente aucune de ces trois formes d'indication.","objectifs":["permettre aux utilisateurs d’anticiper le changement de langue en cours de navigation,","éviter aux utilisateurs de se rendre sur une page dont ils ne comprennent pas la langue."],"tags":["Accessibilité"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":132,"intitule":"Chaque changement de langue est signalé.","theme":"Internationalisation","contexte":"Les outils automatiques et les robots qui parcourent vos contenus ne peuvent pas forcément en deviner la langue principale ni ses éventuelles variations. La présence d’un terme en langue étrangère dans une page peut et doit être signalée.","solution":"Utiliser l’attribut lang et le code de langue adapté pour chaque contenu dont la langue diffère de celle de la page courante. Par exemple : <title lang=\"en\">Open quality standards</title>\nSi le contenu dont la langue diffère n’est pas déjà balisé par un élément de la structure HTML existante (titre, lien, citation, etc.), il est alors nécessaire d’ajouter un élément spécifique (div ou span) pour spécifier la langue de cet élément (à l’exception du contenu de l’élément title qui ne peut comporter de balisage interne).","controle":"Dans chaque page examinée :\n- repérer tous les contenus rédigés dans une autre langue que la langue principale, sans oublier les contenus des attributs HTML restitués à l’utilisateur (tel que celui de l’attribut alt des images),\n- contrôler que la langue de ces contenus est précisée via un attribut lang placé sur l’élément concerné par le changement de langue (titre, lien, item de liste) ou hérité d’un élément parent.","plan_outils":{"etapes":[{"args":{"selecteur":"html"},"cible":"page","outil":"inspecter_html"},{"args":{"selecteur":"*[lang]"},"cible":"page","outil":"inspecter_html"},{"args":{"selecteur":"img[alt]"},"cible":"page","outil":"inspecter_html"},{"args":{"selecteur":"*[lang] img[alt]"},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html"],"strategie_justification":"La langue principale et le texte intégral de la page se lisent dans l'élément html ; les éléments portant un changement de langue explicite se listent avec *[lang] ; les images avec texte alternatif et celles héritant d'un parent lang se vérifient par comparaison de deux sélecteurs.","guide_analyse":"Dans l'élément html, notez la langue principale (attribut lang) et lisez le texte complet de la page pour repérer tout passage rédigé dans une autre langue. Pour chaque passage étranger, vérifiez qu'il apparaît dans le texte d'au moins un élément de *[lang] : s'il n'y figure pas, la page est non conforme. Pour chaque image de img[alt], si son texte alternatif est dans une langue étrangère, vérifiez qu'elle possède son propre attribut lang ou qu'elle figure dans *[lang] img[alt] (héritage d'un parent) ; sinon, elle est non conforme.","objectifs":["permettre aux aides techniques d’interpréter correctement les contenus exprimés dans une autre langue,","faciliter le travail des outils de traduction automatique,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":133,"intitule":"Les liens d’accès aux versions traduites pointent directement vers la traduction de la page courante.","theme":"Internationalisation","contexte":"En matière d’internationalisation, cette règle représente le confort ultime. Sur chaque page, vous pouvez directement cliquer sur le lien de changement de langue et c’est la page traduite qui apparaît. C’est intéressant pour l’utilisateur et c’est également très pratique pour le contrôle des traductions.","solution":"Fournir sur chaque page dont le contenu a été traduit un lien ou un formulaire de navigation donnant immédiatement accès à la version traduite de la page courante, sans retour à la page d’accueil de la version linguistique concernée.","controle":"Dans le cas d’un service en ligne internationalisé :\n- s’assurer que les liens vers les traductions du contenu conduisent immédiatement à la traduction du contenu de la page en cours, sans retour en page d’accueil.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"},{"args":{"selecteur":"a[hreflang], link[rel='alternate'][hreflang]"},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":["lire_fichier","inspecter_entetes_http"]},"outils":["lire_page","inspecter_html","lire_fichier","inspecter_entetes_http"],"strategie_justification":"Le contenu de la page courante sert de référence ; les liens et déclarations de traduction donnent leurs URLs. Le juge lit ensuite chaque page cible pour vérifier qu'elle en est bien la traduction, et non une page d'accueil.","guide_analyse":"Dans les éléments HTML relevés, identifiez chaque lien ou déclaration de traduction et son URL. Pour chaque URL, appelez inspecter_entetes_http pour détecter toute redirection, puis lire_fichier pour obtenir le contenu brut de la destination. Comparez le titre et le contenu principal de cette destination avec ceux de la page courante : ils doivent correspondre à la traduction directe de la même page. Conforme si tous les liens de traduction mènent à la traduction de la page en cours. Non conforme si une destination redirige vers l'accueil, est une page d'accueil, ou ne correspond pas à la traduction de la page courante.","objectifs":["donner un accès direct et immédiat aux traductions de la page courante."],"tags":[],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":134,"intitule":"Les liens vers les versions équivalentes des contenus sont rédigés dans leur langue cible.","theme":"Internationalisation","contexte":"Si vous faites un lien vers une page en hongrois, il y a de fortes chances que cette page s’adresse à des lecteurs qui comprennent le hongrois. Faites donc un libellé de lien en hongrois. Et ô merveille, ça marche aussi pour les autres langues.","solution":"Rédiger les liens et les alternatives textuelles d’images-liens concernées dans la langue de chaque page cible. Par exemple, inscrire « English version » pour un lien menant vers une version anglaise de la page actuellement rédigée en français.","controle":"Dans le cas d’un service en ligne internationalisé :\n- vérifier que chaque lien, qui mène vers une autre version linguistique, est rédigé dans la langue cible.","plan_outils":{"etapes":[{"args":{"selecteur":"a[hreflang]"},"cible":"page","outil":"inspecter_html"},{"args":{"selecteur":"a[hreflang] img"},"cible":"page","outil":"inspecter_html"},{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","capturer_page"],"strategie_justification":"L'attribut hreflang identifie de manière fiable les liens vers d'autres versions linguistiques dans le code ; leur libellé textuel ou leur alternative d'image s'y lit directement, et la capture d'écran complète pour les sélecteurs de langue éventuellement générés par JavaScript ou dépourvus de cet attribut.","guide_analyse":"Dans les éléments a[hreflang], vérifiez que le texte de chaque lien est rédigé dans la langue indiquée par l'attribut hreflang (par exemple hreflang=\"en\" avec le libellé \"English\"). Dans les images enfantes de ces liens, vérifiez que l'attribut alt est rédigé dans cette même langue cible. Sur la capture d'écran, repérez tout sélecteur de langue visible non présent dans le HTML initial et vérifiez que ses libellés respectent aussi la règle. Conforme si tous les liens vers une version linguistique sont rédigés dans la langue visée ; non conforme si un seul l'est dans la langue de la page courante ou dans une langue tierce. Si aucun lien vers une autre version linguistique n'est trouvé, la page n'est pas concernée.","objectifs":["permettre l’identification immédiate du lien pertinent par l’utilisateur,","rendre compréhensibles des liens spécialement créés pour un public spécifique."],"tags":[],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":135,"intitule":"Le serveur respecte l’ordre préférentiel de langues des outils de consultation.","theme":"Internationalisation","contexte":"Chaque requête auprès d’un serveur peut comporter des informations concernant les préférences de langue. Chaque utilisateur peut classer ses langues préférées dans son navigateur. Le serveur doit proposer les contenus en respectant l’ordre demandé par l’utilisateur. Si celui-ci indique le français, puis l’espagnol, puis l’anglais, le serveur devra servir la page en français si elle existe, sinon en espagnol si elle existe, et sinon en anglais si elle existe.","solution":"Utiliser la négociation de contenu disponible selon le serveur, en testant les valeurs de l’entête HTTP accept-language.","controle":"Pour un site disponible en plusieurs langues (français et anglais, par exemple) :\n- modifier les options de votre navigateur pour choisir votre langue favorite : sélectionner, par exemple, l’anglais en tant que langue préférée,\n- taper l’URL principale du site dans ce même navigateur et vérifier que les contenus de la page sont disponibles dans la langue retenue comme favorite. Dans notre exemple, la version anglaise devrait être automatiquement renvoyée,\n- effectuer le même test en choisissant une autre langue favorite dans les options du navigateur.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de simuler l'en-tête HTTP Accept-Language et de vérifier que le contenu de la page renvoyée est bien dans la langue demandée. L'outil inspecter_entetes_http permet de simuler la langue mais ne retourne pas le corps de la réponse, tandis que lire_page retourne le contenu sans permettre de choisir la langue : aucune combinaison ne permet de trancher.","guide_analyse":"Vérification humaine : configurez votre navigateur pour définir une langue favorite (par exemple l'anglais), puis accédez à l'URL principale du site. Vérifiez que le contenu affiché est bien dans cette langue lorsqu'une version existe. Répétez l'opération avec une autre langue prioritaire (par exemple le français). Conforme si le serveur sert automatiquement la version linguistique correspondant à la préférence indiquée ; non conforme si le serveur ignore la préférence ou renvoie une langue non demandée alors que la version existe.","objectifs":["envoyer prioritairement à l’utilisateur la version de la page correspondant à la langue qu’il a indiquée dans les préférences de son outil de consultation."],"tags":["Accessibilité"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.207230"},{"numero":136,"intitule":"Chaque lien est doté d’un intitulé dans le code source.","theme":"Liens","contexte":"Un lien se compose au minimum d’une URL et d’un libellé. Si vous ne saisissez pas de libellé, vous avez un lien, certes, mais qui n’a pas de sens et qui risque de ne pas être perçu ou d’être incorrectement compris par les utilisateurs et les moteurs de recherche.","solution":"Donner à chaque lien un libellé textuel (entre les balises ouvrantes et fermantes de l’élément a) ou, si nécessaire, via l’alternative textuelle d’un élément img ou object, etc.\nNe pas masquer à l’affichage le libellé textuel de l’élément a pour le remplacer par un effet de style CSS (image d’arrière-plan).","controle":"La détection des liens vides nécessite l’examen du code généré afin de contrôler le contenu effectivement présent dans la balise a, dans l’alternative de la balise img en cas d’image-lien ou encore dans l’alternative des éléments object et embed, etc.\nDans chaque page examinée :\n- vérifier que chaque lien texte a un libellé affiché lorsque les styles CSS sont désactivés,\n- contrôler que chaque lien image a un libellé affiché lorsque les images sont désactivées.\nDans le cas des liens HTML, il faut également vérifier que le libellé est affiché lorsque les couleurs seules sont désactivées.","plan_outils":{"etapes":[{"args":{"selecteur":"a","profondeur":200},"cible":"page","outil":"inspecter_html"},{"args":{"selecteur":"a img, a object, a embed","profondeur":200},"cible":"page","outil":"inspecter_html"},{"args":{"mode":"sans_styles"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","capturer_page"],"strategie_justification":"L'inspection du code source permet de vérifier la présence d'un libellé textuel ou d'alternatives pour les médias dans chaque lien, et la capture sans styles vérifie que les libellés textuels restent visibles lorsque les CSS sont désactivés.","guide_analyse":"Dans l'inspection des liens, vérifiez que chaque élément `<a>` contient du texte ou un média avec alternative textuelle. Dans l'inspection des médias liens, vérifiez que chaque `<img>` possède un attribut `alt` non vide et que chaque `<object>` ou `<embed>` a un contenu textuel. Sur la capture sans styles, constatez que les libellés textuels restent visibles et qu'aucun lien ne se résume à son URL, ce qui couvre également le cas où seules les couleurs sont désactivées. Conforme si chaque lien a un libellé robuste dans le code source et reste identifiable sans CSS ; non conforme dès qu'un lien est vide ou perd son intitulé sans styles.","objectifs":["éviter aux utilisateurs d’avoir uniquement une URL peu compréhensible en guise de libellé,","éviter les liens qui deviennent invisibles lorsque les styles CSS ou les images d’arrière-plan ne sont pas pris en compte,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.234588"},{"numero":137,"intitule":"Le libellé de chaque lien décrit sa fonction ou la nature du contenu vers lequel il pointe.","theme":"Liens","contexte":"Pour s’en tenir à des contrexemples fréquents de cette règle : les libellés de liens « Cliquer ici » et « Lire la suite » ne vous donnent aucune idée de l’endroit où vous allez vous rendre en cliquant dessus.","solution":"Indiquer sans ambiguïté le contenu de la page cible du lien, la fonction du lien ou son comportement, le cas échéant, dans le libellé des liens (portion de texte située entre les balises <a href=\"URL\"> et </a> ou dans l’alternative textuelle de l’image placée entre ces balises, éventuellement combinée au libellé textuel).","controle":"Dans le code source de chaque lien texte ou image-lien :\n- vérifier que le libellé du lien désigne explicitement la nature ou la fonction du contenu visé, ou encore la fonction spécifique du lien,\n- contrôler, dans le cas d’images-liens, que l’attribut alt de l’image joue ce rôle.","plan_outils":{"etapes":[{"args":{"selecteur":"a","profondeur":200},"cible":"page","outil":"lire_arbre_accessibilite"}],"portee":"page","outils_juge":[]},"outils":["lire_arbre_accessibilite"],"strategie_justification":"L'arbre d'accessibilité expose pour chaque lien son nom calculé par le navigateur, qui combine le texte de l'élément et l'alternative des images éventuelles ; le juge peut ainsi vérifier que chaque nom décrit explicitement la fonction ou la cible du lien.","guide_analyse":"Pour chaque élément de rôle 'link', lisez son nom accessible. Conforme si chaque nom décrit sans ambiguïté la nature du contenu visé ou la fonction du lien (par exemple 'Consulter les tarifs', 'Télécharger le guide PDF'). Non conforme si au moins un lien porte un nom trop générique pour identifier seul sa destination, tels que 'cliquez ici', 'lire la suite', 'plus' ou 'en savoir plus', ou si un lien image a un nom vide ou réduit à l'adresse du fichier. Citez le ou les libellés non explicites.","objectifs":["permettre aux utilisateurs d’identifier précisément la nature du lien et d’éviter des actions erronées,","permettre aux outils d’indexation d’associer un libellé à une ressource,","permettre aux lecteurs d’écran d’en indiquer la cible de façon explicite et d’éviter de désorienter les utilisateurs,","améliorer l’accessibilité des contenus aux personnes handicapées,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","Basics","SEO"],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.261432"},{"numero":138,"intitule":"Les liens de même nature ont des couleurs, des formes et des comportements identiques sur toutes les pages.","theme":"Liens","contexte":"Dès l’arrivée sur votre service en ligne, que ce soit par l’accueil ou par une page intérieure, les utilisateurs vont commencer à « apprendre » votre interface. Cette règle a pour objectif d’accélérer leur apprentissage.","solution":"Appliquer des propriétés communes de style, de couleur, de graisse, de casse, de soulignement aux ensembles de liens de même nature.","controle":"Dans l’ensemble du service en ligne :\n- vérifier que les liens de même nature (menus, liens au fil du texte, autres groupes de liens tels qu’un nuage de tags, etc.) ont des présentations visuellement similaires dans l’ensemble du site.","plan_outils":{"etapes":[{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"},{"args":{"selecteur":"a"},"cible":"page","outil":"mesurer_survol"}],"portee":"echantillon","outils_juge":[]},"outils":["capturer_page","mesurer_survol"],"strategie_justification":"La cohérence visuelle et comportementale des liens entre les pages s'apprécie sur le rendu final : les captures permettent de comparer couleurs et formes, et la mesure de survol vérifie que les interactions sont identiques d'une page à l'autre.","guide_analyse":"Pour chaque page, identifiez sur la capture les groupes de liens de même nature (menus, liens au fil du texte, nuages de tags, etc.) et comparez leur apparence (couleur, soulignement, graisse, casse) avec celle des mêmes groupes sur les autres pages. Dans la preuve de survol, vérifiez que les changements visuels au survol et au focus clavier sont identiques pour les liens de même nature sur toutes les pages. Conforme si chaque type de lien présente la même présentation et le même comportement sur l'ensemble des pages fournies ; non conforme dès qu'un groupe de liens de même nature diffère visuellement ou interactivement d'une page à l'autre.","objectifs":["accélérer l’apprentissage du fonctionnement de l’interface,","améliorer l’identification des liens et de leurs fonctions respectives."],"tags":["Accessibilité"],"phases":["Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.287348"},{"numero":139,"intitule":"Le soulignement est réservé aux liens.","theme":"Liens","contexte":"Les utilisateurs sont habitués à associer les contenus soulignés à des liens. En soulignant des contenus qui ne sont pas des liens, vous allez provoquer des clics inutiles. Attention, cette règle ne vous impose pas pour autant de souligner vos liens.","solution":"Ne pas utiliser le soulignement pour des textes simples ou des éléments qui ne constituent pas des liens.","controle":"Dans chaque page contenant des contenus soulignés :\n- identifier les textes soulignés,\n- contrôler la nature de ces contenus pour vérifier s’il s’agit effectivement de liens.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"La capture d'écran rendue par un navigateur montre ce qui est visuellement souligné dans la page ; le juge peut y repérer les textes soulignés qui ne sont pas des liens.","guide_analyse":"Sur la capture, identifiez les textes présentant un soulignement (trait sous les caractères), quelle que soit la technique CSS utilisée. Pour chaque texte souligné, vérifiez s'il s'agit bien d'un lien. Conforme si tous les textes soulignés sont des liens, ou si aucun texte n'est souligné. Non conforme si au moins un texte souligné n'est pas un lien (par exemple un paragraphe, un titre ou un mot isolé).","objectifs":["éviter les clics inutiles sur des contenus soulignés perçus comme des liens,","faciliter l’identification des liens."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":140,"intitule":"Les liens sont visuellement différenciés du reste du contenu.","theme":"Liens","contexte":"Certains designers adorent différencier les liens uniquement au survol. Dans ce cas, un utilisateur qui ne peut pas survoler une page avec son pointeur ne verra pas où se trouvent les liens. Est-ce si rare ? Pensons par exemple aux utilisateurs d’écrans tactiles et à la navigation en mode vocal.","solution":"Les liens peuvent être différenciés à l’aide des propriétés CSS de couleur de texte, de couleur d’arrière-plan, de soulignement, de mise en gras, de bordures, de police de caractères, etc.","controle":"Dans chaque page examinée :\n- identifier les liens présents au fil du texte,\n- vérifier que ces liens se différencient visuellement du reste du texte au sein duquel ils se trouvent placés,\n- vérifier que les liens différenciés par la couleur présentent un ratio de contraste suffisant avec le texte environnant et qu’ils sont identifiables au survol ou à la prise de focus clavier.\nCette vérification ne s’applique pas aux blocs de navigation dont la nature est par ailleurs évidente pour l’utilisateur (menus).","plan_outils":{"etapes":[{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"},{"args":{"selecteur":"main p a"},"cible":"page","outil":"mesurer_survol"}],"portee":"page","outils_juge":["calculer_contraste"]},"outils":["capturer_page","mesurer_survol","calculer_contraste"],"strategie_justification":"La capture montre comment les liens du texte se distinguent ; la mesure du survol et du focus montre ce qui change à l'interaction ; le ratio entre la couleur du lien et celle du texte se calcule avec les couleurs relevées.","guide_analyse":"Sur la capture, repérez les liens au fil du texte, hors menus, et ce qui les distingue (soulignement, gras, couleur). Si seule la couleur les distingue, appelez calculer_contraste avec la couleur du lien et celle du texte voisin : le ratio doit atteindre 3. Dans la mesure du survol et du focus, vérifiez qu'un changement visible apparaît pour ces liens. Conforme si chaque lien du texte est distingué autrement que par la couleur, ou par une couleur de ratio au moins 3 avec un changement au survol et au focus ; non conforme sinon.","objectifs":["permettre aux utilisateurs d’identifier facilement les liens au fil du texte ainsi que les blocs de navigation,","améliorer la visibilité et l’affordance des liens,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics"],"phases":["Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.313285"},{"numero":141,"intitule":"Les liens visités et non visités sont visuellement différenciés.","theme":"Liens","contexte":"Par défaut, les feuilles de styles des navigateurs prévoient des couleurs différentes pour les liens visités et non visités. Il est fort légitime de changer ce bleu et ce mauve fort peu seyants, mais pourquoi ne pas maintenir cette différence utile au visiteur ?","solution":"En dehors des menus de navigation, ne pas appliquer les mêmes styles CSS par défaut pour les liens non visités (sélecteurs a ou a:link) et pour les liens visités (sélecteur a:visited). Pour ce faire : soit prévoir un rendu spécifique pour les liens visités, soit ne pas indiquer de règle de rendu pour ceux-ci (le style par défaut du navigateur pourra alors s’appliquer sans difficulté).","controle":"Dans chaque page contenant des liens :\n- contrôler la présence et l’utilisation du sélecteur :visited dans les feuilles de style CSS et l’utilisation d’un style différent de celui appliqué à a ou a:link ou bien,\n- contrôler l’absence du sélecteur :visited dans les feuilles de style CSS pour laisser le style par défaut du navigateur s’appliquer.","plan_outils":{"etapes":[{"args":{"selecteur":"link[rel~=stylesheet], style, a"},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":["lire_fichier"]},"outils":["inspecter_html","lire_fichier"],"strategie_justification":"Les règles CSS concernant les liens, internes ou externes, sont déclarées dans le code HTML envoyé par le serveur : une inspection permet de localiser les feuilles de style et le juge lit leur contenu pour y rechercher les sélecteurs a, a:link et a:visited.","guide_analyse":"Dans les éléments relevés, vérifiez d'abord la présence d'au moins un lien (balise a) ; sinon la règle ne s'applique pas. Pour chaque balise style, lisez son contenu, et pour chaque feuille externe, appelez lire_fichier avec son href afin d'y rechercher les sélecteurs a, a:link et a:visited. Conforme si :visited est absent, laissant le navigateur appliquer son style par défaut, ou s'il est présent avec des déclarations visuellement distinctes de celles de a ou a:link. Non conforme si :visited est présent mais reprend strictement les mêmes styles que a ou a:link, sans aucune différence visuelle.","objectifs":["faciliter l’identification des contenus déjà visités,","faciliter l’identification des contenus restant à découvrir,","inciter à la découverte de nouveaux contenus."],"tags":[],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.342196"},{"numero":142,"intitule":"Les liens internes et externes sont différenciés.","theme":"Liens","contexte":"Certains concepteurs aiment ouvrir de nouvelles fenêtres pour les liens externes. Certains utilisateurs adorent, d’autres détestent. Nous ne nous prononcerons pas. En revanche, si vous voulez différencier ces liens externes, c’est une bonne idée.","solution":"Il est possible d’ajouter l’information « lien externe » dans le libellé du lien (mention textuelle, icône HTML spécifique), dans l’attribut title du lien en y reprenant et en y complétant le libellé, via la mise en forme du lien (icône CSS) ou encore via le comportement du lien (ouverture dans une nouvelle fenêtre réservée aux liens externes, avec avertissement préalable).","controle":"Pour chaque page contenant des liens :\n- vérifier que les liens internes et externes sont différenciés par le moyen d’une mention textuelle, d’une icône ou d’un comportement qui leur est propre. La vérification s’effectue manuellement en contrôlant visuellement les liens.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"},{"args":{"selecteur":"a[href]","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["capturer_page","inspecter_html"],"strategie_justification":"La capture d'écran rendue permet de vérifier visuellement la différenciation des liens externes par des icônes ou des mentions, tandis que l'inspection du HTML permet d'identifier les liens externes et de repérer les attributs title, target ou les éléments d'icônes dans le code.","guide_analyse":"Dans l'inspection HTML, identifiez les liens et distinguez les liens externes (URL absolue vers un autre domaine) des liens internes. Si la page ne contient aucun lien externe, le verdict est non applicable. Sur la capture d'écran et dans le code, vérifiez que chaque lien externe est différencié des liens internes par une mention textuelle, une icône ou un comportement qui lui est propre. Conforme si tous les liens externes présentent une différenciation claire ; non conforme si au moins un lien externe n'est pas distingué.","objectifs":["avertir clairement l’utilisateur du fait qu’il va quitter le service en ligne qu’il est en train de visiter,","faciliter le repérage des liens externes."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":143,"intitule":"Les liens internes vers les contenus à accès limité sont différenciés.","theme":"Liens","contexte":"Si votre site propose des liens qui ne sont pas disponibles pour tout le monde, que ce soit des liens réservés à des abonnés ou des liens demandant une authentification, prévoyez une vraie différenciation de ces liens par rapport à des liens en accès libre.","solution":"Les liens internes vers des contenus dont l’accès nécessite une authentification peuvent être différenciés à l’aide de pictogrammes ou des propriétés CSS de couleur de texte, de couleur d’arrière-plan, de mise en gras, de bordures, de police de caractères, etc.","controle":"Dans chaque page examinée :\n- identifier les liens internes vers des contenus dont l’accès nécessite une authentification,\n- vérifier que ces liens se différencient visuellement des autres liens internes.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige d'identifier les liens internes menant à des contenus protégés par authentification, ce qui nécessite de connaître la sémantique métier du site ou de cliquer sur chaque lien pour vérifier l'accès. Aucun outil du catalogue ne permet de distinguer de manière fiable un lien à accès limité d'un lien en accès libre dans le code ou l'affichage d'une page.","guide_analyse":"Vérification humaine : identifiez sur le site les liens vers des contenus nécessitant une authentification ou un abonnement (par exploration manuelle ou connaissance du site). Sur chaque page concernée, vérifiez que ces liens se distinguent visuellement des liens en accès libre par au moins un moyen : pictogramme, couleur de texte ou d'arrière-plan, mise en gras, bordure, police spécifique, etc. Non conforme si un lien à accès limité est présenté de la même manière qu'un lien ordinaire.","objectifs":["éviter aux utilisateurs des clics inutiles et une perte de temps,","prévenir la déception des utilisateurs."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":144,"intitule":"Les liens provoquant l’ouverture d’un logiciel externe ont un libellé explicite.","theme":"Liens","contexte":"Le cas le plus fréquent est l’ouverture imprévue de votre logiciel de messagerie après un clic sur un lien « Contact ». C’est tout à fait possible, mais, dans ce cas, efforcez-vous de prévenir les utilisateurs.","solution":"Rédiger les libellés de liens concernés de manière à annoncer le comportement pour mieux l’anticiper. Par exemple, il est préférable de rédiger les liens mailto sous la forme « Envoyer un e-mail » plutôt qu’un simple lien « Contact ».","controle":"Dans toutes les pages inspectées :\n- examiner le contenu pour y détecter les liens provoquant l’ouverture d’un logiciel externe (lien mail par exemple),\n- pour chaque lien concerné, vérifier que le libellé du lien est suffisamment explicite pour que l’utilisateur soit prévenu de son comportement particulier.","plan_outils":{"etapes":[{"args":{"selecteur":"a[href]","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html"],"strategie_justification":"L'inspection du HTML renvoie tous les liens avec leur attribut href et leur texte visible ; le juge peut y repérer ceux qui utilisent un protocole externe (mailto:, tel:, etc.) et juger de l'explicitation de leur libellé.","guide_analyse":"Dans les éléments relevés, identifiez les liens dont l'attribut href utilise un protocole externe tel que mailto:, tel:, callto: ou tout autre schéma ouvrant un logiciel externe. Si la page ne contient aucun lien de ce type, le verdict est **non applicable**. Pour chaque lien concerné, vérifiez que son libellé visible prévient explicitement de l'action externe (par exemple « Envoyer un e-mail » ou « Nous appeler ») et n'est pas un intitulé générique comme « Contact » ou « Cliquez ici ». Conforme si tous les liens externes ont un libellé suffisamment explicite. Non conforme si au moins un lien externe présente un libellé trop vague.","objectifs":["éviter sur le poste client l’ouverture inopinée d’un autre logiciel que le navigateur web,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Fonctionnel","Éditorial"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":145,"intitule":"Les numéros de téléphone sont activables via le protocole approprié.","theme":"Liens","contexte":"En contexte mobile, lorsque cette règle est respectée, le simple clic sur un numéro ouvre les fonctionnalités téléphoniques de votre mobile. C’est pratique ! Alors, certes, en contexte desktop, l’inconvénient est que cela provoque l’ouverture de logiciels tiers. Mais il existe des ruses pour faire en sorte de l’éviter.","solution":"Baliser les numéros de téléphone avec un lien a doté d’un attribut href du type href=\"tel:+xx x xx xx xx xx\".","controle":"Vérifier, dans le code HTML généré, le balisage des numéros de téléphone sous la forme a href=\"tel:+xx x xx xx xx xx\".","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"},{"args":{"selecteur":"a[href^=\"tel:\"]"},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["capturer_page","inspecter_html"],"strategie_justification":"La capture de la page entière permet de repérer visuellement tous les numéros de téléphone affichés, y compris dans le pied de page ; l'inspection du HTML liste les liens utilisant le protocole tel:. Le juge compare les deux pour vérifier que chaque numéro visible est bien balisé.","guide_analyse":"Sur la capture, repérez tous les numéros de téléphone affichés sur la page. Dans les éléments relevés par inspecter_html, vérifiez que chaque numéro visible est bien le contenu d'un lien <a> dont l'attribut href commence par tel:. Si la page ne contient aucun numéro de téléphone, le verdict est non applicable. Conforme si tous les numéros visibles sont balisés de cette manière. Non conforme si au moins un numéro affiché n'est pas inclus dans un tel lien.","objectifs":["faciliter l’utilisation des numéros de téléphone, notamment sur les terminaux mobiles."],"tags":["Accessibilité","Mobile"],"phases":["Développement"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":146,"intitule":"L’utilisateur est averti des ouvertures de nouvelles fenêtres.","theme":"Liens","contexte":"Contrairement à une légende répandue, ouvrir une nouvelle fenêtre n’est pas une technique proscrite sur le plan de l’accessibilité. En revanche, si vous choisissez de le faire, il faut absolument prévenir les utilisateurs. Et c’est facile !","solution":"Ajouter une mention du type « (nouvelle fenêtre) », soit directement dans le libellé du lien, soit dans son attribut title qui doit alors reprendre et compléter le libellé.\nAjouter une mention du type « (nouvelle fenêtre) » dans les étiquettes de contrôle de formulaire, dans les libellés de boutons ou dans tout autre objet provoquant l’ouverture d’une nouvelle fenêtre.","controle":"Dans les pages inspectées :\n- identifier les liens et autres contrôles d’ouverture d’une nouvelle fenêtre, c’est-à-dire,\n- les usages de l’attribut target dans la source générée HTML,\n- les usages de la fonctionnalité window.open via une recherche dans les fichiers JavaScript et dans la source HTML,\n- vérifier, pour chacun de ces liens, quelle que soit la technologie utilisée, la présence d’un avertissement explicite consultable avant toute action sur celui-ci.","plan_outils":{"etapes":[{"args":{"selecteur":"a, button","profondeur":200},"cible":"page","outil":"inspecter_html"},{"args":{"selecteur":"script","profondeur":200},"cible":"page","outil":"inspecter_html"},{"args":{},"cible":"page","outil":"lister_ressources"}],"portee":"page","outils_juge":["lire_fichier"]},"outils":["inspecter_html","lister_ressources","lire_fichier"],"strategie_justification":"L'attribut target et les gestionnaires inline se relèvent dans le code HTML des liens et boutons ; les scripts inline sont inspectés séparément et les fichiers JavaScript externes sont listés pour être lus par le juge.","guide_analyse":"Dans les éléments a et button, repérez ceux qui possèdent un attribut target (notamment _blank) ou un gestionnaire d'événement inline contenant open(. Vérifiez que leur texte ou leur attribut title comporte un avertissement explicite comme « nouvelle fenêtre ». Dans les balises script inline, si vous trouvez window.open, vérifiez que le code ajoute un avertissement aux éléments concernés. Pour chaque ressource de type script externe, appelez lire_fichier : si le fichier contient window.open, assurez-vous que le code y ajoute un avertissement ou que les éléments déclencheurs sont identifiables dans les preuves HTML et déjà avertis. Conforme si chaque ouverture de nouvelle fenêtre est annoncée par un avertissement consultable avant l'action ; non conforme si un élément avec target ou un script inline en est dépourvu, ou si un fichier JS externe ouvre une fenêtre sans mécanisme d'avertissement.","objectifs":["permettre à l’utilisateur d’anticiper le résultat de l’activation d’un lien,","éviter aux utilisateurs d’aides techniques d’être désorientés par l’ouverture d’une nouvelle fenêtre qui n’est pas toujours perceptible et perturbe notamment l’utilisation de l’historique de navigation,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.415553"},{"numero":147,"intitule":"Le format des fichiers proposés en téléchargement est indiqué.","theme":"Liens","contexte":"Pour un utilisateur, le fait de voir immédiatement le format d’un fichier proposé au téléchargement (PDF, DOC, ODS, ODT, XLS, etc.) va lui permettre de savoir s’il peut ou non lire le fichier avec les logiciels dont il est équipé et le terminal de consultation utilisé.","solution":"Au minimum, prévoir une page d’aide indiquant le format des fichiers proposés s’il est unique.\nAu mieux, indiquer le format pour chaque lien permettant de télécharger un fichier.","controle":"Pour chaque lien de téléchargement, vérifier qu’il est possible d’en connaître le format via :\n- une information générique donnée dans une page d’aide,\n- une information donnée dans le contexte du lien : paragraphe ou élément de liste li où il est inclus, titre de section qui le précède, cellule d’entête de tableau associée à celle où il est présent,\n- l’attribut title du lien reprenant et complétant le libellé de celui-ci,\n- une information donnée dans le libellé du lien,\n- une icône dotée d’un texte alternatif indiquant le format du fichier.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"},{"args":{"selecteur":"a[download], a[href$=\".pdf\"], a[href$=\".doc\"], a[href$=\".docx\"], a[href$=\".xls\"], a[href$=\".xlsx\"], a[href$=\".odt\"], a[href$=\".ods\"], a[href$=\".ppt\"], a[href$=\".pptx\"], a[href$=\".zip\"], a[href$=\".txt\"], a[href$=\".csv\"]","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["capturer_page","inspecter_html"],"strategie_justification":"La capture d'écran montre le contexte visuel de chaque lien (libellé, paragraphe, liste, tableau, icône) et l'inspection HTML relève les liens de téléchargement probables avec leur texte, leur attribut title et leur extension.","guide_analyse":"Dans la capture, repérez chaque lien de téléchargement et son environnement immédiat : le texte affiché dans ou à côté du lien, une éventuelle icône de format, le paragraphe, l'élément de liste ou la colonne de tableau voisine. Dans les éléments HTML relevés, vérifiez pour chaque lien suspecté d'être un téléchargement si son libellé contient le format, si son attribut title l'indique, ou si le contexte visible sur la capture le précise. Conforme si chaque lien de téléchargement identifié dispose d'au moins une indication de format parmi ces sources. Non conforme si un lien de téléchargement n'en présente aucune.","objectifs":["permettre aux utilisateurs de savoir en temps utile si leurs outils les autorisent à consulter les fichiers proposés en téléchargement,","réduire la charge serveur en évitant les téléchargements inutiles,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Écoconception"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":148,"intitule":"La taille des fichiers internes proposés en téléchargement est indiquée.","theme":"Liens","contexte":"Cette mention de la taille des fichiers va permettre aux utilisateurs de décider du meilleur moment pour télécharger un document. Par exemple, un utilisateur dans un contexte de mobilité ou disposant d’une connexion bas débit pourra choisir de reporter, voire de ne pas lancer, le téléchargement d’un fichier.","solution":"Au minimum, prévoir une page d’aide indiquant le poids moyen ou maximum pour l’ensemble des fichiers proposés.\nAu mieux, indiquer le poids lors de chaque lien permettant de télécharger un fichier.","controle":"Pour chaque lien de téléchargement, vérifier qu’il est possible d’en connaître le poids :\n- via une information générique donnée dans une page d’aide,\n- via une information donnée dans le contexte du lien : paragraphe ou élément de liste li où il est inclus, titre de section qui le précède, cellule d’entête de tableau associée à celle où il est présent,\n- via l’attribut title du lien reprenant et complétant le libellé de celui-ci,\n- ou via une information donnée dans le libellé du lien.","plan_outils":{"etapes":[{"args":{"selecteur":"a[href$=\".pdf\"], a[href$=\".zip\"], a[href$=\".doc\"], a[href$=\".docx\"], a[href$=\".xls\"], a[href$=\".xlsx\"], a[href$=\".ppt\"], a[href$=\".pptx\"], a[href$=\".odt\"], a[href$=\".ods\"], a[href$=\".odp\"], a[href$=\".mp3\"], a[href$=\".mp4\"], a[href$=\".txt\"], a[href$=\".csv\"]"},"cible":"page","outil":"inspecter_html"},{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","capturer_page"],"strategie_justification":"Les liens vers des fichiers téléchargeables se repèrent dans le code HTML par leur extension ; la capture d'écran permet de vérifier si la taille est indiquée dans le libellé, l'attribut title ou le contexte proche du lien.","guide_analyse":"Dans le résultat d'inspecter_html, identifiez les liens dont l'extension correspond à un fichier téléchargeable. Si aucun n'est présent, la page est non applicable. Sur la capture d'écran, examinez pour chaque lien trouvé si sa taille est indiquée dans le libellé du lien, son attribut title, ou dans le contexte proche (paragraphe, élément de liste, titre de section ou cellule de tableau). Conforme si chaque lien de téléchargement présente une indication de taille par l'une de ces voies, ou si la page affiche une information générique sur le poids des fichiers. Non conforme si au moins un lien de téléchargement n'a aucune indication de taille accessible sur la page.","objectifs":["informer de façon préventive les utilisateurs sur la quantité de données à télécharger,","permettre aux utilisateurs de différer le téléchargement en connexion bas débit ou mobile,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics","Écoconception"],"phases":["Développement","Éditorial"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":149,"intitule":"La langue des fichiers en téléchargement est précisée lorsqu’elle diffère de celle de la page d’origine.","theme":"Liens","contexte":"Il est impossible, pour un utilisateur, de consulter un fichier avant de l’avoir téléchargé. En conséquence, il est essentiel de lui fournir un maximum d’informations avant le téléchargement. La langue est bien sûr l’une des informations importantes.","solution":"Indiquer la langue du contenu du document :\n- soit dans le libellé du lien,\n- soit via l’attribut title du lien.","controle":"Pour chaque lien de téléchargement menant à un document rédigé dans une autre langue que celle de la page concernée, vérifier qu’il est possible de connaître la langue du fichier à télécharger :\n- via une information donnée dans le libellé du lien,\n- via l’attribut title du lien reprenant et complétant le libellé de celui-ci,\n- via une information donnée dans le contexte du lien : paragraphe ou élément de liste li où il est inclus, titre de section qui le précède, cellule d’entête de tableau associée à celle où il est présent,\n- ou via une information générique donnée dans une page d’aide.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle suppose de savoir si le contenu d'un fichier téléchargeable (souvent un binaire PDF, DOC, etc.) est rédigé dans une langue différente de celle de la page. Les outils disponibles ne permettent ni de télécharger et d'analyser le contenu linguistique de fichiers binaires, ni de déduire avec certitude la langue d'un document sans l'ouvrir.","guide_analyse":"Vérification humaine : pour chaque lien de téléchargement présent sur la page, ouvrez le fichier visé et déterminez sa langue. Si elle diffère de celle de la page, vérifiez que la langue du fichier est indiquée dans le libellé du lien, dans son attribut title, dans son contexte immédiat (paragraphe, élément de liste, titre de section précédent, cellule d'en-tête de tableau) ou dans une page d'aide générique. Non conforme si au moins un lien vers un document étranger ne fournit aucune de ces indications.","objectifs":["éviter aux utilisateurs des téléchargements inutiles,","informer les utilisateurs du contenu des fichiers en téléchargement,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics","Écoconception"],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":150,"intitule":"Le nommage des fichiers internes proposés en téléchargement permet d’en identifier le contenu et la provenance.","theme":"Liens","contexte":"De nombreux fichiers proposés en téléchargement sont générés automatiquement. C’est ainsi que les systèmes de génération de factures vont proposer de télécharger toutes les factures de l’année sous le nom facture.pdf ou invoice.pdf. Dans les grands classiques, le fameux attestation.pdf n’est pas loin du podium de tête. Sur votre ordinateur, les utilisateurs les retrouvent facilement sous les noms facture(28).pdf ou attestation(14).pdf. Bref, pensez à nommer ces fichiers en tenant compte de leur contenu et de leur provenance.","solution":"Pour chaque fichier interne téléchargeable par l’utilisateur, utiliser un nom de fichier mentionnant explicitement le site ou le service de manière à permettre de l’identifier, ainsi que la nature du contenu (facture, contrat, etc).","controle":"Vérifier, pour chaque fichier interne qui peut être téléchargé par l’utilisateur, que le nom du fichier mentionne explicitement le site ou le service ainsi que la nature du contenu.","plan_outils":null,"outils":[],"strategie_justification":"Les outils ne permettent pas de détecter exhaustivement les fichiers internes proposés au téléchargement (liens générés par JavaScript, formulaires, URLs sans extension ni attribut download) ni de connaître le nom final défini par l'en-tête HTTP Content-Disposition, indispensable lorsque l'URL est opaque. Le juge ne dispose pas d'outil pour interroger les en-têtes d'une URL relevée dans les preuves.","guide_analyse":"Vérification humaine : identifiez sur la page chaque élément permettant de télécharger un fichier interne (liens, boutons, formulaires). Pour chaque fichier, notez son nom dans l'attribut download, dans l'URL, ou dans l'en-tête Content-Disposition après téléchargement. Vérifiez que ce nom mentionne explicitement le site ou le service ainsi que la nature du contenu (par exemple 'MonSite-facture-2024.pdf'). Non conforme si un fichier interne téléchargeable porte un nom générique ou incomplet.","objectifs":["améliorer l’identification des fichiers internes,","éviter les confusions pour l’utilisateur."],"tags":["Accessibilité"],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":151,"intitule":"La mise en place de liens entrants n’est ni interdite ni restreinte.","theme":"Liens","contexte":"Le lien entrant, également appelé backlink, est le Graal du référencement. Des backlinks en pagaille et le positionnement de votre site s’améliorera. Oui, mais tapi dans l’ombre, le service juridique veille avec sa ceinture et ses bretelles et interdit la mise en place de liens entrants. Ne cherchez pas de logique là-dedans, il n’y en a pas.","solution":"Ne pas publier de conditions restreignant ou interdisant la mise en place dans des sites externes de liens pointant vers le service en ligne.","controle":"Dans les pages de type « mentions légales », dans les conditions générales d’utilisation ou dans la page dédiée aux crédits du site :\n- vérifier l’absence de conditions restreignant ou interdisant la mise en place dans d’autres sites de liens pointant vers le service en ligne.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Les clauses restrictives sur les liens entrants se trouvent dans le texte des mentions légales, des conditions générales d'utilisation ou de la page de crédits : lire le contenu principal de chaque page fournie permet au juge de repérer une éventuelle interdiction ou restriction.","guide_analyse":"Parmi les pages fournies, identifiez celles qui constituent les mentions légales, les conditions générales d'utilisation ou la page de crédits. Si aucune de ces pages n'est présente dans l'échantillon, l'absence de preuve ne permet pas de conclure. Pour chaque page identifiée, lisez son texte principal et cherchez toute clause interdisant ou restreignant la création de liens entrants (backlinks) vers le site. Conforme si ces pages ne contiennent aucune interdiction ni restriction de liens entrants. Non conforme si une clause explicite interdit ou restreint la mise en place de liens pointant vers le service en ligne.","objectifs":["faciliter le référencement à travers l’obtention de liens entrants,","augmenter la visibilité du site pour les utilisateurs,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["SEO"],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.444054"},{"numero":152,"intitule":"Tous les liens internes sont valides.","theme":"Liens","contexte":"Les erreurs 404 sont très fréquentes sur le web. Autant il est difficile de les éviter avec certitude dans le cas des liens externes, autant c’est tout à fait possible dans celui des liens internes.","solution":"S’assurer que l’outil utilisé pour la rédaction des contenus possède une gestion satisfaisante et cohérente des liens internes.\nSi ce n’est pas le cas, lancer régulièrement un contrôle de la validité de l’ensemble des liens du site.","controle":"Dans l’ensemble du site :\n- vérifier l’absence de liens internes menant à des erreurs de type 404.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de vérifier le code de réponse HTTP des pages cibles des liens internes pour détecter les erreurs 404. Aucun outil du catalogue ne permet de requêter une URL arbitraire extraite d'un lien pour en contrôler le statut.","guide_analyse":"Vérification humaine ou à l'aide d'un outil d'audit dédié : sur chaque page de l'échantillon, identifiez tous les liens internes pointant vers le même domaine ou des chemins relatifs. Testez chacune de ces cibles en vérifiant leur code de réponse HTTP. Conforme si l'ensemble des liens internes testés aboutissent à des pages existantes sans erreur 404. Non conforme dès qu'un seul lien interne renvoie vers une page introuvable ou une erreur 404.","objectifs":["éviter les erreurs 404 en cours de navigation,","faciliter un accès rapide à tous les contenus,","éviter la déception des utilisateurs,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["SEO"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":153,"intitule":"Si les contenus ou services ne sont pas réservés à un public spécifique, leur accès est immédiat.","theme":"Navigation","contexte":"Oh ! Qu’elle est magnifique cette page d’accueil dite « pré-home » avec le logo de notre société suivi d’un très beau bouton « Entrez ». Jolie, certes, mais elle ne sert à rien ! Vraiment ? Promis.","solution":"Ne pas imposer d’élément différant l’accès au contenu, sauf en cas de contenu réservé à un public spécifique.","controle":"Dans le service en ligne examiné :\n- accéder successivement à l’accueil et à une page interne via une adresse directement saisie dans le navigateur ou depuis un service en ligne tiers,\n- vérifier alors que l’accès au contenu est immédiat, sans avoir à « passer » au préalable un affichage temporaire d’avertissement (sauf en cas de contenu réservé à un public spécifique comme dans le cas d’un public majeur) ou bien un message à caractère publicitaire ou informatif.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"La capture de la page rendue montre immédiatement si un interstitiel, une pré-home ou un message bloquant s'interpose entre l'utilisateur et le contenu ; cette preuve visuelle suffit à vérifier que l'accès est immédiat.","guide_analyse":"Examinez la capture de chaque page. Conforme si le contenu demandé est visible et accessible sans qu'un écran intermédiaire (pré-home, page d'entrée, choix de langue, overlay bloquant, message publicitaire ou informatif) n'impose une interaction préalable. Non conforme si la capture révèle un tel affichage temporaire ou bloquant, sauf s'il s'agit d'un avertissement justifié par un contenu réservé à un public spécifique (par exemple restriction d'âge), auquel cas vérifiez que le message correspond bien à cette exception.","objectifs":["permettre aux utilisateurs de commencer immédiatement leur navigation sur la ressource qu’ils ont demandée,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["SEO"],"phases":["Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":154,"intitule":"La navigation ne provoque pas l’ouverture de popups.","theme":"Navigation","contexte":"Vous les avez certainement reconnues, il s’agit de l’une des pestes du web : les popups. Elles ont presque disparu et peu de gens les regrettent. Certes, elles ont été remplacées par les popins (interstitiels), qui viennent vous perturber dans les pages et non dans une nouvelle page… Mais occupons-nous d’une seule chose à la fois.","solution":"Ne pas utiliser d’ouverture automatique de fenêtres popup (évènement d’ouverture de fenêtre lors du chargement d’une page) sur les pages internes.","controle":"Cette règle est à vérifier manuellement à l’occasion de l’ensemble des autres tests, en prenant soin de désactiver toute éventuelle fonctionnalité de blocage des popups dans le navigateur utilisé.\nDans toutes les pages internes :\n- vérifier que la navigation dans les pages internes ne déclenche pas l’ouverture automatique de nouvelles fenêtres.","plan_outils":{"etapes":[{"args":{"duree_s":10},"cible":"page","outil":"observer_page"}],"portee":"page","outils_juge":[]},"outils":["observer_page"],"strategie_justification":"L'outil observer_page détecte directement si la page ouvre d'elle-même une fenêtre ou une boîte de dialogue pendant les premières secondes après son chargement, ce qui correspond à l'ouverture automatique de popups visée par le contrôle.","guide_analyse":"Dans la preuve de l'observation, cherchez la mention d'une fenêtre ou d'une boîte de dialogue ouverte automatiquement. Conforme si aucune ouverture de fenêtre ni de boîte de dialogue n'est signalée après le chargement de la page. Non conforme si l'outil rapporte l'ouverture d'une fenêtre ou d'une boîte de dialogue, quelle qu'en soit la nature.","objectifs":["permettre à l’utilisateur de naviguer sans avoir d’opération spécifique à effectuer pendant la navigation,","éviter à des utilisateurs d’aides techniques d’être désorientés par l’ouverture d’une nouvelle fenêtre qui ne sera pas toujours aisément perceptible et qui perturbe notamment l’utilisation de l’historique de navigation ou qui masquera dans un lecteur d’écran la fenêtre principale,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":155,"intitule":"Il est possible de revenir à la page d’accueil depuis toutes les pages.","theme":"Navigation","contexte":"Une page d’accueil bien conçue aide considérablement les utilisateurs à s’orienter ou se réorienter. À tout moment de leur navigation, ils peuvent souhaiter y revenir. Spontanément, vous penserez certainement aux utilisateurs qui se sont perdus en cours de route, mais il y a aussi tous ceux qui sont arrivés sur des liens profonds via des moteurs de recherche, des réseaux sociaux, des messageries ou des chatbots.","solution":"Prévoir un lien vers la page d’accueil sur chaque page.\nVeiller à ce que ce lien soit de préférence toujours au même endroit (début du fil d’Ariane, menu de navigation, etc.).\nLe cas échéant, utiliser l’URL correspondant à l’adresse générique (URL du domaine) du type http://exemple.com plutôt que l’URL interne de la page, par exemple http://exemple.com/V1/accueil.html.\nSi un logo est présent dans les pages, il doit être cliquable et permettre de revenir vers l’accueil.","controle":"Cette vérification gagne à être effectuée, si possible, à partir des templates et en tenant compte des éventuels services tiers susceptibles de produire des pages qui ne correspondraient pas à ces templates.\nDans chacune des pages :\n- vérifier qu’il est possible de revenir directement à la page d’accueil depuis toutes les pages, à partir d’un lien explicite distinct de l’éventuel lien sur le logo principal.","plan_outils":{"etapes":[{"args":{"selecteur":"a","profondeur":100},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html"],"strategie_justification":"Le code HTML de chaque page contient l'ensemble des liens de navigation : l'inspection des éléments <a> permet au juge de repérer un lien explicite, distinct du logo, pointant vers la page d'accueil.","guide_analyse":"Dans les éléments relevés par inspecter_html, examinez les liens <a>, leur contenu textuel et leur attribut href. Recherchez un lien explicite vers la page d'accueil, identifiable par un libellé tel que « Accueil », « Home » ou un href pointant vers la racine du site, et vérifiez qu'il est distinct d'un éventuel lien sur le logo principal. Conforme si au moins un tel lien textuel ou explicite existe dans la page. Non conforme si seul le logo est cliquable ou si aucun lien vers l'accueil n'est présent.","objectifs":["permettre aux utilisateurs de revenir en page d’accueil en cas de désorientation,","identifier le lien principal permettant d’accéder au site."],"tags":["Accessibilité"],"phases":["Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":156,"intitule":"Chaque page affiche une information permettant de connaître son emplacement dans l’arborescence.","theme":"Navigation","contexte":"Quelles que soient les façons dont un utilisateur est arrivé sur une interface, il peut avoir besoin de s’orienter ou de se réorienter pour comprendre l’arborescence, déterminer ce qu’il peut faire et atteindre ses objectifs. En ce qui concerne les sites et applications web, la solution la plus fréquente, mais ce n’est pas la seule, est ce que l’on appelle le fil d’Ariane, ou breadcrumb.","solution":"- fournir un fil d’Ariane au début de la zone de contenu principal de la page,\n- si le site contient un seul niveau de profondeur, le signalement de l’item actif de menu (règle 157) peut suffire.","controle":"La vérification nécessite une inspection manuelle contrôlant la présence et la pertinence du fil d’Ariane sur les différentes pages ou, le cas échéant, dans les templates sous réserve de services tiers produisant un contenu spécifique.\nDans les pages examinées ou les templates :\n- vérifier la présence systématique du fil d’Ariane sur toutes les pages, à l’exception éventuelle de la page d’accueil,\n- s’assurer que le fil d’Ariane est immédiatement identifiable grâce à une mise en forme prévisible par l’utilisateur.","plan_outils":{"etapes":[{"args":{"selecteur":"[class*='readcrumb'], [class*='ariane'], [id*='readcrumb'], [id*='ariane'], nav[aria-label*='readcrumb'], nav[aria-label*='ariane'], [itemtype*='BreadcrumbList']","profondeur":20},"cible":"page","outil":"inspecter_html"},{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","capturer_page"],"strategie_justification":"La capture d'écran permet de constater visuellement la présence et l'identifiabilité du fil d'Ariane ou d'un équivalent ; l'inspection du HTML rapporte les structures déclaratives éventuelles pour étayer le constat.","guide_analyse":"Dans les éléments HTML relevés, cherchez une structure de fil d'Ariane (navigation, liste de liens hiérarchiques ou attribut schema.org). Sur la capture d'écran, examinez le haut de la page, au-dessus ou au début du contenu principal : cherchez une série de liens ou de textes indiquant l'emplacement dans l'arborescence (ex. : Accueil > Catégorie > Page). Vérifiez que cette information est immédiatement identifiable par sa mise en forme (séparateurs, style distinct, position prévisible). Conforme si la page affiche un fil d'Ariane ou un équivalent immédiatement identifiable, ou si elle semble être la page d'accueil. Non conforme si aucune indication d'emplacement n'est visible sur une page intérieure.","objectifs":["permettre à l’utilisateur de déterminer son emplacement dans le service en ligne,","simplifier le passage des moteurs de recherche,","faciliter la navigation dans l’arborescence des contenus."],"tags":["Accessibilité","Basics"],"phases":["Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.478348"},{"numero":157,"intitule":"Les items actifs de menu sont signalés.","theme":"Navigation","contexte":"Parmi les questions essentielles que peuvent se poser les utilisateurs, où suis-je ? est l’une des plus fréquentes. Alors, pour répondre à cette question, vous pourriez penser spontanément au fil d’Ariane. Mais il y a plus simple : faire en sorte que l’item de menu actif soit signalé.","solution":"Différencier l’item actif de menu correspondant à la section ou la page en cours des autres lien du menu, au moins visuellement.","controle":"Vérifier pour chaque menu de navigation que l’item actif de menu correspondant à la section ou la page affichée se différencie au moins visuellement des autres liens du menu.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"La différenciation visuelle de l'item actif dans chaque menu se constate sur le rendu de la page ; une capture pleine page permet d'examiner tous les menus présents et de comparer l'item correspondant à la page avec les autres liens.","guide_analyse":"Dans la capture, identifiez chaque menu de navigation. Pour chacun, repérez l'item correspondant à la section ou à la page affichée (généralement celui dont le libellé évoque le contenu ou le titre visible de la page). Vérifiez que cet item se distingue visuellement des autres liens du même menu par au moins un critère (couleur, graisse, soulignement, fond, bordure, icône). Conforme si, pour chaque menu présent, l'item actif présente une différence visuelle stable au chargement ; non conforme si un menu ne comporte pas d'item différencié ou si l'item supposé actif est identique aux autres liens.","objectifs":["donner aux utilisateurs un moyen supplémentaire de se repérer dans l’architecture du service en ligne."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":158,"intitule":"Les blocs de navigation de même nature sont affichés aux mêmes emplacements sur toutes les pages.","theme":"Navigation","contexte":"Quelques minutes de navigation et vous déplacez instinctivement votre souris vers l’emplacement enregistré comme étant celui du menu. Et là, tout à coup, il a changé de place. Évitez de dérouter ou d’agacer vos visiteurs.","solution":"Conserver le même positionnement à l’écran des menus de navigation sur l’ensemble du service en ligne.","controle":"Au fil des autres contrôles :\n- vérifier que les menus de navigation sont affichés au même endroit à l’écran.\nLa vérification peut également être menée en amont du projet, lors de la conception des maquettes graphiques et en aval du projet lors de l’intégration finale pour vérifier l’absence d’une dégradation de cette règle due, par exemple, à la mise en place de services tiers.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"capturer_page"}],"portee":"echantillon","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"La comparaison visuelle des captures d'écran des pages de l'échantillon, rendues dans un navigateur à format identique, permet de constater si les blocs de navigation conservent le même emplacement à l'écran.","guide_analyse":"Sur les captures de chaque page, identifiez les blocs de navigation de même nature (menu principal, menu secondaire, pied de page, etc.). Comparez leur emplacement à l'écran d'une page à l'autre. Conforme si chaque bloc de navigation de même nature occupe la même position sur toutes les pages de l'échantillon. Non conforme si un menu change de place, disparaît ou apparaît à un endroit différent sur au moins une page. Si une page ne présente pas un bloc de navigation présent sur les autres sans raison fonctionnelle évidente, cela constitue également une non-conformité.","objectifs":["faciliter l’apprentissage de la navigation sur l’interface,","faciliter le repérage de l’information,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":159,"intitule":"Les icônes de navigation sont accompagnées d’une légende explicite.","theme":"Navigation","contexte":"Très peu de services en ligne peuvent se permettre de fournir une navigation exclusivement à partir d’icônes. Dans la plupart des cas, même si la signification d’une icône vous semble évidente, elle ne le sera pas forcément pour vos utilisateurs. Soyez prudent : doublez l’image avec du texte.","solution":"La nature de la cible de chaque icône-lien lorsqu’elle n’est pas accompagnée d’un contenu textuel est précisée par l’attribut alt de l’image et par l’attribut title ou aria-label du lien.","controle":"Vérifier que chaque icône de navigation ou d’action sans contenu textuel associé est dotée :\n- d’un attribut alt pertinent pour l’élément img,\n- d’un attribut title ou aria-label pertinent pour l’élément a, button ou input.","plan_outils":{"etapes":[{"args":{"selecteur":"a, button, input[type=\"image\"]","profondeur":100},"cible":"page","outil":"inspecter_html"},{"args":{"selecteur":"a img, button img","profondeur":100},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html"],"strategie_justification":"L'inspection du code HTML permet d'identifier les éléments interactifs de navigation ou d'action et les images qu'ils contiennent ; le juge vérifie la présence des attributs requis par la règle sur les éléments dépourvus de contenu textuel.","guide_analyse":"Dans l'étape 1, repérez les liens, boutons et inputs image qui ne contiennent aucun texte visible (contenu textuel vide). Pour chacun de ces éléments, vérifiez qu'il possède un attribut title ou aria-label non vide. Dans l'étape 2, vérifiez que chaque image située dans un lien ou un bouton dispose d'un attribut alt non vide. La page est conforme si chaque icône sans texte associé dispose à la fois d'un alt sur l'image et d'un title ou aria-label sur l'élément interactif. Elle est non conforme dès qu'une icône sans texte manque de l'une ou l'autre de ces légendes.","objectifs":["limiter le temps d’apprentissage de l’interface,","faciliter la compréhension des icônes,","limiter le risque d’erreurs."],"tags":["Accessibilité","Basics"],"phases":["Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.513987"},{"numero":160,"intitule":"Les mécanismes de fermeture de fenêtres sont visuellement rattachés à leur contenu.","theme":"Navigation","contexte":"Ces dernières années, les services publicité et marketing ont fait preuve d’une inventivité redoutable pour faire en sorte que vous soyez en contact le plus longtemps possible avec leurs contenus. Pour cela, il arrive que les boutons de fermeture des fenêtres publicitaires soient éloignés et même franchement séparés des contenus. Quelquefois, l’utilisation des transparences permet d’afficher la croix de fermeture dans une zone isolée de l’écran. Vous finissez toujours par les trouver, mais au bout de combien de temps ?","solution":"Positionner chaque bouton de fermeture de fenêtre modale ou similaire dans le bloc visuel de celle-ci (généralement dans le coin supérieur droit) ou de manière contigüe.","controle":"Vérifier que chaque bouton de fermeture de fenêtre est visuellement placé dans le bloc concerné ou contigu.","plan_outils":{"etapes":[{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"La capture d'écran rendue par le navigateur montre l'aspect visuel des fenêtres et la position de leurs boutons de fermeture : elle suffit à vérifier le rattachement visuel au contenu.","guide_analyse":"Sur la capture d'écran, cherchez une fenêtre modale, pop-up ou bannière comportant un bouton de fermeture (icône croix, mention « fermer », etc.). Si la page n'en contient aucune, le verdict est non applicable. Pour chaque mécanisme de fermeture trouvé, vérifiez qu'il est visuellement placé à l'intérieur du bloc de la fenêtre ou contigu à celui-ci, généralement dans le coin supérieur droit. Conforme si chaque bouton de fermeture respecte ce rattachement visuel ; non conforme si un bouton est isolé, éloigné ou situé en dehors du bloc concerné sans contiguïté.","objectifs":["limiter le temps d’apprentissage de l’interface,","accélérer l’accès aux contenus,","faciliter la navigation."],"tags":["Accessibilité"],"phases":["Fonctionnel"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":161,"intitule":"Les mécanismes de fermetures de fenêtres sont immédiatement disponibles.","theme":"Navigation","contexte":"Certaines fenêtres, notamment de type publicitaire ou vidéo, ne peuvent être fermées qu’après un délai. Cette temporisation vous impose d’attendre pour les fermer. De nombreux utilisateurs fuient ce type de pratique en fermant les onglets. D’autres subissent et attendent, mais l’image du service peut en être dégradée. Si vous proposez de la publicité, des fenêtres de promotion ou des vidéos en vignettes flottantes, soyez attentif à ce genre de pratique.","solution":"- éviter tout contenu temporaire de type publicité qui retarde l’accès à la possibilité de fermer une fenêtre modale ou similaire,\n- permettre la fermeture immédiate des vidéos ouvertes automatiquement en vignettes flottantes.","controle":"S’assurer que chaque fenêtre modale, vidéo en vignette flottante ou similaire peut être fermée dès son affichage.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de vérifier que chaque fenêtre modale ou vignette flottante peut être fermée immédiatement dès son affichage, ce qui nécessite d'interagir avec leurs mécanismes de fermeture au moment précis de leur apparition pour détecter d'éventuelles temporisations. Les outils ne permettent ni de déclencher toutes les fenêtres possibles ni de tester le clic sur des boutons de fermeture arbitraires.","guide_analyse":"Vérification humaine : identifiez sur le site les fenêtres modales, vidéos en vignettes flottantes et éléments similaires, y compris ceux qui apparaissent après une interaction. Pour chacun, vérifiez qu'un bouton ou un lien de fermeture est visible, accessible et actif dès l'ouverture, sans délai imposé. Non conforme si une fenêtre ne peut être fermée immédiatement ou si son mécanisme de fermeture n'est pas disponible dès son affichage.","objectifs":["limiter le temps d’apprentissage de l’interface,","accélérer l’accès aux contenus,","réduire le taux de rebond."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.548815"},{"numero":162,"intitule":"Les nouvelles fenêtres dimensionnées et les fenêtres modales sont dotées d’un bouton de fermeture explicite.","theme":"Navigation","contexte":"Fermer une fenêtre de navigateur vous semble évident ? Ce n’est pas le cas pour tous les utilisateurs, certains (séniors, malvoyants, usagers mobiles ou débutants) peuvent avoir des difficultés. Alors, pensez à eux.","solution":"Placer, dans chaque fenêtre dimensionnée ou modale, un bouton ou un lien avec un libellé explicite pour la fermeture et associer ce bouton à une action de fermeture.","controle":"Pour chaque fenêtre « réelle » (popup dimensionnée) ou chaque fenêtre simulée affichée en surimpression du contenu (fenêtre modale), et ce, quelle que soit la technologie utilisée :\n- vérifier que le corps des fenêtres dimensionnées et des fenêtres modales contient un bouton ou un lien permettant de les fermer,\n- vérifier que le libellé du bouton ou du lien de fermeture est explicite.\nLes fenêtres dont la fermeture ne se fait qu’implicitement, par exemple via la touche d’échappement, invalident cette règle.","plan_outils":null,"outils":[],"strategie_justification":"Les outils ne permettent pas d'interagir avec la page pour déclencher l'ouverture de modales ou de popups, ni d'inspecter le contenu d'une fenêtre popup externe au DOM de la page fournie. Seules les fenêtres s'ouvrant automatiquement seraient visibles, ce qui ne permet pas de vérifier exhaustivement la règle.","guide_analyse":"Naviguez sur le site et déclenchez chaque action susceptible d'ouvrir une fenêtre dimensionnée ou une modale. Pour chaque fenêtre affichée, vérifiez qu'elle contient un bouton ou un lien de fermeture avec un libellé explicite, par exemple « Fermer » ou « Fermer cette fenêtre ». Un libellé seul « X » est insuffisant s'il n'est pas explicité. Non conforme si une fenêtre ne dispose que d'une fermeture implicite, par clic en dehors ou touche Échap, ou si le bouton de fermeture manque ou a un libellé non explicite.","objectifs":["donner aux utilisateurs des indications explicites pour fermer une fenêtre ou une boîte modale,","accélérer l’accès aux contenus."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":163,"intitule":"Les mécanismes de fermeture de fenêtres sont affichés aux mêmes emplacements sur toutes les pages.","theme":"Navigation","contexte":"Les utilisateurs apprennent les interfaces. Chaque opération effectuée est mémorisée et capitalisée. Chaque modification d’emplacement d’un bouton ou d’une croix de fermeture va imposer un travail de la part de vos utilisateurs, c’est ce que les ergonomes appellent la charge mentale. Un conseil : diminuez la charge mentale demandée à vos utilisateurs.","solution":"Opter pour un positionnement systématique des boutons de fermeture dans un même emplacement, pour toutes les fenêtres modales et similaires (par exemple, en haut à droite de la fenêtre).","controle":"S’assurer visuellement que l’emplacement de tous les boutons de fermeture est identique à travers le service en ligne.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de vérifier visuellement la position des boutons de fermeture sur toutes les fenêtres modales du service, mais ces fenêtres nécessitent généralement une interaction (clic) pour s'ouvrir et aucun outil ne mesure la position à l'écran des éléments pour permettre une comparaison objective.","guide_analyse":"Vérification humaine : parcourez le site et déclenchez l'ouverture de chaque fenêtre modale, pop-in, bannière ou boîte de dialogue (cookies, newsletters, formulaires, etc.). Pour chacune, repérez visuellement le mécanisme de fermeture (croix, bouton, lien). Conforme si tous ces mécanismes occupent le même emplacement relatif dans leur fenêtre (par exemple systématiquement en haut à droite). Non conforme dès qu'un bouton de fermeture est positionné différemment des autres.","objectifs":["limiter le temps d’apprentissage de l’interface,","accélérer l’accès aux contenus,","faciliter la navigation."],"tags":["Accessibilité"],"phases":["Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":1,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":164,"intitule":"Chaque page contient des liens d’accès rapide placés au début du code source.","theme":"Navigation","contexte":"Vous avez certainement vu ces liens en haut de certaines pages. Ils permettent à certains utilisateurs d’accéder bien plus vite aux contenus.","solution":"Fournir en début de code HTML, avant tout autre lien ou formulaire présent dans la page, les liens visant des ancres correspondantes :\n- vers le menu principal si celui-ci n’est pas immédiatement placé après l’entête de page,\n- vers le contenu principal si celui-ci n’est pas immédiatement placé après l’entête de page,\n- vers le formulaire du moteur de recherche si celui-ci n’est pas immédiatement placé après l’entête de page.\nLe cas échéant, ce menu d’accès rapide peut être masqué au chargement de la page et s’afficher lors de la première tabulation entrant dans celle-ci (via JavaScript ou CSS).\nAu-delà de cette règle, il est recommandé de baliser explicitement les régions de la page à l’aide des éléments de landmarks (header, nav, main, footer) et de leurs équivalents ARIA, ou au moins la région principale correspondant au contenu (main)","controle":"Cette règle gagne à être vérifiée en association avec l’ensemble des règles concernant la navigation au clavier, puisque, si ces liens d’accès rapide sont présents, ils doivent au minimum apparaître dès la première tabulation dans la page.\nLors de la navigation dans le site ou de l’inspection des templates (sous réserve de tenir compte des pages dépendants de services tiers) :\n- vérifier la présence des liens d’accès rapide au menu, au contenu et à la recherche selon l’organisation de la page,\n- vérifier qu’ils sont bien placés dans le code de manière à apparaître dès la première tabulation dans la page,\n- vérifier qu’en cas de masquage par défaut, ils sont affichés lisiblement lors de la première tabulation, à un emplacement prévisible par l’utilisateur,\n- vérifier que leur fonctionnement est effectif, c’est-à-dire qu’ils permettent d’accéder au menu ou à la zone de contenu et d’y poursuivre immédiatement la navigation au clavier, ou au champ de saisie du formulaire de recherche et de procéder à la saisie.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle officiel exige de vérifier le fonctionnement effectif des liens d'accès rapide, c'est-à-dire d'activer chaque lien et de s'assurer que le focus se déplace bien dans la zone cible (menu, contenu ou recherche) pour y poursuivre immédiatement la navigation au clavier. Aucun outil du catalogue ne permet d'activer un lien ni de poursuivre le parcours clavier après activation.","guide_analyse":"Vérification humaine : inspectez le code source de la page pour repérer les liens d'accès rapide placés avant tout autre lien ou formulaire. Vérifiez à la première tabulation qu'ils apparaissent en premier et, s'ils sont masqués par défaut, qu'ils s'affichent lisiblement au focus. Activez ensuite chaque lien et assurez-vous que le focus se déplace dans la zone cible et que la navigation au clavier peut se poursuivre immédiatement depuis cette zone. Conforme si les liens requis sont présents, bien ordonnés, visibles au focus et fonctionnels ; non conforme sinon.","objectifs":["permettre aux utilisateurs qui consultent les pages de manière linéaire (mode vocal) ou semi-linéaire (écran de faible largeur) de ne pas avoir à défiler l’ensemble des éléments sur chaque page pour accéder aux contenus,","fournir des raccourcis accélérant la navigation au clavier et évitant des actions au clavier répétées pour parcourir la page et atteindre la zone souhaitée,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":165,"intitule":"Le focus clavier n’est ni supprimé ni masqué.","theme":"Navigation","contexte":"Le focus clavier signale où se trouve le curseur dans une page. Pour le voir pendant que vous naviguez, appuyez sur la touche Tabulation de votre clavier, vous le verrez changer d’emplacement dans la page. Si vous ne le voyez pas, c’est peut-être que le concepteur a eu la mauvaise idée de le supprimer ou de le masquer.","solution":"Veiller à ne pas masquer ou supprimer l’effet visuel de prise de focus qui indique quel est l’élément atteint lors de la navigation au clavier. En particulier, ne pas annuler la valeur par défaut de la propriété CSS outline sans la remplacer par une autre valeur personnalisée ou un effet visuel suffisamment perceptible.\nNe pas supprimer via JavaScript la prise de focus clavier (exploitation de l’évènement onblur).","controle":"Ce contrôle s’effectue sur l’ensemble des éléments interactifs, prioritairement à l’aide de la touche tabulation et, dans l’interface de certains widgets, à l’aide de touches de déplacement spécifiques (touches flèches).\nPour chaque élément interactif contenu dans les pages examinées :\n- vérifier que l’indication visuelle du focus par défaut du navigateur est au moins présente ou qu’une indication visuelle spécifique a été aménagée.","plan_outils":{"etapes":[{"args":{"nb_tabulations":50},"cible":"page","outil":"parcourir_au_clavier"}],"portee":"page","outils_juge":[]},"outils":["parcourir_au_clavier"],"strategie_justification":"Le parcours au clavier teste directement la navigation par Tab et rapporte, pour chaque élément interactif atteint, si l'indication visuelle du focus est présente ou masquée, ce qui couvre le cœur du contrôle.","guide_analyse":"Dans la liste des éléments parcourus, examinez chaque entrée et sa mention de visibilité du focus. Conforme si tous les éléments interactifs atteints par le parcours Tab présentent une indication visuelle de focus (outline du navigateur ou style personnalisé perceptible). Non conforme si au moins un élément atteint n'a pas de focus visible ou si le focus est masqué ; citez le rôle et le nom de l'élément concerné.","objectifs":["permettre la navigation au clavier ou via des périphériques d’entrées ou des dispositifs qui ne reposent pas sur la souris,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":166,"intitule":"La navigation au clavier permet d’interagir avec l’intégralité des contenus et services.","theme":"Navigation","contexte":"La souris n’est pas le mode exclusif de navigation. Les utilisateurs qui ne voient pas l’emplacement du pointeur visuel et ceux qui souhaitent naviguer au clavier doivent pouvoir eux aussi accéder à vos contenus et services.","solution":"Recourir à des gestionnaires d’évènements universels en cas d’interaction basée sur JavaScript (par exemple, onclick pour un lien a ou pour un champ ou contrôle de formulaire) ou, à défaut, compléter les gestionnaires d’évènements non universels (onmouseover par exemple) par un second gestionnaire permettant l’accès clavier (onfocus par exemple) ou encore fournir un moyen d’accès alternatif.","controle":"Cette vérification s’applique à l’ensemble des éléments interactifs : liens, boutons, champs de formulaires, widgets JavaScript, etc. Le mode d’interaction par défaut est la touche tabulation pour atteindre les liens, les champs et les contrôles, puis la touche entrée pour les activer. Dans certains widgets, un mode d’interaction spécifique peut être présent : barre d’espace pour valider, touches flèches pour se déplacer, touche d’échappement pour fermer ou sortir. Autant que possible dans ce cas, ces touches spécifiques devraient être indiquées à l’utilisateur.\nAu sein de chaque page examinée :\n- vérifier que l’ensemble des interactions, liens, boutons, champs de formulaires, présents dans les pages sont utilisables au clavier, à l’exception de ceux pour lesquels cela n’aurait pas de sens, comme une fonctionnalité de tracé à la souris.","plan_outils":{"etapes":[{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"},{"args":{"nb_tabulations":50},"cible":"page","outil":"parcourir_au_clavier"}],"portee":"page","outils_juge":[]},"outils":["capturer_page","parcourir_au_clavier"],"strategie_justification":"La capture d'écran révèle les éléments interactifs présents à l'écran ; le parcours au clavier liste ceux qui sont réellement atteignables par Tab, leur rôle et la visibilité du focus. La comparaison des deux preuves permet de détecter tout élément utilisable à la souris mais inaccessible au clavier.","guide_analyse":"Sur la capture, identifiez tous les éléments avec lesquels un utilisateur peut interagir : liens, boutons, champs de formulaire, widgets, etc. Dans le parcours au clavier, vérifiez que chacun de ces éléments apparaît dans l'ordre de tabulation avec un rôle explicite (link, button, textbox, etc.) et que l'indicateur de focus est visible. Conforme si tous les éléments interactifs visibles sont atteignables au clavier et utilisables. Non conforme si un élément interactif visible est absent du parcours, s'il possède un rôle inadéquat (par exemple generic) ou si le focus est invisible. Les éléments pour lesquels l'interaction au clavier n'a pas de sens, comme un tracé à la main, peuvent être exclus du jugement.","objectifs":["permettre la navigation au clavier pour les utilisateurs ayant une préférence pour cette pratique,","permettre la consultation des contenus et l’utilisation des services indépendamment du périphérique d’entrée, afin de les rendre accessibles aux utilisateurs d’outils d’assistance (lecteurs d’écran, par exemple) qui n’utilisent que le clavier, ou un périphérique plus spécifique reposant sur les mêmes mécanismes que le clavier (bouton poussoir, par exemple),","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.575566"},{"numero":167,"intitule":"La navigation au clavier s’effectue dans un ordre prévisible.","theme":"Navigation","contexte":"De nombreux utilisateurs naviguent sans souris, avec les touches de leur clavier : facilitez-leur la vie.","solution":"Organiser les contenus dans l’ordre linéaire du code HTML de manière à regrouper et ordonner logiquement les liens et les contrôles de formulaires qui apparaissent les uns à la suite des autres à l’affichage et ordonner logiquement les principaux blocs de navigation et de contenu composant la page.\nLe cas échéant, et en dernier ressort, recourir à l’attribut HTML tabindex pour créer un ordre de navigation au clavier spécifique, différent de l’ordre par défaut issu de l’organisation des liens et des contrôles de formulaires dans le code.\nGérer spécifiquement l’ordre de navigation au clavier en cas de fenêtre modale ou de widget.","controle":"Ce contrôle s’effectue sur l’ensemble des éléments interactifs, prioritairement à l’aide de la touche tabulation et, dans l’interface de certains widgets, à l’aide de touches de déplacement spécifiques (touches flèches) :\n- naviguer au clavier puis vérifier que l’ordre de passage d’un élément à un autre est identique entre les différentes pages,\n- vérifier que l’ordre de passage est adapté au contenu concerné. Par exemple, la navigation clavier dans une pseudo-popup JavaScript commence par son bouton de fermeture,\n- contrôler que l’ordre est prévisible par l’utilisateur : sauf exceptions, cet ordre doit être aussi proche que possible de l’ordre de lecture, par exemple haut-bas et gauche-droite pour les écritures lisibles de gauche à droite.","plan_outils":{"etapes":[{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"},{"args":{"nb_tabulations":50},"cible":"page","outil":"parcourir_au_clavier"}],"portee":"page","outils_juge":[]},"outils":["capturer_page","parcourir_au_clavier"],"strategie_justification":"Le parcours au clavier établit la séquence exacte des éléments focusables à la tabulation ; la capture d'écran montre leur disposition visuelle et l'ordre de lecture. Le juge compare les deux pour vérifier la prévisibilité de l'ordre et sa cohérence entre les pages fournies.","guide_analyse":"Dans le parcours au clavier, examinez la liste des éléments qui reçoivent le focus dans l'ordre. Sur la capture d'écran, repérez la position visuelle de ces mêmes éléments et l'ordre de lecture général (gauche-droite, haut-bas). Conforme si la séquence de tabulation suit cet ordre visuel de manière logique et prévisible, y compris au sein des formulaires et des blocs de contenu. Si plusieurs pages sont fournies, l'ordre des éléments communs (menu, pied de page) doit être identique d'une page à l'autre. Non conforme si le focus saute d'un élément à un autre dans un ordre incohérent avec la disposition visuelle, ou si des éléments interactifs apparaissent dans un ordre différent entre les pages.","objectifs":["faciliter la navigation au clavier,","permettre aux utilisateurs de clavier de se doter de repères de navigation,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":168,"intitule":"Un moteur de recherche interne est proposé.","theme":"Navigation","contexte":"Le moteur de recherche est, avec le plan du site, les menus et le lien de retour à l’accueil, un des moyens fondamentaux de réorientation et d’accès à l’information. Rendez-le présent et facile d’accès.","solution":"Proposer un formulaire et une fonctionnalité de recherche simple, qu’il s’agisse d’une solution interne ou de l’incorporation d’une solution externe.","controle":"Dans toutes les pages évaluées ou bien en contrôlant les templates (sous réserve de tenir compte de pages dépendant de solutions tierces) :\n- vérifier manuellement la présence systématique d’un moteur de recherche.","plan_outils":{"etapes":[{"args":{"selecteur":"[role=\"search\"], input[type=\"search\"], input[name=\"q\"], input[name=\"query\"], input[name=\"search\"]"},"cible":"page","outil":"inspecter_html"},{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","capturer_page"],"strategie_justification":"La présence d'un moteur de recherche se constate dans le code HTML par les éléments de formulaire dédiés et visuellement sur la capture d'écran ; la combinaison des deux preuves permet de vérifier qu'il est présent et facile d'accès sur chaque page.","guide_analyse":"Examinez les éléments HTML relevés : cherchez un formulaire de recherche (role search, input type search, ou input nommé q/query/search). Sur la capture d'écran, vérifiez qu'un champ de recherche est visible et identifiable (icône de loupe, placeholder explicite). Conforme si chaque page contient un moteur de recherche dans le HTML qui est aussi visible sur la capture, ou si la capture montre un moteur injecté par JavaScript. Non conforme si une page n'a aucun élément de recherche dans le code ni à l'écran, ou si le formulaire HTML est présent mais masqué sur la capture.","objectifs":["fournir aux utilisateurs une solution de navigation alternative et d’accès rapide aux contenus liés à des mots-clés retenus par ceux-ci,","diminuer l’impact énergétique lié à la consultation,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics","Écoconception"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.598995"},{"numero":169,"intitule":"Chaque page de résultats de recherche peut être atteinte via une adresse web.","theme":"Navigation","contexte":"Vous avez fait une recherche en ligne. Vous avez testé 10 requêtes avant de trouver exactement celle qui permet d’obtenir la liste idéale de produits. C’est magnifique. Mais lorsque vous voulez envoyer cette liste de résultats à quelqu’un, c’est impossible, car le lien est générique et ne permet pas d’afficher les résultats. C’est que le site sur lequel vous vous trouvez ne respecte pas cette règle. C’est bien dommage pour vous, et pour lui aussi.","solution":"Gérer les requêtes du formulaire de recherche en utilisant la méthode GET.","controle":"Faire une recherche et contrôler que l’URL de la page de résultats permet d’accéder à ceux-ci.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de soumettre le formulaire de recherche du site et de vérifier que l'URL de la page de résultats obtenue permet d'y accéder directement ; aucun outil disponible ne soumet de formulaire ni ne déclenche de requête de recherche au serveur.","guide_analyse":"Vérification humaine : localisez le ou les formulaires de recherche du site, saisissez une requête dans le champ et soumettez-la. Contrôlez que l'URL de la page affichée contient les paramètres de la recherche et qu'elle permet d'accéder directement à ces résultats, par exemple en ouvrant cette URL dans un nouvel onglet. Non conforme si l'URL reste générique, ne change pas après la soumission ou ne permet pas de retrouver les résultats.","objectifs":["permettre à l’utilisateur de partager ou de conserver dans ses signets un résultat de recherche,","diminuer l’impact énergétique lié à la consultation."],"tags":["Écoconception"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":170,"intitule":"Il est possible de relancer une recherche depuis sa page de résultats.","theme":"Navigation","contexte":"Utiliser un moteur de recherche ne donne pas forcément à tous les coups une réponse correcte et adaptée. Très souvent les utilisateurs reformulent leur recherche ou changent certains paramètres. La présence d’un lien permettant de relancer la recherche, voire même de modifier ses paramètres, peut faire gagner du temps et éviter de fausses manipulations.","solution":"Dans chaque page de résultat de recherche, afficher le formulaire de recherche avec la saisie précédente de l’utilisateur, de manière à ce qu’il puisse modifier celle-ci et valider immédiatement une nouvelle recherche.","controle":"Vérifier, pour chaque page de résultat de recherche, que l’utilisateur peut valider immédiatement une nouvelle recherche à l’aide du formulaire de recherche prérempli avec sa saisie précédente, modifiable.","plan_outils":{"etapes":[{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"},{"args":{"selecteur":"input[type=search], input[name=q], input[name=query], input[name=search], input[name=recherche], input[name=s], button[type=submit], input[type=submit]"},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["capturer_page","inspecter_html"],"strategie_justification":"La capture d'écran permet de constater visuellement si la page est une page de résultats et si un formulaire de recherche prérempli y est présent ; l'inspection du HTML vérifie la présence des champs et du bouton de soumission nécessaires à une nouvelle validation immédiate.","guide_analyse":"Sur la capture, repérez si la page présente une liste de résultats ou un récapitulatif de recherche : si ce n'est pas une page de résultats de recherche, le verdict est non applicable. Dans les éléments HTML relevés, vérifiez qu'un formulaire contient un champ de saisie prérempli avec la requête précédente et un bouton permettant de soumettre immédiatement une nouvelle recherche. Conforme si le champ est présent, modifiable et prêt à être validé sans étape intermédiaire ; non conforme si la page est une page de résultats mais que le formulaire est absent, que le champ n'est pas prérempli ou que la validation n'est pas immédiate.","objectifs":["améliorer et accélérer les opérations de recherche par les utilisateurs en évitant les retours à la page de recherche initiale."],"tags":["Accessibilité","Écoconception"],"phases":["Développement","Fonctionnel"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":171,"intitule":"Un plan du site est disponible depuis chaque page.","theme":"Navigation","contexte":"Dès qu’un service en ligne est un peu complexe, un plan du site est toujours utile pour s’y orienter.","solution":"Créer un plan de site qui donne accès, directement ou indirectement, à la totalité des pages sous la forme d’une liste de liens textuels explicites.\nStructurer cette liste de manière à refléter l’organisation des rubriques, à l’aide d’éléments de titre et d’éléments de liste imbriqués.\nLa profondeur de l’arborescence à représenter varie en fonction des contenus, mais elle est en général limitée aux trois premiers niveaux. Les pages satellites, telles que la page Contact et les mentions légales doivent figurer dans le plan de site.","controle":"Pour l’ensemble du service en ligne :\n- vérifier la présence d’une page de plan de site,\n- contrôler qu’un lien vers celui-ci est disponible dans chaque page du site.\nCette vérification gagne à être effectuée si possible à partir des templates, en tenant compte des éventuels services tiers.\nL’emplacement du lien vers le plan de site est indifférent (entête, menu, pied de page), mais il est préférable qu’il soit constant sur l’ensemble du site. La présence du lien « plan de site » est particulièrement pertinente dans les pages 404 et 403.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"},{"args":{"selecteur":"footer a, header a, nav a, [role=\"contentinfo\"] a, [role=\"navigation\"] a","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page","inspecter_html"],"strategie_justification":"Le plan du site se reconnaît à son contenu principal listant les rubriques du service ; le lien vers cette page se trouve quasi toujours dans le pied de page, l'en-tête ou la navigation principale. Deux inspections suffisent à établir ces preuves sur l'échantillon.","guide_analyse":"Dans les contenus lus par lire_page, identifiez une page de plan du site : son texte principal doit être une liste de liens structurée reflétant l'architecture du site. Notez son URL. Dans les éléments HTML inspectés, cherchez dans chaque page un lien explicite vers cette URL ou vers une page de plan du site (libellé du type 'Plan du site', 'Sitemap', 'Carte du site', etc.). Conforme si une page de l'échantillon est un plan du site et si toutes les autres pages de l'échantillon contiennent au moins un lien vers cette page. Non conforme si aucune page de l'échantillon n'est un plan du site ou si une page de l'échantillon ne comporte pas de lien vers celui-ci.","objectifs":["fournir aux utilisateurs une solution en cas de désorientation, pour naviguer, se repérer et pour visualiser l’ensemble des contenus,","inciter les responsables du contenu à représenter graphiquement et à rationaliser leur contenu,","améliorer l’accessibilité des contenus aux personnes handicapées,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","Basics","SEO"],"phases":["Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":172,"intitule":"Les limites de temps imposées à une action ou un accès sont indiquées.","theme":"Navigation","contexte":"Il arrive que certaines actions ou l’accès à certaines pages ou données ne soient disponibles que pendant un laps de temps donné. Par exemple, les réservations de transport ou de concert ne peuvent être garanties de manière illimitée. Ou encore, les codes d’authentification à double facteur n’ont qu’une durée de validité limitée. Dans ces cas-là, votre panier ne sera valable que pendant un certain temps et l’achat devra être mené à bien avant ce délai. Cela ne pose pas de problème majeur à la condition que les utilisateurs en soient avertis.","solution":"Pour toute action que l’utilisateur doit exécuter dans une limite de temps imposée, ou toute action ou information mises à disposition pendant un temps limité, informer l’utilisateur de cette limite et de sa durée, avant le déclenchement de l’action ou la mise à disposition (Ceci s’applique également au délai de validité des codes d’authentification à double facteur).","controle":"Pour toute action que l’utilisateur doit exécuter dans une limite de temps imposée, ou toute action ou information mises à disposition pendant un temps limité, vérifier que l’utilisateur est informé de cette limite et de sa durée, avant le déclenchement de l’action ou la mise à disposition.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle porte sur des actions fonctionnelles (réservation, panier, authentification) qui nécessitent de remplir des formulaires, de se connecter ou de parcourir un processus multi-étapes pour révéler une limite de temps ; les outils ne permettent pas de déclencher ces actions ni d'observer les états préalables à leur déclenchement.","guide_analyse":"Vérification humaine : identifiez toutes les actions du site soumises à une limite de temps (panier, réservation, code à usage unique, session). Pour chacune, engagez le processus complet et vérifiez qu'avant le déclenchement de l'action, ou avant l'affichage de l'information sensible, un message clair indique la durée ou l'échéance impartie. Vérifiez également les pages d'aide ou de conditions associées. Non conforme si une action limitée en temps ne prévient pas l'utilisateur de sa limite avant qu'il ne s'engage.","objectifs":["avertir des utilisateurs ayant des contraintes spécifiques de manipulation ou de temps,","éviter les pertes de données et de temps pour l’utilisateur,","prévenir les échecs de commande."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":173,"intitule":"L’inscription aux newsletters est soumise à un processus de confirmation.","theme":"Newsletter","contexte":"Le spam est suffisamment pénible, ne lui donnons pas un coup de pouce. Faites-en sorte que l’inscription à votre newsletter ne puisse être faite que par le vrai détenteur de l’adresse e-mail.","solution":"Envoyer un e-mail permettant l’inscription définitive via la saisie d’un mot de passe, un clic sur un lien, etc.","controle":"Cette vérification nécessite de s’abonner à la newsletter concernée.\nPour chaque site proposant de s’abonner à une newsletter :\n- effectuer une inscription de test et vérifier la réception d’un e-mail de confirmation.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle officiel impose de soumettre un formulaire d'inscription à la newsletter et de vérifier la réception d'un e-mail de confirmation dans une boîte mail externe. Aucun outil du catalogue ne permet d'envoyer un formulaire ni d'observer une boîte e-mail hors du site.","guide_analyse":"Vérification humaine : identifiez le ou les formulaires d'inscription à une newsletter sur le site. Pour chacun, saisissez une adresse e-mail de test et soumettez l'inscription. Consultez ensuite la boîte de réception de cette adresse et vérifiez qu'un e-mail de confirmation y a été envoyé, exigeant une action (clic sur un lien, saisie d'un mot de passe, etc.) pour valider l'inscription. Conforme si l'inscription définitive est conditionnée à cette confirmation ; non conforme si l'inscription est immédiate ou si aucun e-mail de confirmation n'est reçu.","objectifs":["éviter l’inscription à une newsletter par un tiers usurpant une identité,","vérifier que l’adresse e-mail a été saisie sans erreur,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Basics","Privacy"],"phases":["Développement","Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":174,"intitule":"Un lien de désinscription est présent dans chaque newsletter.","theme":"Newsletter","contexte":"Pouvoir se désinscrire facilement d’une newsletter est fortement apprécié par les utilisateurs. Vous pouvez essayer de les en empêcher, mais vous vous exposerez à des plaintes ou des reproches.","solution":"Faire figurer dans chaque newsletter un lien permettant de se désinscrire.","controle":"Cette vérification nécessite de s’abonner à la newsletter concernée et d’en recevoir un exemplaire.\nPour chaque site proposant de s’abonner à une newsletter :\n- vérifier la présence du lien de désinscription dans les newsletters,\n- vérifier que le processus se déroule correctement et mène effectivement à une désinscription.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de s'abonner à une newsletter, de recevoir un exemplaire dans une boîte mail et de tester le lien de désinscription jusqu'à sa conclusion, ce qui nécessite des interactions et des observations hors du site web que les outils ne peuvent pas réaliser.","guide_analyse":"Vérification humaine : inscrivez-vous à la newsletter du site avec une adresse de test. Ouvrez le mail reçu et recherchez un lien de désinscription, généralement en bas du message. Cliquez sur ce lien et suivez le processus jusqu'au bout pour vérifier qu'il aboutit effectivement à la désinscription. Non conforme si le lien est absent, illisible, ou si le processus ne mène pas à une désinscription confirmée.","objectifs":["permettre aux abonnés de ne plus recevoir une newsletter,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Accessibilité","Privacy"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":175,"intitule":"La désinscription depuis une newsletter ne demande pas de confirmation par e-mail.","theme":"Newsletter","contexte":"Lorsqu’il s’agit de se désinscrire d’un envoi de newsletter ou d’e-mails publicitaires, le clic sur lien de désinscription doit permettre de confirmer celle-ci. Toute autre demande, comme la saisie de l’adresse e-mail ou l’envoi d’un e-mail de demande d’annulation est passablement agaçante pour les utilisateurs. C’est tout simple.","solution":"Gérer spécifiquement le processus de désinscription depuis le lien présent dans le corps de la newsletter, de manière à ce que l’utilisateur n’ait qu’une confirmation en ligne à donner, sans envoi d’un e-mail de demande de confirmation.","controle":"Activer le lien de désinscription présent dans la newsletter et vérifier que le processus ne renvoie pas d’e-mail de demande de confirmation.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle porte sur un lien reçu par e-mail dans une newsletter et sur l'absence d'e-mail de confirmation après activation : il faut consulter une boîte mail, cliquer un lien externe et observer un nouvel envoi, ce qu'aucun outil de page web ne permet.","guide_analyse":"Vérification humaine : inscrivez une adresse e-mail de test à la newsletter du site. Ouvrez l'e-mail reçu et activez le lien de désinscription. Vérifiez que la désinscription est confirmée en ligne sans demander la saisie de l'adresse e-mail ni l'envoi d'un e-mail de confirmation. Non conforme si un e-mail de demande de confirmation est envoyé ou si l'utilisateur doit écrire pour se désinscrire.","objectifs":["ne pas imposer à l’utilisateur une étape qui n’est pas nécessaire dans ce contexte,","diminuer l’impact énergétique lié à la consultation,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Privacy","Écoconception"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":176,"intitule":"La désinscription aux newsletters est possible depuis le site.","theme":"Newsletter","contexte":"La désinscription ne doit pas seulement être possible depuis la newsletter, mais également depuis le site qui l’émet.","solution":"Fournir une page dédiée à la newsletter, dans laquelle le formulaire d’abonnement est accompagné d’un formulaire de désabonnement.\nFaire figurer le lien de désabonnement dans les autres éventuels formulaires d’inscription « rapides » intégrés à d’autres pages du site.","controle":"Pour chaque site proposant une newsletter :\n- vérifier la présence d’une page proposant un formulaire de désabonnement,\n- vérifier que cette page est accessible depuis la navigation,\n- vérifier que a désinscription est effective.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de vérifier que la désinscription est effective, ce qui nécessite d'envoyer un formulaire depuis le site et de contrôler le résultat (confirmation, e-mail, base de données). Ces actions et observations hors page dépassent les capacités des outils disponibles.","guide_analyse":"Vérification humaine : identifiez d'abord si le site propose une newsletter (formulaire d'inscription, mentions). Si oui, recherchez sur le site une page ou un formulaire de désinscription accessible depuis la navigation ou depuis les formulaires d'inscription. Soumettez le formulaire de désinscription avec une adresse préalablement inscrite et vérifiez qu'il est effectif (message de confirmation, e-mail de confirmation ou vérification en base). Conforme si une désinscription fonctionnelle est accessible depuis le site ; non conforme si le site propose une newsletter sans offrir de désinscription sur le site ou si la désinscription échoue.","objectifs":["permettre à l’utilisateur de se désinscrire sans nécessairement passer par un e-mail,","renforcer la confiance des utilisateurs sur l’utilisation de leurs données."],"tags":["Privacy"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.624226"},{"numero":177,"intitule":"La dernière newsletter envoyée est disponible en ligne.","theme":"Newsletter","contexte":"Certains utilisateurs ne peuvent pas consulter votre newsletter sur leur mobile ou avec leur logiciel de messagerie. Un lien vers une version en ligne fournit une solution de repli et peut contribuer au référencement de vos contenus.","solution":"Rendre publique la dernière newsletter envoyée en rendant son contenu disponible sur le site et en faisant en sorte que l’accès à ce contenu reste possible à partir de la page d’accueil ou du plan de site.","controle":"Cette vérification s’effectue le plus souvent dans la page comportant le formulaire d’abonnement :\n- vérifier qu’une version de la dernière newsletter envoyée est disponible en ligne (au format HTML ou éventuellement PDF) via un lien accessible dans le contexte de l’abonnement.","plan_outils":{"etapes":[{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"},{"args":{"selecteur":"a","profondeur":50},"cible":"page","outil":"inspecter_html"}],"portee":"echantillon","outils_juge":[]},"outils":["capturer_page","inspecter_html"],"strategie_justification":"La capture d'écran permet de repérer visuellement le formulaire d'abonnement et un lien vers la newsletter dans son contexte ; l'inspection des liens fournit le href et l'intitulé pour vérifier qu'il s'agit bien d'une version en ligne (HTML ou PDF).","guide_analyse":"Parmi les captures, identifiez la page qui contient un formulaire d'abonnement à une newsletter. Vérifiez qu'un lien textuel, situé dans le contexte immédiat de ce formulaire (même bloc, à proximité visuelle ou dans le texte d'accompagnement), donne accès à la dernière newsletter envoyée ou à un exemple représentatif. Dans les éléments relevés par inspecter_html, retrouvez le href de ce lien : il doit pointer vers une page HTML ou un fichier PDF. Conforme si une page de l'échantillon présente un tel lien vers une version en ligne de la newsletter dans le contexte de l'abonnement ; non conforme si la page d'abonnement visible ne comporte aucun lien de ce type. Si aucune page d'abonnement n'est présente dans les pages fournies, ne rendez pas de verdict.","objectifs":["permettre aux utilisateurs de se faire une idée de la newsletter envoyée aux abonnés,","permettre aux utilisateurs de consulter la newsletter en dehors des contraintes de l’e-mail,","accroître le référencement de vos contenus."],"tags":[],"phases":["Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":178,"intitule":"Les archives de newsletters sont disponibles en ligne.","theme":"Newsletter","contexte":"Les archives de vos anciennes lettres d’information peuvent vous servir de stockage d’information. Elles donnent un aperçu et témoignent également de la qualité de votre newsletter auprès des utilisateurs.","solution":"Rendre publique la totalité des newsletters envoyées en rendant leur contenu disponible en ligne.","controle":"Pour chaque service en ligne proposant une newsletter :\n- vérifier que les archives des newsletters sont disponibles en ligne.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Le texte principal des pages fournies permet de repérer celles qui présentent des archives de newsletters. Le juge examine chaque page pour trouver une liste ou un accès aux anciennes newsletters. L'absence de cette page dans l'échantillon ne permet pas de conclure à la non-conformité.","guide_analyse":"Parmi les pages fournies, cherchez une page d'archives de newsletters ou une page mentionnant explicitement des archives avec des liens vers des numéros passés. Conforme si au moins une page fournie présente effectivement des archives. Non conforme si une page fournie censée être la page des newsletters ou des archives ne propose aucun accès aux anciennes lettres. Si aucune des pages fournies n'est une page de newsletter ou d'archives, l'absence de cette page dans l'échantillon ne permet pas de conclure ; ne déclarez pas non conforme.","objectifs":["faciliter la consultation des archives des newsletters,","permettre aux utilisateurs de se faire une idée de la newsletter envoyée aux abonnés,","favoriser le référencement de vos contenus,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["SEO"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":179,"intitule":"La fréquence d’envoi des newsletters est consultable avant l’abonnement.","theme":"Newsletter","contexte":"Certains utilisateurs détestent recevoir des messages trop fréquents, d’autres, au contraire, attendent une grande fréquence d’envoi. Faites-leur gagner du temps : annoncez la couleur.","solution":"Indiquer la fréquence d’envoi – si possible chiffrée – des newsletters.","controle":"Cette vérification s’effectue le plus souvent dans la page d’abonnement à la newsletter, ou éventuellement dans une page satellite du type Aide, À propos, etc. :\n- vérifier la présence d’une indication explicite et si possible chiffrée de la fréquence d’envoi des newsletters.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"},{"args":{"selecteur":"footer, form"},"cible":"page","outil":"inspecter_html"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page","inspecter_html"],"strategie_justification":"La fréquence d'envoi est le plus souvent indiquée dans le pied de page ou un formulaire d'abonnement, zones exclues par lire_page ; l'ajout d'inspecter_html sur footer et form complète la lecture du contenu principal pour couvrir ces emplacements fréquents.","guide_analyse":"Dans les preuves de lire_page (contenu principal) et d'inspecter_html sur footer et form, cherchez sur chaque page une indication explicite et si possible chiffrée de la fréquence d'envoi (par exemple 'hebdomadaire', '2 fois par mois') à proximité d'un champ ou lien d'abonnement à la newsletter. Une page sans bloc d'abonnement ni mention de newsletter est non applicable. Si au moins une page applicable mentionne la fréquence : conforme. Si au moins une page applicable contient un bloc d'abonnement sans cette indication : non conforme. Si aucune page fournie n'est applicable, le verdict est indéterminé.","objectifs":["permettre aux utilisateurs de connaître avant leur inscription la fréquence à laquelle ils recevront la newsletter."],"tags":[],"phases":["Éditorial"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":180,"intitule":"La charte graphique est cohérente sur toutes les pages.","theme":"Présentation","contexte":"Un service en ligne peut être beau ou moche, c’est subjectif. Son univers graphique doit en tous cas être cohérent, pour ne pas donner l’impression aux utilisateurs qu’ils viennent de le quitter..","solution":"Utiliser des feuilles de styles communes à tout le site, ce qui, par rebond, améliore la cohérence globale.","controle":"Au fil des contrôles de règles :\n- s’assurer que le service en ligne utilise des éléments graphiques communs à toutes les pages, en portant notamment une attention particulière à la présence et à l’emplacement des menus de navigation, à la couleur des sections, à la largeur des pages et à la cohérence de la charte graphique globale utilisée pour les titres et pour les textes.\nLa vérification peut également être menée en amont du projet, lors de la conception des maquettes graphiques, ou en aval du projet lors de l’intégration finale pour vérifier l’absence d’une dégradation de cette homogénéité graphique due, par exemple, à la mise en place de services tiers.","plan_outils":{"etapes":[{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"}],"portee":"echantillon","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"La cohérence graphique entre les pages d'un échantillon se juge par comparaison visuelle du rendu final : une capture d'écran de chaque page permet au juge de vérifier la présence, l'emplacement et le style des éléments communs.","guide_analyse":"Comparez les captures d'écran de toutes les pages fournies. Vérifiez la présence et l'emplacement des menus de navigation, l'homogénéité des couleurs de sections, la largeur des pages et la cohérence typographique des titres et des textes. Conforme si les pages partagent une charte graphique globale identique sans rupture visuelle ; non conforme si au moins une page présente un écart notable (menu absent ou déplacé, palette différente, typographie ou largeur incompatible).","objectifs":["permettre une homogénéité et une continuité dans la visite et la navigation,","permettre une identification permanente du service en ligne visité."],"tags":[],"phases":["Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":181,"intitule":"L’information n’est pas véhiculée uniquement par la couleur.","theme":"Présentation","contexte":"Cette règle consiste à ne pas faire référence à un contenu ou à une fonctionnalité uniquement par sa couleur. Par exemple, le caractère obligatoire d’un champ de formulaire signalé en rouge pourra ne pas être perçu par tous.","solution":"Fournir un complément à la couleur pour véhiculer l’information qu’elle porte. Ce complément, indépendant de la couche de mise en forme CSS, peut être de plusieurs ordres :\n- prévoir un balisage sémantique (strong, em, etc.),\n- ajouter des mentions textuelles (astérisque signalant un champ obligatoire),\n- ajouter des hachures, motifs, bordures, etc., dans les cartes et les graphiques.","controle":"La vérification nécessite de comparer visuellement deux versions de la page : la version normale et une version où les couleurs seront désactivées. Elle est donc plus aisée à mener avec un double écran. Pour chaque page examinée :\n- désactiver le support de la couleur via votre barre d’outils de test, puis passer les images en niveau de gris,\n- vérifier par comparaison si la version sans couleurs présente des pertes d’information. Ce sera par exemple le cas dans un menu de navigation où la rubrique en cours ne se différencie que par sa couleur, ou encore dans une carte dont les zones sont de simples aplats de couleur sans bordure ni motifs.\nAttention : l’information peut parfois être présente indépendamment de la couleur dans un attribut title, provoquant l’apparition d’une infobulle au survol du contenu. L’accès à l’infobulle depuis le clavier n’étant à ce jour pas possible par défaut dans tous les navigateurs, cette solution doit être écartée.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle officiel impose de comparer la page normale à une version où les couleurs sont désactivées et les images passées en niveaux de gris. Aucun outil du catalogue ne permet d'appliquer ce filtre de désaturation : le mode sans_styles de capturer_page supprime l'ensemble du CSS, ce qui efface aussi les compléments visuels éventuels (bordures, motifs) et ne reproduit pas la condition de test requise.","guide_analyse":"Vérification humaine : ouvrez la page dans un navigateur et activez la désactivation des couleurs ou un affichage en niveaux de gris via une barre d'outils de test. Comparez cette version avec l'affichage normal de la page. Parcourez l'ensemble du contenu pour repérer toute information qui disparaît ou devient indifférenciable sans la couleur, comme l'état actif d'un menu, des zones sur une carte ou des champs obligatoires. Conforme si aucune information n'est perdue et si chaque élément reste identifiable par un autre moyen que la couleur (texte, bordure, motif, balisage sémantique). Non conforme si un élément critique ne peut plus être distingué une fois les couleurs retirées.","objectifs":["permettre l’accès à l’information pour les utilisateurs dont le navigateur, la plateforme, l’aide technique ou encore le handicap (comme le daltonisme) ne permettent pas de visualiser ou de différencier les couleurs,","rendre l’information accessible aux robots d’indexation,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.646595"},{"numero":182,"intitule":"Les contenus sont présentés avec un contraste suffisant par rapport à leur arrière-plan.","theme":"Présentation","contexte":"À première vue (sic), il s’agit d’une règle destinée uniquement aux utilisateurs handicapés, daltoniens ou malvoyants. Mais détrompez-vous : une page web avec des contrastes suffisants est plus agréable pour tout le monde.","solution":"Veiller à conserver un ratio de contraste minimal de 3:1 entre le texte et son arrière-plan, tel qu’il peut être mesuré via l’algorithme WCAG2.0.","controle":"Dans l’ensemble des pages :\n- repérer les contenus dont la différence de contraste/luminosité avec leur arrière-plan est potentiellement insuffisante,\n- utiliser un outil du type Colour Contrast Analyzer pour calculer le ratio de contraste : cliquer sur Luminosité et relever la couleur du premier plan puis celle du second plan dans les champs dédiés,\n- vérifier que le ratio de contraste relevé est supérieur ou égal à 3:1.\nDans le cas de textes placés sur un arrière-plan en dégradé, en motif ou photographique, la mesure de couleur de l’arrière-plan est prise au point le plus défavorable jouxtant le texte (pour un texte noir, le pixel le plus sombre). Il est conseillé de tenir également compte de l’agrandissement éventuel de la taille de caractère par l’utilisateur (Zoom texte seulement), qui peut entraîner un changement dans la superposition texte/arrière-plan.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de mesurer le ratio de contraste entre le texte et son arrière-plan sur le rendu final, y compris sur des arrière-plans complexes comme les dégradés, motifs ou photographies, ce qui nécessite une extraction précise des couleurs calculées par le navigateur. Aucun outil du catalogue ne fournit ces couleurs finales ni ne permet de mesurer automatiquement les ratios de contraste à l'écran.","guide_analyse":"Vérification humaine : ouvrez chaque page dans un navigateur et utilisez un outil de mesure de contraste (type Colour Contrast Analyzer ou les outils de développement) pour relever la couleur du premier plan et celle de l'arrière-plan de chaque contenu textuel. Pour les textes sur arrière-plan complexe, mesurez au pixel le plus défavorable jouxtant le texte. Vérifiez que chaque ratio est supérieur ou égal à 3:1. Conforme si tous les ratios relevés atteignent 3:1 ; non conforme si au moins un ratio est inférieur.","objectifs":["permettre une bonne lisibilité des contenus,","limiter la charge mentale lors de la consultation,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics"],"phases":["Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":183,"intitule":"Le contenu et le sens de chaque page ne sont pas altérés lorsque les styles sont désactivés.","theme":"Présentation","contexte":"Les styles constituent une couche de présentation. Les contenus doivent rester lisibles et compréhensibles lorsque cette couche ne peut pas se voir ou s’afficher.","solution":"Dans l’usage de CSS (y compris via JavaScript), veiller à conserver la cohérence des contenus pour les présenter dans le même ordre avec ou sans mise en forme CSS. On évitera ainsi de se retrouver, par exemple, avec un menu coupé en deux si les feuilles de styles sont désactivées.","controle":"Comparer visuellement les pages avec et sans application des styles CSS. L’opération nécessite de recourir, pour chaque page, à l’ensemble de ces méthodes :\n- désactiver les styles CSS dans le navigateur,\n- vérifier l’absence de perte d’informations dont la cause peut alors être confirmée en examinant les styles appliqués à l’élément concerné à l’aide d’un inspecteur de code,\n- vérifier que les contenus restent lisibles, par exemple dans le cas d’une image HTML transparente dont la lisibilité dépendra de la couleur d’arrière-plan appliquée avec la propriété background-color,\n- vérifier la cohérence du contenu affiché sans CSS, qui doit rester logiquement organisé et parfaitement compréhensible. Par exemple, un organigramme constitué de différents blocs de texte mis en forme via des propriétés CSS de positionnement pourra apparaître comme une succession de blocs de texte dénuée de sens en l’absence de CSS.","plan_outils":{"etapes":[{"args":{"mode":"page_entiere"},"cible":"page","outil":"capturer_page"},{"args":{"mode":"sans_styles"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"La comparaison entre la capture de la page entière rendue avec ses styles et la même page sans styles CSS permet de constater visuellement toute perte d'information, illisibilité ou rupture de cohérence structurelle.","guide_analyse":"Comparez la capture avec styles à celle sans styles. Vérifiez qu'aucun contenu essentiel ne disparaît sans CSS (par exemple images de fond porteuses d'information ou textes ajoutés par des pseudo-éléments) et qu'aucun contenu ne devient illisible (par exemple une image transparente dont le texte se confond avec le fond blanc par défaut). Vérifiez que l'ordre des éléments sans styles reste logique et compréhensible, sans rupture de sens (par exemple un organigramme qui deviendrait une succession désordonnée de blocs). Conforme si le contenu et la structure restent équivalents, lisibles et cohérents sans CSS ; non conforme si une information est perdue, masquée ou si la structure perd son sens.","objectifs":["permettre la compréhension des contenus par les utilisateurs dont le navigateur n’appliquera pas les feuilles de styles du service en ligne ou dont le mode d’accès n’est pas visuel,","Séparer rigoureusement les contenus de la présentation pour améliorer leur interopérabilité,","favoriser le référencement du contenu,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","SEO"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":184,"intitule":"Un contenu n’est pas désigné uniquement par sa forme ou par sa position à l’écran.","theme":"Présentation","contexte":"L’un des fondements du web de qualité est la séparation du fond et de la forme. Désigner un contenu par sa forme ou sa position, c’est préjuger de la capacité du lecteur à distinguer cette forme ou à trouver cet emplacement.","solution":"Lorsqu’un contenu est désigné par une référence à sa forme ou à sa position à l’écran, l’information doit être également disponible par un autre moyen (balisage, mention textuelle, etc.).","controle":"Cette vérification concerne une large variété de cas potentiels, par exemple dans une page d’aide où il est fait référence à des captures d’écran ou encore dans le fil d’un texte où il est fait référence à une illustration ou à un tableau. Pour chaque contenu où il est nécessaire d’avoir accès à l’affichage graphique de la page afin de retrouver le contenu ainsi désigné :\n- s’assurer que les références à la forme ou à la position à l’écran d’un contenu ne sont pas le seul moyen d’identifier celui-ci.\nLes moyens complémentaires peuvent être la référence explicite à un identifiant (exemple « Voir la figure n° 1 »), un lien vers une ancre, etc.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"},{"args":{"selecteur":"a[href^='#']","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["lire_page","inspecter_html"],"strategie_justification":"Le contrôle repose sur l'analyse des formulations du texte qui désignent un contenu par sa forme, sa couleur ou sa position à l'écran ; le texte principal permet de repérer ces références, et les liens vers des ancres constituent un moyen complémentaire explicite que le juge doit pouvoir vérifier.","guide_analyse":"Dans le texte principal, repérez les passages qui désignent un contenu par sa position (« ci-dessus », « ci-dessous », « à droite », « à gauche »), par sa forme ou par sa couleur (« bouton rouge », « flèche », « case cochée »). Pour chaque passage, vérifiez si le contenu visé est également identifié dans le texte par un nom, un numéro, un titre ou une légende. Dans les liens relevés, identifiez ceux qui mènent à une ancre interne : si une référence positionnelle est un lien vers une ancre, elle dispose d'un autre moyen d'identification. Conforme si aucune référence n'est exclusivement sensorielle ou positionnelle, ou si chacune est complétée par un identifiant textuel ou un lien d'ancre. Non conforme si un contenu est désigné uniquement par sa forme, sa couleur ou sa position.","objectifs":["permettre la compréhension de l’information sans l’accès au support visuel ou lorsque le rendu de celui-ci est altéré,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.671052"},{"numero":185,"intitule":"Un contenu qui doit être restitué dans un lecteur d’écran ne lui est pas dissimulé.","theme":"Présentation","contexte":"Certaines propriétés CSS permettent de rendre certains contenus invisibles à l’écran. Le problème est que ces contenus risquent de disparaître aussi pour des utilisateurs qui ont besoin de les consulter. Sachez donc les masquer avec les bons outils.","solution":"- soit les propriétés CSS permettant de positionner le contenu en dehors de la zone d’affichage du navigateur (position, text-indent) ou de le rogner (clip),\n- les propriétés ARIA permettant d’associer un libellé à un contenu (aria-label, aria-labelledby, aria-describedby),\n- ou, dans le cas d’une étiquette de champ de formulaire, l’attribut title de celui-ci.","controle":"Dans le code généré et dans les feuilles de styles CSS des pages examinées :\n- détecter, à l’aide d’un inspecteur de code, des contenus qui seraient masqués à l’affichage (en dehors de ceux destinés à être rendus visibles sur action de l’utilisateur),\n- vérifier qu’aucun de ces contenus n’utilise les techniques indiquées dans la mise en œuvre s’ils sont destinés à être restitués dans un lecteur d’écran.","plan_outils":{"etapes":[{"args":{"selecteur":"[style*=\"display:none\"], [style*=\"display: none\"], [style*=\"visibility:hidden\"], [style*=\"visibility: hidden\"], [hidden], [aria-hidden=\"true\"], h1, h2, h3, h4, h5, h6, label","profondeur":200},"cible":"page","outil":"inspecter_html"},{"args":{"selecteur":"a, button","profondeur":200},"cible":"page","outil":"inspecter_html"},{"args":{"selecteur":"body","profondeur":200},"cible":"page","outil":"lire_arbre_accessibilite"},{"args":{},"cible":"page","outil":"lister_ressources"}],"portee":"page","outils_juge":["lire_fichier"]},"outils":["inspecter_html","lire_arbre_accessibilite","lister_ressources","lire_fichier"],"strategie_justification":"L'inspection du HTML relève les éléments explicitement masqués et les éléments sémantiques ; l'arbre d'accessibilité montre ce qui est effectivement restitué. Le juge compare les deux pour détecter les contenus manquants, et lit les CSS si un masquage externe est suspecté.","guide_analyse":"Dans les éléments HTML relevés, identifiez ceux ayant un contenu textuel et un attribut de masquage inline (display:none, visibility:hidden, hidden, aria-hidden=\"true\") : ils sont dissimulés aux lecteurs d'écran. Vérifiez aussi que les titres, étiquettes, liens et boutons du HTML figurent dans l'arbre d'accessibilité (par correspondance de texte et de rôle) ; s'ils y manquent, ils sont masqués. Pour les éléments masqués via classe CSS, lisez les fichiers CSS listés via lire_fichier et reliez-les aux classes des éléments HTML. Conforme si aucun contenu destiné à être restitué n'utilise display:none, visibility:hidden, hidden ou aria-hidden=\"true\" ; non conforme si un élément sémantique essentiel est absent de l'arbre ou explicitement masqué par ces techniques.","objectifs":["faciliter l’adaptation du rendu au média (mobile ou autre) ou aux besoins de l’utilisateur (agrandissement de la taille des caractères, modification des couleurs, de la police, de la graisse, de la justification, etc.),","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":186,"intitule":"La taille des éléments cliquables est suffisante.","theme":"Présentation","contexte":"Les écrans tactiles ont apporté leur lot de contraintes. Parmi celles-ci, le fait de pouvoir cliquer sans difficulté avec les doigts n’est pas la moindre. Il se trouve que les standards internationaux en matière d’accessibilité des contenus web aux personnes handicapées précisent même une valeur numérique pour la taille minimum des éléments cliquables. Comme dans le cas des contrastes, cela nous permet de proposer une règle qui s’appuie sur l’existence de cette valeur numérique.","solution":"Donner à chaque élément cliquable (boutons, liens) une taille par défaut d’au moins 44 par 44 pixels, et 48 par 48 pixels pour Android.","controle":"vérifier que la taille par défaut de chaque élément cliquable (boutons, liens) est au moins de 44 par 44 pixels, et 48 par 48 pixels pour Android.","plan_outils":{"etapes":[{"args":{"selecteur":"a, button"},"cible":"page","outil":"mesurer_cibles"}],"portee":"page","outils_juge":[]},"outils":["mesurer_cibles"],"strategie_justification":"La taille affichée des liens et des boutons se mesure dans un navigateur, sur la page rendue : une mesure suffit.","guide_analyse":"Pour chaque élément mesuré, comparez sa largeur et sa hauteur au seuil de 44 pixels. Conforme si tous les liens et boutons affichés atteignent 44 par 44 pixels. Non conforme si au moins un élément cliquable est plus petit dans une des deux dimensions ; citez-en le rôle, le nom et la taille.","objectifs":["permettre à l’utilisateur de cliquer sur les éléments interactifs,","limiter les fausses manipulations et les manipulations inutiles,","améliorer la compatibilité avec les terminaux mobiles,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Mobile"],"phases":["Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":187,"intitule":"Les textes pouvant être mis en forme via des styles ne sont pas remplacés par des images.","theme":"Présentation","contexte":"Un très beau texte dans une belle police, c’est maintenant possible sur le web. Il est donc temps d’abandonner la plupart des images reproduisant du texte.","solution":"Utiliser des textes HTML mis en forme à l’aide des styles CSS (et en particulier les polices de caractères téléchargeables, ou web fonts).","controle":"Cette vérification nécessite l’examen visuel des pages pour identifier les images ne contenant que du texte et évaluer si une mise en forme via CSS aurait permis d’obtenir un rendu équivalent. Pour chaque page contenant des textes mis en images :\n- passer en revue les images (images HTML et éventuelles images d’arrière-plan CSS utilisées pour simuler un contenu éditorial dans un élément vide),\n- vérifier que les textes mis en image correspondent uniquement à des mises en forme ne pouvant être obtenues via les styles CSS.\nSont exclus de cette exigence : les logos, les bannières publicitaires et les éléments graphiques de promotion.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande d’identifier les images de texte, y compris les images d’arrière-plan CSS appliquées à des éléments vides, et d’évaluer si leur rendu est reproductible en CSS. Les outils du catalogue ne permettent ni d’inspecter les styles calculés pour détecter les arrière-plans textuels dans des éléments vides, ni de trancher de manière fiable sur l’équivalence technique avec une mise en forme CSS.","guide_analyse":"Contrôle manuel : sur chaque page, examinez visuellement les images (balises img et éléments vides avec background-image CSS) qui contiennent du texte. Excluez les logos, bannières publicitaires et éléments graphiques de promotion. Pour chaque texte mis en image, jugez si un rendu équivalent est réalisable avec du texte HTML stylé en CSS (polices web, ombrages, dégradés, etc.). Non conforme si un texte pouvant être mis en forme par CSS est présenté sous forme d’image.","objectifs":["faciliter l’adaptation du rendu au média (mobile ou autre) ou aux besoins de l’utilisateur (agrandissement de la taille des caractères, modification des couleurs, de la police, de la graisse, de la justification, etc.),","améliorer l’accessibilité des contenus aux personnes handicapées,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","SEO","Écoconception"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":188,"intitule":"Les contenus générés via les styles sont dotés d’une alternative appropriée.","theme":"Présentation","contexte":"Certaines instructions CSS permettent d’afficher des textes et des images qui sont de fait invisibles pour les utilisateurs et les outils qui ne prennent pas en charge les feuilles de styles. Par exemple, en cas de désactivation des couleurs ou des styles CSS, une image CSS (propriété background-image) ne sera pas visible alors qu’une image HTML (élément <img>) l’aurait été.","solution":"Fournir un contenu masqué à l’affichage via CSS :\n- pour chaque information portée par les propriétés CSS background-image ou content,\n- pour chaque information affichée via un pseudo-élément CSS :before ou :after,\n- et plus généralement, pour chaque information absente par ailleurs de la page et dont la restitution dépend du support des styles.","controle":"Examiner directement le code CSS et comparer visuellement l’affichage normal de la page avec son rendu après désactivation des images d’arrière-plan. Pour chaque page :\n- afficher les feuilles de styles grâce à une barre d’outils dédiée et vérifier que les propriétés et éléments cités dans le paragraphe « Solution technique » sont absents des CSS ou ne sont pas utilisés pour produire une information par ailleurs absente du code HTML,\n- désactiver les images d’arrière-plan CSS avec une barre d’outils dédiée,\n- contrôler l’absence de perte d’information, en comparant l’affichage avec et sans images d’arrière-plan.","plan_outils":{"etapes":[{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"},{"args":{"mode":"sans_styles"},"cible":"page","outil":"capturer_page"},{"args":{"selecteur":"link[rel=\"stylesheet\"], style, [style*=\"background-image\"], [style*=\"content\"]"},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":["lire_fichier"]},"outils":["capturer_page","inspecter_html","lire_fichier"],"strategie_justification":"La comparaison visuelle entre la page rendue normalement et sans styles met en évidence les informations qui disparaissent quand les CSS ne sont pas appliquées ; l'inspection du HTML fournit les styles inline et les adresses des feuilles de style externes, que le juge peut lire pour vérifier l'emploi de background-image, content et pseudo-éléments.","guide_analyse":"Comparez la capture normale et la capture sans styles : identifiez les éléments informatifs (icônes, images, textes) présents dans la première et absents ou illisibles dans la seconde. Dans les éléments HTML relevés, examinez les balises style et les styles inline ; pour chaque feuille de style externe, appelez lire_fichier sur son href afin de chercher background-image, content, :before ou :after. Vérifiez que chaque information ainsi portée par les styles possède une alternative équivalente dans le code HTML (texte visible, texte masqué qui réapparaît sans styles, ou attribut adapté). Conforme si les propriétés CSS citées ne véhiculent aucune information par ailleurs absente du HTML, ou si chacune dispose d'une alternative appropriée. Non conforme si une information disparaît sans styles sans alternative dans le code.","objectifs":["permettre aux utilisateurs placés dans des contextes où les styles ne sont pas restitués (navigateur texte, lecteur d’écran, navigateur avec styles désactivés) d’accéder à l’information présente sous forme de contenus générés en CSS (images d’arrière-plan notamment),","permettre aux robots d’exploiter l’information véhiculée par les styles CSS (référencement, indexation, traduction automatique des alternatives),","améliorer l’accessibilité des contenus aux personnes handicapées,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","SEO"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.695052"},{"numero":189,"intitule":"Les pictogrammes typographiques sont dotés d’une alternative appropriée.","theme":"Présentation","contexte":"Le recours aux web fonts (polices de caractères téléchargeables) a considérablement facilité le recours à une astuce technique très appréciée du point de vue des performances : remplacer les images de diverses icônes par un caractère UTF-8 graphique obtenu grâce à une police spécifique. Ceci comporte cependant des risques importants, notamment en matière d’accessibilité, si vous ne veillez pas à ménager une alternative textuelle à ce caractère détourné de son sens par défaut.","solution":"Fournir un contenu masqué à l’affichage via CSS pour chaque information portée par le recours à une police de caractères spécifique.","controle":"Examiner directement le code pour vérifier que chaque icône affichée via une police de caractères est dotée d’une alternative dans le contenu HTML.","plan_outils":null,"outils":[],"strategie_justification":"Les icônes typographiques sont implémentées de façon très variable d'un site à l'autre (classes CSS arbitraires, polices maison, caractères Unicode injectés via CSS) et ne correspondent à aucun sélecteur HTML standard ; aucun outil ne permet de les identifier de manière exhaustive et fiable pour vérifier qu'elles possèdent toutes une alternative dans le contenu HTML.","guide_analyse":"Vérification humaine : examinez le code source de la page pour repérer les éléments utilisant une police d'icônes, généralement identifiables par des classes dédiées (souvent sur des `<i>` ou `<span>`) ou par des caractères UTF-8 graphiques. Pour chaque icône affichée via une police de caractères, vérifiez qu'une alternative textuelle est présente dans le HTML : contenu textuel masqué à l'affichage, attribut `aria-label`, `aria-labelledby`, ou texte visible adjacent. Conforme si chaque icône typographique possède une alternative appropriée dans le contenu HTML ; non conforme si au moins une icône n'en a pas.","objectifs":["améliorer l’accessibilité des contenus aux personnes handicapées,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","SEO"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":190,"intitule":"Une famille générique de police est indiquée comme dernier élément de substitution.","theme":"Présentation","contexte":"Sur votre système, tout va bien, l’affichage de vos polices est parfait. Mais que se passe-t-il pour les utilisateurs qui n’ont pas une de vos polices installées sur leur matériel ? C’est le moment d’appeler la police de substitution (serif, sans-serif ou autre, à vous de choisir).","solution":"Dans chaque feuille de style CSS, indiquer la famille générique de police appropriée dans les propriétés font-family ou font :\n- pour les polices serif, ou à empattements (du type Times Roman), spécifier en dernier la famille de police générique serif. Dans l’exemple suivant, le terme « serif » a été correctement ajouté comme dernier élément de la liste des polices font-family: Georgia, \"Bookman Old Style\", serif,\n- pour les polices sans serif, ou sans empattements (du type Arial), spécifier en dernier la famille de police générique sans-serif. Par exemple : font-family: Optima, \"Trebuchet MS\", sans-serif,\n- pour les polices monospace (du type Courier), spécifier en dernier la famille de police générique monospace. Par exemple, font-family: Courier, monospace,\n- de même, utiliser les familles génériques cursive et fantasy pour les polices manuscrites et fantaisies.","controle":"Dans toutes les feuilles de style CSS (pour tous les media : screen, print, etc.) :\n- vérifier à l’aide d’un outil de développement d’un navigateur que chaque propriété font ou font-family contient l’un des termes relatifs aux familles génériques de police : serif, sans-serif, monospace, cursive ou fantasy,\n- contrôler que ces termes sont situés en fin de liste pour chaque propriété font ou font-family,\n- s’assurer de la pertinence de la famille générique indiquée : serif pour les polices à empattements, sans-serif pour les polices sans empattements, monospace, cursive ou fantasy dans des cas particuliers.\nLa vérification peut également être effectuée en validant la page HTML à l’aide du validateur CSS du W3C (http://jigsaw.w3.org/css-validator/) qui avertit alors en cas d’absence de familles de police générique.","plan_outils":{"etapes":[{"args":{"selecteur":"style"},"cible":"page","outil":"inspecter_html"},{"args":{},"cible":"page","outil":"lister_ressources"}],"portee":"page","outils_juge":["lire_fichier"]},"outils":["inspecter_html","lister_ressources","lire_fichier"],"strategie_justification":"Les déclarations font-family des feuilles de style internes sont lisibles dans le code HTML source, et les feuilles de style externes sont identifiées dans les ressources chargées ; le juge lit leur contenu pour vérifier la présence, la position en fin de liste et la pertinence de la famille générique.","guide_analyse":"Dans les éléments <style> relevés par inspecter_html, et dans chaque fichier CSS externe identifié par lister_ressources (filtrez les ressources de type stylesheet) que le juge lit via lire_fichier, examinez chaque propriété font ou font-family en ignorant les blocs @font-face. Pour chaque déclaration, vérifiez : 1) qu'elle contient une famille générique (serif, sans-serif, monospace, cursive ou fantasy) ; 2) que cette famille est le dernier élément de la liste ; 3) qu'elle est pertinente (serif pour les polices à empattements comme Times ou Georgia, sans-serif pour les polices sans empattements comme Arial ou Helvetica, etc.). Conforme si toutes les déclarations respectent ces trois conditions. Non conforme si au moins une déclaration enfreint l'une de ces règles ; citez-la.","objectifs":["permettre aux contenus de s’afficher correctement, même lorsque les polices prévues ne sont pas présentes sur le système de l’utilisateur."],"tags":[],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.720962"},{"numero":191,"intitule":"Les styles ne justifient pas le texte.","theme":"Présentation","contexte":"La justification de texte, c’est souvent très joli, notamment sur support papier. Malheureusement, plusieurs études ont montré qu’elle rend la lecture plus difficile pour de nombreux publics, tels que les dyslexiques. Pensez à eux, ne justifiez pas vos textes.","solution":"Ne pas utiliser la propriété CSS text-align avec la valeur justify, ou tout autre équivalent.","controle":"Vérifier dans le code CSS l’absence de règles text-align: justify.\nVérifier dans le code HTML l’absence d’attributs HTML align=\"justify\".","plan_outils":{"etapes":[{"args":{"selecteur":"[align=\"justify\"], [style*=\"text-align\"], style"},"cible":"page","outil":"inspecter_html"},{"args":{},"cible":"page","outil":"lister_ressources"}],"portee":"page","outils_juge":["lire_fichier"]},"outils":["inspecter_html","lister_ressources","lire_fichier"],"strategie_justification":"Le code HTML révèle les attributs align, les styles inline et les blocs style internes ; les feuilles de style externes sont identifiées dans les ressources chargées pour être lues par le juge.","guide_analyse":"Dans les éléments HTML relevés, vérifiez l'absence d'attribut align=\"justify\" et d'attribut style contenant text-align: justify. Lisez le contenu texte de chaque balise style relevée. Dans les ressources listées, identifiez les feuilles de style externes et appelez lire_fichier sur chacune pour y chercher text-align: justify. Conforme si aucune preuve ne contient text-align: justify ni align=\"justify\". Non conforme dès qu'une occurrence est trouvée dans le HTML, un style interne ou une feuille externe.","objectifs":["faciliter la lecture à l’écran, notamment pour les personnes dyslexiques,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.746389"},{"numero":192,"intitule":"Les mises en majuscules à des fins décoratives sont effectuées à l’aide des styles.","theme":"Présentation","contexte":"Il est parfaitement possible d’écrire un texte web en minuscules et de l’afficher en majuscules avec les styles CSS. De cette façon, l’utilisateur reste libre d’en faire ce qu’il veut. Sachez également qu’un texte en majuscules se lit moins rapidement.","solution":"Saisir les contenus HTML en respectant l’usage typographique pour les majuscules (début de phrase, noms propres, etc.).\nUtiliser la propriété CSS text-transform avec la valeur uppercase pour gérer les mises en majuscules décoratives.","controle":"Pour tous les contenus mis entièrement en majuscules :\n- désactiver le support des styles du site dans le navigateur,\n- identifier les textes qui apparaissent en majuscules lorsque les styles sont désactivés,\n- vérifier que l’usage des majuscules respecte le cadre des conventions typographiques de la langue utilisée. Par exemple : les sigles ou noms d’auteurs dans une bibliographie peuvent être en majuscules.","plan_outils":{"etapes":[{"args":{"mode":"sans_styles"},"cible":"page","outil":"capturer_page"},{"args":{},"cible":"page","outil":"lire_page"}],"portee":"page","outils_juge":[]},"outils":["capturer_page","lire_page"],"strategie_justification":"La capture sans styles révèle les majuscules réellement présentes dans le code HTML et visibles par l'utilisateur lorsque les styles sont désactivés. Le texte principal lu sans styles donne au juge le contenu en clair pour vérifier l'usage typographique de ces majuscules.","guide_analyse":"Sur la capture sans styles, repérez tous les blocs de texte écrits entièrement en majuscules (plusieurs lettres consécutives en capitales), y compris dans les menus et le pied de page. Dans le texte lu, repérez également les mots ou phrases entièrement en majuscules. Pour chaque occurrence, vérifiez qu'elle relève d'une convention typographique légitime : sigle (HTML, CSS), nom propre, abréviation ou début de phrase. Les titres, boutons ou liens entièrement en majuscules à des fins décoratives ne sont pas des conventions typographiques. Conforme si toutes les majuscules visibles sans styles sont justifiées ; non conforme dès qu'un texte décoratif est écrit en majuscules dans le source.","objectifs":["permettre un copier-coller des contenus indépendamment de la mise en forme entièrement en majuscules,","faciliter l’adaptation de la mise en forme pour les utilisateurs ayant des difficultés de lecture des textes entièrement en majuscules."],"tags":["Accessibilité"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":193,"intitule":"Les fonctionnalités de zoom ne sont pas bloquées.","theme":"Présentation","contexte":"Il est toujours très décevant, face à un texte trop petit affiché sur sa tablette ou son smartphone, de s’apercevoir qu’on ne peut pas l’agrandir.","solution":"Ne pas utiliser de mécanisme bloquant le zoom, et en particulier, ne pas utiliser les attributs minimum-scale, maximum-scale et user-scalable de l’élément meta viewport.","controle":"Vérifier sur un périphérique tactile qu’il est possible d’agrandir la vue avec la commande de zoom tactile du navigateur.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle officiel exige de vérifier sur un périphérique tactile que le zoom par pincement fonctionne, ce qui suppose un geste tactile que les outils ne peuvent ni simuler ni observer. L'inspection du meta viewport détecte certains blocages déclaratifs, mais ne permet pas de trancher sur d'éventuels blocages par JavaScript ni de confirmer le comportement réel du zoom.","guide_analyse":"Vérification humaine : ouvrez la page sur un périphérique tactile (smartphone, tablette) ou dans un émulateur tactile. Effectuez un geste de pincement (pinch-to-zoom) pour agrandir la vue. Conforme si la page se zoome librement sans être bloquée. Non conforme si le zoom est impossible, notamment en présence d'un meta viewport contenant user-scalable=no ou maximum-scale=1.0, ou si un script intercepte les gestes tactiles.","objectifs":["permettre aux utilisateurs d’adapter le rendu à leurs besoins ou à leurs préférences en recourant au zoom graphique,","améliorer la compatibilité avec les terminaux mobiles,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Mobile"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.770579"},{"numero":194,"intitule":"Un ou plusieurs mécanismes dédiés à l’adaptation aux terminaux mobiles sont proposés.","theme":"Présentation","contexte":"Chaque service en ligne se doit aujourd’hui d’être consultable dans les meilleures conditions possibles, quel que soit le terminal (desktop, smartphone, tablette, etc.).","solution":"Soit recourir aux media queries ou à l’adaptative design pour adresser au navigateur des règles de style adaptées selon la taille de l’écran.\nSoit fournir une version mobile dédiée.","controle":"Comparer l’affichage de la page sur différentes tailles d’écran (desktop, tablettes, smartphone, etc.) et vérifier que le rendu s’adapte à celles-ci.","plan_outils":{"etapes":[{"args":{"largeur":1280},"cible":"page","outil":"capturer_page"},{"args":{"largeur":768},"cible":"page","outil":"capturer_page"},{"args":{"largeur":320},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"Le contrôle consiste à comparer le rendu visuel sur différentes tailles d'écran ; trois captures à des largeurs représentatives du desktop, de la tablette et du smartphone fournissent les preuves nécessaires pour juger de l'adaptation.","guide_analyse":"Comparez les trois captures aux largeurs 1280, 768 et 320 pixels. Vérifiez que la mise en page, la taille des textes et la disposition des éléments évoluent pour rester lisibles et accessibles sans scroll horizontal imposé. Conforme si le rendu s'adapte à chaque largeur, notamment en étroit ; non conforme si la page garde une mise en page fixe de bureau sur les petits écrans, si le texte est illisible ou si des contenus sont tronqués.","objectifs":["faciliter la consultation sur les terminaux mobiles,","améliorer le positionnement dans les outils d’indexation qui prennent ce critère en compte."],"tags":["Basics","Mobile","SEO"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":1,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":195,"intitule":"Des styles dédiés à l’impression sont proposés.","theme":"Présentation","contexte":"Il est parfaitement possible de prévoir la façon dont le contenu d’une page doit s’imprimer sur papier. Les feuilles de styles pour le média print sont là pour ça.","solution":"Fournir une feuille de style spécifique pour le type de média print, par exemple sous la forme : <link rel=\"stylesheet\" type=\"text/css\" href=\"print.css\" média=\"print\" />.\nLes styles d’impression peuvent corriger une feuille de style globale (feuille de style pour le média all ou sans mention du média) ou bien s’appliquer seuls pour le média print si la feuille de style d’affichage est appelée en précisant le média print.","controle":"Cette règle peut être évaluée rapidement en testant l’aperçu avant impression dans le navigateur, mais sa confirmation nécessite l’examen du code pour détecter la présence d’un style d’impression pour le média print, qui peut être :\n- sous forme d’une balise du type <link rel=\"stylesheet\" type=\"text/css\" média=\"print\" href=\"print.css\" />,\n- sous forme d’une balise du type <style média=\"print\" type=\"text/css\"> … </style>,\n- sous forme d’une règle @media print {...} dans une CSS interne ou externe,\n- ou sous forme d’une règle @import url(\"print.css\") print; dans une CSS interne ou externe.","plan_outils":{"etapes":[{"args":{"selecteur":"link[rel=\"stylesheet\"], style"},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":["lire_fichier"]},"outils":["inspecter_html","lire_fichier"],"strategie_justification":"Les styles d'impression se déclarent dans le code par des balises link ou style avec media=\"print\", ou par des règles @media print / @import ... print dans des CSS internes (contenu des balises style) ou externes (fichiers à lire via leur href). Une inspection du HTML suffit à tout repérer ou à cibler les fichiers à lire.","guide_analyse":"Dans les éléments relevés, cherchez d'abord un attribut media=\"print\" sur un link ou un style : sa présence rend la page conforme. Sinon, lisez le contenu texte de chaque balise style : la présence de @media print ou @import ... print rend conforme. Sinon, pour chaque link[rel=\"stylesheet\"] sans media=\"print\", relevez son href et appelez lire_fichier sur cette URL : la présence de @media print ou @import ... print dans le fichier rend conforme. Non conforme si aucune de ces formes n'est trouvée.","objectifs":["permettre l’impression des contenus sous une forme appropriée au support."],"tags":["Accessibilité","Basics","Écoconception"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":196,"intitule":"Le contenu de chaque page est disponible à l’impression sans blocs de navigation.","theme":"Présentation","contexte":"Imprimez une page web sur une feuille A4. Mettez votre doigt sur un des éléments des menus. Il ne se passe rien. C’est normal, à l’impression, les menus ne servent à rien. Pas la peine de les imprimer.","solution":"Fournir une feuille de style CSS pour le média print, qui masque les blocs de navigation via la propriété display.","controle":"Cette vérification peut s’effectuer immédiatement en utilisant l’aperçu avant impression du navigateur :\n- vérifier qu’aucun menu ou autre bloc de navigation ne s’affiche dans l’aperçu avant impression de la page.\nLes blocs de navigation peuvent être l’ensemble des menus nav, des éléments de header ou de pied de page tels qu’un formulaire de recherche ou des liens annexes, un formulaire d’inscription à une newsletter, etc.","plan_outils":{"etapes":[{"args":{"mode":"impression"},"cible":"page","outil":"capturer_page"}],"portee":"page","outils_juge":[]},"outils":["capturer_page"],"strategie_justification":"Le mode \"impression\" de l'outil de capture reproduit l'aperçu avant impression du navigateur : il montre directement si des blocs de navigation restent visibles, ce qui permet de trancher selon le contrôle officiel.","guide_analyse":"Examinez la capture réalisée en mode impression. Conforme si aucun bloc de navigation n'est visible : pas de menu principal ni secondaire, pas d'en-tête contenant des liens de navigation, pas de pied de page avec formulaire de recherche, liens annexes ou inscription à une newsletter. Non conforme si un ou plusieurs de ces éléments apparaissent encore dans l'aperçu imprimé ; citez ceux qui persistent.","objectifs":["améliorer la lisibilité et la pertinence des contenus imprimés,","rationaliser l’espace utilisé par les contenus imprimés pour économiser du papier,","diminuer l’impact énergétique lié à la consultation du site."],"tags":["Écoconception"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":197,"intitule":"Toutes les pages utilisent le protocole HTTPS.","theme":"Sécurité","contexte":"Le HTTPS qui se trouve au début de la majorité des adresses web actuellement signifie que la page est envoyée par le serveur avec le protocole HyperText Transfer Protocol Secure ou « protocole de transfert hypertextuel sécurisé. » Cela signifie que la page est envoyée avec HTTP et qu’elle est chiffrée pour éviter qu’elle ne puisse être lue directement sur le réseau. Cette approche est maintenant généralisée pour toutes les pages web. Pour les utilisateurs, cela signifie que vos échanges sont chiffrés.","solution":"Ne pas utiliser le protocole HTTP, mais uniquement HTTPS pour toutes les ressources de chaque page.","controle":"Vérifier que chaque page et ressource de page utilise le protocole HTTPS et non HTTP.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"inspecter_entetes_http"},{"args":{},"cible":"page","outil":"lister_ressources"}],"portee":"page","outils_juge":[]},"outils":["inspecter_entetes_http","lister_ressources"],"strategie_justification":"Les en-têtes HTTP indiquent si la page elle-même est servie en HTTPS ou en HTTP, et la liste des ressources précise pour chaque fichier chargé s'il utilise HTTPS. Ces deux preuves couvrent le contrôle complet de la règle.","guide_analyse":"Dans les en-têtes HTTP de la page, vérifiez que le protocole est HTTPS et que l'outil ne signale pas de page en HTTP. Dans la liste des ressources, contrôlez que chaque fichier chargé par la page utilise bien le protocole HTTPS. Conforme si la page est en HTTPS et si l'ensemble des ressources qu'elle charge le sont également. Non conforme si la page est servie en HTTP, ou si au moins une ressource est chargée en HTTP, même lorsque la page principale est en HTTPS.","objectifs":["prévenir le risque d’interception et de vol de données,","améliorer la sécurité,","rassurer les utilisateurs,","consolider le référencement des pages."],"tags":["Basics"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.794443"},{"numero":198,"intitule":"Les certificats de sécurité sont signés et en cours de validité.","theme":"Sécurité","contexte":"La rencontre d’un service en ligne dont le certificat est invalide ou périmé provoque des alertes sur le poste de l’utilisateur. Dans un certain nombre de cas, elles le conduiront à interrompre immédiatement la navigation.","solution":"Faire un suivi rigoureux des certificats de sécurité utilisés en anticipant les dates de renouvèlement.","controle":"Vérifier la validité du certificat à l’aide d’un outil en ligne, ou bien à l’aide des outils fournis par les navigateurs.\nLa plupart des navigateurs affichent également une alerte lorsqu’ils rencontrent un certificat non valide.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"inspecter_entetes_http"}],"portee":"page","outils_juge":[]},"outils":["inspecter_entetes_http"],"strategie_justification":"L'outil d'inspection des en-têtes HTTP signale explicitement une page en HTTP ou un certificat invalide, ce qui permet de trancher tant sur l'absence de certificat que sur son invalidité.","guide_analyse":"Dans le résultat de l'inspection des en-têtes HTTP, cherchez un avertissement concernant une page en HTTP ou un certificat invalide. Conforme si la page est servie en HTTPS et qu'aucun problème de certificat n'est signalé. Non conforme si l'outil signale une page en HTTP ou un certificat invalide, périmé ou non signé par une autorité de confiance.","objectifs":["permettre aux utilisateurs de connaître la validité du certificat et contribuer à la sécurisation de la transaction."],"tags":["Basics"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":199,"intitule":"Les pages utilisant HTTPS ont un entête de transport strict.","theme":"Sécurité","contexte":"Selon Wikipédia, que nous nous refusons à paraphraser ici : « HTTP Strict Transport Security (HSTS) est un mécanisme de politique de sécurité proposé pour HTTP, permettant à un serveur web de déclarer à un agent utilisateur (comme un navigateur web), compatible, qu’il doit interagir avec lui en utilisant une connexion sécurisée (comme HTTPS) ». En résumé, cela signifie que votre serveur est configuré pour ne communiquer avec l’utilisateur que de manière chiffrée. Il s’agit donc d’un niveau de sécurité supplémentaire par rapport au fait d’utiliser HTTPS. Non seulement le serveur parle en HTTPS, mais il refuse de parler de toute autre façon.","solution":"Utiliser pour chaque page l’entête HTTP Strict Transport Security et son paramètre max-age pour spécifier que le navigateur doit convertir toutes les requêtes en HTTP en requêtes HTTPS.","controle":"Vérifier que le serveur envoie pour chaque page l’entête HTTP Strict Transport Security avec le paramètre max-age spécifiant la durée pendant laquelle le navigateur doit convertir toutes les requêtes en HTTP en requêtes HTTPS.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"inspecter_entetes_http"}],"portee":"page","outils_juge":[]},"outils":["inspecter_entetes_http"],"strategie_justification":"L'en-tête HTTP Strict Transport Security est envoyé par le serveur dans la réponse de chaque page : son inspection suffit à vérifier sa présence et la présence du paramètre max-age.","guide_analyse":"Dans les en-têtes HTTP de chaque page, vérifiez d'abord si la page est servie en HTTPS. Si elle est en HTTP, la règle ne s'applique pas. Si elle est en HTTPS, cherchez l'en-tête Strict-Transport-Security et vérifiez qu'il contient un paramètre max-age avec une valeur explicite. Conforme si chaque page HTTPS possède cet en-tête avec max-age. Non conforme si une page HTTPS ne l'a pas ou si max-age est absent.","objectifs":["améliorer la sécurité des échanges,","prévenir les risques d’attaques."],"tags":["Basics"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.819117"},{"numero":200,"intitule":"Les pages utilisant le protocole HTTPS ne proposent pas de ressources HTTP.","theme":"Sécurité","contexte":"Lorsque les utilisateurs naviguent sur les services en ligne proposant HTTPS, les utilisateurs voient s’afficher un cadenas. Lorsque le site propose dans la même page certaines ressources en HTTP et d’autres en HTTPS, le navigateur pourra afficher une alerte de sécurité concernant le service visité. Lorsque vous proposez un service en HTTPS, veillez bien à ce que toutes les ressources appelées soient également en HTTPS.","solution":"Pour chaque page envoyée par le serveur en HTTPS, fournir toutes les ressources qui la composent (images, fichiers CSS, JS, etc.) via le protocole HTTPS et non via HTTP.","controle":"Pour chaque page envoyée par le serveur en HTTPS, vérifier qu’aucune des ressources qui la composent (images, fichiers CSS, JS, etc.) n’est fournie via le protocole HTTP.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"inspecter_entetes_http"},{"args":{},"cible":"page","outil":"lister_ressources"}],"portee":"page","outils_juge":[]},"outils":["inspecter_entetes_http","lister_ressources"],"strategie_justification":"Les en-têtes HTTP permettent de vérifier que la page est servie en HTTPS, condition d'application de la règle. La liste des ressources chargées par la page indique leur protocole, permettant de détecter toute ressource en HTTP.","guide_analyse":"Dans les en-têtes HTTP, vérifiez que la page est servie en HTTPS ; si elle est en HTTP, la règle ne s'applique pas. Dans la liste des ressources, examinez le protocole de chaque fichier chargé (images, CSS, JS, etc.). Conforme si la page est en HTTPS et que toutes les ressources listées utilisent également HTTPS. Non conforme si la page est en HTTPS et qu'au moins une ressource est chargée via HTTP (adresse commençant par http://).","objectifs":["prévenir les alertes de type « site non sécurisé » dans les outils de consultation,","améliorer la sécurité pour l’ensemble des ressources."],"tags":[],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.843082"},{"numero":201,"intitule":"Les opérations relatives aux mots de passe peuvent être effectuées intégralement en ligne.","theme":"Sécurité","contexte":"Vous ne retrouvez plus votre mot de passe, pas de problème ! Saisissez votre nom, votre prénom, votre date de naissance, le nom de jeune fille de votre grand-père, vous recevrez votre nouveau mot de passe dans quelques jours par courrier postal. D’ici là, nous vous souhaitons de ne pas avoir trop besoin de notre service. Si ce message plus ou moins imaginaire fait écho à vos propres expériences – bancaires, par exemple –, vous n’avez même pas besoin qu’on vous explique l’intérêt de pouvoir modifier ou réinitialiser son mot de passe en ligne.","solution":"Permettre à l’utilisateur d’effectuer toutes les actions liées au mot de passe (réinitialisation de passe perdu, modification, etc.) intégralement en ligne. Par exemple : pas d’envoi d’un rappel de mot de passe ou d’un nouveau mot de passe par courrier postal.","controle":"Vérifier qu’il est possible d’effectuer intégralement en ligne toutes les actions liées au mot de passe (réinitialisation de mot de passe perdu, modification, etc.).","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de tester des processus complets de réinitialisation et de modification de mot de passe, ce qui nécessite d'envoyer des formulaires, de consulter des messages externes (e-mail, SMS) et souvent de se connecter ; aucun outil disponible ne permet d'effectuer ces actions ni d'observer les étapes hors page.","guide_analyse":"Vérification humaine : depuis la page de connexion, lancez la procédure de réinitialisation du mot de passe perdu et suivez le processus jusqu'au bout : il doit aboutir entièrement en ligne, sans imposer de courrier postal, d'appel téléphonique ni d'intervention externe. Connectez-vous ensuite et vérifiez que la modification du mot de passe est possible dans l'espace personnel, de manière autonome et en ligne. La réception d'un e-mail ou d'un SMS de validation fait partie du processus en ligne acceptable. Non conforme si une étape obligatoire de la réinitialisation ou de la modification nécessite une action hors ligne.","objectifs":["fournir une solution immédiate au problème de l’utilisateur,","limiter les difficultés liées à l’utilisation d’autres modes de communication."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":202,"intitule":"Les mots de passe peuvent être choisis ou changés par l’utilisateur.","theme":"Sécurité","contexte":"Pour de nombreux utilisateurs, les mots de passe choisis par défaut sont trop complexes à mémoriser. Le fait de pouvoir choisir ou changer son mot de passe présente une vraie valeur ajoutée pour ces utilisateurs.","solution":"Fournir une procédure en ligne permettant le choix d’un mot de passe personnalisé dès la création du compte ou la modification ultérieure des mots de passe automatiquement générés.\nFournir un accès à la modification du mot de passe depuis la gestion du compte utilisateur ou à défaut dans le contexte du formulaire d’identification.","controle":"Dans tout service en ligne proposant un accès par mot de passe :\n- vérifier qu’il est possible de saisir le mot de passe de son choix à la création du compte ou, dans le cas où le mot de passe est automatiquement généré par le service en ligne, contrôler qu’il est possible de le modifier après l’inscription.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de créer un compte ou de se connecter pour vérifier que l'utilisateur peut choisir ou modifier son mot de passe, ce qui implique d'envoyer des formulaires et d'accéder à un espace personnel. Aucun outil ne permet d'effectuer ces actions jusqu'au bout ni de trancher entre un mot de passe saisissable à l'inscription et un mot de passe généré automatiquement modifiable ensuite.","guide_analyse":"Vérification humaine : accédez au formulaire d'inscription et tentez de créer un compte. Vérifiez que vous pouvez saisir un mot de passe personnalisé dans un champ prévu à cet effet. Si le service vous attribue un mot de passe automatiquement, connectez-vous et recherchez dans la gestion du compte ou à proximité du formulaire d'identification une fonctionnalité permettant de le modifier. Conforme si vous pouvez choisir votre mot de passe à l'inscription ou le modifier après coup ; non conforme si le mot de passe est imposé définitivement ou si aucune procédure de modification n'est accessible.","objectifs":["permettre aux utilisateurs de choisir un mot de passe personnalisé,","éviter aux utilisateurs de rechercher leur mot de passe à chaque connexion."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.871169"},{"numero":203,"intitule":"Un dispositif sensibilise l’utilisateur sur le degré de sécurisation du mot de passe qu’il choisit.","theme":"Sécurité","contexte":"Un mot de passe doit avoir un niveau minimum de complexité pour ne pas être facilement deviné à des fins malveillantes. Il est souhaitable d’avertir l’utilisateur si le mot de passe qu’il a choisi n’est pas assez complexe. Certains systèmes permettent même de l’en informer en direct pendant la saisie.","solution":"La saisie du mot de passe donne lieu à une validation et à un retour indiquant son degré de sécurité, avant soumission définitive du formulaire d’inscription ou de changement de mot de passe.","controle":"Pour tout formulaire d’inscription ou de changement de mot de passe :\n- saisir un mot de passe et s’assurer que cette saisie donne lieu à une validation et à un retour indiquant son degré de sécurité, et ce, avant la soumission définitive du formulaire.\nCette validation peut être plus ou moins exigeante : contrôle du nombre de caractères, de l’absence de l’identifiant du compte dans le mot de passe, du type de caractères présents, etc.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle impose de saisir un mot de passe et d'observer un retour dynamique sur sa sécurité avant soumission, ce qui exige une interaction de saisie impossible avec les outils disponibles.","guide_analyse":"Parmi les pages fournies, identifiez celles qui contiennent un formulaire d'inscription ou de changement de mot de passe. Saisissez une valeur dans le champ concerné et vérifiez qu'un indicateur visuel ou textuel apparaît pour préciser le degré de sécurité du mot de passe avant la soumission du formulaire. Conforme si ce retour est présent dès la saisie ou à la perte de focus. Non conforme si aucune indication n'est donnée ou si elle n'intervient qu'après l'envoi du formulaire.","objectifs":["informer les utilisateurs sur le niveau de sécurité du mot de passe choisi et donc sur les risques de détournement."],"tags":["Accessibilité","Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":204,"intitule":"Les mots de passe peuvent être réinitialisés.","theme":"Sécurité","contexte":"Perdre son identifiant ou son mot de passe arrive à tout le monde. La procédure à suivre pour le réinitialiser doit être simple, possible à faire en ligne et sécurisée. Un mot de passe perdu peut être synonyme d’utilisateur perdu.","solution":"Fournir un lien permettant l’envoi d’un e-mail à l’adresse associée au compte indiquant la procédure de réinitialisation.\nPlacer de préférence ce lien dans le formulaire de connexion.","controle":"Dans un service en ligne proposant un compte personnel protégé par mot de passe :\n- sans être identifié sur le site, vérifier la présence d’un lien du type « Mot de passe oublié ? » à proximité du formulaire de connexion,\n- vérifier la présence d’une procédure permettant la création d’un nouveau mot de passe sur la page pointée par le lien « Mot de passe oublié ? »,\n- vérifier qu’il s’agit bien d’une procédure de réinitialisation et non pas d’un simple renvoi du mot de passe actuel.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de suivre un lien dynamique depuis le formulaire de connexion pour vérifier, sur la page cible, qu'elle propose bien une procédure de création d'un nouveau mot de passe et non le renvoi du mot de passe actuel. Les outils ne permettent pas de naviguer vers une URL découverte dans une page, ni de tester l'envoi du formulaire de réinitialisation, ni de consulter une boîte mail ; seule la présence du lien sur la page fournie est constatable, ce qui ne suffit pas à trancher l'ensemble du contrôle.","guide_analyse":"Vérification humaine : sur la page de connexion, recherchez à proximité du formulaire un lien du type « Mot de passe oublié ? ». Cliquez sur ce lien et vérifiez que la page affichée propose une procédure permettant de créer un nouveau mot de passe (par exemple par envoi d'un lien ou d'un code de réinitialisation à l'adresse e-mail associée au compte). Assurez-vous qu'il ne s'agit pas d'un simple renvoi du mot de passe actuel par e-mail. Non conforme si le lien est absent, si la page cible ne permet pas de créer un nouveau mot de passe, ou si elle communique le mot de passe actuel en clair.","objectifs":["permettre à l’utilisateur d’accéder à son compte en cas de perte du mot de passe,","simplifier la gestion des comptes utilisateurs,","renforcer la sécurité en évitant le stockage de mots de passe non chiffrés afin de pouvoir les communiquer de nouveau à l’utilisateur."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.895697"},{"numero":205,"intitule":"Les mots de passe ne sont pas communiqués en clair.","theme":"Sécurité","contexte":"Le risque qu’un e-mail puisse être intercepté ou piraté ne peut jamais être complètement écarté. En conséquence, les mots de passe ne doivent jamais circuler en clair, et notamment dans les e-mails. Certains services peuvent faire exception à la règle en vous proposant des mots de passe temporaires, mais ce n’est pas la solution la plus sure et cela doit strictement être réservé aux solutions temporaires.","solution":"Lors d’une création de compte ou en cas de demande de réinitialisation ou de rappel du mot passe, ne pas adresser celui-ci à l’utilisateur par e-mail. Fournir le mot de passe ou sa procédure de réinitialisation uniquement en ligne.","controle":"Vérifier qu’aucun mot de passe n’est envoyé à l’utilisateur par e-mail lors de la création de compte ou en cas de demande de réinitialisation ou de rappel du mot passe.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle nécessite d'interagir avec le site pour créer un compte ou demander une réinitialisation de mot de passe, puis de consulter une boîte mail pour vérifier le contenu des e-mails envoyés. Aucun outil disponible ne permet d'effectuer ces actions ni d'accéder à des e-mails.","guide_analyse":"Vérification humaine : créez un compte avec une adresse e-mail de test et demandez un rappel de mot de passe, puis une réinitialisation. Ouvrez la boîte de réception et les courriers indésirables de cette adresse. Conforme si aucun e-mail envoyé par le site ne contient le mot de passe en clair, qu'il soit temporaire ou définitif. Non conforme si un mot de passe est communiqué par e-mail lors de l'une de ces étapes. Privilégiez la vérification en ligne comme seul canal de transmission.","objectifs":["limiter les risques d’interception des mots de passe."],"tags":[],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":206,"intitule":"Les entêtes envoyés par le serveur désactivent la détection automatique du type MIME de chaque ressource.","theme":"Sécurité","contexte":"Ne cherchez pas, le mime n’a rien à voir avec Marcel Marceau, c’est simplement un identifiant permettant d’indiquer le format des données sur Internet. La détection automatique de ce format peut rendre possible l’envoi de contenus dangereux vers le poste des utilisateurs. Dans la mesure où cette détection automatique n’est pas vitale, désactivez-la.","solution":"Configurer le serveur pour adresser l’entête X-Content-Type-Options avec la valeur nosniff.","controle":"Vérifier, à l’aide d’un outil d’inspection des entêtes HTTP, la présence de l’entête X-Content-Type-Options avec la valeur nosniff.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"inspecter_entetes_http"}],"portee":"page","outils_juge":[]},"outils":["inspecter_entetes_http"],"strategie_justification":"La présence et la valeur de l'en-tête X-Content-Type-Options se lisent directement dans les en-têtes HTTP de la réponse serveur de chaque page fournie.","guide_analyse":"Dans les en-têtes HTTP relevés, cherchez l'en-tête X-Content-Type-Options. Conforme si cet en-tête est présent avec la valeur exacte nosniff. Non conforme si l'en-tête est absent, ou s'il est présent avec une valeur différente. La vérification porte sur les en-têtes de la page elle-même.","objectifs":["réduire les risques de téléchargement d’un contenu dangereux dissimulé."],"tags":[],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":207,"intitule":"Le serveur indique le type MIME de chaque ressource.","theme":"Sécurité","contexte":"Le fait d’indiquer le type MIME de chaque ressource permet au navigateur de l’utilisateur de récupérer des contenus correctement identifiés, et de fermer la porte à l’envoi de certains contenus dangereux.","solution":"Configurer le serveur pour adresser pour chaque ressource (texte, image, script, etc.) l’entête Content-Type renseigné avec le type MIME approprié, par exemple :\n- text/html,\n- application/pdf.","controle":"Vérifier, à l’aide d’un outil d’inspection des entêtes HTTP, la présence de Content-Type avec la valeur correspondant au type de ressource.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"inspecter_entetes_http"},{"args":{},"cible":"page","outil":"lister_ressources"}],"portee":"page","outils_juge":[]},"outils":["inspecter_entetes_http","lister_ressources"],"strategie_justification":"L'en-tête Content-Type du document HTML se lit dans les en-têtes HTTP de la page, et les types MIME des ressources chargées (styles, scripts, images, etc.) sont listés par l'outil de ressources : ces deux preuves permettent de vérifier que chaque ressource est correctement identifiée.","guide_analyse":"Dans les en-têtes HTTP de la page, vérifiez la présence de Content-Type avec une valeur adaptée au document (généralement text/html). Dans la liste des ressources chargées, vérifiez que chaque fichier dispose d'un type MIME indiqué et que cette valeur correspond au type de ressource (par exemple text/css pour une feuille de style, image/png pour une image PNG, application/javascript pour un script). Conforme si toutes les ressources présentes ont un Content-Type approprié. Non conforme si le document ou une ressource chargée manque de Content-Type ou présente un type inapproprié (ex: application/octet-stream, text/plain pour un script ou une image).","objectifs":["réduire les risques de téléchargement d’un contenu dangereux dissimulé."],"tags":[],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":208,"intitule":"Les informations sur la sécurité des transactions sont indiquées.","theme":"Sécurité","contexte":"Les transactions en ligne impliquent généralement le transfert de données sensibles, notamment les numéros de cartes bleues. Pour éviter l’interception de ces données, il importe de les chiffrer. Il est également utile d’informer l’utilisateur sur les mesures de sécurité.","solution":"Indiquer le mode (SSL, TLS) et le niveau de chiffrement des données (128 ou 256 bits, etc.) sur les pages concernées. Il est aussi possible d’indiquer comment retrouver l’information par le biais de son navigateur dans la mesure où la plupart offrent cette possibilité.","controle":"Dans un service proposant d’effectuer des transactions en ligne : contrôler que les informations sur le niveau et le mode de chiffrement des données sont facilement accessibles depuis une page d’aide ou une FAQ, par exemple. Si la procédure indique comment retrouver l’information dans l’interface d’un navigateur, elle doit faire référence aux principaux navigateurs du marché.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"}],"portee":"echantillon","outils_juge":[]},"outils":["lire_page"],"strategie_justification":"Les informations sur la sécurité des transactions sont du contenu textuel éditorial présent dans le corps des pages. Le texte principal lu par l'outil permet au juge de repérer les mentions du mode et du niveau de chiffrement, ou la procédure de vérification dans le navigateur.","guide_analyse":"Dans le texte de chaque page fournie, cherchez les mentions du mode (SSL, TLS) et du niveau (128 bits, 256 bits, etc.) de chiffrement des données sensibles. Cherchez également une procédure expliquant comment retrouver cette information dans l'interface d'un navigateur ; si elle est présente, vérifiez qu'elle cite les principaux navigateurs du marché (Chrome, Firefox, Safari, Edge, etc.). Conforme si au moins une page contient ces informations. Non conforme si aucune page ne les contient. Si l'échantillon ne comporte aucune page d'aide, FAQ ou de transaction, l'absence de preuve ne permet pas de conclure.","objectifs":["contribuer à l’information des utilisateurs sur la sécurisation des échanges de données sensibles."],"tags":[],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.920185"},{"numero":209,"intitule":"Le serveur n’envoie pas la liste des fichiers des répertoires n’ayant pas de page d’index.","theme":"Sécurité","contexte":"Lorsqu’un répertoire ne contient pas de page d’accueil en front (le répertoire des images du site, par exemple), il arrive qu’il soit possible d’afficher son contenu. Par exemple, en cas de non-respect de cette règle, une URL comme domaine.com/ doc/ peut permettre l’accès à la liste complète des documents, et ce, même s’ils ne sont pas destinés à être publics. C’est embêtant, n’est-ce pas ?","solution":"Configurer le serveur pour qu’il ne renvoie pas la liste des fichiers présents dans un répertoire. Pour Apache, ajouter par exemple options --indexes dans le .htaccess.","controle":"Pour chaque service audité :\n- contrôler que l’appel à un répertoire sans page par défaut – comme le répertoire des images, des scripts JS ou des feuilles de style – ne renvoie pas la liste du contenu de ce dossier (cette action peut en revanche mener à une page d’erreur ou à une redirection).","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige d'interroger l'URL de répertoires sans page d'index (déduits des ressources chargées ou devinés) et d'en lire le contenu pour détecter un listing de fichiers. Aucun outil ne permet de construire dynamiquement l'URL d'un répertoire parent à partir des adresses de ressources listées, ni d'effectuer une requête sur un chemin arbitraire choisi par le juge.","guide_analyse":"Vérification humaine : à partir des pages fournies, identifiez les répertoires contenant les ressources (images, styles, scripts) ou testez les chemins courants (/images/, /img/, /css/, /js/, /assets/, /uploads/, /media/). Saisissez chaque URL de répertoire dans un navigateur. Conforme si chaque appel aboutit à une erreur (403, 404), une redirection ou une page d'index, et jamais à une liste de fichiers. Non conforme si un répertoire affiche son contenu.","objectifs":["éviter l’affichage de listes de fichiers contenus dans un répertoire,","améliorer la sécurité du serveur,","limiter les risques d’intrusion."],"tags":[],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":210,"intitule":"Le serveur envoie les informations d’activation de protection cross site scripting.","theme":"Sécurité","contexte":"Le cross-site scripting est une attaque qui consiste à injecter et exécuter un contenu –malveillant – sur une page. Certains navigateurs ont des mécanismes intégrés de filtres pour protéger contre certains types de ces attaques, mécanismes qui peuvent malheureusement être désactivés. Pour empêcher de faire courir ce genre de risques aux utilisateurs, il est donc conseillé de forcer la présence de l’entête de protection et de jouer la sécurité maximale pour le visiteur en bloquant la totalité du contenu de la page.","solution":"Configurer le serveur afin qu’il transmette aux navigateurs des informations explicites permettant d’activer ou de renforcer les protections contre les attaques de type cross-site scripting (XSS). Ces informations peuvent notamment prendre la forme :\n- d’une politique de sécurité des contenus (Content Security Policy – CSP) adaptée, transmise via les entêtes HTTP,\n- ou de tout autre mécanisme serveur reconnu et maintenu par les navigateurs modernes, permettant de limiter l’exécution de scripts non autorisés.\nLes mécanismes mis en place doivent être conformes à l’état de l’art et ne pas reposer sur des dispositifs obsolètes ou dépréciés (entête HTTP X-XSS-Protection).","controle":"À l’aide d’un outil d’inspection des entêtes HTTP ou d’analyse de la configuration serveur :\n- vérifier la présence d’un mécanisme explicite de protection contre les attaques XSS (par exemple une Content Security Policy active),\n- vérifier que ce mécanisme est effectivement transmis par le serveur et applicable aux pages concernées.\nLe contrôle ne porte pas sur un entête spécifique, mais sur l’existence d’une information serveur visant à activer ou renforcer les protections XSS côté navigateur.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"inspecter_entetes_http"}],"portee":"page","outils_juge":[]},"outils":["inspecter_entetes_http"],"strategie_justification":"La présence d'un mécanisme de protection XSS se vérifie dans les entêtes HTTP renvoyés par le serveur : une inspection suffit pour constater si une Content Security Policy ou un équivalent moderne y figure.","guide_analyse":"Dans les entêtes HTTP de la réponse, cherchez un mécanisme explicite de protection contre les attaques XSS, tel qu'une entête Content-Security-Policy. La solution officielle exclut les dispositifs obsolètes comme X-XSS-Protection, qui ne constituent pas une conformité à l'état de l'art. Conforme si au moins un entête moderne actif de protection XSS (CSP ou équivalent reconnu) est présent. Non conforme si aucun tel entête n'est transmis par le serveur, ou si seul un mécanisme déprécié est présent.","objectifs":["réduire les risques de téléchargement d’un contenu dangereux dissimulé."],"tags":[],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.942891"},{"numero":211,"intitule":"Le serveur envoie les informations indiquant les domaines autorisés à intégrer ses pages dans des cadres.","theme":"Sécurité","contexte":"Les cadres permettent d’afficher des morceaux de pages web à l’intérieur d’une page web. C’est, par exemple, le cas d’un cadre affichant une publicité dans une autre page web. Vos contenus peuvent également être embarqués depuis une autre page, par exemple pour le tester avec certains services. Cela peut aussi être fait avec de mauvaises intentions, notamment pour faire croire à un utilisateur peu prudent qu’il est en train de naviguer chez vous : il faut donc empêcher ce risque.","solution":"Configurer le serveur afin qu’il transmette aux navigateurs des informations explicites définissant les domaines autorisés à intégrer les pages dans des cadres (frames ou iframes). Cette configuration peut notamment reposer sur :\n- l’utilisation de l’entête HTTP X-Frame-Options avec les valeurs DENY (interdiction totale d’intégration dans un cadre) ou SAMEORIGIN (autorisation limitée au même domaine);\n- et/ou la mise en place d’une politique de sécurité des contenus (Content Security Policy – CSP), via la directive frame-ancestors, permettant de définir de manière fine les domaines autorisés à intégrer les pages.","controle":"À l’aide d’un outil d’inspection des entêtes HTTP ou d’analyse de la configuration serveur :\n- vérifier la présence d’un mécanisme de contrôle des intégrations en cadre (par exemple X-Frame-Options ou une directive CSP frame-ancestors),\n- vérifier que ce mécanisme limite effectivement l’intégration des pages à des domaines explicitement autorisés ou l’interdit totalement.\nLe contrôle porte sur l’existence d’une politique serveur explicite de protection contre l’intégration non autorisée en iframe, et non sur un entête unique.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"inspecter_entetes_http"}],"portee":"page","outils_juge":[]},"outils":["inspecter_entetes_http"],"strategie_justification":"La présence et la valeur des en-têtes de sécurité X-Frame-Options et Content-Security-Policy sont transmises par le serveur dans les en-têtes HTTP de chaque page : une inspection suffit à les constater.","guide_analyse":"Dans les en-têtes HTTP de la page, cherchez X-Frame-Options ou Content-Security-Policy. Conforme si X-Frame-Options vaut DENY, SAMEORIGIN ou ALLOW-FROM suivi d'un domaine, ou si Content-Security-Policy contient une directive frame-ancestors limitant l'intégration à des domaines explicites ('none', 'self' ou une liste de domaines). Non conforme si aucun mécanisme n'est présent, ou si la valeur n'interdit pas et ne limite pas l'intégration (par exemple frame-ancestors * ou absence de directive frame-ancestors).","objectifs":["réduire les risques d’utilisation trompeuse du contenu."],"tags":[],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":212,"intitule":"Un mécanisme de sécurité restreint l’origine des contenus.","theme":"Sécurité","contexte":"Le serveur envoie une page contenant divers éléments (fichiers JavaScript, CSS, webfonts, etc.) au navigateur, qui va se charger de télécharger et d’afficher le tout, le mieux et le plus vite possible… sans se poser de questions sur la légitimité de ce qu’il fait. Le système nommé Content Security Policy permet d’indiquer au navigateur des règles concernant l’origine de ces contenus. Cela permet de déterminer précisément ce qu’il aura le droit d’exécuter ou d’afficher, et cela renforce donc la sécurité pour les utilisateurs.","solution":"Activer l’entête HTTP Content-Security-Policy avec les directives CSP 1 appropriées :\n- img-src pour les images,\n- script-src pour le JavaScript,\n- style-src pour les styles CSS,\n- font-src pour les webfonts,\n- ,etc.","controle":"Vérifier, à l’aide d’un outil d’inspection des entêtes HTTP, la présence de l’entête Content-Security-Policy.\nLe serveur du site Particuliers de la Société Générale envoie l’entête HTTP Content-Security-Policy correctement paramétré.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"inspecter_entetes_http"}],"portee":"page","outils_juge":[]},"outils":["inspecter_entetes_http"],"strategie_justification":"La présence de l'en-tête HTTP Content-Security-Policy se constate directement dans la réponse du serveur : l'inspection des en-têtes suffit.","guide_analyse":"Dans les en-têtes HTTP de chaque page, cherchez l'en-tête Content-Security-Policy. Conforme si cet en-tête est présent avec une valeur non vide. Non conforme si l'en-tête est absent ou si sa valeur est vide. Ne tenez pas compte de l'en-tête Content-Security-Policy-Report-Only seul, car le contrôle exige la politique effective.","objectifs":["réduire les risques d’exécution ou d’affichage d’un contenu non désirable ou d’une source non autorisée."],"tags":["Basics"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.965256"},{"numero":213,"intitule":"Le serveur ne communique pas d’informations sur les logiciels et langages utilisés.","theme":"Sécurité","contexte":"Les vrais informaticiens connaissent la vérité : il n’existe pas de logiciel ou d’outil informatique sécurisé à 100%. Chaque version d’un logiciel utilisé de manière importante, comme la plupart des logiciels serveur, des systèmes de gestion de contenus et même des formats utilisés, présente un certain nombre de défauts. Utiliser telle ou telle version d’un logiciel peut aiguiller directement une personne mal intentionnée vers une faille de sécurité documentée. Votre serveur peut être configuré pour annoncer à tout le monde qu’il tourne avec la version X du logiciel Y. Ou alors, vous veillez à respecter cette règle et il sera muet comme une carpe.","solution":"Ne communiquer via les entêtes HTTP envoyés par le serveur aucune information sur les logiciels et langages utilisés côté serveur, en particulier via les entêtes Server, X-Powered-By et X-AspNet-Version.","controle":"Vérifier que les entêtes HTTP envoyés par le serveur ne donnent aucune information sur les logiciels et langages utilisés côté serveur.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"inspecter_entetes_http"}],"portee":"page","outils_juge":[]},"outils":["inspecter_entetes_http"],"strategie_justification":"Les entêtes HTTP renvoyés par le serveur pour chaque page sont directement inspectables ; leur contenu révèle ou non la présence d'informations sur les logiciels et langages utilisés.","guide_analyse":"Dans les entêtes HTTP de chaque page, examinez les champs Server, X-Powered-By, X-AspNet-Version et tout autre en-tête équivalent. Conforme si aucun de ces entêtes n'est présent ou s'ils ne contiennent aucune information permettant d'identifier un logiciel, un framework ou un langage côté serveur. Non conforme si un entête révèle explicitement un logiciel ou une version (ex. Apache, nginx, PHP, ASP.NET).","objectifs":["prévenir les risques d’intrusion sur le serveur,","prévenir l’apparition de contenus ou scripts malveillants sur le site."],"tags":[],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":214,"intitule":"Le contrôle d’intégrité des ressources tierces est présent et valide.","theme":"Sécurité","contexte":"Il est possible de vérifier que les ressources tierces (fichiers scripts, feuilles de style…) n’ont pas été modifiées pour y insérer du code malveillant. Pour ceci, le client web (navigateur, notamment) va vérifier en permanence que les fichiers envoyés sont les bons fichiers. Cette règle incite à la mise en place de cette mesure de sécurité.","solution":"Utiliser l’attribut integrity de chaque élément link et script (appelant un fichier externe) pour fournir au navigateur le hachage cryptographique (hachage SRI) auquel le fichier doit correspondre.","controle":"Vérifier pour chaque élément link et script (appelant un fichier externe) la présence de l’attribut integrity indiquant le hachage cryptographique (hachage SRI) auquel le fichier concerné doit correspondre.","plan_outils":{"etapes":[{"args":{"selecteur":"script[src], link[href]","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html"],"strategie_justification":"L'attribut integrity est écrit dans le code HTML de la page sur les éléments link et script qui appellent un fichier externe : une inspection du HTML suffit à constater sa présence ou son absence.","guide_analyse":"Dans les éléments relevés par l'inspection (script avec src et link avec href), vérifiez pour chacun la présence de l'attribut integrity avec une valeur non vide. Conforme si tous les éléments appelant un fichier externe possèdent cet attribut, ou si aucun élément n'est relevé. Non conforme si au moins un élément n'a pas d'attribut integrity ou si sa valeur est vide.","objectifs":["prévenir les risques de diffusion de code malveillant,","limiter les risques associés à la diffusion de code malveillant : désindexation, plaintes, etc."],"tags":[],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:37.988301"},{"numero":215,"intitule":"Les opérations sécurisées peuvent être validées par au moins deux moyens.","theme":"Sécurité","contexte":"Les serveurs demandent de plus en plus souvent aux utilisateurs de valider certaines opérations en utilisant leur mobile, notamment. Il arrive cependant que les utilisateurs n’aient pas accès à leur mobile et ne soient donc pas en mesure de valider les opérations en question. C’est notamment le cas pour les personnes en déplacement à l’étranger. Pour éviter cela, proposez une solution de secours qui permettra tout de même de valider l’opération.","solution":"Pour toute opération sécurisée par un système de type authentification à double facteur ou autre authentification forte, fournir à l’utilisateur au moins deux mécanismes au choix pour l’utiliser (par exemple, authentification par SMS ou par terminal de validation).","controle":"Vérifier pour toute opération sécurisée par un système de type authentification à double facteur ou autre authentification forte, que l’utilisateur a le choix entre au moins deux mécanismes (par exemple, authentification par SMS ou par terminal de validation).","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle porte sur le choix offert à l'utilisateur au moment d'une opération sécurisée, généralement après authentification. Il faut se connecter, déclencher l'opération et constater les mécanismes proposés : actions (saisie d'identifiants, connexion, déclenchement d'une opération sensible) que les outils ne réalisent pas.","guide_analyse":"Vérification humaine : connectez-vous au site et déclenchez une opération sécurisée (modification de mot de passe, virement, changement d'email, etc.). Au moment de la validation forte, vérifiez que l'utilisateur dispose d'au moins deux mécanismes au choix (par exemple SMS, email, application d'authentification, clé de sécurité). Conforme si deux options ou plus sont proposées ; non conforme si une seule option est disponible ou si aucune alternative n'est offerte.","objectifs":["prévenir les risques d’échec des opérations,","éviter l’exclusion d’utilisateurs pour des raisons techniques ou matérielles."],"tags":[],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":216,"intitule":"L’affichage de la barre d’adresse du navigateur n’est pas bloqué.","theme":"Sécurité","contexte":"Certains services en ligne affichent les formulaires de connexion dans des fenêtres séparées, sans la barre d’adresse du navigateur. Ces fenêtres isolées, sans affichage de l’URL, peuvent être utilisées pour récupérer les identifiants de connexion, sans que les utilisateurs et utilisatrices aient de moyens de se rendre compte qu’ils ne sont pas là ils croient être (phishing). De manière générale, il est toujours utile de savoir où l’on se trouve.","solution":"Ne pas utiliser les techniques d’ouverture de popup permettant de masquer la barre d’adresse de la fenêtre. Par exemple, window.open() avec les options location=\"no\", toolbar=\"no\", fullscreen ou kiosk.","controle":"Vérifier pour chaque fenêtre ouverte la présence visible de la barre d’adresse du navigateur.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige de constater visuellement la barre d'adresse sur chaque fenêtre ouverte par le site, ce qui suppose d'interagir avec la page pour ouvrir des popups et d'inspecter leur chrome UI, hors capacités des outils disponibles.","guide_analyse":"Vérification humaine : parcourez la page et cliquez chaque élément susceptible d'ouvrir une fenêtre (lien de connexion, bouton de partage, etc.). Pour chaque nouvelle fenêtre ou popup ouverte, vérifiez que la barre d'adresse du navigateur est visible et affiche l'URL. Conforme si toutes les fenêtres ouvertes présentent une barre d'adresse visible. Non conforme si une seule fenêtre masque la barre d'adresse, notamment par l'utilisation de window.open avec les options location=no, toolbar=no, fullscreen ou kiosk.","objectifs":["limiter les risques d’interception d’identifiants et de mots de passe,","limiter les usurpations de domaines,","renforcer l’identification et la confiance en ligne."],"tags":["Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":217,"intitule":"Le domaine de messagerie est authentifié.","theme":"Sécurité","contexte":"Les mails envoyés aux utilisateurs ont une importance capitale pour la qualité des expériences en ligne. Il faut donc veiller à ce que ceux-ci arrivent bien, ne partent pas en spam et que les serveurs de mails associés au service en ligne ou à l’application soient considérés comme de confiance sur toute la chaîne de transmission et de réception des mails. Pour cela, il est essentiel d’authentifier correctement le domaine de messagerie.","solution":"Pour chaque domaine utilisé pour l’envoi de mails :\n- SPF : Ajouter un enregistrement TXT dans le DNS du domaine listant les serveurs autorisés à envoyer des mails pour ce domaine,\n- DKIM : Configurer la signature cryptographique des mails émis via une clé privée, et publier la clé publique dans le DNS du domaine,\n- DMARC : Définir une politique (none, quarantine, reject) et spécifier une adresse de retour pour les rapports, via un enregistrement DNS.","controle":"Pour chaque domaine utilisé pour l’envoi de mails :\n- utiliser des outils de test de configuration DNS (ex : https://mxtoolbox.com, https://dmarcian.com),\n- vérifier que les enregistrements SPF, DKIM et DMARC sont présents et correctement configurés,\n- analyser les entêtes des mails reçus pour confirmer la bonne application des signatures,\n- s’assurer que les politiques définies (notamment DMARC) sont cohérentes avec les pratiques d’envoi du service en ligne.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige d'interroger les enregistrements DNS (SPF, DKIM, DMARC) du domaine de messagerie et d'analyser les entêtes de mails reçus, ce qui dépasse la portée des outils limités aux pages web.","guide_analyse":"Identifiez les domaines utilisés par le site pour envoyer des mails. Pour chacun, utilisez un outil de test DNS en ligne (par exemple MXToolbox ou DMARCian) pour vérifier la présence et la validité des enregistrements TXT SPF, DKIM et DMARC. Envoyez ensuite un mail de test depuis le service et analysez les entêtes du message reçu pour confirmer que les signatures sont appliquées. Conforme si les trois enregistrements sont présents, correctement configurés et cohérents avec les pratiques d'envoi ; non conforme si l'un d'eux est absent ou mal configuré.","objectifs":["protéger les utilisateurs contre les e-mails frauduleux ou usurpés,","améliorer la délivrabilité des e-mails légitimes (newsletters, confirmations, alertes),","renforcer la réputation et la fiabilité du domaine émetteur,","réduire le risque que les e-mails soient classés comme spam,","respecter les exigences des principaux fournisseurs de messagerie,","surveiller les e-mails envoyés avec le nom de domaine."],"tags":["Basics"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":218,"intitule":"L’adresse du site fonctionne avec et sans préfixe www.","theme":"Serveur et performances","contexte":"Lorsque l’on saisit directement des termes de format domaine.com, certains navigateurs transforment en https://www.domaine.com, d’autres en https://domaine.com Il arrive fréquemment que cette dernière adresse renvoie une erreur, même sur de très gros sites. Pensez-y.","solution":"Configurer le serveur de façon à ce qu’il gère les adresses sans www (acheminement).","controle":"Sur quelques-unes des pages examinées :\n- enlever le préfixe « www » dans l’adresse de la page, au sein de la barre d’URL de votre navigateur,\n- vérifier que vous avez toujours accès au site.\nAttention : certains navigateurs masquent par défaut le préfixe www. Le test devra donc se faire en ajoutant http:// ou https:// devant l’adresse tout en omettant le préfixe, par exemple : https://opquast.com.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de modifier l'URL des pages examinées (retirer le préfixe www) et de vérifier que le site reste accessible, mais les outils du catalogue ne permettent pas de requêter une adresse dérivée ou alternative de la page fournie.","guide_analyse":"Vérification humaine : pour chaque page examinée, retirez manuellement le préfixe www de l'adresse dans la barre d'URL en tapant explicitement http:// ou https:// suivi du domaine sans www. Vérifiez que la page se charge correctement, sans erreur. Conforme si l'accès est maintenu sur toutes les pages testées. Non conforme si au moins une page sans www renvoie une erreur, une page blanche ou n'est pas accessible.","objectifs":["permettre aux utilisateurs de rejoindre la page d’accueil même lorsqu’ils oublient de taper le préfixe www,","diminuer l’impact énergétique lié à la consultation."],"tags":["Écoconception"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":1,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":219,"intitule":"La racine du site contient des instructions pour les robots d’indexation.","theme":"Serveur et performances","contexte":"Les robots sont des programmes informatiques qui analysent et parcourent vos pages. Les plus connus sont ceux des moteurs de recherche, qui indexent les contenus. Ces robots peuvent recevoir des instructions pour les guider dans leur indexation, il suffit de mettre en place un fichier appelé robots.txt à la racine de votre site et de respecter une syntaxe particulière dans ce fichier.","solution":"Pour définir les répertoires, fichiers ou types de fichiers non indexables, utiliser les instructions user-agent et disallow dans un fichier texte unique appelé robots.txt, placé dans le répertoire racine du site.\nAlternativement, pour agir au niveau d’une page spécifique, utiliser dans celle-ci la balise meta name=\"robots\" content=\"attribut1, attribut2\" :\n- attribut1 peut prendre les valeurs index (indexer cette page) ou noindex (ne pas indexer cette page),\n- attribut2 peut prendre les valeurs follow (suivre les liens contenus dans cette page) ou nofollow (ne pas suivre les liens).","controle":"À partir de l’adresse URL de votre site :\n- accéder tout d’abord à l’adresse du fichier robots.txt, à la racine du site, en tapant, par exemple, http://example.com/robots.txt dans la barre d’adresse du navigateur,\n- vérifier la présence du fichier robots.txt placé dans le répertoire racine du site,\n- vérifier la validité de la syntaxe du fichier robots.txt à l’aide des indications données par les moteurs de recherche.\nEn l’absence de fichier robots.txt vérifier la présence et la validité de la balise meta name=\"robots\" content=\"attribut1, attribut2\" dans chaque page.","plan_outils":{"etapes":[{"args":{},"cible":"racine","outil":"inspecter_entetes_http","chemin":"/robots.txt"},{"args":{"selecteur":"meta[name=\"robots\"]"},"cible":"page","outil":"inspecter_html"}],"portee":"echantillon","outils_juge":["lire_fichier"]},"outils":["inspecter_entetes_http","inspecter_html","lire_fichier"],"strategie_justification":"Les en-têtes HTTP de /robots.txt révèlent sa présence ; si le fichier existe, le juge peut lire son contenu pour en vérifier la syntaxe. Si le fichier est absent, la balise meta robots dans chaque page constitue l'alternative exigée par le contrôle.","guide_analyse":"Dans les en-têtes de /robots.txt, lisez le code de statut. S'il est 200, appelez lire_fichier sur /robots.txt et vérifiez qu'il contient des directives syntaxiquement valides (User-agent, Disallow, etc.) ; conforme si le fichier est valide. Si le statut est 404, vérifiez dans chaque page la présence d'une balise meta[name=\"robots\"] avec un attribut content comportant des valeurs autorisées (index/noindex, follow/nofollow) ; conforme si toutes les pages possèdent cette balise. Non conforme si robots.txt est invalide, ou absent et qu'au moins une page ne contient pas la balise meta valide.","objectifs":["permettre un référencement ciblé,","améliorer le guidage des outils de recherche,","diminuer l’impact énergétique lié à la consultation du site,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Basics","SEO","Écoconception"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:38.009538"},{"numero":220,"intitule":"Le site propose un fichier sitemap indiquant les contenus à explorer.","theme":"Serveur et performances","contexte":"Un fichier sitemap présente aux moteurs de recherche les contenus qu’ils doivent explorer. C’est en quelque sorte un plan du site écrit pour les machines.","solution":"Créer un fichier sitemap.xml contenant la liste des pages du site à la racine du site. À défaut de respecter le format XML, une simple liste d’URL est acceptée par les moteurs.","controle":"Via l’adresse URL du site examiné :\n- vérifier qu’un fichier sitemap.xml existe à la racine du site, en y accédant directement dans le navigateur avec une URL du type http://example.com/sitemap.xml,\n- à défaut, consulter le fichier robots.txt pour y rechercher une URL spécifique mentionnée sous la forme sitemap: http://example.com/adresse/du/fichier.xml.","plan_outils":{"etapes":[{"args":{},"cible":"racine","outil":"inspecter_entetes_http","chemin":"/sitemap.xml"},{"args":{},"cible":"racine","outil":"inspecter_entetes_http","chemin":"/robots.txt"}],"portee":"echantillon","outils_juge":["lire_fichier"]},"outils":["inspecter_entetes_http","lire_fichier"],"strategie_justification":"Les en-têtes HTTP prouvent l'existence et l'accessibilité du fichier sitemap.xml à la racine ; à défaut, le fichier robots.txt peut indiquer un emplacement alternatif via une directive sitemap, lisible par l'outil du juge.","guide_analyse":"Dans les preuves, examinez d'abord les en-têtes de /sitemap.xml : un code 200 (ou une redirection aboutissant à un 200) prouve l'existence du fichier à la racine et la règle est conforme. Si sitemap.xml renvoie une erreur (404 ou autre), examinez les en-têtes de /robots.txt : s'ils indiquent une erreur, la règle est non conforme. Si robots.txt est accessible (200), appelez lire_fichier sur /robots.txt et cherchez-y une ligne de la forme Sitemap: suivie d'une URL. Conforme si cette ligne existe ; non conforme si elle est absente.","objectifs":["améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation,","diminuer l’impact énergétique lié à la consultation du site."],"tags":["Basics","SEO","Écoconception"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":221,"intitule":"Le serveur ne force pas la redirection vers la version ou l’application mobile.","theme":"Serveur et performances","contexte":"Il est parfaitement possible de détecter un contexte d’usage et de proposer aux utilisateurs de terminaux mobiles une version dédiée du service en ligne, et de faire de même pour les utilisateurs desktop, équipés d’un ordinateur classique. Le problème, c’est que certains utilisateurs peuvent avoir besoin d’une version spécifique, soit qu’ils ne trouvent pas ce qu’ils cherchent sur la version mobile, soit que celle-ci soit moins pratique. Laissez vos utilisateurs libres de passer outre le choix que vous leur proposez par défaut.","solution":"Ne pas rediriger côté serveur vers la version mobile (en dynamic serving ou en cas de version mobile dédiée) sans possibilité pour l’utilisateur de désactiver cette redirection.","controle":"Contrôler manuellement qu’il est possible d’accéder à la version desktop depuis un périphérique mobile.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle officiel demande de vérifier manuellement depuis un périphérique mobile qu'il est possible d'accéder à la version desktop. Cela nécessite de simuler un terminal mobile dans un navigateur pour constater une éventuelle redirection et d'interagir avec un lien de retour vers la version desktop, ce qu'aucun outil du catalogue ne permet : aucun outil de rendu visuel ou de contenu ne prend un agent utilisateur mobile en paramètre, et aucun outil ne permet de cliquer un lien hors formulaire.","guide_analyse":"Vérification humaine : depuis un téléphone mobile ou un émulateur, saisissez l'URL de la version desktop du site. Si vous êtes redirigé vers une version mobile ou une application, recherchez un lien ou un bouton permettant d'accéder à la version desktop (souvent intitulé « version classique », « site complet » ou « desktop ») et vérifiez qu'il fonctionne sans vous rediriger à nouveau vers la version mobile. Conforme si l'accès à la version desktop est possible et stable ; non conforme si la redirection est automatique, forcée et irréversible.","objectifs":["laisser le choix à l’utilisateur de la version ayant ses préférences,","améliorer la compatibilité avec les terminaux mobiles."],"tags":["Mobile"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":222,"intitule":"Le serveur envoie un code HTTP 404 pour les ressources non trouvées.","theme":"Serveur et performances","contexte":"Il ne s’agit pas seulement d’informer votre visiteur d’une erreur d’adresse : c’est aussi utile pour différents outils, tels que les moteurs de recherche. L’appel d’une adresse en erreur devrait systématiquement donner lieu à une réponse 404 (not found) par le serveur. Curieusement, dans certains cas, le serveur ou le CMS utilisé renvoient une page d’erreur 404 accompagnée d’un code 200 (qui signifie « OK, tout va bien »).","solution":"Modifier la configuration du serveur pour renvoyer l’utilisateur vers une page personnalisée lorsque la ressource demandée n’existe pas.\nSi la configuration principale du serveur n’est pas directement accessible et si l’environnement le permet, utiliser une configuration locale par répertoire. Par exemple, l’environnement Apache autorise la création d’un fichier .htaccess contenant des directives relatives aux traitements des erreurs : ErrorDocument 404 /mapage.html.","controle":"Pour chaque service en ligne examiné :\n- taper l’adresse URL du site suivie de caractères aléatoires (du type http://www.example.com/lsghlshdgkjsdgk),\n- vérifier à l’aide d’un outil de développement que le statut indiqué est bien 404 not found.","plan_outils":{"etapes":[{"args":{},"cible":"racine","outil":"inspecter_entetes_http","chemin":"/lsghlshdgkjsdgk"}],"portee":"echantillon","outils_juge":[]},"outils":["inspecter_entetes_http"],"strategie_justification":"Le comportement du serveur face à une ressource inexistante se vérifie en interrogeant une URL aléatoire sur la racine du site et en lisant le code de statut HTTP retourné : une seule requête suffit.","guide_analyse":"Dans la preuve de l'outil inspecter_entetes_http, lisez le code de statut HTTP de la réponse pour l'URL inexistante. Conforme si le code est exactement 404 (Not Found). Non conforme si le code est 200 (OK), une redirection 3xx, une erreur serveur 5xx ou toute autre réponse, car le serveur ne signale pas correctement l'absence de la ressource.","objectifs":["permettre la détection automatisée des URL erronées,","Transmettre au navigateur une information sure,","diminuer l’impact énergétique lié à la consultation,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["SEO","Écoconception"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":223,"intitule":"Le serveur envoie une page d’erreur 404 personnalisée.","theme":"Serveur et performances","contexte":"Les erreurs sont inévitables. Même en vérifiant vos liens toutes les dix minutes, un utilisateur peut toujours taper indxe.html au lieu de index.html. La page d’erreur 404 est donc l’une des pages les plus importantes. Certaines agences y apportent un soin tout particulier. Ne l’oubliez pas, c’est un signe de professionnalisme.","solution":"Modifier la configuration du serveur web pour renvoyer l’utilisateur vers une page personnalisée lorsque la ressource demandée n’existe pas.\nSi la configuration principale du serveur n’est pas directement accessible et si l’environnement le permet, utiliser une configuration locale par répertoire. Par exemple, l’environnement Apache autorise la création d’un fichier .htaccess contenant des directives relatives aux traitements des erreurs : ErrorDocument 404 /mapage404.html.","controle":"À partir de n’importe quelle adresse URL du site examiné :\n- modifier l’adresse URL afin d’obtenir une erreur 404, par exemple, en ajoutant une série de caractères aléatoires en fin d’adresse, tels que : https://www.exemple.com/dbvdjb,\n- vérifier que la page retournée correspond à une page personnalisée, cohérente avec le reste du site, et non pas à la page 404 envoyée par défaut par le serveur (Apache, IIS, Nginx),\n- dans le cas de l’utilisation d’un CMS, ce dernier peut vous faire croire qu’il ne renvoie pas la page 404 par défaut, il faudra donc effectuer la même vérification via l’adresse URL d’une image ou d’un fichier CSS ou encore JS pour valider définitivement cette règle.","plan_outils":{"etapes":[{"args":{},"cible":"racine","outil":"inspecter_entetes_http","chemin":"/page-404-test-opquast"},{"args":{"mode":"ecran"},"cible":"racine","outil":"capturer_page","chemin":"/page-404-test-opquast"},{"args":{"mode":"ecran"},"cible":"racine","outil":"capturer_page","chemin":"/file-404-test-opquast.css"}],"portee":"echantillon","outils_juge":[]},"outils":["inspecter_entetes_http","capturer_page"],"strategie_justification":"La vérification d'une page 404 personnalisée nécessite de solliciter une ressource inexistante et d'examiner la réponse. Les en-têtes HTTP confirment le statut 404, tandis que les captures d'écran révèlent si la page renvoyée est personnalisée et cohérente avec le site ou s'il s'agit de la page par défaut du serveur. Le test sur un fichier CSS permet de détecter les cas où un CMS n'intercepterait pas les erreurs sur les ressources statiques.","guide_analyse":"Dans les en-têtes HTTP de la première étape, vérifiez que le code de statut est bien 404. Sur la première capture, examinez si la page affichée est une page personnalisée du site (présence de la charte graphique, navigation, message d'erreur spécifique) et non la page d'erreur par défaut d'Apache, Nginx ou IIS (page blanche ou simple, mention du serveur). Sur la seconde capture (fichier CSS inexistant), vérifiez que le serveur renvoie également la page 404 personnalisée et non une réponse brute ou par défaut. Conforme si le statut est 404 et si les deux captures montrent une page personnalisée cohérente avec le site ; non conforme si le statut diffère de 404 ou si l'une des captures révèle une page d'erreur par défaut du serveur.","objectifs":["informer l’utilisateur sur l’erreur rencontrée, sur la continuité de fonctionnement du serveur,","lever le doute sur un éventuel problème lié à sa connexion."],"tags":["Accessibilité","Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":224,"intitule":"Le serveur envoie une page d’interdiction 403 personnalisée.","theme":"Serveur et performances","contexte":"Lorsque l’utilisateur essaye de consulter une page interdite (demande d’affichage du contenu d’un répertoire, par exemple), le serveur n’envoie pas une page 404 (not found), mais 403 (forbidden), fort peu sympathique. Comme dans le cas de l’erreur 404, cette page peut être personnalisée aux couleurs du site visité.","solution":"Modifier la configuration du serveur web pour renvoyer l’utilisateur vers une page personnalisée lorsque l’accès à la ressource demandée n’est pas autorisé.\nSi la configuration principale du serveur n’est pas directement accessible et si l’environnement le permet, utiliser une configuration locale par répertoire. Par exemple, l’environnement Apache autorise la création d’un fichier .htaccess contenant des directives relatives aux traitements des erreurs : ErrorDocument 403 /mapage403.html.","controle":"Pour chaque service en ligne audité :\n- obtenir une page d’erreur 403, pour cela, vous pouvez retirer la dernière partie de l’adresse URL d’une des images pour ne garder que le nom des répertoires présents entre les slashs de cette adresse, par exemple : https://www.exemple/com/img/. La page affichée devrait alors être une page d’erreur 403,\n- vérifier que la page retournée ne correspond pas à la page 403 renvoyée par défaut par le serveur (Apache, IIS, Nginx), mais bien à une page d’erreur personnalisée, dont le graphisme est cohérent avec l’ensemble de l’interface.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de provoquer une erreur 403 en modifiant l'URL d'une ressource (retirer le nom de fichier pour accéder au répertoire). Les outils ne peuvent que lire les pages fournies ; ils ne dérivent pas de nouvelles adresses pour forcer des erreurs serveur.","guide_analyse":"Vérification humaine : identifiez une URL d'image sur le site, retirez le nom du fichier pour ne conserver que le chemin du répertoire (par exemple /img/) et accédez à cette adresse. Vérifiez que le serveur renvoie un statut HTTP 403 et que la page affichée est personnalisée aux couleurs du site. Assurez-vous qu'elle n'est pas la page d'erreur par défaut d'Apache, IIS ou Nginx. Non conforme si la page retournée est la page par défaut du serveur ou si son graphisme n'est pas cohérent avec l'ensemble de l'interface.","objectifs":["rassurer l’utilisateur sur le fait qu’il est toujours dans le même site,","permettre à l’administrateur du site de mettre des éléments de guidage pour l’utilisateur,","informer l’utilisateur sur l’erreur rencontrée, sur la continuité de fonctionnement du serveur et mettre hors de cause sa connexion."],"tags":["Accessibilité","Basics"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:38.032260"},{"numero":225,"intitule":"Le menu principal de navigation figure sur les pages d’erreur personnalisées.","theme":"Serveur et performances","contexte":"La survenue d’erreurs est non seulement fréquente, mais sans doute inévitable. Autant faire en sorte que la navigation reprenne immédiatement, et pour ça, le menu principal est un outil idéal.","solution":"La page d’erreur 404 reprend soit de façon dynamique, soit de façon statique l’ensemble de la navigation principale.","controle":"Pour chaque service en ligne examiné :\n- modifier l’adresse URL afin d’obtenir une page d’erreur 404, par exemple, en ajoutant une série de trois ou quatre caractères aléatoires en fin d’adresse telle que : https://www.exemple.com/dbvdjb,\n- valider que la page retournée contient les éléments du menu principal de navigation.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"inspecter_entetes_http"},{"args":{"selecteur":"nav, [role='navigation']","profondeur":200},"cible":"page","outil":"lire_arbre_accessibilite"}],"portee":"echantillon","outils_juge":[]},"outils":["inspecter_entetes_http","lire_arbre_accessibilite"],"strategie_justification":"Le statut HTTP identifie la page d'erreur 404 dans l'échantillon ; l'arbre d'accessibilité des zones de navigation expose les éléments du menu sur chaque page, permettant au juge de vérifier que la page d'erreur reprend la navigation principale présente sur les autres pages.","guide_analyse":"Dans les preuves d'inspecter_entetes_http, repérez la ou les pages dont le code de statut est 404 ou qui redirigent vers une page d'erreur. Dans les preuves de lire_arbre_accessibilite, comparez les éléments (rôles et noms) relevés dans les zones nav ou [role='navigation'] de cette page d'erreur avec ceux des pages normales de l'échantillon. Conforme si la page d'erreur contient les mêmes éléments de navigation principale. Non conforme si elle n'en contient pas ou si les éléments diffèrent de manière significative. Si aucune page d'erreur n'est présente dans l'échantillon, l'absence de preuve ne permet pas de conclure.","objectifs":["éviter aux utilisateurs les ruptures de navigation, l’arrivée sur des pages cul-de-sac ou l’obligation d’utiliser le bouton Précédent du navigateur."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":226,"intitule":"Le serveur transmet des contenus compressés aux clients qui les acceptent.","theme":"Serveur et performances","contexte":"Il s’agit d’un moyen particulièrement efficace d’accélérer le temps d’accès à une page et de réduire le coût de bande passante : il est possible de configurer un serveur pour qu’il envoie des pages compressées (dans un format proche de celui d’une archive .zip). Les contenus sont alors « dézippés » à la volée et de manière totalement transparente sur le poste de l’utilisateur.","solution":"Activer le module Gzip ou Deflate du serveur pour compresser les ressources JavaScript, CSS et HTML.","controle":"Pour chaque page examinée :\n- vérifier la compression des contenus (Gzip) à l’aide d’un outil dédié.\nAttention à bien vérifier tous les éléments liés (CSS, JS, HTML) et pas seulement la page en elle-même. Les formats déjà compressés comme les images JPEG ou PNG ou les archives zip, par exemple, ne doivent pas être recompressés.\nSi la taille avant compression d’un élément est inférieure à 1 Ko, il n’est pas nécessaire de le compresser, au risque de voir son poids augmenter.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lister_ressources"},{"args":{},"cible":"page","outil":"inspecter_entetes_http"}],"portee":"page","outils_juge":[]},"outils":["lister_ressources","inspecter_entetes_http"],"strategie_justification":"La liste des ressources chargées par la page indique pour chaque fichier s'il est compressé et sa taille, ce qui permet de vérifier les CSS, JS et autres ressources liées ainsi que l'exemption des fichiers de moins de 1 Ko ; les en-têtes HTTP de la page elle-même permettent de vérifier la compression du document HTML.","guide_analyse":"Dans la liste des ressources, identifiez les fichiers texte (CSS, JS, SVG, JSON, etc.) : chacun doit indiquer une compression (gzip, deflate, br). Les fichiers déjà compressés comme les images (JPEG, PNG, WebP), les vidéos ou les archives ne doivent pas avoir de compression textuelle. Une ressource texte non compressée est conforme seulement si sa taille affichée est inférieure à 1 Ko. Dans les en-têtes HTTP de la page, vérifiez la présence d'un en-tête Content-Encoding (gzip, deflate, br) ; si cet en-tête est absent, la page HTML est non conforme à moins que Content-Length ne soit présent et inférieur à 1000 octets. Conforme si toutes les ressources textuelles pertinentes sont compressées ou exemptées par la taille, et si aucune ressource binaire n'est recompressée ; non conforme dès qu'une ressource textuelle de 1 Ko ou plus n'est pas compressée ou qu'une image ou archive l'est.","objectifs":["améliorer la vitesse de rendu de la page,","diminuer les coûts de bande passante,","diminuer l’impact énergétique lié à la consultation du site."],"tags":["Basics","Écoconception"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":227,"intitule":"Le serveur envoie les informations permettant la mise en cache des contenus.","theme":"Serveur et performances","contexte":"Un serveur peut accompagner l’envoi d’une page HTML ou d’un fichier image, JavaScript, CSS ou autre, ainsi que des informations permettant leur mise en cache sur le poste utilisateur. Pour cela, il est nécessaire de le configurer correctement, et tout le monde y gagne.","solution":"Configurer le serveur pour qu’il puisse gérer la mise en cache des éléments statiques et gérer – au niveau applicatif – la possible mise en cache des éléments dynamiques.\nEn pratique, et en accord avec les spécifications HTTP, le serveur devra envoyer les entêtes etag, date et last-modified correspondant, respectivement, à l’identifiant de la ressource, à la date de traitement de la requête et à la date de dernière modification de la ressource demandée. L’ensemble des dates est au format GMT. Ces informations peuvent être complétées par les champs content-length et expires si la taille en octets et la date d’expiration exacte du contenu sont connues.\nAfin d’informer les proxys et les clients finaux sur le comportement à adopter vis-à-vis des contenus mis en cache, les auteurs devront utiliser l’entête HTTP cache-control en accord avec les délais de réactualisation nécessaires et le caractère privé de la diffusion.\nLa possible mise en cache pourra être ainsi finalisée par la soumission d’un message 304 Not Modified (sans la ressource demandée dans le corps de la requête) lorsque le serveur recevra un entête if-modified-since contenant une date antérieure à la date de modification de ladite ressource.","controle":"Pour chaque page : vérifier la possible mise en cache des éléments de la page à l’aide d’un outil dédié (outils de développement, service en ligne, etc.) Attention à bien vérifier tous les éléments liés (CSS, JS, images) et pas seulement la page en elle-même.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"inspecter_entetes_http"},{"args":{},"cible":"page","outil":"lister_ressources"}],"portee":"page","outils_juge":[]},"outils":["inspecter_entetes_http","lister_ressources"],"strategie_justification":"Les en-têtes HTTP de la page elle-même se lisent avec inspecter_entetes_http, tandis que les ressources liées (CSS, JS, images) et leurs informations de cache se listent avec lister_ressources. Les deux outils couvrent l'ensemble des éléments à vérifier.","guide_analyse":"Dans les en-têtes HTTP de la page (inspecter_entetes_http), vérifiez la présence d'informations de cache telles que ETag, Last-Modified, Date, Cache-Control ou Expires. Dans la liste des ressources (lister_ressources), vérifiez que chaque fichier lié dispose d'une information de cache. Conforme si la page et l'ensemble des ressources liées présentent ces informations. Non conforme si la page ou au moins une ressource liée n'a aucun en-tête permettant la mise en cache.","objectifs":["accélérer l’affichage des contenus et permettre une navigation plus fluide,","réduire les coûts de bande passante."],"tags":["Basics","Écoconception"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":228,"intitule":"Les entêtes envoyés par le serveur contiennent les informations relatives au jeu de caractères employé.","theme":"Serveur et performances","contexte":"Un serveur web ne peut pas vous servir un verre, il va vous servir des pages web. Et avant de vous les servir, il va vous donner des tas d’informations, dans ce qu’on appelle les entêtes (headers). Ici est exposée une des informations que doit contenir l’entête d’une page pour garantir un rendu fiable.","solution":"Le paramètre charset de l’entête HTTP content-type est renseigné sous la forme : Content-Type : text/HTML; charset= utf-8 (utf-8 étant ici un exemple), en fonction du jeu de caractères effectivement utilisé par le document et de son type MIME.","controle":"Pour chaque page examinée :\n- vérifier la présence du charset dans le champ content-type renvoyé par le serveur avec un outil dédié,\n- vérifier que le jeu de caractères déclaré correspond effectivement au jeu de caractères utilisé par le document. En présence de caractères non corrects à la place des accents ou autres, la règle sera certainement invalidée.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"inspecter_entetes_http"},{"args":{},"cible":"page","outil":"lire_page"}],"portee":"page","outils_juge":[]},"outils":["inspecter_entetes_http","lire_page"],"strategie_justification":"Les en-têtes HTTP prouvent la présence et la valeur du charset déclaré dans Content-Type ; le texte de la page permet de vérifier visuellement que les accents et caractères spéciaux ne sont pas remplacés par des symboles incorrects ou des caractères de remplacement.","guide_analyse":"Dans les en-têtes HTTP, vérifiez que l'en-tête content-type contient un paramètre charset (par exemple charset=utf-8). Dans le texte de la page, recherchez des caractères de remplacement (�) ou des symboles aberrants à la place des accents et caractères spéciaux. Conforme si le charset est présent dans l'en-tête et que le texte ne présente aucune erreur d'encodage visible. Non conforme si le charset est absent de l'en-tête HTTP, ou si le texte contient des caractères incorrects révélant un décalage entre le charset déclaré et celui effectivement utilisé.","objectifs":["permettre au navigateur de choisir le bon encodage des caractères pour afficher la page,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["SEO"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:38.056428"},{"numero":229,"intitule":"Les feuilles de styles internes sont minifiées.","theme":"Serveur et performances","contexte":"Il est possible de diminuer la taille des feuilles de styles CSS sans nuire au rendu final. Cette opération, appelée minification, réduit la quantité de données à télécharger et contribue à améliorer les performances.","solution":"Supprimer les espaces non nécessaires et les commentaires dans les fichiers CSS en recourant à des outils dédiés.\nSupprimer les espaces non nécessaires ainsi que les commentaires dans les fichiers JavaScript, en recourant à des outils dédiés.","controle":"Pour l’ensemble du service en ligne :\n- vérifier manuellement au sein de tous les fichiers CSS qu’aucun retour ligne, commentaire, indentation ou saut de ligne n’est présent,\n- ou identifier la liste des fichiers CSS non minifiés à l’aide d’outils de développement (navigateurs, outils en ligne, etc.).\nPour l’ensemble du site :\n- vérifier manuellement au sein de tous les fichiers JavaScript qu’aucun retour à la ligne, indentation ou saut de ligne n’est présent,\n- ou identifier la liste des scripts JavaScript non minifiés à l’aide d’outils de développement (navigateurs, outils en ligne, etc.).","plan_outils":{"etapes":[{"args":{"selecteur":"style"},"cible":"page","outil":"inspecter_html"},{"args":{},"cible":"page","outil":"lister_ressources"}],"portee":"echantillon","outils_juge":["lire_fichier"]},"outils":["inspecter_html","lister_ressources","lire_fichier"],"strategie_justification":"Les feuilles de style internes se lisent dans le code HTML de chaque page, et les ressources CSS et JavaScript externes se listent puis se relisent fichier par fichier : le juge peut vérifier la présence d'espaces, de retours à la ligne et de commentaires.","guide_analyse":"Dans les éléments `<style>` relevés, examinez leur contenu textuel : s'il contient des sauts de ligne, des indentations ou des commentaires CSS (`/* ... */`), la feuille interne n'est pas minifiée. Dans la liste des ressources, identifiez chaque fichier de type `stylesheet` ou `script` ; pour chacun, appelez `lire_fichier` avec son adresse. Un fichier est minifié s'il forme un bloc compact sans retour à la ligne, indentation ou commentaires. Conforme si toutes les balises `<style>` et tous les fichiers CSS et JavaScript lus sont minifiés. Non conforme dès qu'une ressource présente du code non compacté.","objectifs":["minimiser la quantité de données à télécharger par l’utilisateur,","améliorer les performances,","diminuer l’impact énergétique lié à la consultation du site,","accélérer la vitesse d’affichage des pages,","diminuer la quantité de données à télécharger,","diminuer l’impact énergétique lié à la consultation du site."],"tags":["Basics","Écoconception"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:38.082645"},{"numero":230,"intitule":"Les scripts internes sont minifiés.","theme":"Serveur et performances","contexte":"La minification : une pratique simple pour réduire le volume de données à télécharger, et par là même, accélérer l’accès à vos contenus et services.","solution":"Supprimer les espaces non nécessaires ainsi que les commentaires dans les fichiers JavaScript, en recourant à des outils dédiés.","controle":"Pour l’ensemble du service en ligne :\n- vérifier manuellement au sein de tous les fichiers JavaScript qu’aucun retour à la ligne, indentation ou saut de ligne n’est présent,\n- ou identifier la liste des scripts JavaScript non minifiés à l’aide d’outils de développement (navigateurs, outils en ligne, etc.).","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lister_ressources"}],"portee":"page","outils_juge":["lire_fichier"]},"outils":["lister_ressources","lire_fichier"],"strategie_justification":"La liste des ressources chargées par la page donne l'adresse de chaque fichier JavaScript ; le juge peut ensuite lire le contenu des scripts internes et vérifier l'absence de retour à la ligne et d'indentation caractéristiques d'un fichier non minifié.","guide_analyse":"Dans la liste des ressources, repérez les entrées de type script dont l'adresse est interne au site (même domaine ou sous-domaine que la page auditée, ou URL relative). Pour chacun, appelez lire_fichier avec son adresse. Un script est conforme si son contenu ne contient aucun retour à la ligne, indentation ou saut de ligne. Non conforme si un script interne présente des sauts de ligne, des espaces d'indentation en début de ligne ou des commentaires non compressés ; citez le nom du fichier.","objectifs":["accélérer la vitesse d’affichage des pages,","améliorer les performances,","diminuer la quantité de données à télécharger,","diminuer l’impact énergétique lié à la consultation."],"tags":["Basics","Écoconception"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":231,"intitule":"La date de publication ou de mise à jour des contenus est mise à disposition sous forme programmatique.","theme":"Structure et code","contexte":"Nous vous conseillons d’indiquer une date de publication dans vos pages. Mais puisque vous ne parlez pas seulement à des humains, mais aussi aux machines que ceux-ci utilisent, nous vous conseillons également d’indiquer une date de publication dans le code de vos pages. Cela peut avoir des avantages en termes de référencement, c’est aussi une façon d’aider les machines à classer les contenus.","solution":"Utiliser l’élément HTML time pour baliser les dates de publication et de mise à jour du contenu affichées, et son attribut datetime pour indiquer celles-ci au format standard requis par la spécification HTML5.\nEn savoir plus : time sur MDN","controle":"Vérifier que chaque date de publication ou de mise à jour du contenu affichée est balisée avec l’élément HTML time, doté d’un attribut datetime indiquant la date au format standard requis par la spécification HTML5.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"lire_page"},{"args":{"selecteur":"time"},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["lire_page","inspecter_html"],"strategie_justification":"Le texte principal de la page permet de repérer les dates de publication ou de mise à jour affichées, et l'inspection du code HTML permet de vérifier qu'elles sont balisées avec l'élément time et son attribut datetime.","guide_analyse":"Dans le texte principal de la page, identifiez les dates de publication ou de mise à jour affichées. Si la page n'en contient aucune, le verdict est non applicable. Dans les éléments HTML relevés, vérifiez que chaque date affichée est balisée avec un élément time doté d'un attribut datetime au format standard HTML5. Conforme si toute date de publication ou de mise à jour affichée est correctement balisée ; non conforme si au moins une date affichée ne l'est pas ou si l'attribut datetime est absent ou invalide.","objectifs":["fournir une date de publication aux moteurs de recherche et outils d’indexation,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["SEO"],"phases":["Développement"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":232,"intitule":"Le code source de chaque page contient une métadonnée qui définit le jeu de caractères.","theme":"Structure et code","contexte":"Au hasard de votre navigation, vous avez certainement rencontré des bizarreries d’affichage sur certains caractères, des points d’interrogation dans des petits carrés, par exemple. C’est sans doute que les concepteurs des services en ligne où vous les avez trouvées ne respectaient pas cette règle.","solution":"L’élément meta est renseigné en fonction de l’encodage effectif du document et de son type MIME sous la forme :\n- meta charset=\"utf-8\" en HTML5.","controle":"Cette règle peut être vérifiée par l’examen du code source, à l’aide d’un outil de développement. Pour chaque page :\n- vérifier la présence de l’élément meta HTTP-equiv=\"Content-Type\" ou charset,\n- vérifier la pertinence du jeu de caractères indiqué dans son attribut content ou charset.","plan_outils":{"etapes":[{"args":{"selecteur":"meta[charset], meta[http-equiv=\"Content-Type\"]"},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html"],"strategie_justification":"La métadonnée de jeu de caractères est un élément meta du code HTML envoyé par le serveur : une inspection du HTML suffit à constater sa présence et à vérifier que la valeur déclarée est un encodage pertinent.","guide_analyse":"Dans les éléments relevés, cherchez un meta avec un attribut charset non vide (par exemple charset=\"utf-8\") ou un meta http-equiv=\"Content-Type\" dont l'attribut content contient un charset= suivi d'une valeur pertinente. Conforme si au moins un tel élément existe et que le jeu de caractères indiqué correspond à un encodage standard reconnu (UTF-8, ISO-8859-1, Windows-1252, etc.). Non conforme si aucun élément n'est relevé, si l'attribut charset ou la déclaration de charset dans content est absent, vide ou manifestement incorrect.","objectifs":["permettre un affichage hors ligne correct des pages en indiquant au navigateur quel est le jeu de caractères utilisé,","prévenir le risque de problèmes d’affichage de caractères lié à un fonctionnement parfois hasardeux des mécanismes de rattrapage des navigateurs quand ils ne disposent pas de l’information nécessaire via l’entête HTTP","content-type","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","SEO"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":233,"intitule":"Le codage de caractères utilisé est UTF-8.","theme":"Structure et code","contexte":"UTF-8 est le codage de caractères universel par excellence. Il permet d’afficher une quantité considérable de caractères. En l’utilisant systématiquement, vous vous éviterez bien des problèmes.","solution":"Configurer le serveur et les bases de données de manière à utiliser UTF-8.\nChoisir des outils (logiciels de développement, frameworks, CMS, outils de production de contenu) compatibles avec UTF-8.","controle":"Cette vérification s’effectue en trois temps. Pour chaque page examinée :\n- vérifier l’indication du jeu de caractères donnée par l’entête HTTP content-type envoyée par le serveur, à l’aide d’un outil dédié,\n- vérifier, le cas échéant, la conformité à cet entête de l’élément meta HTTP-equiv=\"Content-Type\" dans le code HTML des pages,\n- vérifier que le contenu des pages est effectivement encodé en UTF-8 (absence de caractères inattendus ou erronés), par exemple en soumettant la page à une validation HTML auprès du validateur du W3C (validator.w3.org).\nL’outil Internationalization Checker du W3C (validator.w3.org/i18n-checker/) permet de combiner ces trois étapes.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"inspecter_entetes_http"},{"args":{"selecteur":"meta[charset], meta[http-equiv=\"Content-Type\"]"},"cible":"page","outil":"inspecter_html"},{"args":{},"cible":"page","outil":"valider_code"}],"portee":"page","outils_juge":[]},"outils":["inspecter_entetes_http","inspecter_html","valider_code"],"strategie_justification":"Le contrôle officiel exige de vérifier l'en-tête HTTP Content-Type, la balise meta correspondante dans le HTML et l'absence d'erreurs d'encodage via le validateur W3C : trois étapes indépendantes couvrent ces trois vérifications.","guide_analyse":"Dans les en-têtes HTTP, cherchez Content-Type : il doit contenir charset=utf-8 (insensible à la casse). Dans les éléments HTML, si une balise meta charset ou meta http-equiv='Content-Type' est présente, vérifiez qu'elle déclare également UTF-8 et est conforme à l'en-tête HTTP. Dans les problèmes de validation, repérez les erreurs liées à l'encodage, au charset ou à des caractères illégaux. Conforme si l'en-tête déclare UTF-8, si la meta est conforme ou absente, et si aucune erreur d'encodage n'est signalée ; non conforme sinon.","objectifs":["recourir à un jeu de caractères international,","prévenir les défauts d’affichage,","faciliter la manipulation des contenus par les utilisateurs et les développeurs."],"tags":[],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":234,"intitule":"Le contenu de chaque page est organisé selon une structure de titres et sous-titres hiérarchisée.","theme":"Structure et code","contexte":"Les titres et sous-titres permettent aux navigateurs, moteurs et outils de vocalisation de restituer la structure d’une page. Ainsi, les utilisateurs peuvent accéder directement au contenu qui les intéresse.","solution":"Structurer le document en titres et sous-titres à l’aide des éléments HTML h1 à h6.\nVeiller à ce que la structure ne comporte pas de « trous » : un titre de niveau h2 ne doit pas être suivi d’un titre h4, h5 ou h6, par exemple.\nVeiller à ce que chaque page comporte au moins un titre de niveau 1 avec l’élément h1.","controle":"Dans chaque page, contrôler successivement :\n- la présence d’au moins un élément h1 correspondant au titre de la section principale du contenu de la page,\n- la présence de sous-titres h2 à h6 (si nécessaire) correspondant aux titres des sous-sections de contenu principal de la page,\n- l’absence d’interruption dans la succession descendante des titres h1 à h6, c’est-à-dire par exemple l’absence de titre h1 suivi d’un titre h3.\nLa vérification doit s’effectuer en tenant compte d’éventuels éléments de titres masqués à l’affichage ou bien de titres générés par JavaScript. On peut, à cet effet, utiliser la fonction d’affichage de la table des matières de la page disponible dans certains outils de développement.","plan_outils":{"etapes":[{"args":{"selecteur":"h1, h2, h3, h4, h5, h6","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html"],"strategie_justification":"La structure hiérarchique des titres repose sur les balises h1 à h6 présentes dans le code HTML source : leur nom de balise indique le niveau et leur ordre dans le document permet de vérifier la présence d'un h1 et l'absence de trous dans la hiérarchie, y compris pour les titres masqués à l'affichage.","guide_analyse":"Dans la liste des éléments relevés par inspecter_html, vérifiez qu'il existe au moins un h1 et que son texte correspond au titre principal de la page. Examinez ensuite l'ordre des balises h1 à h6 dans le document : un titre de niveau n ne doit pas être suivi directement d'un titre de niveau n+2 ou plus (par exemple, pas de h1 suivi d'un h3). Conforme si au moins un h1 est présent, qu'il titre le contenu principal, et que la succession descendante des niveaux ne comporte aucune interruption. Non conforme en l'absence de h1 ou en cas de saut de niveau.","objectifs":["permettre aux utilisateurs qui le souhaitent de visualiser la structure du contenu de la page et d’y naviguer,","permettre aux machines et aux outils d’indexation d’extraire le plan de chaque page,","améliorer le référencement en facilitant l’interprétation du contenu par les robots d’indexation."],"tags":["Accessibilité","Basics","SEO"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":235,"intitule":"Les éléments visuellement présentés sous forme de liste sont balisés de façon appropriée dans le code source.","theme":"Structure et code","contexte":"Pour un producteur de contenu, ajouter des tirets, des « \\* » ou des puces sous forme d’images est fort tentant. Oui, mais la magie des éléments HTML et la compétence des navigateurs vous permettent déjà de faire des listes propres. Il suffit de le savoir.","solution":"Soit utiliser les éléments HTML appropriés :\n- ul, li pour les listes non ordonnées,\n- ol, lipour les listes ordonnées,\n- dl, dt, dd pour les listes de définitions ou de descriptions.\nSoit recourir aux attributs ARIA permettant de donner la sémantique d’une liste non ordonnée ou ordonnée à un contenu balisé de manière plus générique :\n- donner au conteneur de la liste un attribut role=\"list\",\n- donner à chaque élément de la liste un attribut role=\"listitem\",\n- (il n’existe pas d’équivalent aux listes de définitions via un rôle ARIA).","controle":"Pour chaque page contenant une liste :\n- contrôler le code source des contenus présentés sous forme de liste (caractérisés par la présence de retours à la ligne et de marqueurs de listes tels que des puces ou des numéros) à l’aide d’un inspecteur de code,\n- vérifier si le code source de ces listes apparentes comporte bien les éléments HTML correspondant au type de liste concerné : ul, li pour une liste non ordonnée (liste à puces), ol, li pour une liste ordonnée (liste numérotée) et dl, dt, ddnpour une liste de définitions ou, à défaut, les rôles ARIA list et listitem.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige d'identifier visuellement des contenus présentés comme des listes (puces, numéros, retours à la ligne) puis d'inspecter leur balisage HTML spécifique. Les outils disponibles ne permettent pas de corréler un élément repéré sur une capture d'écran avec son code source précis pour vérifier l'usage de ul, ol, dl ou des rôles ARIA équivalents.","guide_analyse":"Vérification humaine : sur chaque page, repérez les contenus visuellement présentés sous forme de liste (marqueurs visuels, indentation, retours à la ligne). Pour chacun, inspectez le code source et vérifiez qu'il utilise les éléments HTML ul/li, ol/li, dl/dt/dd ou, à défaut, les attributs role=\"list\" et role=\"listitem\". Conforme si toute liste visuelle possède un balisage sémantique approprié ; non conforme dès qu'une liste visuelle en est dépourvue.","objectifs":["permettre l’identification des listes par les navigateurs et les aides techniques et donc leur restitution appropriée afin de faciliter leur compréhension par les utilisateurs,","améliorer la sémantique du contenu des pages et sa réutilisabilité."],"tags":["Accessibilité"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":236,"intitule":"Chaque identifiant HTML n’est utilisé qu’une seule fois par page.","theme":"Structure et code","contexte":"Un site web n’est pas prévu pour un navigateur particulier. Il va être affiché dans divers outils de consultation dont les comportements, en cas d’erreur dans le code, seront très variés. Éviter les erreurs de code, c’est donc prévenir les problèmes d’affichage. Alors, certes, la conformité absolue aux standards du W3C n’est pas toujours nécessaire. En revanche, la présence multiple d’un même identifiant dans une page peut avoir un impact bloquant au moins en termes d’accessibilité.","solution":"La solution la plus radicale consiste à s’assurer de la validité complète du code source des pages, à l’aide d’un validateur tel que http://validator.w3.org. Cette solution conduit cependant à tenir compte de l’ensemble des erreurs de validation du code source qui n’entrent pas dans le champ de cette règle. Pour s’en tenir au seul champ de cette règle, on veillera à éviter toute valeur dupliquée d’un attribut id dans une même page HTML.","controle":"Soumettre la page au validateur HTML du W3C (validator.w3.org) ou un autre outil de validation de code et vérifier que chaque valeur d’attribut id est unique dans la page.","plan_outils":{"etapes":[{"args":{},"cible":"page","outil":"valider_code"}],"portee":"page","outils_juge":[]},"outils":["valider_code"],"strategie_justification":"Le validateur W3C relève nativement les attributs id dupliqués dans le code HTML comme des erreurs de validation. Une seule étape de validation suffit donc à détecter toute valeur d'id utilisée plus d'une fois dans la page.","guide_analyse":"Dans la liste des problèmes rapportés par le validateur, cherchez les erreurs signalant un identifiant dupliqué, par exemple « Duplicate ID » ou « ID … already defined ». Le validateur indique la valeur de l'attribut id concerné et l'endroit où il est redéfini. Conforme si aucune erreur de ce type n'apparaît dans la liste. Non conforme si au moins une erreur mentionne un id présent plusieurs fois dans la page ; citez la valeur de l'id et le message du validateur.","objectifs":["éviter les erreurs de restitution du contenu ou d’interaction via les scripts,","limiter les risques d’interprétation hasardeuse du Document Object Model (DOM) par des agents utilisateurs différents,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:38.107088"},{"numero":237,"intitule":"La copie du contenu n’est pas bloquée.","theme":"Structure et code","contexte":"Mon contenu est précieux, je ne veux pas qu’on me le vole. Mais je veux qu’il soit en ligne, parce que, sinon, personne ne le voit. Pas de problème, il suffit de mettre un script qui va bloquer l’affichage de code source ou le copier-coller. Alors, oui, mais non. Il faut savoir quelque chose : lorsqu’un contenu est disponible en ligne, surtout sur le web, il peut de toute façon être copié. Vous pouvez ralentir la copie, mais vous risquez de gêner d’autres utilisateurs. Désactiver le clic droit ne gênera certainement pas les personnes qui veulent copier vos contenus et gênera probablement certains utilisateurs qui veulent les consulter ou en assurer la promotion.","solution":"Ne pas utiliser JavaScript ou CSS, ou toute autre technique, pour bloquer la fonctionnalité « copier » du navigateur dans les pages du site.","controle":"Vérifier pour chaque page que la copie du contenu est possible à l’aide de la fonctionnalité courante du navigateur.","plan_outils":null,"outils":[],"strategie_justification":"Les outils ne simulent ni la sélection de texte, ni le copier-coller, ni le clic droit, et l'inspection des scripts ne peut pas garantir l'absence de blocage car les fichiers minifiés sont tronqués et le code peut être injecté dynamiquement. L'absence de trace de blocage dans les preuves ne prouve donc pas la conformité.","guide_analyse":"Vérification humaine : sur chaque page, sélectionnez du texte dans le contenu principal et tentez de le copier avec le raccourci clavier standard. Vérifiez que le clic droit ouvre bien le menu contextuel du navigateur et n'est pas intercepté par un script. Recherchez dans le code source des attributs événementiels bloquants comme oncontextmenu ou onselectstart, ainsi que des règles CSS user-select: none. Conforme si aucune technique ne gêne la copie ou le clic droit sur le contenu ; non conforme si le moindre blocage est constaté.","objectifs":["faciliter l’utilisation du contenu par les utilisateurs (traduction, référence, citation, etc.),","laisser aux utilisateurs la maîtrise de leur navigateur."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":12,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":4,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":238,"intitule":"L’accès au menu contextuel n’est pas bloqué.","theme":"Structure et code","contexte":"Le menu contextuel, c’est celui qui s’affiche « en contexte » dans une page lorsque vous faites un clic droit avec votre souris, ou que vous utilisez certains raccourcis clavier pour votre système d’exploitation. Suivant les navigateurs et logiciels, les options disponibles diffèrent, mais sont souvent très pratiques. Certains concepteurs désactivent l’accès à ce menu contextuel. Cela ne sert à rien, cela n’empêche pas grand-chose, car beaucoup de ces fonctionnalités sont disponibles par ailleurs dans les menus du navigateur. En gros, ne procédez pas ainsi. Et rien ne sert de pourrir la vie aux utilisateurs de bonne foi en mettant en place des techniques qui ne nuisent même pas aux quelques utilisateurs mal intentionnés.","solution":"Ne pas utiliser JavaScript ou toute autre technique, pour bloquer la fonctionnalité « menu contextuel » (clic droit) du navigateur dans les pages.","controle":"Vérifier pour chaque page que le menu contextuel du navigateur peut être ouvert à partir de l’ensemble des contenus affichés.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de vérifier que le menu contextuel s'ouvre sur clic droit ou raccourci clavier équivalent sur l'ensemble des contenus affichés. Les outils ne simulent pas cette interaction utilisateur et ne peuvent pas constater un blocage appliqué dynamiquement ou sur des éléments spécifiques.","guide_analyse":"Vérification humaine : sur chaque page, effectuez un clic droit sur plusieurs contenus affichés (textes, images, liens, vidéos, fond de page). Vérifiez que le menu contextuel natif du navigateur apparaît systématiquement. Testez également les raccourcis clavier spécifiques au système d'exploitation. Si un élément ou une zone affiche un menu personnalisé à la place du menu natif ou empêche son ouverture, la page est non conforme.","objectifs":["faciliter la navigation et l’accès aux fonctionnalités des outils de consultations,","laisser aux utilisateurs le contrôle de leurs menus et actions."],"tags":["Accessibilité"],"phases":["Développement","Fonctionnel"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":239,"intitule":"Aucune redirection ou rafraîchissement automatique côté client n’est imposé.","theme":"Structure et code","contexte":"Les redirections côté client affichent brièvement une première vue puis envoient automatiquement l’utilisateur vers une autre page. Le rafraîchissement automatique recharge automatiquement la page courante sans que l’utilisateur en fasse la demande.","solution":"Ne pas utiliser l’élément meta HTTP-equiv=\"refresh\".\nFournir à l’utilisateur un moyen de désactiver les éventuels rafraîchissements automatiques et les redirections créées :\n- en JavaScript,\n- via un élément object ou,\n- ou via un entête HTTP refresh.","controle":"Pour chaque page examinée :\n- vérifier, à l’aide d’un inspecteur de code, l’absence de l’élément meta HTTP-equiv=\"refresh\",\n- vérifier que la consultation de la page ne révèle aucun rafraîchissement automatique ni aucune redirection côté client qui ne soient désactivables auparavant via l’interface du site (sans devoir faire appel à une éventuelle fonctionnalité propre au navigateur).\nLa détection de l’élément meta HTTP-equiv=\"refresh\" est aisée en observant le code source de la page. En revanche, la diversité des dispositifs JavaScript de rafraîchissement automatique impose de procéder également à un contrôle via la consultation de la page dans le navigateur. Ce contrôle peut être facilité si le navigateur offre une option interdisant certains de ces rafraîchissements et affiche alors un bandeau d’alerte. Mais seule l’observation de la page permet une détection à coup sûr.","plan_outils":{"etapes":[{"args":{"selecteur":"meta[http-equiv]"},"cible":"page","outil":"inspecter_html"},{"args":{},"cible":"page","outil":"inspecter_entetes_http"},{"args":{"duree_s":10},"cible":"page","outil":"observer_page"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","inspecter_entetes_http","observer_page"],"strategie_justification":"La balise meta refresh se détecte dans le code HTML, l'en-tête HTTP Refresh dans la réponse du serveur, et les comportements automatiques JavaScript ou object par l'observation de la page dans un navigateur. Ces trois preuves couvrent l'ensemble des dispositifs cités par le contrôle.","guide_analyse":"Dans les éléments meta relevés, vérifiez qu'aucun attribut http-equiv ne vaut refresh (insensible à la casse). Dans les en-têtes HTTP, vérifiez l'absence d'en-tête Refresh. Dans l'observation de la page, vérifiez qu'aucun rechargement, redirection ou ouverture automatique n'a eu lieu pendant les 10 secondes. Conforme si les trois preuves sont vierges de tout mécanisme de rafraîchissement ou redirection automatique. Non conforme dès qu'une balise meta refresh, un en-tête Refresh ou un comportement automatique est constaté.","objectifs":["laisser à l’utilisateur le contrôle de son navigateur et de son interface de consultation,","Éviter des coupures ou des pertes d’information en cours de lecture, notamment pour les utilisateurs équipés de lecteurs d’écran qu’un rafraîchissement ou une redirection temporisée interromprait lors de la consultation,","Ne pas pénaliser la consultation du contenu en mobilité lorsque la qualité du réseau est variable sur une courte échelle de temps,","Permettre à l’utilisateur d’éviter un surcroit non désiré de coût d’utilisation des données mobiles,","Améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":240,"intitule":"Le texte des documents PDF internes est sélectionnable.","theme":"Structure et code","contexte":"Un document PDF peut contenir du texte soit sous forme de texte réel, soit sous forme d’image, dans le cas, par exemple, où il s’agirait d’un document scanné. Sachez que le contenu d’un tel document ne sera ni indexé par les moteurs de recherche, ni manipulable (pour la copie, notamment), ni accessible aux lecteurs d’écran.","solution":"Ne pas diffuser de PDF issus de la numérisation de documents initiaux, mais uniquement des documents convertis au format numérique (par OCR le cas échéant).","controle":"Pour chaque document PDF interne publié dans le site :\n- afficher ou ouvrir le document,\n- vérifier que le texte affiché est immédiatement sélectionnable à l’écran ou bien qu’il peut être consulté dans un lecteur d’écran.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande d'ouvrir chaque document PDF interne et de vérifier que le texte est sélectionnable ou consultable par un lecteur d'écran. Aucun outil du catalogue ne permet d'ouvrir ni d'analyser le contenu binaire d'un fichier PDF pour constater la présence de texte sélectionnable.","guide_analyse":"Vérification humaine : identifiez les liens vers des documents PDF internes sur les pages fournies. Ouvrez chaque PDF dans un navigateur ou un lecteur PDF et tentez de sélectionner le texte à la souris. Vérifiez également que le texte est restitué par un lecteur d'écran. Non conforme si un PDF contient du texte en image (document scanné) sans couche texte OCR, empêchant la sélection ou la lecture vocale.","objectifs":["permettre le référencement des contenus des documents PDF,","faciliter la manipulation et la réutilisation du contenu des documents PDF (traduction, copier-coller…),","garantir la lisibilité des contenus des documents PDF,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité","Basics","SEO"],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":241,"intitule":"Les documents PDF internes sont dotés d’une structure de titres.","theme":"Structure et code","contexte":"Baliser les titres des documents PDF facilite leur compréhension et la navigation au sein des contenus, notamment pour les utilisateurs handicapés, mais aussi pour tous les autres. De nombreux lecteurs PDF permettent d’afficher directement le sommaire d’un document PDF à partir de cette structure de titres.","solution":"Lorsque le document PDF est issu d’une suite bureautique telle que Word ou OpenOffice, il faut utiliser les styles et formatages proposés par le logiciel de manière à générer un PDF structuré, en appliquant les styles de texte tels que Titre 1, Titre 2, Titre 3 pour les différents niveaux de titre. Ces styles peuvent ensuite être modifiés pour les adapter à la présentation souhaitée. Enfin, l’option Exporter en PDF balisé ou tagué doit être activée au moment de l’export PDF. Pour plus d’informations, consulter la rubrique accessibilité du site http://www.adobe.com.","controle":"Pour chaque document PDF interne, vérifier la présence des éléments de structure de titre :\n- à l’aide d’un outil d’inspection du code,\n- en ouvrant le document dans un lecteur PDF permettant d’afficher les signets,\n- ou en consultant le document dans un lecteur d’écran.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle exige d'analyser la structure interne de fichiers PDF binaires pour y détecter une hiérarchie de titres balisés, ce qu'aucun outil du catalogue ne permet : les outils lisent le HTML ou des fichiers texte, mais ne parsent pas la structure sémantique des PDF.","guide_analyse":"Vérification humaine : dans les pages fournies, repérez tous les liens vers des documents PDF internes. Pour chaque PDF identifié, ouvrez-le dans un lecteur PDF permettant d'afficher les signets ou utilisez un outil d'inspection de structure PDF. Vérifiez que le document possède une hiérarchie de titres structurée. Conforme si chaque PDF interne dispose d'une structure de titres ; non conforme si au moins un PDF en est dépourvu.","objectifs":["permettre aux utilisateurs d’accéder directement à différentes sections d’un document PDF,","fournir une structure de titres aux utilisateurs qui en ont besoin,","permettre la consultation d’un PDF via une aide technique,","améliorer l’accessibilité des contenus aux personnes handicapées,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","SEO"],"phases":["Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":242,"intitule":"Les cellules des tableaux de données sont reliées à leurs entêtes.","theme":"Structure et code","contexte":"Certains utilisateurs vocalisent les contenus en ligne grâce à des aides techniques. Un tableau très clair à l’écran peut devenir totalement incompréhensible en mode vocal. Il est pourtant assez facile de prévoir ce cas de figure.","solution":"Utiliser l’élément HTML th et son attribut scope pour baliser les cellules d’entêtes et expliciter leur portée (scope de valeur col pour un entête de colonne, de valeur row pour un entête de ligne).\nPour les entêtes qui ne s’appliquent qu’à une partie d’une ligne ou d’une colonne, contrôler la présence systématique de l’attribut id pour l’élément th et de l’attribut headers pour les éléments td avec les valeurs appropriées :\n- donner à chaque entête (élément th) un attribut id (par exemple, id=\"foo\"),\n- utiliser l’attribut headers dans chaque cellule (élément td) pour indiquer les entêtes associés (par exemple, headers=\"foo\" pour chaque cellule rattachée à l’entête ayant l’attribut id=\"foo\").","controle":"Dans le code généré des tableaux de données :\n- vérifier l’utilisation systématique de l’élément th pour baliser les entêtes de ligne ou de colonne,\n- pour les entêtes s’appliquant à la totalité d’une ligne ou d’une colonne, contrôler la présence systématique de l’attribut scope doté de la valeur appropriée (row pour une ligne ou col pour une colonne),\n- pour les entêtes qui ne s’appliquent qu’à une partie d’une ligne ou d’une colonne, contrôler la présence systématique de l’attribut id pour l’élément th et de l’attribut headers pour les éléments td avec les valeurs appropriées,\n- chaque entête (élément th) doit être doté d’un attribut id (par exemple, id=\"foo\"),\n- l’attribut headers doit être utilisé dans chaque cellule (élément td) pour indiquer les entêtes associés (par exemple, headers=\"foo\" pour chaque cellule rattachée à l’entête ayant l’attribut id=\"foo\").","plan_outils":{"etapes":[{"args":{"selecteur":"table"},"cible":"page","outil":"inspecter_html"},{"args":{"selecteur":"table th, table td","profondeur":200},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html"],"strategie_justification":"Le contrôle porte sur la présence des éléments th et des attributs scope, id et headers dans le code HTML des tableaux. L'inspection des balises table permet d'identifier les tableaux concernés, et celle des cellules permet de vérifier les attributs requis sur les entêtes et les données.","guide_analyse":"Dans la première preuve, identifiez les tableaux de données (ignorez ceux avec role=\"presentation\" ou un usage décoratif). Dans la deuxième preuve, vérifiez que chaque entête est un élément th doté d'un attribut scope (de valeur row ou col) ou d'un attribut id. Si la page contient des th avec id, contrôlez que les td qui portent un attribut headers référencent bien des id existants parmi ces th ; l'absence totale de td avec headers alors qu'il existe des th avec id constitue une non-conformité. Conforme si toutes les entêtes sont correctement balisées et les associations headers/id cohérentes ; non conforme si un th manque de scope et d'id, ou si un headers est invalide.","objectifs":["permettre aux aides techniques de restituer l’information contenue dans les tableaux de données de manière compréhensible, en indiquant à l’utilisateur les relations logiques entre contenu et entêtes du tableau,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":243,"intitule":"Les titres des tableaux de données sont renseignés.","theme":"Structure et code","contexte":"Un tableau HTML peut être doté d’un titre. Ce dernier peut être affiché ou non, mais, dans tous les cas, sa présence et sa pertinence sont importantes pour la compréhension du tableau.","solution":"Utiliser et renseigner l’élément HTML caption pour chaque tableau de données.\nLe cas échéant, recourir à un élément caption masqué à l’affichage.","controle":"Pour chaque tableau de données :\n- vérifier la présence de l’élément caption. Si cet élément est masqué à l’affichage à l’aide d’une classe CSS, vérifier qu’il reste accessible pour les lecteurs d’écran,\n- contrôler la pertinence de l’élément caption qui doit permettre d’identifier la nature des informations apportées par le tableau.\nCette vérification peut être partiellement automatisée pour ce qui est de la présence de l’élément de titre caption, mais le contrôle de sa pertinence nécessite un examen manuel.","plan_outils":{"etapes":[{"args":{"selecteur":"table","profondeur":50},"cible":"page","outil":"inspecter_html"},{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"},{"args":{"selecteur":"table","profondeur":50},"cible":"page","outil":"lire_arbre_accessibilite"}],"portee":"page","outils_juge":[]},"outils":["inspecter_html","capturer_page","lire_arbre_accessibilite"],"strategie_justification":"L'inspection du HTML révèle la présence des éléments caption dans chaque tableau, la capture d'écran distingue les titres visibles des titres masqués, et l'arbre d'accessibilité vérifie que les captions masqués sont bien restitués aux lecteurs d'écran ; le juge évalue la pertinence du texte à partir de ces preuves.","guide_analyse":"Dans les éléments HTML, identifiez chaque tableau de données et vérifiez la présence d'un élément caption. Sur la capture d'écran, constatez si ce caption est affiché ou masqué. Si un caption est masqué, vérifiez dans l'arbre d'accessibilité que le tableau possède un nom accessible correspondant au texte du caption. Vérifiez que le texte de chaque caption est pertinent et permet d'identifier la nature des informations du tableau. Conforme si chaque tableau de données possède un caption pertinent, accessible aux lecteurs d'écran lorsqu'il est masqué ; non conforme si un tableau de données en est dépourvu, si un caption masqué est absent de l'arbre d'accessibilité, ou si un caption est vide ou non pertinent.","objectifs":["permettre aux utilisateurs d’aides techniques (lecteurs d’écran) d’identifier aisément la nature des informations fournies par un tableau,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":2,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null},{"numero":244,"intitule":"La linéarisation des tableaux utilisés pour la mise en page ne nuit pas à la compréhension des contenus.","theme":"Structure et code","contexte":"Une page vocalisée va être lue de manière linéaire, dans l’ordre où son contenu apparaît dans le code HTML. Il arrive alors que la linéarisation des tableaux de mise en page vienne casser le sens de la page.","solution":"Regrouper dans une même cellule td les informations qui doivent être verticalement associées (ne pas les répartir dans des cellules placées dans des lignes successives du tableau).","controle":"Pour chaque tableau de mise en forme, c’est-à-dire pour chaque tableau ne comportant pas de donnée reliée à des entêtes de ligne ou de colonne :\n- procéder à la linéarisation de l’affichage à l’aide d’un outil de développement,\n- vérifier que le contenu linéarisé reste compréhensible, sans incohérence ni perte d’information.","plan_outils":null,"outils":[],"strategie_justification":"Le contrôle demande de simuler la linéarisation de l'affichage pour chaque tableau de mise en forme et de juger de la compréhensibilité du contenu dans cet ordre spécifique, ce qu'aucun outil du catalogue ne permet d'isoler et de restituer.","guide_analyse":"Vérification humaine : dans le code source, identifiez chaque tableau ne contenant pas de cellules d'en-tête (th) ni d'attributs headers ou scope. Pour chacun, utilisez la fonction de linéarisation d'un outil de développement ou émulez la lecture cellule par cellule dans l'ordre du DOM. Vérifiez que le contenu lu de cette manière reste compréhensible, sans incohérence ni perte d'information (par exemple des phrases coupées ou des associations verticales dispersées). Non conforme si un tableau de mise en page, une fois linéarisé, devient incompréhensible.","objectifs":["fournir un contenu compréhensible aux utilisateurs dont l’agent utilisateur ou l’aide technique (lecteur d’écran) ne permet pas de restituer la mise en forme initialement prévue à l’aide d’un tableau,","améliorer l’accessibilité des contenus aux personnes handicapées."],"tags":["Accessibilité"],"phases":["Développement"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":"valide","review_note":null,"reviewed_at":"2026-10-11T17:09:38.134503"},{"numero":245,"intitule":"Les tableaux de données ne sont pas simulés.","theme":"Structure et code","contexte":"Il peut être tentant, pour aller plus vite, de scanner un tableau présent dans un document bureautique et de coller l’image dans la page web, ou de simuler visuellement des tableaux en insérant des espaces entre des données. Mais c’est en fait une très mauvaise idée : le contenu de ces tableaux ne sera ni indexable par les moteurs de recherche, ni consultable pour différents utilisateurs.","solution":"- Utiliser systématiquement l’élément table et les éléments associés tr, td, th, caption, pour baliser les tableaux de données, et non des artifices reposant sur des accumulations d’espaces insécables ou de caractères graphiques tels que les pipes (lignes verticales « \\| »).","controle":"S’assurer qu’aucun tableau de données n’est géré sous forme d’image.\nPour chaque contenu affiché sous forme de tableau de données (c’est-à-dire associant des cellules de données à des entêtes de ligne ou de colonnes) :\n- s’assurer que celui-ci est balisé avec les éléments HTML tr (ligne), td (cellule de données), th (entête de ligne ou de colonne) et caption (titre du tableau), par exemple à l’aide d’un outil de développement.","plan_outils":{"etapes":[{"args":{"mode":"ecran"},"cible":"page","outil":"capturer_page"},{"args":{"selecteur":"table","profondeur":50},"cible":"page","outil":"inspecter_html"},{"args":{"selecteur":"table caption, table th, table td, table tr","profondeur":150},"cible":"page","outil":"inspecter_html"}],"portee":"page","outils_juge":[]},"outils":["capturer_page","inspecter_html"],"strategie_justification":"La capture d'écran permet de repérer les contenus affichés sous forme de tableau de données, y compris les images ou simulations visuelles ; l'inspection du HTML vérifie qu'ils sont structurés avec les éléments table, tr, td, th et caption requis par le contrôle.","guide_analyse":"Sur la capture d'écran, identifiez chaque contenu qui s'affiche comme un tableau de données (grille avec en-têtes et cellules de données). Dans la première preuve HTML, repérez les éléments table. Dans la seconde, vérifiez la présence d'éléments caption, th, td et tr associés aux tableaux. Conforme si chaque tableau de données visible correspond à un balisage table structuré avec ces éléments dans le code. Non conforme si un tableau de données visible n'a pas d'équivalent HTML table structuré, ce qui indique une image, une simulation par espaces ou caractères graphiques, ou un balisage incorrect.","objectifs":["permettre aux utilisateurs d’accéder à des tableaux exploitables par leur agent utilisateur et restitués de manière compréhensible dans tous les cas,","améliorer l’accessibilité des contenus aux personnes handicapées,","améliorer la prise en compte des contenus par les moteurs de recherche et outils d’indexation."],"tags":["Accessibilité","SEO"],"phases":["Développement","Éditorial"],"prompt_version":11,"llm_model":"kimi-k2.6","llm_provider":"azure","tools_version":3,"temperature":0.0,"review_status":null,"review_note":null,"reviewed_at":null}]