{
  "id": "exemple",
  "overrides": {},
  "notes": {},
  "url": "https://grilla.fr/demo/pivoine.html",
  "finalUrl": "https://grilla.fr/demo/pivoine.html",
  "pageTitle": "Accueil",
  "date": "2026-10-17T13:52:04.051Z",
  "durationMs": 5145,
  "engine": {
    "axe": "4.14.0",
    "chromium": "156.0.8078.4"
  },
  "headings": [
    {
      "level": 3,
      "text": "Nos bouquets de saison"
    },
    {
      "level": 5,
      "text": "Bouquet Printemps"
    },
    {
      "level": 5,
      "text": "Roses anciennes"
    },
    {
      "level": 5,
      "text": "Champêtre"
    },
    {
      "level": 2,
      "text": "Livraison"
    },
    {
      "level": 2,
      "text": "Newsletter"
    }
  ],
  "legal": {
    "mention": "Accessibilité : non conforme",
    "declaration": "https://grilla.fr/demo/pivoine.html#"
  },
  "criteria": [
    {
      "id": "1.1",
      "status": "NC",
      "findings": [
        {
          "rule": "image-alt",
          "kind": "fail",
          "severity": "Critique",
          "help": "Les images doivent avoir une alternative textuelle",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.14/image-alt?application=axeAPI&lang=fr",
          "nodes": [
            {
              "target": "img[width=\"120\"]",
              "html": "<img src=\"https://images.unsplash.com/photo-1490750967868-88aa4486c946?w=200&amp;h=80&amp;fit=crop\" width=\"120\" height=\"48\">",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément n’a pas d’attribut alt\n  L’attribut aria-label n’existe pas ou est vide\n  L’attribut aria-labelledby n’existe pas, fait référence à des éléments qui n’existent pas ou à des éléments vides ou non visibles\n  L’élément n’a pas d’attribut title\n  La sémantique par défaut de l’élément n’a pas été remplacée par role=\"none\" ou role=\"presentation\""
            },
            {
              "target": "img[width=\"20\"]",
              "html": "<img src=\"https://images.unsplash.com/photo-1526045612212-70caf35c14df?w=40&amp;h=40&amp;fit=crop\" width=\"20\" height=\"20\">",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément n’a pas d’attribut alt\n  L’attribut aria-label n’existe pas ou est vide\n  L’attribut aria-labelledby n’existe pas, fait référence à des éléments qui n’existent pas ou à des éléments vides ou non visibles\n  L’élément n’a pas d’attribut title\n  La sémantique par défaut de l’élément n’a pas été remplacée par role=\"none\" ou role=\"presentation\""
            },
            {
              "target": ".hero > img",
              "html": "<img src=\"https://images.unsplash.com/photo-1487070183336-b863922373d4?w=1400&amp;h=500&amp;fit=crop\">",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément n’a pas d’attribut alt\n  L’attribut aria-label n’existe pas ou est vide\n  L’attribut aria-labelledby n’existe pas, fait référence à des éléments qui n’existent pas ou à des éléments vides ou non visibles\n  L’élément n’a pas d’attribut title\n  La sémantique par défaut de l’élément n’a pas été remplacée par role=\"none\" ou role=\"presentation\""
            },
            {
              "target": ".card:nth-child(3) > img",
              "html": "<img src=\"https://images.unsplash.com/photo-1455659817273-f96807779a8a?w=600&amp;h=400&amp;fit=crop\">",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément n’a pas d’attribut alt\n  L’attribut aria-label n’existe pas ou est vide\n  L’attribut aria-labelledby n’existe pas, fait référence à des éléments qui n’existent pas ou à des éléments vides ou non visibles\n  L’élément n’a pas d’attribut title\n  La sémantique par défaut de l’élément n’a pas été remplacée par role=\"none\" ou role=\"presentation\""
            },
            {
              "target": "img[width=\"16\"]",
              "html": "<img src=\"https://images.unsplash.com/photo-1526045612212-70caf35c14df?w=24&amp;h=24&amp;fit=crop\" width=\"16\" height=\"16\">",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément n’a pas d’attribut alt\n  L’attribut aria-label n’existe pas ou est vide\n  L’attribut aria-labelledby n’existe pas, fait référence à des éléments qui n’existent pas ou à des éléments vides ou non visibles\n  L’élément n’a pas d’attribut title\n  La sémantique par défaut de l’élément n’a pas été remplacée par role=\"none\" ou role=\"presentation\""
            }
          ]
        }
      ]
    },
    {
      "id": "1.2",
      "status": "AV",
      "findings": []
    },
    {
      "id": "1.3",
      "status": "AV",
      "findings": []
    },
    {
      "id": "1.4",
      "status": "AV",
      "findings": []
    },
    {
      "id": "1.5",
      "status": "NA",
      "findings": []
    },
    {
      "id": "1.6",
      "status": "AV",
      "findings": []
    },
    {
      "id": "1.7",
      "status": "AV",
      "findings": []
    },
    {
      "id": "1.8",
      "status": "AV",
      "findings": []
    },
    {
      "id": "1.9",
      "status": "NA",
      "findings": []
    },
    {
      "id": "2.1",
      "status": "NC",
      "findings": [
        {
          "rule": "frame-title",
          "kind": "fail",
          "severity": "Critique",
          "help": "Chaque cadre doit avoir un attribut title",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.14/frame-title?application=axeAPI&lang=fr",
          "nodes": [
            {
              "target": "iframe",
              "html": "<iframe src=\"https://www.openstreetmap.org/export/embed.html?bbox=-0.60%2C44.82%2C-0.55%2C44.85&amp;layer=mapnik\" width=\"100%\" height=\"220\" style=\"border:0\"></iframe>",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément n’a pas d’attribut title\n  L’attribut aria-label n’existe pas ou est vide\n  L’attribut aria-labelledby n’existe pas, fait référence à des éléments qui n’existent pas ou à des éléments vides ou non visibles\n  La sémantique par défaut de l’élément n’a pas été remplacée par role=\"none\" ou role=\"presentation\""
            }
          ]
        }
      ]
    },
    {
      "id": "2.2",
      "status": "AV",
      "findings": []
    },
    {
      "id": "3.1",
      "status": "AV",
      "findings": []
    },
    {
      "id": "3.2",
      "status": "NC",
      "findings": [
        {
          "rule": "color-contrast",
          "kind": "fail",
          "severity": "Critique",
          "help": "Les éléments doivent avoir un contraste de couleurs suffisant",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.14/color-contrast?application=axeAPI&lang=fr",
          "nodes": [
            {
              "target": "nav > a[href=\"#\"]:nth-child(1)",
              "html": "<a href=\"#\">Accueil</a>",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément a un contraste de couleurs insuffisant de 2.45 (couleur d’avant plan : #c98aa0, couleur d’arrière plan : #fbeff2, taille de police : 11.3pt (15px), graisse : normal). Contraste de couleur attendu : 4.5:1"
            },
            {
              "target": "nav > a[href=\"#\"]:nth-child(2)",
              "html": "<a href=\"#\">Bouquets</a>",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément a un contraste de couleurs insuffisant de 2.45 (couleur d’avant plan : #c98aa0, couleur d’arrière plan : #fbeff2, taille de police : 11.3pt (15px), graisse : normal). Contraste de couleur attendu : 4.5:1"
            },
            {
              "target": "a[href=\"#\"]:nth-child(3)",
              "html": "<a href=\"#\">Mariages</a>",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément a un contraste de couleurs insuffisant de 2.45 (couleur d’avant plan : #c98aa0, couleur d’arrière plan : #fbeff2, taille de police : 11.3pt (15px), graisse : normal). Contraste de couleur attendu : 4.5:1"
            },
            {
              "target": "a[href=\"#\"]:nth-child(4)",
              "html": "<a href=\"#\">Contact</a>",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément a un contraste de couleurs insuffisant de 2.45 (couleur d’avant plan : #c98aa0, couleur d’arrière plan : #fbeff2, taille de police : 11.3pt (15px), graisse : normal). Contraste de couleur attendu : 4.5:1"
            },
            {
              "target": ".card:nth-child(1) > .price",
              "html": "<p class=\"price\">39 €</p>",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément a un contraste de couleurs insuffisant de 2.16 (couleur d’avant plan : #b0b0b0, couleur d’arrière plan : #ffffff, taille de police : 12.0pt (16px), graisse : normal). Contraste de couleur attendu : 4.5:1"
            },
            {
              "target": ".card:nth-child(1) > .btn[onclick=\"alert('Ajouté')\"]",
              "html": "<div class=\"btn\" onclick=\"alert('Ajouté')\">Ajouter</div>",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément a un contraste de couleurs insuffisant de 1.55 (couleur d’avant plan : #ffffff, couleur d’arrière plan : #f4c2d0, taille de police : 12.0pt (16px), graisse : normal). Contraste de couleur attendu : 4.5:1"
            },
            {
              "target": ".card:nth-child(2) > .price",
              "html": "<p class=\"price\">45 €</p>",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément a un contraste de couleurs insuffisant de 2.16 (couleur d’avant plan : #b0b0b0, couleur d’arrière plan : #ffffff, taille de police : 12.0pt (16px), graisse : normal). Contraste de couleur attendu : 4.5:1"
            },
            {
              "target": ".card:nth-child(2) > .btn[onclick=\"alert('Ajouté')\"]",
              "html": "<div class=\"btn\" onclick=\"alert('Ajouté')\">Ajouter</div>",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément a un contraste de couleurs insuffisant de 1.55 (couleur d’avant plan : #ffffff, couleur d’arrière plan : #f4c2d0, taille de police : 12.0pt (16px), graisse : normal). Contraste de couleur attendu : 4.5:1"
            },
            {
              "target": ".card:nth-child(3) > .price",
              "html": "<p class=\"price\">32 €</p>",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément a un contraste de couleurs insuffisant de 2.16 (couleur d’avant plan : #b0b0b0, couleur d’arrière plan : #ffffff, taille de police : 12.0pt (16px), graisse : normal). Contraste de couleur attendu : 4.5:1"
            },
            {
              "target": ".card:nth-child(3) > .btn[onclick=\"alert('Ajouté')\"]",
              "html": "<div class=\"btn\" onclick=\"alert('Ajouté')\">Ajouter</div>",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément a un contraste de couleurs insuffisant de 1.55 (couleur d’avant plan : #ffffff, couleur d’arrière plan : #f4c2d0, taille de police : 12.0pt (16px), graisse : normal). Contraste de couleur attendu : 4.5:1"
            },
            {
              "target": "main > .small",
              "html": "<p class=\"small\">En vous inscrivant, vous acceptez de recevoir nos offres. Désinscription possible à tout moment.</p>",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément a un contraste de couleurs insuffisant de 2.32 (couleur d’avant plan : #aaaaaa, couleur d’arrière plan : #ffffff, taille de police : 8.3pt (11px), graisse : normal). Contraste de couleur attendu : 4.5:1"
            },
            {
              "target": "footer > .small",
              "html": "<p class=\"small\">© 2026 Pivoine &amp; Cie (entreprise fictive). <a href=\"#\">Mentions légales</a> · <a href=\"#\">Accessibilité : non conforme</a></p>",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément a un contraste de couleurs insuffisant de 2.07 (couleur d’avant plan : #aaaaaa, couleur d’arrière plan : #fbeff2, taille de police : 8.3pt (11px), graisse : normal). Contraste de couleur attendu : 4.5:1"
            }
          ]
        },
        {
          "rule": "color-contrast",
          "kind": "check",
          "severity": "Critique",
          "help": "Les éléments doivent avoir un contraste de couleurs suffisant",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.14/color-contrast?application=axeAPI&lang=fr",
          "nodes": [
            {
              "target": ".slogan",
              "html": "<div class=\"slogan\">Pivoine &amp; Cie, fleuriste à Bordeaux</div>",
              "summary": "Corriger l’un des éléments suivants : \n  La couleur d’arrière-plan de l’élément n’a pu être déterminée, car l’élément contient une balise image"
            }
          ]
        }
      ]
    },
    {
      "id": "3.3",
      "status": "AV",
      "findings": []
    },
    {
      "id": "4.1",
      "status": "NA",
      "findings": []
    },
    {
      "id": "4.2",
      "status": "NA",
      "findings": []
    },
    {
      "id": "4.3",
      "status": "NA",
      "findings": []
    },
    {
      "id": "4.4",
      "status": "NA",
      "findings": []
    },
    {
      "id": "4.5",
      "status": "NA",
      "findings": []
    },
    {
      "id": "4.6",
      "status": "NA",
      "findings": []
    },
    {
      "id": "4.7",
      "status": "NA",
      "findings": []
    },
    {
      "id": "4.8",
      "status": "NA",
      "findings": []
    },
    {
      "id": "4.9",
      "status": "NA",
      "findings": []
    },
    {
      "id": "4.10",
      "status": "NA",
      "findings": []
    },
    {
      "id": "4.11",
      "status": "NA",
      "findings": []
    },
    {
      "id": "4.12",
      "status": "NA",
      "findings": []
    },
    {
      "id": "4.13",
      "status": "NA",
      "findings": []
    },
    {
      "id": "5.1",
      "status": "NA",
      "findings": []
    },
    {
      "id": "5.2",
      "status": "NA",
      "findings": []
    },
    {
      "id": "5.3",
      "status": "AV",
      "findings": []
    },
    {
      "id": "5.4",
      "status": "NA",
      "findings": []
    },
    {
      "id": "5.5",
      "status": "NA",
      "findings": []
    },
    {
      "id": "5.6",
      "status": "NA",
      "findings": []
    },
    {
      "id": "5.7",
      "status": "NA",
      "findings": []
    },
    {
      "id": "5.8",
      "status": "AV",
      "findings": []
    },
    {
      "id": "6.1",
      "status": "AV",
      "findings": [
        {
          "rule": "lien-generique",
          "kind": "check",
          "severity": "Majeur",
          "help": "Intitulé de lien générique (« en savoir plus », « cliquez ici »…) : vérifier que son contexte le rend explicite.",
          "nodes": [
            {
              "target": "a",
              "html": "<a href=\"#\">cliquez ici</a>",
              "summary": ""
            },
            {
              "target": "a",
              "html": "<a href=\"#\">Lire la suite</a>",
              "summary": ""
            }
          ]
        }
      ]
    },
    {
      "id": "6.2",
      "status": "NC",
      "findings": [
        {
          "rule": "link-name",
          "kind": "fail",
          "severity": "Critique",
          "help": "Les liens doivent avoir un texte perceptible",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.14/link-name?application=axeAPI&lang=fr",
          "nodes": [
            {
              "target": "a[href=\"#\"]:nth-child(5)",
              "html": "<a href=\"#\"><img src=\"https://images.unsplash.com/photo-1526045612212-70caf35c14df?w=40&amp;h=40&amp;fit=crop\" width=\"20\" height=\"20\"></a>",
              "summary": "Corriger tous les éléments suivants : \n  L’élément est dans l’ordre de tabulation et n’a pas d’intitulé accessible\n\nCorriger l’un des éléments suivants : \n  L’élément n’a aucun contenu textuel visible par les lecteurs d’écran\n  L’attribut aria-label n’existe pas ou est vide\n  L’attribut aria-labelledby n’existe pas, fait référence à des éléments qui n’existent pas ou à des éléments vides ou non visibles\n  L’élément n’a pas d’attribut title"
            }
          ]
        }
      ]
    },
    {
      "id": "7.1",
      "status": "NC",
      "findings": [
        {
          "rule": "clic-sans-role",
          "kind": "fail",
          "severity": "Critique",
          "help": "Élément scripté (onclick) sans rôle : les technologies d'assistance ignorent qu'il est interactif.",
          "nodes": [
            {
              "target": "[onclick]",
              "html": "<div class=\"btn\" onclick=\"alert('Ajouté')\">Ajouter</div>",
              "summary": ""
            },
            {
              "target": "[onclick]",
              "html": "<div class=\"btn\" onclick=\"alert('Ajouté')\">Ajouter</div>",
              "summary": ""
            },
            {
              "target": "[onclick]",
              "html": "<div class=\"btn\" onclick=\"alert('Ajouté')\">Ajouter</div>",
              "summary": ""
            }
          ]
        }
      ]
    },
    {
      "id": "7.2",
      "status": "AV",
      "findings": []
    },
    {
      "id": "7.3",
      "status": "NC",
      "findings": [
        {
          "rule": "clic-sans-clavier",
          "kind": "fail",
          "severity": "Critique",
          "help": "Élément activable à la souris (onclick) mais impossible à atteindre au clavier.",
          "nodes": [
            {
              "target": "[onclick]",
              "html": "<div class=\"btn\" onclick=\"alert('Ajouté')\">Ajouter</div>",
              "summary": ""
            },
            {
              "target": "[onclick]",
              "html": "<div class=\"btn\" onclick=\"alert('Ajouté')\">Ajouter</div>",
              "summary": ""
            },
            {
              "target": "[onclick]",
              "html": "<div class=\"btn\" onclick=\"alert('Ajouté')\">Ajouter</div>",
              "summary": ""
            }
          ]
        }
      ]
    },
    {
      "id": "7.4",
      "status": "AV",
      "findings": []
    },
    {
      "id": "7.5",
      "status": "AV",
      "findings": []
    },
    {
      "id": "8.1",
      "status": "C",
      "findings": []
    },
    {
      "id": "8.2",
      "status": "AV",
      "findings": []
    },
    {
      "id": "8.3",
      "status": "NC",
      "findings": [
        {
          "rule": "html-has-lang",
          "kind": "fail",
          "severity": "Critique",
          "help": "L’élément <html> doit avoir un attribut lang",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.14/html-has-lang?application=axeAPI&lang=fr",
          "nodes": [
            {
              "target": "html",
              "html": "<html>",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément <html> n’a pas d’attribut lang"
            }
          ]
        }
      ]
    },
    {
      "id": "8.4",
      "status": "C",
      "findings": []
    },
    {
      "id": "8.5",
      "status": "C",
      "findings": []
    },
    {
      "id": "8.6",
      "status": "NC",
      "findings": [
        {
          "rule": "titre-generique",
          "kind": "fail",
          "severity": "Majeur",
          "help": "Titre de page générique ou non informatif : « Accueil ».",
          "nodes": []
        }
      ]
    },
    {
      "id": "8.7",
      "status": "AV",
      "findings": []
    },
    {
      "id": "8.8",
      "status": "C",
      "findings": []
    },
    {
      "id": "8.9",
      "status": "AV",
      "findings": []
    },
    {
      "id": "8.10",
      "status": "NA",
      "findings": []
    },
    {
      "id": "9.1",
      "status": "AV",
      "findings": [
        {
          "rule": "titres-sauts",
          "kind": "check",
          "severity": "Majeur",
          "help": "Saut de niveau dans la hiérarchie des titres : vérifier la pertinence de la structure.",
          "nodes": [
            {
              "target": "h5",
              "html": "Bouquet Printemps",
              "summary": ""
            }
          ]
        },
        {
          "rule": "h1-absent",
          "kind": "check",
          "severity": "Majeur",
          "help": "Aucun titre de niveau 1.",
          "nodes": []
        }
      ]
    },
    {
      "id": "9.2",
      "status": "NC",
      "findings": [
        {
          "rule": "region",
          "kind": "fail",
          "severity": "Majeur",
          "help": "Le contenu doit être localisé dans une région",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.14/region?application=axeAPI&lang=fr",
          "nodes": [
            {
              "target": ".demo-banner",
              "html": "<p class=\"demo-banner\" lang=\"fr\">Site fictif de démonstration, créé par Grilla avec des erreurs d'accessibilité volontaires. <a href=\"/exemple\">Voir le rapport d'exemple</a>.</p>",
              "summary": "Corriger l’un des éléments suivants : \n  Contenu non imbriqué dans une région ARIA"
            },
            {
              "target": ".hero",
              "html": "<div class=\"hero\">\n  <img src=\"https://images.unsplash.com/photo-1487070183336-b863922373d4?w=1400&amp;h=500&amp;fit=crop\">\n  <div class=\"slogan\">Pivoine &amp; Cie, fleuriste à Bordeaux</div>\n</div>",
              "summary": "Corriger l’un des éléments suivants : \n  Contenu non imbriqué dans une région ARIA"
            }
          ]
        }
      ]
    },
    {
      "id": "9.3",
      "status": "AV",
      "findings": []
    },
    {
      "id": "9.4",
      "status": "NA",
      "findings": []
    },
    {
      "id": "10.1",
      "status": "AV",
      "findings": []
    },
    {
      "id": "10.2",
      "status": "AV",
      "findings": []
    },
    {
      "id": "10.3",
      "status": "AV",
      "findings": []
    },
    {
      "id": "10.4",
      "status": "C",
      "findings": [],
      "basis": "Aucun texte coupé ni tronqué par un zoom à 200 %."
    },
    {
      "id": "10.5",
      "status": "AV",
      "findings": []
    },
    {
      "id": "10.6",
      "status": "AV",
      "findings": []
    },
    {
      "id": "10.7",
      "status": "NC",
      "findings": [
        {
          "rule": "focus-invisible",
          "kind": "fail",
          "severity": "Critique",
          "help": "Élément sans indication visible quand il reçoit le focus clavier.",
          "nodes": [
            {
              "target": ":focus",
              "html": "<a href=\"/exemple\">Voir le rapport d'exemple</a>",
              "summary": "Aucun changement visible à l'écran quand l'élément reçoit le focus."
            },
            {
              "target": ":focus",
              "html": "<a href=\"#\">Accueil</a>",
              "summary": "Aucun changement visible à l'écran quand l'élément reçoit le focus."
            },
            {
              "target": ":focus",
              "html": "<a href=\"#\">Bouquets</a>",
              "summary": "Aucun changement visible à l'écran quand l'élément reçoit le focus."
            },
            {
              "target": ":focus",
              "html": "<a href=\"#\">Mariages</a>",
              "summary": "Aucun changement visible à l'écran quand l'élément reçoit le focus."
            },
            {
              "target": ":focus",
              "html": "<a href=\"#\">Contact</a>",
              "summary": "Aucun changement visible à l'écran quand l'élément reçoit le focus."
            },
            {
              "target": ":focus",
              "html": "<a href=\"#\"><img src=\"https://images.unsplash.com/photo-1526045612212-70caf35c14df?w=40&amp;h=40&amp;fit=crop\" width=\"20\" height=\"20\"></a>",
              "summary": "Aucun changement visible à l'écran quand l'élément reçoit le focus."
            },
            {
              "target": ":focus",
              "html": "<button><img src=\"https://images.unsplash.com/photo-1526045612212-70caf35c14df?w=24&amp;h=24&amp;fit=crop\" width=\"16\" height=\"16\"></button>",
              "summary": "Aucun changement visible à l'écran quand l'élément reçoit le focus."
            }
          ]
        }
      ]
    },
    {
      "id": "10.8",
      "status": "AV",
      "findings": []
    },
    {
      "id": "10.9",
      "status": "AV",
      "findings": []
    },
    {
      "id": "10.10",
      "status": "AV",
      "findings": []
    },
    {
      "id": "10.11",
      "status": "NC",
      "findings": [
        {
          "rule": "reflow-320",
          "kind": "fail",
          "severity": "Critique",
          "help": "Défilement horizontal à 320 px de large : le contenu mesure 439 px.",
          "nodes": []
        }
      ]
    },
    {
      "id": "10.12",
      "status": "C",
      "findings": [],
      "basis": "Aucun texte coupé avec l'espacement augmenté (interligne 1,5, lettres 0,12 em, mots 0,16 em)."
    },
    {
      "id": "10.13",
      "status": "AV",
      "findings": []
    },
    {
      "id": "10.14",
      "status": "AV",
      "findings": []
    },
    {
      "id": "11.1",
      "status": "NC",
      "findings": [
        {
          "rule": "placeholder-seul",
          "kind": "fail",
          "severity": "Critique",
          "help": "Champ sans étiquette : le placeholder ne compte pas comme étiquette pour le RGAA (il disparaît à la saisie). Ajoutez un label, un aria-label, un aria-labelledby ou un title.",
          "nodes": [
            {
              "target": "input, select, textarea",
              "html": "<input type=\"text\" placeholder=\"Votre e-mail\" style=\"\">",
              "summary": ""
            },
            {
              "target": "input, select, textarea",
              "html": "<input type=\"text\" placeholder=\"Code postal\" style=\"\">",
              "summary": ""
            }
          ]
        }
      ]
    },
    {
      "id": "11.2",
      "status": "AV",
      "findings": []
    },
    {
      "id": "11.3",
      "status": "AV",
      "findings": []
    },
    {
      "id": "11.4",
      "status": "AV",
      "findings": []
    },
    {
      "id": "11.5",
      "status": "AV",
      "findings": []
    },
    {
      "id": "11.6",
      "status": "AV",
      "findings": []
    },
    {
      "id": "11.7",
      "status": "AV",
      "findings": []
    },
    {
      "id": "11.8",
      "status": "NA",
      "findings": []
    },
    {
      "id": "11.9",
      "status": "NC",
      "findings": [
        {
          "rule": "button-name",
          "kind": "fail",
          "severity": "Critique",
          "help": "Les boutons doivent avoir un texte perceptible",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.14/button-name?application=axeAPI&lang=fr",
          "nodes": [
            {
              "target": "button",
              "html": "<button><img src=\"https://images.unsplash.com/photo-1526045612212-70caf35c14df?w=24&amp;h=24&amp;fit=crop\" width=\"16\" height=\"16\"></button>",
              "summary": "Corriger l’un des éléments suivants : \n  L’élément n’a aucun contenu textuel visible par les lecteurs d’écran\n  L’attribut aria-label n’existe pas ou est vide\n  L’attribut aria-labelledby n’existe pas, fait référence à des éléments qui n’existent pas ou à des éléments vides ou non visibles\n  L’élément n’a pas d’attribut title\n  L’élément de formulaire n’a pas de <label> implicite (imbriqué)\n  L’élément de formulaire n’a pas de <label> explicite\n  La sémantique par défaut de l’élément n’a pas été remplacée par role=\"none\" ou role=\"presentation\""
            }
          ]
        }
      ]
    },
    {
      "id": "11.10",
      "status": "AV",
      "findings": []
    },
    {
      "id": "11.11",
      "status": "AV",
      "findings": []
    },
    {
      "id": "11.12",
      "status": "AV",
      "findings": []
    },
    {
      "id": "11.13",
      "status": "NA",
      "findings": []
    },
    {
      "id": "12.1",
      "status": "AV",
      "findings": []
    },
    {
      "id": "12.2",
      "status": "AV",
      "findings": []
    },
    {
      "id": "12.3",
      "status": "NA",
      "findings": [],
      "basis": "Aucun lien vers un plan du site sur cette page."
    },
    {
      "id": "12.4",
      "status": "NA",
      "findings": [],
      "basis": "Aucun lien vers un plan du site sur cette page."
    },
    {
      "id": "12.5",
      "status": "NA",
      "findings": []
    },
    {
      "id": "12.6",
      "status": "C",
      "findings": [],
      "basis": "Régions balisées : contenu principal et navigation ou en-tête."
    },
    {
      "id": "12.7",
      "status": "NC",
      "findings": [
        {
          "rule": "lien-evitement",
          "kind": "fail",
          "severity": "Critique",
          "help": "Aucun lien d'évitement vers le contenu parmi les premiers éléments focalisables de la page.",
          "nodes": []
        }
      ]
    },
    {
      "id": "12.8",
      "status": "C",
      "findings": [],
      "basis": "L'ordre de tabulation suit l'ordre visuel de la page sur les 12 premiers éléments focalisables."
    },
    {
      "id": "12.9",
      "status": "NC",
      "findings": [
        {
          "rule": "piege-clavier",
          "kind": "fail",
          "severity": "Critique",
          "help": "Le focus reste bloqué sur le même élément malgré la touche Tab.",
          "nodes": []
        }
      ]
    },
    {
      "id": "12.10",
      "status": "AV",
      "findings": []
    },
    {
      "id": "12.11",
      "status": "AV",
      "findings": []
    },
    {
      "id": "13.1",
      "status": "NA",
      "findings": [],
      "basis": "Aucune limite de temps détectée (pas de rafraîchissement ni de redirection automatique)."
    },
    {
      "id": "13.2",
      "status": "NA",
      "findings": []
    },
    {
      "id": "13.3",
      "status": "NA",
      "findings": []
    },
    {
      "id": "13.4",
      "status": "NA",
      "findings": []
    },
    {
      "id": "13.5",
      "status": "AV",
      "findings": []
    },
    {
      "id": "13.6",
      "status": "AV",
      "findings": []
    },
    {
      "id": "13.7",
      "status": "NA",
      "findings": []
    },
    {
      "id": "13.8",
      "status": "NA",
      "findings": []
    },
    {
      "id": "13.9",
      "status": "C",
      "findings": []
    },
    {
      "id": "13.10",
      "status": "AV",
      "findings": []
    },
    {
      "id": "13.11",
      "status": "AV",
      "findings": []
    },
    {
      "id": "13.12",
      "status": "AV",
      "findings": []
    }
  ],
  "suggestions": {
    "1.2": {
      "verdict": "NC",
      "confidence": "haute",
      "justification": "Plusieurs images de décoration (ex. logo, icônes de réseaux sociaux) ont un attribut `alt` manquant ou non vide (ex. `alt=\"image\"` pour une image décorative). Le test 1.2.1 échoue car les images décoratives doivent avoir `alt=\"\"`."
    },
    "1.3": {
      "verdict": "NC",
      "confidence": "haute",
      "justification": "Les images porteuses d'information (ex. bouquets avec leurs noms et prix) ont des alternatives non pertinentes (`alt=\"bouquet.jpg\"`, `alt=\"image\"`). Le test 1.3.1 échoue car l'alternative doit décrire l'image (ex. \"Bouquet Printemps : tulipes roses et blanches\")."
    },
    "1.4": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucune image CAPTCHA ou image-test n'est présente dans l'extrait fourni."
    },
    "1.6": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucune image ne semble nécessiter une description détaillée (ex. graphiques complexes, cartes). Les images de bouquets sont simples et décrites par leur alternative textuelle."
    },
    "1.7": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucune image avec description détaillée n'est présente (cf. critère 1.6)."
    },
    "1.8": {
      "verdict": "incertain",
      "confidence": "faible",
      "justification": "Impossible de vérifier si les images texte (ex. logo \"Pivoine & Cie\") pourraient être remplacées par du texte stylé sans voir le code source ou le rendu visuel détaillé."
    },
    "2.2": {
      "verdict": "NC",
      "confidence": "haute",
      "justification": "L'iframe OpenStreetMap n'a pas d'attribut `title` pertinent dans l'extrait fourni (test 2.2.1). Un titre comme \"Carte de localisation du fleuriste\" serait attendu."
    },
    "3.1": {
      "verdict": "incertain",
      "confidence": "moyenne",
      "justification": "Aucune information dans l'extrait ne prouve que la couleur est utilisée seule pour transmettre une information (ex. liens, statuts). Sans capture visuelle complète, impossible de trancher."
    },
    "3.3": {
      "verdict": "incertain",
      "confidence": "faible",
      "justification": "Les contrastes des couleurs (ex. texte sur fond, boutons) ne peuvent pas être vérifiés sans analyse visuelle ou valeurs RGB/hexadécimales."
    },
    "5.3": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucun tableau de mise en forme n'est identifié dans l'extrait (le tableau présent a 3 lignes et 0 en-têtes, mais son usage n'est pas précisé)."
    },
    "5.8": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucun tableau de mise en forme n'est présent (cf. critère 5.3)."
    },
    "6.1": {
      "verdict": "NC",
      "confidence": "haute",
      "justification": "Les liens \"cliquez ici\" et \"Lire la suite\" sont non explicites hors contexte (test 6.1.1). Leur intitulé seul ne permet pas de comprendre leur destination."
    },
    "7.2": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucun script avec alternative (`<noscript>`) n'est mentionné dans l'extrait."
    },
    "7.4": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucun script initiant un changement de contexte (ex. redirection, ouverture de fenêtre) n'est identifié dans l'extrait."
    },
    "7.5": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucun message de statut (ex. `role=\"status\"`) n'est présent dans l'extrait."
    },
    "8.2": {
      "verdict": "incertain",
      "confidence": "faible",
      "justification": "La validité du code source (balises, attributs) ne peut pas être vérifiée sans accès au code HTML complet."
    },
    "8.7": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "La langue par défaut n'est pas spécifiée (`lang=\"\"`), et aucun texte dans une autre langue n'est identifié dans l'extrait."
    },
    "8.9": {
      "verdict": "incertain",
      "confidence": "moyenne",
      "justification": "Impossible de vérifier si des balises sont utilisées uniquement pour la présentation (ex. `<b>`, `<i>`) sans voir le code source complet."
    },
    "9.1": {
      "verdict": "NC",
      "confidence": "haute",
      "justification": "Aucun titre de niveau 1 (`<h1>`) n'est présent dans l'extrait. Le titre \"Nos bouquets de saison\" semble être un `<h2>` ou inférieur, ce qui brise la hiérarchie (test 9.1.1)."
    },
    "9.3": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucune liste (ordonnée ou non) n'est identifiée dans l'extrait fourni."
    },
    "10.1": {
      "verdict": "incertain",
      "confidence": "faible",
      "justification": "Impossible de vérifier l'usage de CSS pour la présentation sans accès au code source ou aux feuilles de style."
    },
    "10.2": {
      "verdict": "incertain",
      "confidence": "faible",
      "justification": "L'information reste-t-elle présente sans CSS ? Impossible à vérifier sans désactiver les styles ou voir le rendu sans CSS."
    },
    "10.3": {
      "verdict": "incertain",
      "confidence": "faible",
      "justification": "L'information reste-t-elle compréhensible sans CSS ? Impossible à vérifier sans test concret."
    },
    "10.5": {
      "verdict": "incertain",
      "confidence": "faible",
      "justification": "Les déclarations CSS de couleurs (police/fond) ne peuvent pas être analysées sans accès aux styles."
    },
    "10.6": {
      "verdict": "incertain",
      "confidence": "moyenne",
      "justification": "Les liens comme \"cliquez ici\" ou \"Lire la suite\" pourraient être signalés uniquement par la couleur. Sans capture visuelle, impossible de vérifier leur contraste."
    },
    "10.8": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucun contenu caché (ex. `hidden`, `aria-hidden`) n'est mentionné dans l'extrait."
    },
    "10.9": {
      "verdict": "incertain",
      "confidence": "moyenne",
      "justification": "Impossible de vérifier si l'information est donnée uniquement par la forme/taille/position (ex. icônes, mise en page) sans analyse visuelle complète."
    },
    "10.10": {
      "verdict": "incertain",
      "confidence": "moyenne",
      "justification": "Même justification que pour le critère 10.9 : besoin d'une analyse visuelle pour confirmer."
    },
    "10.13": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucun contenu additionnel (tooltip, menu déroulant) n'est identifié dans l'extrait."
    },
    "10.14": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucun contenu additionnel via CSS (ex. `:hover`) n'est mentionné dans l'extrait."
    },
    "11.2": {
      "verdict": "C",
      "confidence": "haute",
      "justification": "Les étiquettes des champs de formulaire (\"Votre e-mail\", \"Code postal\") sont pertinentes et associées aux champs (test 11.2.1)."
    },
    "11.3": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Un seul champ par type est présent dans l'extrait (e-mail, code postal), donc pas de répétition à vérifier."
    },
    "11.4": {
      "verdict": "incertain",
      "confidence": "moyenne",
      "justification": "Impossible de vérifier si les étiquettes sont accolées aux champs sans voir le code HTML ou le rendu visuel (ex. association via `for` ou imbrication)."
    },
    "11.5": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucun regroupement de champs de même nature (ex. `<fieldset>`) n'est présent dans l'extrait."
    },
    "11.6": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucun regroupement de champs (cf. critère 11.5) n'est présent."
    },
    "11.7": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucune légende de regroupement (cf. critère 11.6) n'est présente."
    },
    "11.10": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucun champ obligatoire ou message d'erreur n'est identifié dans l'extrait (les champs \"Votre e-mail\" et \"Code postal\" ne sont pas marqués comme obligatoires)."
    },
    "11.11": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucune erreur de saisie ou suggestion n'est présente dans l'extrait."
    },
    "11.12": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucun formulaire avec conséquences financières/juridiques n'est identifié (le formulaire présent semble être une newsletter)."
    },
    "12.1": {
      "verdict": "NC",
      "confidence": "haute",
      "justification": "Un seul système de navigation est visible (menu principal : Accueil, Bouquets, Mariages, Contact). Aucun plan du site ou moteur de recherche n'est mentionné (test 12.1.1)."
    },
    "12.2": {
      "verdict": "incertain",
      "confidence": "moyenne",
      "justification": "Le menu semble présent en haut de page, mais impossible de vérifier sa position sur toutes les pages de l'ensemble sans navigation complète."
    },
    "12.10": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucun raccourci clavier à une touche n'est identifié dans l'extrait."
    },
    "12.11": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucun contenu additionnel (cf. critère 10.13) n'est présent."
    },
    "13.5": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucun contenu cryptique (art ASCII, émoticônes) n'est identifié dans l'extrait."
    },
    "13.6": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucun contenu cryptique (cf. critère 13.5) n'est présent."
    },
    "13.10": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucune fonctionnalité nécessitant un geste complexe (ex. multipoint, trajectoire) n'est identifiée dans l'extrait."
    },
    "13.11": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucune action déclenchée par un dispositif de pointage n'est mentionnée dans l'extrait."
    },
    "13.12": {
      "verdict": "NA",
      "confidence": "haute",
      "justification": "Aucune fonctionnalité basée sur le mouvement de l'appareil n'est identifiée."
    }
  }
}