{
 "schemaVersion": 1,
 "createdAt": "2026-10-25T00:34:50.275445+00:00",
 "url": "Page fictive (exemple pédagogique)",
 "goal": "Demande de contact",
 "sourceSha256": "161a91ee0b6cf8923f84dc6ffd4055a72706fe0f8bbc82d778188b88d03ad93d",
 "coverage": {
  "mode": "HTML source, sans exécution JavaScript",
  "nodes": 12,
  "bytes": 318,
  "unknown": [
   "Rendu mobile",
   "Paiements et formulaires côté serveur",
   "Contrastes calculés",
   "Position Google et citations IA",
   "Conversion réelle",
   "Conformité complète d’accessibilité"
  ]
 },
 "findings": [
  {
   "id": "viewport",
   "title": "Viewport mobile absent",
   "observation": "Aucune balise viewport trouvée.",
   "action": "Configurer le viewport puis tester la mise en page mobile.",
   "priority": "P1",
   "status": "observé dans le HTML source",
   "verification": "verified",
   "evidence": {
    "scope": "document source complet"
   },
   "snippet": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">"
  },
  {
   "id": "label-8",
   "title": "Champ : association de libellé à vérifier",
   "observation": "Aucun nom explicite détecté par cette règle ; un label englobant peut échapper au contrôle.",
   "action": "Vérifier le nom accessible rendu et associer un label visible.",
   "priority": "P1",
   "status": "observé dans le HTML source",
   "verification": "hypothesis",
   "evidence": {
    "tag": "input",
    "line": 4,
    "id": "",
    "index": 8
   },
   "snippet": "<label for=\"email\">Votre e-mail professionnel</label>\n<input id=\"email\" name=\"email\" type=\"email\" autocomplete=\"email\">"
  },
  {
   "id": "label-9",
   "title": "Champ : association de libellé à vérifier",
   "observation": "Aucun nom explicite détecté par cette règle ; un label englobant peut échapper au contrôle.",
   "action": "Vérifier le nom accessible rendu et associer un label visible.",
   "priority": "P1",
   "status": "observé dans le HTML source",
   "verification": "hypothesis",
   "evidence": {
    "tag": "input",
    "line": 4,
    "id": "msg",
    "index": 9
   },
   "snippet": "<label for=\"email\">Votre e-mail professionnel</label>\n<input id=\"email\" name=\"email\" type=\"email\" autocomplete=\"email\">"
  },
  {
   "id": "alt-10",
   "title": "Image sans attribut alternatif",
   "observation": "Attribut alt absent ; un alt vide peut convenir à une décoration.",
   "action": "Décrire la fonction de l’image informative, ou définir alt=\"\" si décorative.",
   "priority": "P1",
   "status": "observé dans le HTML source",
   "verification": "verified",
   "evidence": {
    "tag": "img",
    "line": 4,
    "id": "",
    "index": 10
   },
   "snippet": "<img src=\"illustration.webp\" alt=\"Description utile à adapter\">"
  },
  {
   "id": "iframe-11",
   "title": "Cadre intégré sans titre",
   "observation": "Aucun attribut title sur un iframe.",
   "action": "Ajouter un titre décrivant le contenu intégré.",
   "priority": "P1",
   "status": "observé dans le HTML source",
   "verification": "verified",
   "evidence": {
    "tag": "iframe",
    "line": 5
   },
   "snippet": ""
  },
  {
   "id": "submit",
   "title": "Formulaire sans bouton d’envoi identifié",
   "observation": "Aucun bouton submit trouvé alors qu’un formulaire existe.",
   "action": "Prévoir une action d’envoi explicite (un envoi par script n’est pas évalué ici).",
   "priority": "P1",
   "status": "observé dans le HTML source",
   "verification": "verified",
   "evidence": {
    "scope": "document source complet"
   },
   "snippet": ""
  },
  {
   "id": "description",
   "title": "Description de recherche absente",
   "observation": "Aucune meta description renseignée.",
   "action": "Résumer le résultat et les limites du service en une ou deux phrases.",
   "priority": "P2",
   "status": "observé dans le HTML source",
   "verification": "verified",
   "evidence": {
    "scope": "document source complet"
   },
   "snippet": "<meta name=\"description\" content=\"Identifiez les frictions de votre site et obtenez des recommandations documentées.\">"
  },
  {
   "id": "canonical",
   "title": "URL canonique non déclarée",
   "observation": "Aucun lien canonical trouvé dans cette source.",
   "action": "Définir l’URL de référence de cette page, après vérification des variantes.",
   "priority": "P2",
   "status": "observé dans le HTML source",
   "verification": "verified",
   "evidence": {
    "scope": "document source complet"
   },
   "snippet": ""
  },
  {
   "id": "lang",
   "title": "Langue du document absente",
   "observation": "Aucun attribut lang renseigné sur html.",
   "action": "Renseigner la langue réellement utilisée.",
   "priority": "P2",
   "status": "observé dans le HTML source",
   "verification": "verified",
   "evidence": {
    "scope": "document source complet"
   },
   "snippet": "<html lang=\"fr\">"
  },
  {
   "id": "heading",
   "title": "Niveaux de titres sautés",
   "observation": "Un h1 est suivi d’un h3.",
   "action": "Vérifier que la hiérarchie reflète la structure du contenu.",
   "priority": "P2",
   "status": "observé dans le HTML source",
   "verification": "hypothesis",
   "evidence": {
    "scope": "document source complet"
   },
   "snippet": ""
  },
  {
   "id": "link-text-6",
   "title": "Libellé de lien peu explicite",
   "observation": "Libellé : « cliquez ici ».",
   "action": "Nommer la destination ou l’action.",
   "priority": "P2",
   "status": "observé dans le HTML source",
   "verification": "hypothesis",
   "evidence": {
    "tag": "a",
    "line": 3
   },
   "snippet": ""
  },
  {
   "id": "structured",
   "title": "Données structurées non détectées",
   "observation": "Aucun bloc JSON-LD trouvé.",
   "action": "Envisager un balisage correspondant au contenu visible ; son absence ne bloque pas les réponses IA.",
   "priority": "P2",
   "status": "observé dans le HTML source",
   "verification": "hypothesis",
   "evidence": {
    "scope": "document source complet"
   },
   "snippet": ""
  }
 ],
 "nextSteps": [
  "Valider les constats dans le navigateur rendu.",
  "Corriger dans une branche et mesurer la tâche utilisateur.",
  "Comparer les événements réels avant et après, sans attribuer automatiquement une variation à la modification."
 ]
}