[
  {
    "id": "01jyyyz3y0bpckmjwds3mypzf2",
    "url": "https://www.krafters.nl",
    "name": "Danny",
    "email": "danny@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": true,
                "message": "No accessibility violations found",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "The page passed all accessibility tests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": true,
                "message": "No images found on the page.",
                "findings": [
                  {
                    "name": "No images",
                    "key": "no_images",
                    "value": "The page does not contain any images.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": true,
                "message": "No ARIA attributes found on the page.",
                "findings": [
                  {
                    "name": "No ARIA elements",
                    "key": "no_aria_elements",
                    "value": "The page does not use ARIA attributes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "Focus management is properly implemented.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "All 1 focusable elements have proper focus management.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": true,
                "message": "No forms found on the page.",
                "findings": [
                  {
                    "name": "No forms",
                    "key": "no_forms",
                    "value": "The page does not contain any forms.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": true,
                "message": "No lists found on the page.",
                "findings": [
                  {
                    "name": "No lists",
                    "key": "no_lists",
                    "value": "The page does not contain any lists.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "All sensitive files are properly secured.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "All sensitive files are properly secured with appropriate HTTP status codes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": false,
                "message": "The meta description tag is missing.",
                "findings": [
                  {
                    "name": "Meta description missing",
                    "key": "meta_description_missing",
                    "value": "The meta description tag is not present in the DOM.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "The title is valid.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "The title is present and has a valid length of 26 characters. Title content: \"Vercel Security Checkpoint\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "No robots meta tag found.",
                "findings": [
                  {
                    "name": "No robots tag",
                    "key": "no_robots_tag",
                    "value": "No robots meta tag is present, which is valid as it allows search engines to index the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": false,
                "message": "Missing tags: og:title, og:description, og:image, og:url",
                "findings": [
                  {
                    "name": "OG tags missing",
                    "key": "og_tags_missing",
                    "value": "The following required Open Graph tags are missing: og:title, og:description, og:image, og:url",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": false,
                "message": "No headings found on the page.",
                "findings": [
                  {
                    "name": "H1 missing",
                    "key": "h1_missing",
                    "value": "The page has no headings at all.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "The lang attribute is valid.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "The lang attribute is present and has a valid value: 'en'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All internal links are valid.",
                "findings": [
                  {
                    "name": "Links valid",
                    "key": "links_valid",
                    "value": "All internal links are working correctly.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": true,
                "message": "SSL certificate is valid.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificate issued by Let's Encrypt is valid and will expire in 61 days.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": false,
                "message": "Lighthouse audit completed successfully.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 87%",
                    "numeric_value": "87.0000"
                  },
                  {
                    "name": "Lighthouse accessibility",
                    "key": "lighthouse_accessibility",
                    "value": "Score: 100%",
                    "numeric_value": "100.0000"
                  },
                  {
                    "name": "test_results.lighthouse_seo",
                    "key": "lighthouse_seo",
                    "value": "Score: 100%",
                    "numeric_value": "100.0000"
                  },
                  {
                    "name": "Lighthouse best practices",
                    "key": "lighthouse_best_practices",
                    "value": "Score: 100%",
                    "numeric_value": "100.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": []
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": false,
                "message": "No internal links found.",
                "findings": [
                  {
                    "name": "No internal links",
                    "key": "no_internal_links",
                    "value": "No internal links (href starting with #) were found on the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": false,
                "message": "No HTTPS redirect detected.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "The website does not redirect HTTP to HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "Missing required security headers.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "The following security headers are missing: Content-Security-Policy, X-Frame-Options, X-XSS-Protection, Strict-Transport-Security",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": false,
                "message": "Sitemap.xml not found or not accessible.",
                "findings": [
                  {
                    "name": "Sitemap not found",
                    "key": "sitemap_not_found",
                    "value": "The sitemap.xml file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": false,
                "message": "robots.txt not found or not accessible.",
                "findings": [
                  {
                    "name": "Robots not found",
                    "key": "robots_not_found",
                    "value": "The robots.txt file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": []
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jyyyz3y0bpckmjwds3mypzf2.png",
    "created_at": "2025-06-29T23:04:43.000000Z",
    "updated_at": "2025-06-29T23:06:26.000000Z"
  },
  {
    "id": "01jyyz4h1sbfy39vcm6hppgv8t",
    "url": "https://www.cardan.com",
    "name": "Danny",
    "email": "danny@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": true,
                "message": "No accessibility violations found",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "The page passed all accessibility tests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": false,
                "message": "Found images without proper accessibility attributes.",
                "findings": [
                  {
                    "name": "Inaccessible images",
                    "key": "inaccessible_images",
                    "value": "Found 5 images without proper accessibility attributes:\n/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fsfeerfotos%2Ffotoshoot-tommy%2Fcardan-sfeer-dec24-lr02.jpg&w=1024&q=80\n/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fsfeerfotos%2Fmedewerkers%2Fjesse-op-het-ijs.png&w=480&q=80\n/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fportretten%2F1721894176811.jpeg&w=480&q=80\n/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Farchive%2F2023%2F03%2Fmackbook-wcag-2-2-editors-draft-1175x783-1.jpg&w=480&q=80\n/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Farchive%2F2022%2F04%2Fpexels-valeria-boltneva-87584-scaled.jpg&w=480&q=80\n\nEach image must have either an alt text or be marked as decorative (aria-hidden='true' or role='presentation').",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": true,
                "message": "All ARIA attributes are valid.",
                "findings": [
                  {
                    "name": "ARIA valid",
                    "key": "aria_valid",
                    "value": "All 31 elements with ARIA attributes are properly configured.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "Focus management is properly implemented.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "All 130 focusable elements have proper focus management.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": false,
                "message": "Form accessibility issues found.",
                "findings": [
                  {
                    "name": "Invalid required indicators",
                    "key": "invalid_required_indicators",
                    "value": "Required fields with poor indicators: Required field 'name' lacks accessible required indicator, Required field 'email' lacks accessible required indicator",
                    "numeric_value": null
                  },
                  {
                    "name": "Invalid required indicators",
                    "key": "invalid_required_indicators",
                    "value": "Required fields with poor indicators: Required field 'message' lacks accessible required indicator, Required field 'first_name' lacks accessible required indicator, Required field 'last_name' lacks accessible required indicator, Required field 'email' lacks accessible required indicator",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": true,
                "message": "All lists have proper structure.",
                "findings": [
                  {
                    "name": "Lists structure valid",
                    "key": "lists_structure_valid",
                    "value": "All 17 lists have proper semantic structure.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1, viewport-fit=cover",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "All sensitive files are properly secured.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "All sensitive files are properly secured with appropriate HTTP status codes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": true,
                "message": "The meta description is valid.",
                "findings": [
                  {
                    "name": "test_results.meta_description_valid",
                    "key": "meta_description_valid",
                    "value": "The meta description is present and has a valid length of 119 characters.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "The title is valid.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "The title is present and has a valid length of 50 characters. Title content: \"Jouw partner in digitale toegankelijkheid | Cardan\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "No robots meta tag found.",
                "findings": [
                  {
                    "name": "No robots tag",
                    "key": "no_robots_tag",
                    "value": "No robots meta tag is present, which is valid as it allows search engines to index the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": true,
                "message": "Page has all required Open Graph tags",
                "findings": [
                  {
                    "name": "test_results.og_tags_valid",
                    "key": "og_tags_valid",
                    "value": "All required Open Graph tags are present and have content: og:title, og:description, og:image, og:url",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": true,
                "message": "Heading structure is valid.",
                "findings": [
                  {
                    "name": "Heading structure valid",
                    "key": "heading_structure_valid",
                    "value": "The page has a valid heading structure with proper hierarchy.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "The lang attribute is valid.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "The lang attribute is present and has a valid value: 'nl'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Found broken internal links.",
                "findings": [
                  {
                    "name": "Broken links",
                    "key": "broken_links",
                    "value": "Found 95 broken internal links: [\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#main\",\n        \"text\": \"Spring naar hoofdcontent\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/auditor\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/trainingen\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/advies-op-maat\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/bewustwording\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/project-management\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/overheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/bedrijven\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/leveranciers\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/digitale-toegankelijkheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/soorten-beperkingen\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/de-wcag\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/wet-digitale-overheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/european-accessibility-act\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/over-cardan\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/onze-mensen\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/vacatures\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/waarmerk-drempelvrij\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/overheid\",\n        \"text\": \"Overheid\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/bedrijven\",\n        \"text\": \"Bedrijven\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/leveranciers\",\n        \"text\": \"Leveranciers\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/volledig-onderzoek\",\n        \"text\": \"Volledig onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/deelonderzoek-content\",\n        \"text\": \"Deelonderzoek content\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/techniek-onderzoek\",\n        \"text\": \"Techniek onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/quickscan\",\n        \"text\": \"WCAG Quickscan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/app-onderzoek\",\n        \"text\": \"App onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/pdf-onderzoek\",\n        \"text\": \"PDF onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/aanvullend-onderzoek\",\n        \"text\": \"Aanvullend onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/volledig-onderzoek\",\n        \"text\": \"Volledig onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/deelonderzoek-content\",\n        \"text\": \"Deelonderzoek content\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/techniek-onderzoek\",\n        \"text\": \"Techniek onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/quickscan\",\n        \"text\": \"WCAG Quickscan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/app-onderzoek\",\n        \"text\": \"App onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/pdf-onderzoek\",\n        \"text\": \"PDF onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/aanvullend-onderzoek\",\n        \"text\": \"Aanvullend onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/volledig-onderzoek\",\n        \"text\": \"Volledig onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/deelonderzoek-content\",\n        \"text\": \"Deelonderzoek content\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/techniek-onderzoek\",\n        \"text\": \"Techniek onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/quickscan\",\n        \"text\": \"WCAG Quickscan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/app-onderzoek\",\n        \"text\": \"App onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/pdf-onderzoek\",\n        \"text\": \"PDF onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/aanvullend-onderzoek\",\n        \"text\": \"Aanvullend onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/volledig-onderzoek\",\n        \"text\": \"Volledig onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/deelonderzoek-content\",\n        \"text\": \"Deelonderzoek content\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/techniek-onderzoek\",\n        \"text\": \"Techniek onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/quickscan\",\n        \"text\": \"WCAG Quickscan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/app-onderzoek\",\n        \"text\": \"App onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/pdf-onderzoek\",\n        \"text\": \"PDF onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/aanvullend-onderzoek\",\n        \"text\": \"Aanvullend onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/volledig-onderzoek\",\n        \"text\": \"Volledig onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/deelonderzoek-content\",\n        \"text\": \"Deelonderzoek content\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/techniek-onderzoek\",\n        \"text\": \"Techniek onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/quickscan\",\n        \"text\": \"WCAG Quickscan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/app-onderzoek\",\n        \"text\": \"App onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/pdf-onderzoek\",\n        \"text\": \"PDF onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/aanvullend-onderzoek\",\n        \"text\": \"Aanvullend onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/digitale-toegankelijkheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/overheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/bedrijven\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/leveranciers\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/zo-werk-je-aan-digitale-toegankelijkheid-met-een-topsportmentaliteit-7-praktische-lessen\",\n        \"text\": \"Zo werk je aan digitale toegankelijkheid met een topsportmentaliteit: 7 praktische lessen\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/hoe-klinkt-jouw-website\",\n        \"text\": \"Hoe klinkt jouw website?\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/de-meeste-voorkomende-toegankelijkheidsfouten-bij-cookie-banners\",\n        \"text\": \"Cookiebanners en toegankelijkheid: dit gaat vaak mis\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/goed-kleurcontrast-zorg-dat-je-alles-goed-ziet\",\n        \"text\": \"Goed kleurcontrast: zorg dat je alles goed ziet\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/auditor\",\n        \"text\": \"Cardan Auditor\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\",\n        \"text\": \"Diensten\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\",\n        \"text\": \"Branches\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/de-wcag\",\n        \"text\": \"De WCAG\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\",\n        \"text\": \"Blog\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/nieuwsbrief-digitale-toegankelijkheid\",\n        \"text\": \"Inschrijven nieuwsbrief\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/over-cardan\",\n        \"text\": \"Over Cardan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/onze-mensen\",\n        \"text\": \"Onze mensen\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/vacatures\",\n        \"text\": \"Vacatures\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/sitemap\",\n        \"text\": \"Sitemap\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/toegankelijkheidsverklaring\",\n        \"text\": \"Toegankelijkheidsverklaring\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/beveiligingsverklaring\",\n        \"text\": \"Beveiligingsverklaring\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/privacy\",\n        \"text\": \"Privacyverklaring\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/algemene-voorwaarden\",\n        \"text\": \"Algemene voorwaarden\",\n        \"status\": 403,\n        \"error\": null\n    }\n]",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": true,
                "message": "SSL certificate is valid.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificate issued by Let's Encrypt is valid and will expire in 90 days.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": false,
                "message": "Failed to run Lighthouse audit.",
                "findings": [
                  {
                    "name": "Lighthouse error",
                    "key": "lighthouse_error",
                    "value": "cURL error 28: Operation timed out after 30001 milliseconds with 0 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https%3A%2F%2Fwww.cardan.com&key=AIzaSyD29QNjPBJI8k6AbwhouQ7BGCsiHOBlrWM&strategy=mobile&category=ACCESSIBILITY&category=BEST_PRACTICES&category=PERFORMANCE&category=PWA&category=SEO",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": []
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": false,
                "message": "No skip links found.",
                "findings": [
                  {
                    "name": "No skip links",
                    "key": "no_skip_links",
                    "value": "No skip links were found. Consider adding skip links to improve accessibility for keyboard users.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": false,
                "message": "No HTTPS redirect detected.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "The website does not redirect HTTP to HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "Missing required security headers.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "The following security headers are missing: Content-Security-Policy, X-Frame-Options, X-XSS-Protection, Strict-Transport-Security",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": false,
                "message": "Sitemap.xml not found or not accessible.",
                "findings": [
                  {
                    "name": "Sitemap not found",
                    "key": "sitemap_not_found",
                    "value": "The sitemap.xml file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": false,
                "message": "robots.txt not found or not accessible.",
                "findings": [
                  {
                    "name": "Robots not found",
                    "key": "robots_not_found",
                    "value": "The robots.txt file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": []
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jyyz4h1sbfy39vcm6hppgv8t.png",
    "created_at": "2025-06-29T23:07:40.000000Z",
    "updated_at": "2025-06-29T23:10:57.000000Z"
  },
  {
    "id": "01jyyzgfbxvxrqbqsj2b4e19jc",
    "url": "https://www.cardan.com",
    "name": "Danny",
    "email": "danny@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": true,
                "message": "No accessibility violations found",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "The page passed all accessibility tests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": true,
                "message": "No images found on the page.",
                "findings": [
                  {
                    "name": "No images",
                    "key": "no_images",
                    "value": "The page does not contain any images.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": true,
                "message": "No ARIA attributes found on the page.",
                "findings": [
                  {
                    "name": "No ARIA elements",
                    "key": "no_aria_elements",
                    "value": "The page does not use ARIA attributes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "Focus management is properly implemented.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "All 1 focusable elements have proper focus management.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": true,
                "message": "No forms found on the page.",
                "findings": [
                  {
                    "name": "No forms",
                    "key": "no_forms",
                    "value": "The page does not contain any forms.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": true,
                "message": "No lists found on the page.",
                "findings": [
                  {
                    "name": "No lists",
                    "key": "no_lists",
                    "value": "The page does not contain any lists.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "All sensitive files are properly secured.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "All sensitive files are properly secured with appropriate HTTP status codes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": false,
                "message": "The meta description tag is missing.",
                "findings": [
                  {
                    "name": "Meta description missing",
                    "key": "meta_description_missing",
                    "value": "The meta description tag is not present in the DOM.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "The title is valid.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "The title is present and has a valid length of 26 characters. Title content: \"Vercel Security Checkpoint\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "No robots meta tag found.",
                "findings": [
                  {
                    "name": "No robots tag",
                    "key": "no_robots_tag",
                    "value": "No robots meta tag is present, which is valid as it allows search engines to index the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": false,
                "message": "Missing tags: og:title, og:description, og:image, og:url",
                "findings": [
                  {
                    "name": "OG tags missing",
                    "key": "og_tags_missing",
                    "value": "The following required Open Graph tags are missing: og:title, og:description, og:image, og:url",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": false,
                "message": "No headings found on the page.",
                "findings": [
                  {
                    "name": "H1 missing",
                    "key": "h1_missing",
                    "value": "The page has no headings at all.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "The lang attribute is valid.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "The lang attribute is present and has a valid value: 'en'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All internal links are valid.",
                "findings": [
                  {
                    "name": "Links valid",
                    "key": "links_valid",
                    "value": "All internal links are working correctly.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": true,
                "message": "SSL certificate is valid.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificate issued by Let's Encrypt is valid and will expire in 90 days.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": false,
                "message": "Lighthouse audit completed successfully.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 68%",
                    "numeric_value": "68.0000"
                  },
                  {
                    "name": "Lighthouse accessibility",
                    "key": "lighthouse_accessibility",
                    "value": "Score: 100%",
                    "numeric_value": "100.0000"
                  },
                  {
                    "name": "test_results.lighthouse_seo",
                    "key": "lighthouse_seo",
                    "value": "Score: 100%",
                    "numeric_value": "100.0000"
                  },
                  {
                    "name": "Lighthouse best practices",
                    "key": "lighthouse_best_practices",
                    "value": "Score: 96%",
                    "numeric_value": "96.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": []
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": false,
                "message": "No internal links found.",
                "findings": [
                  {
                    "name": "No internal links",
                    "key": "no_internal_links",
                    "value": "No internal links (href starting with #) were found on the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": false,
                "message": "No HTTPS redirect detected.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "The website does not redirect HTTP to HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "Missing required security headers.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "The following security headers are missing: Content-Security-Policy, X-Frame-Options, X-XSS-Protection, Strict-Transport-Security",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": false,
                "message": "Sitemap.xml not found or not accessible.",
                "findings": [
                  {
                    "name": "Sitemap not found",
                    "key": "sitemap_not_found",
                    "value": "The sitemap.xml file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": false,
                "message": "robots.txt not found or not accessible.",
                "findings": [
                  {
                    "name": "Robots not found",
                    "key": "robots_not_found",
                    "value": "The robots.txt file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": []
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jyyzgfbxvxrqbqsj2b4e19jc.png",
    "created_at": "2025-06-29T23:14:11.000000Z",
    "updated_at": "2025-06-29T23:15:58.000000Z"
  },
  {
    "id": "01jyyzz1e555ttme95mbapce9m",
    "url": "https://www.cardan.com",
    "name": "Danny",
    "email": "danny@krafters.nl",
    "phone": null,
    "results": [],
    "screenshot": "https://quickscan.krafters.nl/storage/",
    "created_at": "2025-06-29T23:22:09.000000Z",
    "updated_at": "2025-06-29T23:22:09.000000Z"
  },
  {
    "id": "01jyz02zv5phw8ddwfmrn4g3rk",
    "url": "https://www.cardan.com",
    "name": "Danny",
    "email": "danny@krafters.nl",
    "phone": null,
    "results": [],
    "screenshot": "https://quickscan.krafters.nl/storage/",
    "created_at": "2025-06-29T23:24:18.000000Z",
    "updated_at": "2025-06-29T23:24:18.000000Z"
  },
  {
    "id": "01jyz070tx9vr0amk0n76wgpvr",
    "url": "https://www.cardan.com",
    "name": "Danny",
    "email": "danny@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": true,
                "message": "No accessibility violations found",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "The page passed all accessibility tests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": false,
                "message": "Found images without proper accessibility attributes.",
                "findings": [
                  {
                    "name": "Inaccessible images",
                    "key": "inaccessible_images",
                    "value": "Found 5 images without proper accessibility attributes:\n/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fsfeerfotos%2Ffotoshoot-tommy%2Fcardan-sfeer-dec24-lr02.jpg&w=1024&q=80\n/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fsfeerfotos%2Fmedewerkers%2Fjesse-op-het-ijs.png&w=480&q=80\n/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fportretten%2F1721894176811.jpeg&w=480&q=80\n/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Farchive%2F2023%2F03%2Fmackbook-wcag-2-2-editors-draft-1175x783-1.jpg&w=480&q=80\n/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Farchive%2F2022%2F04%2Fpexels-valeria-boltneva-87584-scaled.jpg&w=480&q=80\n\nEach image must have either an alt text or be marked as decorative (aria-hidden='true' or role='presentation').",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": true,
                "message": "All ARIA attributes are valid.",
                "findings": [
                  {
                    "name": "ARIA valid",
                    "key": "aria_valid",
                    "value": "All 31 elements with ARIA attributes are properly configured.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "Focus management is properly implemented.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "All 130 focusable elements have proper focus management.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": false,
                "message": "Form accessibility issues found.",
                "findings": [
                  {
                    "name": "Invalid required indicators",
                    "key": "invalid_required_indicators",
                    "value": "Required fields with poor indicators: Required field 'name' lacks accessible required indicator, Required field 'email' lacks accessible required indicator",
                    "numeric_value": null
                  },
                  {
                    "name": "Invalid required indicators",
                    "key": "invalid_required_indicators",
                    "value": "Required fields with poor indicators: Required field 'message' lacks accessible required indicator, Required field 'first_name' lacks accessible required indicator, Required field 'last_name' lacks accessible required indicator, Required field 'email' lacks accessible required indicator",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": true,
                "message": "All lists have proper structure.",
                "findings": [
                  {
                    "name": "Lists structure valid",
                    "key": "lists_structure_valid",
                    "value": "All 17 lists have proper semantic structure.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1, viewport-fit=cover",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "All sensitive files are properly secured.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "All sensitive files are properly secured with appropriate HTTP status codes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": true,
                "message": "The meta description is valid.",
                "findings": [
                  {
                    "name": "test_results.meta_description_valid",
                    "key": "meta_description_valid",
                    "value": "The meta description is present and has a valid length of 119 characters.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "The title is valid.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "The title is present and has a valid length of 50 characters. Title content: \"Jouw partner in digitale toegankelijkheid | Cardan\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "No robots meta tag found.",
                "findings": [
                  {
                    "name": "No robots tag",
                    "key": "no_robots_tag",
                    "value": "No robots meta tag is present, which is valid as it allows search engines to index the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": true,
                "message": "Page has all required Open Graph tags",
                "findings": [
                  {
                    "name": "test_results.og_tags_valid",
                    "key": "og_tags_valid",
                    "value": "All required Open Graph tags are present and have content: og:title, og:description, og:image, og:url",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": true,
                "message": "Heading structure is valid.",
                "findings": [
                  {
                    "name": "Heading structure valid",
                    "key": "heading_structure_valid",
                    "value": "The page has a valid heading structure with proper hierarchy.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "The lang attribute is valid.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "The lang attribute is present and has a valid value: 'nl'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Found broken internal links.",
                "findings": [
                  {
                    "name": "Broken links",
                    "key": "broken_links",
                    "value": "Found 95 broken internal links: [\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#main\",\n        \"text\": \"Spring naar hoofdcontent\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/auditor\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/trainingen\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/advies-op-maat\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/bewustwording\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/project-management\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/overheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/bedrijven\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/leveranciers\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/digitale-toegankelijkheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/soorten-beperkingen\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/de-wcag\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/wet-digitale-overheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/european-accessibility-act\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/over-cardan\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/onze-mensen\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/vacatures\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/waarmerk-drempelvrij\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/overheid\",\n        \"text\": \"Overheid\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/bedrijven\",\n        \"text\": \"Bedrijven\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/leveranciers\",\n        \"text\": \"Leveranciers\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/volledig-onderzoek\",\n        \"text\": \"Volledig onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/deelonderzoek-content\",\n        \"text\": \"Deelonderzoek content\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/techniek-onderzoek\",\n        \"text\": \"Techniek onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/quickscan\",\n        \"text\": \"WCAG Quickscan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/app-onderzoek\",\n        \"text\": \"App onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/pdf-onderzoek\",\n        \"text\": \"PDF onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/aanvullend-onderzoek\",\n        \"text\": \"Aanvullend onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/volledig-onderzoek\",\n        \"text\": \"Volledig onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/deelonderzoek-content\",\n        \"text\": \"Deelonderzoek content\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/techniek-onderzoek\",\n        \"text\": \"Techniek onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/quickscan\",\n        \"text\": \"WCAG Quickscan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/app-onderzoek\",\n        \"text\": \"App onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/pdf-onderzoek\",\n        \"text\": \"PDF onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/aanvullend-onderzoek\",\n        \"text\": \"Aanvullend onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/volledig-onderzoek\",\n        \"text\": \"Volledig onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/deelonderzoek-content\",\n        \"text\": \"Deelonderzoek content\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/techniek-onderzoek\",\n        \"text\": \"Techniek onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/quickscan\",\n        \"text\": \"WCAG Quickscan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/app-onderzoek\",\n        \"text\": \"App onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/pdf-onderzoek\",\n        \"text\": \"PDF onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/aanvullend-onderzoek\",\n        \"text\": \"Aanvullend onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/volledig-onderzoek\",\n        \"text\": \"Volledig onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/deelonderzoek-content\",\n        \"text\": \"Deelonderzoek content\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/techniek-onderzoek\",\n        \"text\": \"Techniek onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/quickscan\",\n        \"text\": \"WCAG Quickscan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/app-onderzoek\",\n        \"text\": \"App onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/pdf-onderzoek\",\n        \"text\": \"PDF onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/aanvullend-onderzoek\",\n        \"text\": \"Aanvullend onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/volledig-onderzoek\",\n        \"text\": \"Volledig onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/deelonderzoek-content\",\n        \"text\": \"Deelonderzoek content\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/techniek-onderzoek\",\n        \"text\": \"Techniek onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/quickscan\",\n        \"text\": \"WCAG Quickscan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/app-onderzoek\",\n        \"text\": \"App onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/pdf-onderzoek\",\n        \"text\": \"PDF onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/aanvullend-onderzoek\",\n        \"text\": \"Aanvullend onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/digitale-toegankelijkheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/overheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/bedrijven\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/leveranciers\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/zo-werk-je-aan-digitale-toegankelijkheid-met-een-topsportmentaliteit-7-praktische-lessen\",\n        \"text\": \"Zo werk je aan digitale toegankelijkheid met een topsportmentaliteit: 7 praktische lessen\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/hoe-klinkt-jouw-website\",\n        \"text\": \"Hoe klinkt jouw website?\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/de-meeste-voorkomende-toegankelijkheidsfouten-bij-cookie-banners\",\n        \"text\": \"Cookiebanners en toegankelijkheid: dit gaat vaak mis\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/goed-kleurcontrast-zorg-dat-je-alles-goed-ziet\",\n        \"text\": \"Goed kleurcontrast: zorg dat je alles goed ziet\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/auditor\",\n        \"text\": \"Cardan Auditor\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\",\n        \"text\": \"Diensten\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\",\n        \"text\": \"Branches\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/de-wcag\",\n        \"text\": \"De WCAG\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\",\n        \"text\": \"Blog\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/nieuwsbrief-digitale-toegankelijkheid\",\n        \"text\": \"Inschrijven nieuwsbrief\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/over-cardan\",\n        \"text\": \"Over Cardan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/onze-mensen\",\n        \"text\": \"Onze mensen\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/vacatures\",\n        \"text\": \"Vacatures\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/sitemap\",\n        \"text\": \"Sitemap\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/toegankelijkheidsverklaring\",\n        \"text\": \"Toegankelijkheidsverklaring\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/beveiligingsverklaring\",\n        \"text\": \"Beveiligingsverklaring\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/privacy\",\n        \"text\": \"Privacyverklaring\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/algemene-voorwaarden\",\n        \"text\": \"Algemene voorwaarden\",\n        \"status\": 403,\n        \"error\": null\n    }\n]",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": true,
                "message": "SSL certificate is valid.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificate issued by Let's Encrypt is valid and will expire in 90 days.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": false,
                "message": "Lighthouse audit completed successfully.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 65%",
                    "numeric_value": "65.0000"
                  },
                  {
                    "name": "Lighthouse accessibility",
                    "key": "lighthouse_accessibility",
                    "value": "Score: 100%",
                    "numeric_value": "100.0000"
                  },
                  {
                    "name": "test_results.lighthouse_seo",
                    "key": "lighthouse_seo",
                    "value": "Score: 100%",
                    "numeric_value": "100.0000"
                  },
                  {
                    "name": "Lighthouse best practices",
                    "key": "lighthouse_best_practices",
                    "value": "Score: 100%",
                    "numeric_value": "100.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": []
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": false,
                "message": "No skip links found.",
                "findings": [
                  {
                    "name": "No skip links",
                    "key": "no_skip_links",
                    "value": "No skip links were found. Consider adding skip links to improve accessibility for keyboard users.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": false,
                "message": "No HTTPS redirect detected.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "The website does not redirect HTTP to HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "Missing required security headers.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "The following security headers are missing: Content-Security-Policy, X-Frame-Options, X-XSS-Protection, Strict-Transport-Security",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": false,
                "message": "Sitemap.xml not found or not accessible.",
                "findings": [
                  {
                    "name": "Sitemap not found",
                    "key": "sitemap_not_found",
                    "value": "The sitemap.xml file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": false,
                "message": "robots.txt not found or not accessible.",
                "findings": [
                  {
                    "name": "Robots not found",
                    "key": "robots_not_found",
                    "value": "The robots.txt file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": []
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jyz070tx9vr0amk0n76wgpvr.png",
    "created_at": "2025-06-29T23:26:30.000000Z",
    "updated_at": "2025-06-29T23:27:24.000000Z"
  },
  {
    "id": "01jz0jfqc7x1pdb376yz5dcrs7",
    "url": "https://www.cardan.com",
    "name": "Danny",
    "email": "danny@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": true,
                "message": "No accessibility violations found",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "The page passed all accessibility tests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": false,
                "message": "Found images without proper accessibility attributes.",
                "findings": [
                  {
                    "name": "Inaccessible images",
                    "key": "inaccessible_images",
                    "value": "Found 5 images without proper accessibility attributes:\n/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fsfeerfotos%2Ffotoshoot-tommy%2Fcardan-sfeer-dec24-lr02.jpg&w=1024&q=80\n/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fsfeerfotos%2Fmedewerkers%2Fjesse-op-het-ijs.png&w=480&q=80\n/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fportretten%2F1721894176811.jpeg&w=480&q=80\n/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Farchive%2F2023%2F03%2Fmackbook-wcag-2-2-editors-draft-1175x783-1.jpg&w=480&q=80\n/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Farchive%2F2022%2F04%2Fpexels-valeria-boltneva-87584-scaled.jpg&w=480&q=80\n\nEach image must have either an alt text or be marked as decorative (aria-hidden='true' or role='presentation').",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": true,
                "message": "All ARIA attributes are valid.",
                "findings": [
                  {
                    "name": "ARIA valid",
                    "key": "aria_valid",
                    "value": "All 31 elements with ARIA attributes are properly configured.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "Focus management is properly implemented.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "All 130 focusable elements have proper focus management.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": false,
                "message": "Form accessibility issues found.",
                "findings": [
                  {
                    "name": "Invalid required indicators",
                    "key": "invalid_required_indicators",
                    "value": "Required fields with poor indicators: Required field 'name' lacks accessible required indicator, Required field 'email' lacks accessible required indicator",
                    "numeric_value": null
                  },
                  {
                    "name": "Invalid required indicators",
                    "key": "invalid_required_indicators",
                    "value": "Required fields with poor indicators: Required field 'message' lacks accessible required indicator, Required field 'first_name' lacks accessible required indicator, Required field 'last_name' lacks accessible required indicator, Required field 'email' lacks accessible required indicator",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": true,
                "message": "All lists have proper structure.",
                "findings": [
                  {
                    "name": "Lists structure valid",
                    "key": "lists_structure_valid",
                    "value": "All 17 lists have proper semantic structure.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1, viewport-fit=cover",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "All sensitive files are properly secured.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "All sensitive files are properly secured with appropriate HTTP status codes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": true,
                "message": "The meta description is valid.",
                "findings": [
                  {
                    "name": "test_results.meta_description_valid",
                    "key": "meta_description_valid",
                    "value": "The meta description is present and has a valid length of 119 characters.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "The title is valid.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "The title is present and has a valid length of 50 characters. Title content: \"Jouw partner in digitale toegankelijkheid | Cardan\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "No robots meta tag found.",
                "findings": [
                  {
                    "name": "No robots tag",
                    "key": "no_robots_tag",
                    "value": "No robots meta tag is present, which is valid as it allows search engines to index the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": true,
                "message": "Page has all required Open Graph tags",
                "findings": [
                  {
                    "name": "test_results.og_tags_valid",
                    "key": "og_tags_valid",
                    "value": "All required Open Graph tags are present and have content: og:title, og:description, og:image, og:url",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": true,
                "message": "Heading structure is valid.",
                "findings": [
                  {
                    "name": "Heading structure valid",
                    "key": "heading_structure_valid",
                    "value": "The page has a valid heading structure with proper hierarchy.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "The lang attribute is valid.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "The lang attribute is present and has a valid value: 'nl'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Found broken internal links.",
                "findings": [
                  {
                    "name": "Broken links",
                    "key": "broken_links",
                    "value": "Found 95 broken internal links: [\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#main\",\n        \"text\": \"Spring naar hoofdcontent\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/auditor\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/trainingen\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/advies-op-maat\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/bewustwording\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/project-management\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/overheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/bedrijven\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/leveranciers\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/digitale-toegankelijkheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/soorten-beperkingen\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/de-wcag\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/wet-digitale-overheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/european-accessibility-act\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/over-cardan\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/onze-mensen\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/vacatures\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/waarmerk-drempelvrij\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/overheid\",\n        \"text\": \"Overheid\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/bedrijven\",\n        \"text\": \"Bedrijven\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/leveranciers\",\n        \"text\": \"Leveranciers\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/volledig-onderzoek\",\n        \"text\": \"Volledig onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/deelonderzoek-content\",\n        \"text\": \"Deelonderzoek content\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/techniek-onderzoek\",\n        \"text\": \"Techniek onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/quickscan\",\n        \"text\": \"WCAG Quickscan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/app-onderzoek\",\n        \"text\": \"App onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/pdf-onderzoek\",\n        \"text\": \"PDF onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/aanvullend-onderzoek\",\n        \"text\": \"Aanvullend onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/volledig-onderzoek\",\n        \"text\": \"Volledig onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/deelonderzoek-content\",\n        \"text\": \"Deelonderzoek content\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/techniek-onderzoek\",\n        \"text\": \"Techniek onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/quickscan\",\n        \"text\": \"WCAG Quickscan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/app-onderzoek\",\n        \"text\": \"App onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/pdf-onderzoek\",\n        \"text\": \"PDF onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/aanvullend-onderzoek\",\n        \"text\": \"Aanvullend onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/volledig-onderzoek\",\n        \"text\": \"Volledig onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/deelonderzoek-content\",\n        \"text\": \"Deelonderzoek content\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/techniek-onderzoek\",\n        \"text\": \"Techniek onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/quickscan\",\n        \"text\": \"WCAG Quickscan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/app-onderzoek\",\n        \"text\": \"App onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/pdf-onderzoek\",\n        \"text\": \"PDF onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/aanvullend-onderzoek\",\n        \"text\": \"Aanvullend onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/volledig-onderzoek\",\n        \"text\": \"Volledig onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/deelonderzoek-content\",\n        \"text\": \"Deelonderzoek content\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/techniek-onderzoek\",\n        \"text\": \"Techniek onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/quickscan\",\n        \"text\": \"WCAG Quickscan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/app-onderzoek\",\n        \"text\": \"App onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/pdf-onderzoek\",\n        \"text\": \"PDF onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/aanvullend-onderzoek\",\n        \"text\": \"Aanvullend onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/volledig-onderzoek\",\n        \"text\": \"Volledig onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/deelonderzoek-content\",\n        \"text\": \"Deelonderzoek content\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/techniek-onderzoek\",\n        \"text\": \"Techniek onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/quickscan\",\n        \"text\": \"WCAG Quickscan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/app-onderzoek\",\n        \"text\": \"App onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/pdf-onderzoek\",\n        \"text\": \"PDF onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\\/aanvullend-onderzoek\",\n        \"text\": \"Aanvullend onderzoek\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/digitale-toegankelijkheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/overheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/bedrijven\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/leveranciers\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/zo-werk-je-aan-digitale-toegankelijkheid-met-een-topsportmentaliteit-7-praktische-lessen\",\n        \"text\": \"Zo werk je aan digitale toegankelijkheid met een topsportmentaliteit: 7 praktische lessen\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/hoe-klinkt-jouw-website\",\n        \"text\": \"Hoe klinkt jouw website?\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/de-meeste-voorkomende-toegankelijkheidsfouten-bij-cookie-banners\",\n        \"text\": \"Cookiebanners en toegankelijkheid: dit gaat vaak mis\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/goed-kleurcontrast-zorg-dat-je-alles-goed-ziet\",\n        \"text\": \"Goed kleurcontrast: zorg dat je alles goed ziet\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/auditor\",\n        \"text\": \"Cardan Auditor\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\",\n        \"text\": \"Diensten\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\",\n        \"text\": \"Branches\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/de-wcag\",\n        \"text\": \"De WCAG\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\",\n        \"text\": \"Blog\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/nieuwsbrief-digitale-toegankelijkheid\",\n        \"text\": \"Inschrijven nieuwsbrief\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/over-cardan\",\n        \"text\": \"Over Cardan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/onze-mensen\",\n        \"text\": \"Onze mensen\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/vacatures\",\n        \"text\": \"Vacatures\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/sitemap\",\n        \"text\": \"Sitemap\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/toegankelijkheidsverklaring\",\n        \"text\": \"Toegankelijkheidsverklaring\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/beveiligingsverklaring\",\n        \"text\": \"Beveiligingsverklaring\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/privacy\",\n        \"text\": \"Privacyverklaring\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/algemene-voorwaarden\",\n        \"text\": \"Algemene voorwaarden\",\n        \"status\": 403,\n        \"error\": null\n    }\n]",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": true,
                "message": "SSL certificate is valid.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificate issued by Let's Encrypt is valid and will expire in 89 days.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": false,
                "message": "Lighthouse audit completed successfully.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 66%",
                    "numeric_value": "66.0000"
                  },
                  {
                    "name": "Lighthouse accessibility",
                    "key": "lighthouse_accessibility",
                    "value": "Score: 100%",
                    "numeric_value": "100.0000"
                  },
                  {
                    "name": "test_results.lighthouse_seo",
                    "key": "lighthouse_seo",
                    "value": "Score: 100%",
                    "numeric_value": "100.0000"
                  },
                  {
                    "name": "Lighthouse best practices",
                    "key": "lighthouse_best_practices",
                    "value": "Score: 96%",
                    "numeric_value": "96.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": []
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": false,
                "message": "No skip links found.",
                "findings": [
                  {
                    "name": "No skip links",
                    "key": "no_skip_links",
                    "value": "No skip links were found. Consider adding skip links to improve accessibility for keyboard users.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": false,
                "message": "No HTTPS redirect detected.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "The website does not redirect HTTP to HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "Missing required security headers.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "The following security headers are missing: Content-Security-Policy, X-Frame-Options, X-XSS-Protection",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": true,
                "message": "Sitemap.xml is valid and properly configured.",
                "findings": [
                  {
                    "name": "Sitemap valid",
                    "key": "sitemap_valid",
                    "value": "The sitemap.xml file is valid, accessible, and contains properly formatted URLs.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": true,
                "message": "robots.txt is valid and properly configured.",
                "findings": [
                  {
                    "name": "Robots valid",
                    "key": "robots_valid",
                    "value": "The robots.txt file is valid and contains all required directives.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": []
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jz0jfqc7x1pdb376yz5dcrs7.png",
    "created_at": "2025-06-30T14:05:04.000000Z",
    "updated_at": "2025-06-30T14:05:59.000000Z"
  },
  {
    "id": "01jz0jzwpry7v0f71hm4z640f5",
    "url": "https://www.bdmuseum.nl/",
    "name": "Danny",
    "email": "danny@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": true,
                "message": "No accessibility violations found",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "The page passed all accessibility tests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": false,
                "message": "Found images without proper accessibility attributes.",
                "findings": [
                  {
                    "name": "Inaccessible images",
                    "key": "inaccessible_images",
                    "value": "Found 14 images without proper accessibility attributes:\n\n\ndata:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNjAiIGhlaWdodD0iMjgwIiB2aWV3Qm94PSIwIDAgMzYwIDI4MCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=\ndata:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNjAiIGhlaWdodD0iMjgwIiB2aWV3Qm94PSIwIDAgMzYwIDI4MCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=\ndata:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNjAiIGhlaWdodD0iMjgwIiB2aWV3Qm94PSIwIDAgMzYwIDI4MCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=\ndata:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNjAiIGhlaWdodD0iMjgwIiB2aWV3Qm94PSIwIDAgMzYwIDI4MCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=\ndata:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNjAiIGhlaWdodD0iMjgwIiB2aWV3Qm94PSIwIDAgMzYwIDI4MCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=\ndata:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNjAiIGhlaWdodD0iMjgwIiB2aWV3Qm94PSIwIDAgMzYwIDI4MCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=\ndata:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNjAiIGhlaWdodD0iMjgwIiB2aWV3Qm94PSIwIDAgMzYwIDI4MCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=\ndata:image/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=\ndata:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOTciIGhlaWdodD0iMTAwIiB2aWV3Qm94PSIwIDAgMjk3IDEwMCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=\ndata:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMTIiIGhlaWdodD0iNzIiIHZpZXdCb3g9IjAgMCAyMTIgNzIiPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWxsOiNjZmQ0ZGI7ZmlsbC1vcGFjaXR5OiAwLjE7Ii8+PC9zdmc+\ndata:image/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=\ndata:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMTIiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCAyMTIgODgiPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWxsOiNjZmQ0ZGI7ZmlsbC1vcGFjaXR5OiAwLjE7Ii8+PC9zdmc+\n\nEach image must have either an alt text or be marked as decorative (aria-hidden='true' or role='presentation').",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": false,
                "message": "ARIA accessibility issues found.",
                "findings": [
                  {
                    "name": "Missing landmarks",
                    "key": "missing_landmarks",
                    "value": "Missing essential landmarks: No main landmark found (use <main> element or role=\"main\")",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": false,
                "message": "Focus management issues found.",
                "findings": [
                  {
                    "name": "Hidden focusable elements",
                    "key": "hidden_focusable_elements",
                    "value": "Hidden elements that are still focusable: Hidden element <a> \"Best Wordpress Popup...\" is still focusable",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": false,
                "message": "Form accessibility issues found.",
                "findings": [
                  {
                    "name": "test_results.unlabeled_controls",
                    "key": "unlabeled_controls",
                    "value": "Unlabeled form controls found: text field 's'",
                    "numeric_value": null
                  },
                  {
                    "name": "test_results.unlabeled_controls",
                    "key": "unlabeled_controls",
                    "value": "Unlabeled form controls found: email field 'EMAIL', text field 'b_656eb6ec8fb344818dcc5c6a2_8a5c987ef4'",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": true,
                "message": "All lists have proper structure.",
                "findings": [
                  {
                    "name": "Lists structure valid",
                    "key": "lists_structure_valid",
                    "value": "All 7 lists have proper semantic structure.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "Sensitive files are publicly accessible.",
                "findings": [
                  {
                    "name": "Sensitive file exposed",
                    "key": "sensitive_file_exposed",
                    "value": "The following sensitive files are publicly accessible: config.php, database.yml, composer.json, package.json, .htaccess, web.config",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": true,
                "message": "The meta description is valid.",
                "findings": [
                  {
                    "name": "test_results.meta_description_valid",
                    "key": "meta_description_valid",
                    "value": "The meta description is present and has a valid length of 95 characters.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "The title is valid.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "The title is present and has a valid length of 41 characters. Title content: \"Belasting &amp; Douane Museum | Rotterdam\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "Robots meta tag is valid.",
                "findings": [
                  {
                    "name": "Valid robots",
                    "key": "valid_robots",
                    "value": "The robots meta tag is present and valid with content: \"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": true,
                "message": "Page has all required Open Graph tags",
                "findings": [
                  {
                    "name": "test_results.og_tags_valid",
                    "key": "og_tags_valid",
                    "value": "All required Open Graph tags are present and have content: og:title, og:description, og:url, og:image",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": false,
                "message": "Multiple H1 headings found on the page.",
                "findings": [
                  {
                    "name": "Multiple H1 elements",
                    "key": "h1_multiple",
                    "value": "Found 9 H1 tags on the page. There should be exactly one H1 tag.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "The lang attribute is valid.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "The lang attribute is present and has a valid value: 'nl-NL'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Found broken internal links.",
                "findings": [
                  {
                    "name": "Broken links",
                    "key": "broken_links",
                    "value": "Found 3 broken internal links: [\n    {\n        \"url\": \"https:\\/\\/www.bdmuseum.nl\\/bezoek\\/rondleidingen-reserveringen\\/\",\n        \"text\": \"Rondleidingen &#038; reserveringen\",\n        \"status\": null,\n        \"error\": \"cURL error 28: Operation timed out after 5000 milliseconds with 0 bytes received (see https:\\/\\/curl.haxx.se\\/libcurl\\/c\\/libcurl-errors.html) for https:\\/\\/www.bdmuseum.nl\\/bezoek\\/rondleidingen-reserveringen\\/\"\n    },\n    {\n        \"url\": \"https:\\/\\/www.bdmuseum.nl\\/disclaimer\\/\",\n        \"text\": \"Disclaimer\",\n        \"status\": null,\n        \"error\": \"cURL error 28: Failed to connect to www.bdmuseum.nl port 443 after 2708 ms: Connection timed out (see https:\\/\\/curl.haxx.se\\/libcurl\\/c\\/libcurl-errors.html) for https:\\/\\/www.bdmuseum.nl\\/disclaimer\\/\"\n    },\n    {\n        \"url\": \"https:\\/\\/www.bdmuseum.nl\\/museum\\/over-het-museum\\/privacy\\/\",\n        \"text\": \"Privacy Statement\",\n        \"status\": null,\n        \"error\": \"cURL error 28: Failed to connect to www.bdmuseum.nl port 443 after 2709 ms: Connection timed out (see https:\\/\\/curl.haxx.se\\/libcurl\\/c\\/libcurl-errors.html) for https:\\/\\/www.bdmuseum.nl\\/museum\\/over-het-museum\\/privacy\\/\"\n    }\n]",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": true,
                "message": "SSL certificate is valid.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificate issued by Let's Encrypt is valid and will expire in 41 days.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": false,
                "message": "Lighthouse audit completed successfully.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 56%",
                    "numeric_value": "56.0000"
                  },
                  {
                    "name": "Lighthouse accessibility",
                    "key": "lighthouse_accessibility",
                    "value": "Score: 73%",
                    "numeric_value": "73.0000"
                  },
                  {
                    "name": "test_results.lighthouse_seo",
                    "key": "lighthouse_seo",
                    "value": "Score: 92%",
                    "numeric_value": "92.0000"
                  },
                  {
                    "name": "Lighthouse best practices",
                    "key": "lighthouse_best_practices",
                    "value": "Score: 96%",
                    "numeric_value": "96.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": []
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": false,
                "message": "No internal links found.",
                "findings": [
                  {
                    "name": "No internal links",
                    "key": "no_internal_links",
                    "value": "No internal links (href starting with #) were found on the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": false,
                "message": "No HTTPS redirect detected.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "The website does not redirect HTTP to HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "Missing required security headers.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "The following security headers are missing: Content-Security-Policy, X-Frame-Options, X-XSS-Protection, Strict-Transport-Security",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": true,
                "message": "Sitemap.xml is valid and properly configured.",
                "findings": [
                  {
                    "name": "Sitemap valid",
                    "key": "sitemap_valid",
                    "value": "The sitemap.xml file is valid, accessible, and contains properly formatted URLs.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": true,
                "message": "robots.txt is valid and properly configured.",
                "findings": [
                  {
                    "name": "Robots valid",
                    "key": "robots_valid",
                    "value": "The robots.txt file is valid and contains all required directives.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": []
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/",
    "created_at": "2025-06-30T14:13:54.000000Z",
    "updated_at": "2025-06-30T14:14:29.000000Z"
  },
  {
    "id": "01jz2mxe7q7826thge6dp6wy6q",
    "url": "https://nqode.io",
    "name": "Danny",
    "email": "danny@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": true,
                "message": "No accessibility violations found",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "The page passed all accessibility tests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": true,
                "message": "All images have proper accessibility attributes.",
                "findings": [
                  {
                    "name": "Accessible images",
                    "key": "accessible_images",
                    "value": "All 192 images have proper accessibility attributes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": true,
                "message": "All ARIA attributes are valid.",
                "findings": [
                  {
                    "name": "ARIA valid",
                    "key": "aria_valid",
                    "value": "All 2 elements with ARIA attributes are properly configured.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "Focus management is properly implemented.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "All 89 focusable elements have proper focus management.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": false,
                "message": "Form accessibility issues found.",
                "findings": [
                  {
                    "name": "test_results.unlabeled_controls",
                    "key": "unlabeled_controls",
                    "value": "Unlabeled form controls found: file field 'multilinefile-3[]', file field 'multilinefile-3[]', checkbox field 'acceptance-244'",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": false,
                "message": "List structure issues found.",
                "findings": [
                  {
                    "name": "Empty lists",
                    "key": "empty_lists",
                    "value": "Empty lists: Empty list: <ul>",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "All sensitive files are properly secured.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "All sensitive files are properly secured with appropriate HTTP status codes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": true,
                "message": "The meta description is valid.",
                "findings": [
                  {
                    "name": "test_results.meta_description_valid",
                    "key": "meta_description_valid",
                    "value": "The meta description is present and has a valid length of 113 characters.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "The title is valid.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "The title is present and has a valid length of 41 characters. Title content: \"nQode | Building Better Software Products\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "Robots meta tag is valid.",
                "findings": [
                  {
                    "name": "Valid robots",
                    "key": "valid_robots",
                    "value": "The robots meta tag is present and valid with content: \"follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": true,
                "message": "Page has all required Open Graph tags",
                "findings": [
                  {
                    "name": "test_results.og_tags_valid",
                    "key": "og_tags_valid",
                    "value": "All required Open Graph tags are present and have content: og:title, og:description, og:url, og:image",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": true,
                "message": "Heading structure is valid.",
                "findings": [
                  {
                    "name": "Heading structure valid",
                    "key": "heading_structure_valid",
                    "value": "The page has a valid heading structure with proper hierarchy.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "The lang attribute is valid.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "The lang attribute is present and has a valid value: 'en'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All internal links are valid.",
                "findings": [
                  {
                    "name": "Links valid",
                    "key": "links_valid",
                    "value": "All internal links are working correctly.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": true,
                "message": "SSL certificate is valid.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificate issued by Let's Encrypt is valid and will expire in 76 days.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": false,
                "message": "Lighthouse audit completed successfully.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 77%",
                    "numeric_value": "77.0000"
                  },
                  {
                    "name": "Lighthouse accessibility",
                    "key": "lighthouse_accessibility",
                    "value": "Score: 100%",
                    "numeric_value": "100.0000"
                  },
                  {
                    "name": "test_results.lighthouse_seo",
                    "key": "lighthouse_seo",
                    "value": "Score: 100%",
                    "numeric_value": "100.0000"
                  },
                  {
                    "name": "Lighthouse best practices",
                    "key": "lighthouse_best_practices",
                    "value": "Score: 100%",
                    "numeric_value": "100.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": []
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": false,
                "message": "No skip links found.",
                "findings": [
                  {
                    "name": "No skip links",
                    "key": "no_skip_links",
                    "value": "No skip links were found. Consider adding skip links to improve accessibility for keyboard users.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": false,
                "message": "No HTTPS redirect detected.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "The website does not redirect HTTP to HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "Missing required security headers.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "The following security headers are missing: Content-Security-Policy, X-Frame-Options, X-XSS-Protection, Strict-Transport-Security",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": true,
                "message": "Sitemap.xml is valid and properly configured.",
                "findings": [
                  {
                    "name": "Sitemap valid",
                    "key": "sitemap_valid",
                    "value": "The sitemap.xml file is valid, accessible, and contains properly formatted URLs.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": true,
                "message": "robots.txt is valid and properly configured.",
                "findings": [
                  {
                    "name": "Robots valid",
                    "key": "robots_valid",
                    "value": "The robots.txt file is valid and contains all required directives.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": []
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jz2mxe7q7826thge6dp6wy6q.png",
    "created_at": "2025-07-01T09:26:00.000000Z",
    "updated_at": "2025-07-01T09:27:02.000000Z"
  },
  {
    "id": "01jz2pfct6vtephks8r16fqmn9",
    "url": "https://nqode.io",
    "name": "Danny",
    "email": "danny@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": false,
                "message": "Lighthouse audit completed successfully.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 74%",
                    "numeric_value": "74.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "No resource hints found.",
                "findings": [
                  {
                    "name": "No resource hints",
                    "key": "no_resource_hints",
                    "value": "No resource hints (preload, prefetch, dns-prefetch) were found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": true,
                "message": "All images have proper accessibility attributes.",
                "findings": [
                  {
                    "name": "Accessible images",
                    "key": "accessible_images",
                    "value": "All 192 images have proper accessibility attributes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": false,
                "message": "No skip links found.",
                "findings": [
                  {
                    "name": "No skip links",
                    "key": "no_skip_links",
                    "value": "No skip links were found. Consider adding skip links to improve accessibility for keyboard users.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All ARIA attributes are valid.",
                "findings": [
                  {
                    "name": "ARIA valid",
                    "key": "aria_valid",
                    "value": "All 2 elements with ARIA attributes are properly configured.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": true,
                "message": "Focus management is properly implemented.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "All 89 focusable elements have proper focus management.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": false,
                "message": "Form accessibility issues found.",
                "findings": [
                  {
                    "name": "test_results.unlabeled_controls",
                    "key": "unlabeled_controls",
                    "value": "Unlabeled form controls found: file field 'multilinefile-3[]', file field 'multilinefile-3[]', checkbox field 'acceptance-244'",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": false,
                "message": "List structure issues found.",
                "findings": [
                  {
                    "name": "Empty lists",
                    "key": "empty_lists",
                    "value": "Empty lists: Empty list: <ul>",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": true,
                "message": "No accessibility violations found",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "The page passed all accessibility tests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": true,
                "message": "The meta description is valid.",
                "findings": [
                  {
                    "name": "test_results.meta_description_valid",
                    "key": "meta_description_valid",
                    "value": "The meta description is present and has a valid length of 113 characters.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "The title is valid.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "The title is present and has a valid length of 41 characters. Title content: \"nQode | Building Better Software Products\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "Robots meta tag is valid.",
                "findings": [
                  {
                    "name": "Valid robots",
                    "key": "valid_robots",
                    "value": "The robots meta tag is present and valid with content: \"follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": true,
                "message": "Page has all required Open Graph tags",
                "findings": [
                  {
                    "name": "test_results.og_tags_valid",
                    "key": "og_tags_valid",
                    "value": "All required Open Graph tags are present and have content: og:title, og:description, og:url, og:image",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": true,
                "message": "Heading structure is valid.",
                "findings": [
                  {
                    "name": "Heading structure valid",
                    "key": "heading_structure_valid",
                    "value": "The page has a valid heading structure with proper hierarchy.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "The lang attribute is valid.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "The lang attribute is present and has a valid value: 'en'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All internal links are valid.",
                "findings": [
                  {
                    "name": "Links valid",
                    "key": "links_valid",
                    "value": "All internal links are working correctly.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All images are valid.",
                "findings": [
                  {
                    "name": "Images valid",
                    "key": "images_valid",
                    "value": "All images on the page are accessible and have valid content types.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": true,
                "message": "Sitemap.xml is valid and properly configured.",
                "findings": [
                  {
                    "name": "Sitemap valid",
                    "key": "sitemap_valid",
                    "value": "The sitemap.xml file is valid, accessible, and contains properly formatted URLs.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": true,
                "message": "robots.txt is valid and properly configured.",
                "findings": [
                  {
                    "name": "Robots valid",
                    "key": "robots_valid",
                    "value": "The robots.txt file is valid and contains all required directives.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": true,
                "message": "All sensitive files are properly secured.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "All sensitive files are properly secured with appropriate HTTP status codes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "No HTTPS redirect detected.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "The website does not redirect HTTP to HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": false,
                "message": "Missing required security headers.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "The following security headers are missing: Content-Security-Policy, X-Frame-Options, X-XSS-Protection, Strict-Transport-Security",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": true,
                "message": "SSL certificate is valid.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificate issued by Let's Encrypt is valid and will expire in 76 days.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jz2pfct6vtephks8r16fqmn9.png",
    "created_at": "2025-07-01T09:53:17.000000Z",
    "updated_at": "2025-07-01T09:53:20.000000Z"
  },
  {
    "id": "01jz2q93w4w2a3abg8k7v1b58f",
    "url": "https://nqode.io",
    "name": "Danny",
    "email": "danny@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": false,
                "message": "Lighthouse audit completed successfully.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 77%",
                    "numeric_value": "77.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "No resource hints found.",
                "findings": [
                  {
                    "name": "No resource hints",
                    "key": "no_resource_hints",
                    "value": "No resource hints (preload, prefetch, dns-prefetch) were found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": true,
                "message": "All images have proper accessibility attributes.",
                "findings": [
                  {
                    "name": "Accessible images",
                    "key": "accessible_images",
                    "value": "All 192 images have proper accessibility attributes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": false,
                "message": "No skip links found.",
                "findings": [
                  {
                    "name": "No skip links",
                    "key": "no_skip_links",
                    "value": "No skip links were found. Consider adding skip links to improve accessibility for keyboard users.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All ARIA attributes are valid.",
                "findings": [
                  {
                    "name": "ARIA valid",
                    "key": "aria_valid",
                    "value": "All 2 elements with ARIA attributes are properly configured.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": true,
                "message": "Focus management is properly implemented.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "All 89 focusable elements have proper focus management.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": false,
                "message": "Form accessibility issues found.",
                "findings": [
                  {
                    "name": "test_results.unlabeled_controls",
                    "key": "unlabeled_controls",
                    "value": "Unlabeled form controls found: file field 'multilinefile-3[]', file field 'multilinefile-3[]', checkbox field 'acceptance-244'",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": false,
                "message": "List structure issues found.",
                "findings": [
                  {
                    "name": "Empty lists",
                    "key": "empty_lists",
                    "value": "Empty lists: Empty list: <ul>",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": true,
                "message": "No accessibility violations found",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "The page passed all accessibility tests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": true,
                "message": "The meta description is valid.",
                "findings": [
                  {
                    "name": "test_results.meta_description_valid",
                    "key": "meta_description_valid",
                    "value": "The meta description is present and has a valid length of 113 characters.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "The title is valid.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "The title is present and has a valid length of 41 characters. Title content: \"nQode | Building Better Software Products\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "Robots meta tag is valid.",
                "findings": [
                  {
                    "name": "Valid robots",
                    "key": "valid_robots",
                    "value": "The robots meta tag is present and valid with content: \"follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": true,
                "message": "Page has all required Open Graph tags",
                "findings": [
                  {
                    "name": "test_results.og_tags_valid",
                    "key": "og_tags_valid",
                    "value": "All required Open Graph tags are present and have content: og:title, og:description, og:url, og:image",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": true,
                "message": "Heading structure is valid.",
                "findings": [
                  {
                    "name": "Heading structure valid",
                    "key": "heading_structure_valid",
                    "value": "The page has a valid heading structure with proper hierarchy.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "The lang attribute is valid.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "The lang attribute is present and has a valid value: 'en'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All internal links are valid.",
                "findings": [
                  {
                    "name": "Links valid",
                    "key": "links_valid",
                    "value": "All internal links are working correctly.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All images are valid.",
                "findings": [
                  {
                    "name": "Images valid",
                    "key": "images_valid",
                    "value": "All images on the page are accessible and have valid content types.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": true,
                "message": "Sitemap.xml is valid and properly configured.",
                "findings": [
                  {
                    "name": "Sitemap valid",
                    "key": "sitemap_valid",
                    "value": "The sitemap.xml file is valid, accessible, and contains properly formatted URLs.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": true,
                "message": "robots.txt is valid and properly configured.",
                "findings": [
                  {
                    "name": "Robots valid",
                    "key": "robots_valid",
                    "value": "The robots.txt file is valid and contains all required directives.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": true,
                "message": "All sensitive files are properly secured.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "All sensitive files are properly secured with appropriate HTTP status codes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "No HTTPS redirect detected.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "The website does not redirect HTTP to HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": false,
                "message": "Missing required security headers.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "The following security headers are missing: Content-Security-Policy, X-Frame-Options, X-XSS-Protection, Strict-Transport-Security",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": true,
                "message": "SSL certificate is valid.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificate issued by Let's Encrypt is valid and will expire in 76 days.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jz2q93w4w2a3abg8k7v1b58f.png",
    "created_at": "2025-07-01T10:07:19.000000Z",
    "updated_at": "2025-07-01T10:08:08.000000Z"
  },
  {
    "id": "01jz2zz096n3f0ybt8cqrnxd3f",
    "url": "https://www.goestingtilburg.nl",
    "name": "Martijn",
    "email": "martijn@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": true,
                "message": "Lighthouse audit completed successfully.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 96%",
                    "numeric_value": "96.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "Render-blocking resources detected.",
                "findings": [
                  {
                    "name": "test_results.render_blocking_resources",
                    "key": "render_blocking_resources",
                    "value": "Found 3 render-blocking resources. Consider using async/defer for scripts and preload for critical CSS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": true,
                "message": "All images have proper accessibility attributes.",
                "findings": [
                  {
                    "name": "Accessible images",
                    "key": "accessible_images",
                    "value": "All 4 images have proper accessibility attributes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": false,
                "message": "No internal links found.",
                "findings": [
                  {
                    "name": "No internal links",
                    "key": "no_internal_links",
                    "value": "No internal links (href starting with #) were found on the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All ARIA attributes are valid.",
                "findings": [
                  {
                    "name": "ARIA valid",
                    "key": "aria_valid",
                    "value": "All 2 elements with ARIA attributes are properly configured.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": true,
                "message": "Focus management is properly implemented.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "All 5 focusable elements have proper focus management.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": true,
                "message": "No forms found on the page.",
                "findings": [
                  {
                    "name": "No forms",
                    "key": "no_forms",
                    "value": "The page does not contain any forms.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All lists have proper structure.",
                "findings": [
                  {
                    "name": "Lists structure valid",
                    "key": "lists_structure_valid",
                    "value": "All 3 lists have proper semantic structure.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1, viewport-fit=cover",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": true,
                "message": "No accessibility violations found",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "The page passed all accessibility tests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": true,
                "message": "The meta description is valid.",
                "findings": [
                  {
                    "name": "test_results.meta_description_valid",
                    "key": "meta_description_valid",
                    "value": "The meta description is present and has a valid length of 75 characters.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "The title is valid.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "The title is present and has a valid length of 16 characters. Title content: \"Goesting Tilburg\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "Robots meta tag is valid.",
                "findings": [
                  {
                    "name": "Valid robots",
                    "key": "valid_robots",
                    "value": "The robots meta tag is present and valid with content: \"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": false,
                "message": "Missing tags: og:title, og:description",
                "findings": [
                  {
                    "name": "OG tags missing",
                    "key": "og_tags_missing",
                    "value": "The following required Open Graph tags are missing: og:title, og:description",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": true,
                "message": "Heading structure is valid.",
                "findings": [
                  {
                    "name": "Heading structure valid",
                    "key": "heading_structure_valid",
                    "value": "The page has a valid heading structure with proper hierarchy.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "The lang attribute is valid.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "The lang attribute is present and has a valid value: 'nl'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All internal links are valid.",
                "findings": [
                  {
                    "name": "Links valid",
                    "key": "links_valid",
                    "value": "All internal links are working correctly.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Found broken images on the page.",
                "findings": [
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.goestingtilburg.nl/_vercel/image?url=%2Fimg%2FPHOTO-2025-06-05-19-32-03.jpg&amp;w=320&amp;q=75, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.goestingtilburg.nl/_vercel/image?url=%2Fimg%2F250408_GOESTING_HR_022.jpg&amp;w=320&amp;q=75, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.goestingtilburg.nl/_vercel/image?url=%2Fimg%2F250408_GOESTING_HR_034_square.jpg&amp;w=320&amp;q=75, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.goestingtilburg.nl/_vercel/image?url=%2Fimg%2F250408_GOESTING_HR_031.jpg&amp;w=320&amp;q=75, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": false,
                "message": "Sitemap.xml not found or not accessible.",
                "findings": [
                  {
                    "name": "Sitemap not found",
                    "key": "sitemap_not_found",
                    "value": "The sitemap.xml file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": false,
                "message": "robots.txt not found or not accessible.",
                "findings": [
                  {
                    "name": "Robots not found",
                    "key": "robots_not_found",
                    "value": "The robots.txt file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": true,
                "message": "All sensitive files are properly secured.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "All sensitive files are properly secured with appropriate HTTP status codes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "No HTTPS redirect detected.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "The website does not redirect HTTP to HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": false,
                "message": "Missing required security headers.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "The following security headers are missing: Content-Security-Policy, X-Frame-Options, X-XSS-Protection, Strict-Transport-Security",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": true,
                "message": "SSL certificate is valid.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificate issued by Let's Encrypt is valid and will expire in 70 days.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jz2zz096n3f0ybt8cqrnxd3f.png",
    "created_at": "2025-07-01T12:39:05.000000Z",
    "updated_at": "2025-07-01T12:39:35.000000Z"
  },
  {
    "id": "01jz30vzvp7qx6sjmk0x7pgzw5",
    "url": "https://www.clearfotografie.nl",
    "name": "Martijn",
    "email": "martijn@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": true,
                "message": "Lighthouse audit completed successfully.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 100%",
                    "numeric_value": "100.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "Render-blocking resources detected.",
                "findings": [
                  {
                    "name": "test_results.render_blocking_resources",
                    "key": "render_blocking_resources",
                    "value": "Found 3 render-blocking resources. Consider using async/defer for scripts and preload for critical CSS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": true,
                "message": "All images have proper accessibility attributes.",
                "findings": [
                  {
                    "name": "Accessible images",
                    "key": "accessible_images",
                    "value": "All 6 images have proper accessibility attributes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": false,
                "message": "No internal links found.",
                "findings": [
                  {
                    "name": "No internal links",
                    "key": "no_internal_links",
                    "value": "No internal links (href starting with #) were found on the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All ARIA attributes are valid.",
                "findings": [
                  {
                    "name": "ARIA valid",
                    "key": "aria_valid",
                    "value": "All 2 elements with ARIA attributes are properly configured.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": true,
                "message": "Focus management is properly implemented.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "All 9 focusable elements have proper focus management.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": true,
                "message": "No forms found on the page.",
                "findings": [
                  {
                    "name": "No forms",
                    "key": "no_forms",
                    "value": "The page does not contain any forms.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All lists have proper structure.",
                "findings": [
                  {
                    "name": "Lists structure valid",
                    "key": "lists_structure_valid",
                    "value": "All 2 lists have proper semantic structure.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1, viewport-fit=cover",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": true,
                "message": "No accessibility violations found",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "The page passed all accessibility tests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": false,
                "message": "The meta description is too long.",
                "findings": [
                  {
                    "name": "test_results.meta_description_too_long",
                    "key": "meta_description_too_long",
                    "value": "The meta description is 165 characters long, which is over the recommended limit of 160 characters.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "The title is valid.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "The title is present and has a valid length of 16 characters. Title content: \"Clear Fotografie\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "Robots meta tag is valid.",
                "findings": [
                  {
                    "name": "Valid robots",
                    "key": "valid_robots",
                    "value": "The robots meta tag is present and valid with content: \"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": false,
                "message": "Missing tags: og:title, og:description",
                "findings": [
                  {
                    "name": "OG tags missing",
                    "key": "og_tags_missing",
                    "value": "The following required Open Graph tags are missing: og:title, og:description",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": true,
                "message": "Heading structure is valid.",
                "findings": [
                  {
                    "name": "Heading structure valid",
                    "key": "heading_structure_valid",
                    "value": "The page has a valid heading structure with proper hierarchy.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "The lang attribute is valid.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "The lang attribute is present and has a valid value: 'nl'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All internal links are valid.",
                "findings": [
                  {
                    "name": "Links valid",
                    "key": "links_valid",
                    "value": "All internal links are working correctly.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All images are valid.",
                "findings": [
                  {
                    "name": "Images valid",
                    "key": "images_valid",
                    "value": "All images on the page are accessible and have valid content types.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": true,
                "message": "Sitemap.xml is valid and properly configured.",
                "findings": [
                  {
                    "name": "Sitemap valid",
                    "key": "sitemap_valid",
                    "value": "The sitemap.xml file is valid, accessible, and contains properly formatted URLs.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": true,
                "message": "robots.txt is valid and properly configured.",
                "findings": [
                  {
                    "name": "Robots valid",
                    "key": "robots_valid",
                    "value": "The robots.txt file is valid and contains all required directives.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": true,
                "message": "All sensitive files are properly secured.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "All sensitive files are properly secured with appropriate HTTP status codes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "No HTTPS redirect detected.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "The website does not redirect HTTP to HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": false,
                "message": "Missing required security headers.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "The following security headers are missing: Content-Security-Policy, X-Frame-Options, X-XSS-Protection",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": true,
                "message": "SSL certificate is valid.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificate issued by Let's Encrypt is valid and will expire in 70 days.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jz30vzvp7qx6sjmk0x7pgzw5.png",
    "created_at": "2025-07-01T12:54:55.000000Z",
    "updated_at": "2025-07-01T12:55:37.000000Z"
  },
  {
    "id": "01jz56abzc04948gqs537m5b8w",
    "url": "https://www.krafters.nl",
    "name": "Martijn Halekor",
    "email": "martijn@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": false,
                "message": "Lighthouse audit completed successfully.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 79%",
                    "numeric_value": "79.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "Render-blocking resources detected.",
                "findings": [
                  {
                    "name": "test_results.render_blocking_resources",
                    "key": "render_blocking_resources",
                    "value": "Found 5 render-blocking resources. Consider using async/defer for scripts and preload for critical CSS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": true,
                "message": "All images have proper accessibility attributes.",
                "findings": [
                  {
                    "name": "Accessible images",
                    "key": "accessible_images",
                    "value": "All 3 images have proper accessibility attributes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": false,
                "message": "No skip links found.",
                "findings": [
                  {
                    "name": "No skip links",
                    "key": "no_skip_links",
                    "value": "No skip links were found. Consider adding skip links to improve accessibility for keyboard users.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All ARIA attributes are valid.",
                "findings": [
                  {
                    "name": "ARIA valid",
                    "key": "aria_valid",
                    "value": "All 7 elements with ARIA attributes are properly configured.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": true,
                "message": "Focus management is properly implemented.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "All 27 focusable elements have proper focus management.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": true,
                "message": "No forms found on the page.",
                "findings": [
                  {
                    "name": "No forms",
                    "key": "no_forms",
                    "value": "The page does not contain any forms.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All lists have proper structure.",
                "findings": [
                  {
                    "name": "Lists structure valid",
                    "key": "lists_structure_valid",
                    "value": "All 7 lists have proper semantic structure.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": true,
                "message": "No accessibility violations found",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "The page passed all accessibility tests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": true,
                "message": "The meta description is valid.",
                "findings": [
                  {
                    "name": "test_results.meta_description_valid",
                    "key": "meta_description_valid",
                    "value": "The meta description is present and has a valid length of 103 characters.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "The title is valid.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "The title is present and has a valid length of 15 characters. Title content: \"Home | Krafters\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "Robots meta tag is valid.",
                "findings": [
                  {
                    "name": "Valid robots",
                    "key": "valid_robots",
                    "value": "The robots meta tag is present and valid with content: \"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": false,
                "message": "Missing tags: og:title, og:description, og:url",
                "findings": [
                  {
                    "name": "OG tags missing",
                    "key": "og_tags_missing",
                    "value": "The following required Open Graph tags are missing: og:title, og:description, og:url",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": true,
                "message": "Heading structure is valid.",
                "findings": [
                  {
                    "name": "Heading structure valid",
                    "key": "heading_structure_valid",
                    "value": "The page has a valid heading structure with proper hierarchy.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "The lang attribute is valid.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "The lang attribute is present and has a valid value: 'nl'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Found broken internal links.",
                "findings": [
                  {
                    "name": "Broken links",
                    "key": "broken_links",
                    "value": "Found 3 broken internal links: [\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/privacy\",\n        \"text\": \"Privacy\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/algemene-voorwaarden\",\n        \"text\": \"Voorwaarden\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/sitemap\",\n        \"text\": \"Sitemap\",\n        \"status\": 403,\n        \"error\": null\n    }\n]",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Found broken images on the page.",
                "findings": [
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.krafters.nl/_vercel/image?url=https:%2F%2Fcms.krafters.nl%2Fassets%2Ftestimonials%2Fromy-nijssen.jpg&amp;w=320&amp;q=50, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.krafters.nl/_vercel/image?url=https:%2F%2Fcms.krafters.nl%2Fassets%2Fpand%2Fcardan-led.jpg&amp;w=320&amp;q=50, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.krafters.nl/_vercel/image?url=https:%2F%2Fcms.krafters.nl%2Fassets%2Fcardan-auditor-results-dark.png&amp;w=320&amp;q=50, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": true,
                "message": "Sitemap.xml is valid and properly configured.",
                "findings": [
                  {
                    "name": "Sitemap valid",
                    "key": "sitemap_valid",
                    "value": "The sitemap.xml file is valid, accessible, and contains properly formatted URLs.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": false,
                "message": "robots.txt not found or not accessible.",
                "findings": [
                  {
                    "name": "Robots not found",
                    "key": "robots_not_found",
                    "value": "The robots.txt file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": true,
                "message": "All sensitive files are properly secured.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "All sensitive files are properly secured with appropriate HTTP status codes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "No HTTPS redirect detected.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "The website does not redirect HTTP to HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": false,
                "message": "Missing required security headers.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "The following security headers are missing: Content-Security-Policy, X-Frame-Options, X-XSS-Protection, Strict-Transport-Security",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": true,
                "message": "SSL certificate is valid.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificate issued by Let's Encrypt is valid and will expire in 59 days.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jz56abzc04948gqs537m5b8w.png",
    "created_at": "2025-07-02T09:08:38.000000Z",
    "updated_at": "2025-07-02T09:09:16.000000Z"
  },
  {
    "id": "01jz57sfta618h9sy1zbbbbt98",
    "url": "https://www.krafters.nl",
    "name": "Martijn Halekor",
    "email": "martijn@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": true,
                "message": "Lighthouse audit completed successfully.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 93%",
                    "numeric_value": "93.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "Render-blocking resources detected.",
                "findings": [
                  {
                    "name": "test_results.render_blocking_resources",
                    "key": "render_blocking_resources",
                    "value": "Found 5 render-blocking resources. Consider using async/defer for scripts and preload for critical CSS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": true,
                "message": "All images have proper accessibility attributes.",
                "findings": [
                  {
                    "name": "Accessible images",
                    "key": "accessible_images",
                    "value": "All 3 images have proper accessibility attributes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": false,
                "message": "No skip links found.",
                "findings": [
                  {
                    "name": "No skip links",
                    "key": "no_skip_links",
                    "value": "No skip links were found. Consider adding skip links to improve accessibility for keyboard users.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All ARIA attributes are valid.",
                "findings": [
                  {
                    "name": "ARIA valid",
                    "key": "aria_valid",
                    "value": "All 7 elements with ARIA attributes are properly configured.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": true,
                "message": "Focus management is properly implemented.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "All 27 focusable elements have proper focus management.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": true,
                "message": "No forms found on the page.",
                "findings": [
                  {
                    "name": "No forms",
                    "key": "no_forms",
                    "value": "The page does not contain any forms.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All lists have proper structure.",
                "findings": [
                  {
                    "name": "Lists structure valid",
                    "key": "lists_structure_valid",
                    "value": "All 7 lists have proper semantic structure.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": true,
                "message": "No accessibility violations found",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "The page passed all accessibility tests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": true,
                "message": "The meta description is valid.",
                "findings": [
                  {
                    "name": "test_results.meta_description_valid",
                    "key": "meta_description_valid",
                    "value": "The meta description is present and has a valid length of 103 characters.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "The title is valid.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "The title is present and has a valid length of 59 characters. Title content: \"Toegankelijke websites en applicaties | Krafters | Krafters\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "Robots meta tag is valid.",
                "findings": [
                  {
                    "name": "Valid robots",
                    "key": "valid_robots",
                    "value": "The robots meta tag is present and valid with content: \"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": true,
                "message": "Page has all required Open Graph tags",
                "findings": [
                  {
                    "name": "test_results.og_tags_valid",
                    "key": "og_tags_valid",
                    "value": "All required Open Graph tags are present and have content: og:title, og:description, og:image, og:url",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": true,
                "message": "Heading structure is valid.",
                "findings": [
                  {
                    "name": "Heading structure valid",
                    "key": "heading_structure_valid",
                    "value": "The page has a valid heading structure with proper hierarchy.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "The lang attribute is valid.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "The lang attribute is present and has a valid value: 'nl'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Found broken internal links.",
                "findings": [
                  {
                    "name": "Broken links",
                    "key": "broken_links",
                    "value": "Found 22 broken internal links: [\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/#main\",\n        \"text\": \"Spring naar hoofdcontent\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/diensten\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/digitale-toegankelijkheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/over-ons\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/european-accessibility-act\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/diensten\\/websites\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/european-accessibility-act\",\n        \"text\": \"European Accessibility Act (EAA)\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/diensten\\/applicaties-saas\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/over-ons\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/\",\n        \"text\": \"Home\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/diensten\",\n        \"text\": \"Diensten\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/webbureau\",\n        \"text\": \"Webbureau\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/digitale-toegankelijkheid\",\n        \"text\": \"Digitale toegankelijkheid\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/over-ons\",\n        \"text\": \"Over Krafters\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/contact\",\n        \"text\": \"Contact\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/privacy\",\n        \"text\": \"Privacy\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/algemene-voorwaarden\",\n        \"text\": \"Voorwaarden\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/sitemap\",\n        \"text\": \"Sitemap\",\n        \"status\": 403,\n        \"error\": null\n    }\n]",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Found broken images on the page.",
                "findings": [
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.krafters.nl/_vercel/image?url=https:%2F%2Fcms.krafters.nl%2Fassets%2Ftestimonials%2Fromy-nijssen.jpg&amp;w=320&amp;q=50, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.krafters.nl/_vercel/image?url=https:%2F%2Fcms.krafters.nl%2Fassets%2Fpand%2Fcardan-led.jpg&amp;w=320&amp;q=50, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.krafters.nl/_vercel/image?url=https:%2F%2Fcms.krafters.nl%2Fassets%2Fcardan-auditor-results-dark.png&amp;w=320&amp;q=50, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": true,
                "message": "Sitemap.xml is valid and properly configured.",
                "findings": [
                  {
                    "name": "Sitemap valid",
                    "key": "sitemap_valid",
                    "value": "The sitemap.xml file is valid, accessible, and contains properly formatted URLs.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": false,
                "message": "robots.txt not found or not accessible.",
                "findings": [
                  {
                    "name": "Robots not found",
                    "key": "robots_not_found",
                    "value": "The robots.txt file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": true,
                "message": "All sensitive files are properly secured.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "All sensitive files are properly secured with appropriate HTTP status codes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "No HTTPS redirect detected.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "The website does not redirect HTTP to HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": false,
                "message": "Missing required security headers.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "The following security headers are missing: Content-Security-Policy, X-Frame-Options, X-XSS-Protection, Strict-Transport-Security",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": true,
                "message": "SSL certificate is valid.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificate issued by Let's Encrypt is valid and will expire in 59 days.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jz57sfta618h9sy1zbbbbt98.png",
    "created_at": "2025-07-02T09:34:22.000000Z",
    "updated_at": "2025-07-02T09:34:50.000000Z"
  },
  {
    "id": "01jz59vm98hb6g6epex460vfwt",
    "url": "https://www.krafters.nl",
    "name": "Martijn Halekor",
    "email": "martijn@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": false,
                "message": "Lighthouse audit completed successfully.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 73%",
                    "numeric_value": "73.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "Render-blocking resources detected.",
                "findings": [
                  {
                    "name": "test_results.render_blocking_resources",
                    "key": "render_blocking_resources",
                    "value": "Found 5 render-blocking resources. Consider using async/defer for scripts and preload for critical CSS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": true,
                "message": "All images have proper accessibility attributes.",
                "findings": [
                  {
                    "name": "Accessible images",
                    "key": "accessible_images",
                    "value": "All 3 images have proper accessibility attributes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": false,
                "message": "No skip links found.",
                "findings": [
                  {
                    "name": "No skip links",
                    "key": "no_skip_links",
                    "value": "No skip links were found. Consider adding skip links to improve accessibility for keyboard users.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All ARIA attributes are valid.",
                "findings": [
                  {
                    "name": "ARIA valid",
                    "key": "aria_valid",
                    "value": "All 7 elements with ARIA attributes are properly configured.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": true,
                "message": "Focus management is properly implemented.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "All 27 focusable elements have proper focus management.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": true,
                "message": "No forms found on the page.",
                "findings": [
                  {
                    "name": "No forms",
                    "key": "no_forms",
                    "value": "The page does not contain any forms.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All lists have proper structure.",
                "findings": [
                  {
                    "name": "Lists structure valid",
                    "key": "lists_structure_valid",
                    "value": "All 7 lists have proper semantic structure.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": true,
                "message": "No accessibility violations found",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "The page passed all accessibility tests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": true,
                "message": "The meta description is valid.",
                "findings": [
                  {
                    "name": "test_results.meta_description_valid",
                    "key": "meta_description_valid",
                    "value": "The meta description is present and has a valid length of 103 characters.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "The title is valid.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "The title is present and has a valid length of 59 characters. Title content: \"Toegankelijke websites en applicaties | Krafters | Krafters\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "Robots meta tag is valid.",
                "findings": [
                  {
                    "name": "Valid robots",
                    "key": "valid_robots",
                    "value": "The robots meta tag is present and valid with content: \"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": true,
                "message": "Page has all required Open Graph tags",
                "findings": [
                  {
                    "name": "test_results.og_tags_valid",
                    "key": "og_tags_valid",
                    "value": "All required Open Graph tags are present and have content: og:title, og:description, og:image, og:url",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": true,
                "message": "Heading structure is valid.",
                "findings": [
                  {
                    "name": "Heading structure valid",
                    "key": "heading_structure_valid",
                    "value": "The page has a valid heading structure with proper hierarchy.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "The lang attribute is valid.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "The lang attribute is present and has a valid value: 'nl'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Found broken internal links.",
                "findings": [
                  {
                    "name": "Broken links",
                    "key": "broken_links",
                    "value": "Found 22 broken internal links: [\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/#main\",\n        \"text\": \"Spring naar hoofdcontent\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/diensten\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/digitale-toegankelijkheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/over-ons\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/european-accessibility-act\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/diensten\\/websites\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/european-accessibility-act\",\n        \"text\": \"European Accessibility Act (EAA)\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/diensten\\/applicaties-saas\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/over-ons\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/\",\n        \"text\": \"Home\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/diensten\",\n        \"text\": \"Diensten\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/webbureau\",\n        \"text\": \"Webbureau\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/digitale-toegankelijkheid\",\n        \"text\": \"Digitale toegankelijkheid\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/over-ons\",\n        \"text\": \"Over Krafters\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/contact\",\n        \"text\": \"Contact\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/privacy\",\n        \"text\": \"Privacy\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/algemene-voorwaarden\",\n        \"text\": \"Voorwaarden\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/sitemap\",\n        \"text\": \"Sitemap\",\n        \"status\": 403,\n        \"error\": null\n    }\n]",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Found broken images on the page.",
                "findings": [
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.krafters.nl/_vercel/image?url=https:%2F%2Fcms.krafters.nl%2Fassets%2Ftestimonials%2Fromy-nijssen.jpg&amp;w=320&amp;q=50, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.krafters.nl/_vercel/image?url=https:%2F%2Fcms.krafters.nl%2Fassets%2Fpand%2Fcardan-led.jpg&amp;w=320&amp;q=50, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.krafters.nl/_vercel/image?url=https:%2F%2Fcms.krafters.nl%2Fassets%2Fcardan-auditor-results-dark.png&amp;w=320&amp;q=50, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": true,
                "message": "Sitemap.xml is valid and properly configured.",
                "findings": [
                  {
                    "name": "Sitemap valid",
                    "key": "sitemap_valid",
                    "value": "The sitemap.xml file is valid, accessible, and contains properly formatted URLs.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": false,
                "message": "robots.txt not found or not accessible.",
                "findings": [
                  {
                    "name": "Robots not found",
                    "key": "robots_not_found",
                    "value": "The robots.txt file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": true,
                "message": "All sensitive files are properly secured.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "All sensitive files are properly secured with appropriate HTTP status codes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "No HTTPS redirect detected.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "The website does not redirect HTTP to HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": false,
                "message": "Missing required security headers.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "The following security headers are missing: Content-Security-Policy, X-Frame-Options, X-XSS-Protection, Strict-Transport-Security",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": true,
                "message": "SSL certificate is valid.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificate issued by Let's Encrypt is valid and will expire in 59 days.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jz59vm98hb6g6epex460vfwt.png",
    "created_at": "2025-07-02T10:10:29.000000Z",
    "updated_at": "2025-07-02T10:11:00.000000Z"
  },
  {
    "id": "01jz5cdqzptj0d5dgydfpej9zz",
    "url": "https://www.krafters.nl",
    "name": "Martijn Halekor",
    "email": "martijn@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": false,
                "message": "Lighthouse audit completed successfully.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 84%",
                    "numeric_value": "84.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "Render-blocking resources detected.",
                "findings": [
                  {
                    "name": "test_results.render_blocking_resources",
                    "key": "render_blocking_resources",
                    "value": "Found 5 render-blocking resources. Consider using async/defer for scripts and preload for critical CSS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": true,
                "message": "All images have proper accessibility attributes.",
                "findings": [
                  {
                    "name": "Accessible images",
                    "key": "accessible_images",
                    "value": "All 3 images have proper accessibility attributes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": false,
                "message": "No skip links found.",
                "findings": [
                  {
                    "name": "No skip links",
                    "key": "no_skip_links",
                    "value": "No skip links were found. Consider adding skip links to improve accessibility for keyboard users.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All ARIA attributes are valid.",
                "findings": [
                  {
                    "name": "ARIA valid",
                    "key": "aria_valid",
                    "value": "All 7 elements with ARIA attributes are properly configured.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": true,
                "message": "Focus management is properly implemented.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "All 27 focusable elements have proper focus management.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": true,
                "message": "No forms found on the page.",
                "findings": [
                  {
                    "name": "No forms",
                    "key": "no_forms",
                    "value": "The page does not contain any forms.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All lists have proper structure.",
                "findings": [
                  {
                    "name": "Lists structure valid",
                    "key": "lists_structure_valid",
                    "value": "All 7 lists have proper semantic structure.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": true,
                "message": "No accessibility violations found",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "The page passed all accessibility tests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": true,
                "message": "The meta description is valid.",
                "findings": [
                  {
                    "name": "test_results.meta_description_valid",
                    "key": "meta_description_valid",
                    "value": "The meta description is present and has a valid length of 103 characters.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "The title is valid.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "The title is present and has a valid length of 59 characters. Title content: \"Toegankelijke websites en applicaties | Krafters | Krafters\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "Robots meta tag is valid.",
                "findings": [
                  {
                    "name": "Valid robots",
                    "key": "valid_robots",
                    "value": "The robots meta tag is present and valid with content: \"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": true,
                "message": "Page has all required Open Graph tags",
                "findings": [
                  {
                    "name": "test_results.og_tags_valid",
                    "key": "og_tags_valid",
                    "value": "All required Open Graph tags are present and have content: og:title, og:description, og:image, og:url",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": true,
                "message": "Heading structure is valid.",
                "findings": [
                  {
                    "name": "Heading structure valid",
                    "key": "heading_structure_valid",
                    "value": "The page has a valid heading structure with proper hierarchy.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "The lang attribute is valid.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "The lang attribute is present and has a valid value: 'nl'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Found broken internal links.",
                "findings": [
                  {
                    "name": "Broken links",
                    "key": "broken_links",
                    "value": "Found 22 broken internal links: [\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/#main\",\n        \"text\": \"Spring naar hoofdcontent\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/diensten\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/digitale-toegankelijkheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/over-ons\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/european-accessibility-act\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/diensten\\/websites\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/european-accessibility-act\",\n        \"text\": \"European Accessibility Act (EAA)\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/diensten\\/applicaties-saas\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/over-ons\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/\",\n        \"text\": \"Home\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/diensten\",\n        \"text\": \"Diensten\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/webbureau\",\n        \"text\": \"Webbureau\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/digitale-toegankelijkheid\",\n        \"text\": \"Digitale toegankelijkheid\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/over-ons\",\n        \"text\": \"Over Krafters\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/contact\",\n        \"text\": \"Contact\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/privacy\",\n        \"text\": \"Privacy\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/algemene-voorwaarden\",\n        \"text\": \"Voorwaarden\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.krafters.nl\\/sitemap\",\n        \"text\": \"Sitemap\",\n        \"status\": 403,\n        \"error\": null\n    }\n]",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Found broken images on the page.",
                "findings": [
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.krafters.nl/_vercel/image?url=https:%2F%2Fcms.krafters.nl%2Fassets%2Ftestimonials%2Fromy-nijssen.jpg&amp;w=320&amp;q=50, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.krafters.nl/_vercel/image?url=https:%2F%2Fcms.krafters.nl%2Fassets%2Fpand%2Fcardan-led.jpg&amp;w=320&amp;q=50, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.krafters.nl/_vercel/image?url=https:%2F%2Fcms.krafters.nl%2Fassets%2Fcardan-auditor-results-dark.png&amp;w=320&amp;q=50, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": true,
                "message": "Sitemap.xml is valid and properly configured.",
                "findings": [
                  {
                    "name": "Sitemap valid",
                    "key": "sitemap_valid",
                    "value": "The sitemap.xml file is valid, accessible, and contains properly formatted URLs.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": false,
                "message": "robots.txt not found or not accessible.",
                "findings": [
                  {
                    "name": "Robots not found",
                    "key": "robots_not_found",
                    "value": "The robots.txt file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": true,
                "message": "All sensitive files are properly secured.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "All sensitive files are properly secured with appropriate HTTP status codes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "No HTTPS redirect detected.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "The website does not redirect HTTP to HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": false,
                "message": "Missing required security headers.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "The following security headers are missing: Content-Security-Policy, X-Frame-Options, X-XSS-Protection, Strict-Transport-Security",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": true,
                "message": "SSL certificate is valid.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificate issued by Let's Encrypt is valid and will expire in 59 days.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jz5cdqzptj0d5dgydfpej9zz.png",
    "created_at": "2025-07-02T10:55:20.000000Z",
    "updated_at": "2025-07-02T10:55:50.000000Z"
  },
  {
    "id": "01jz8gt5vqqbeyv8nv82cfynfx",
    "url": "https://www.goestingtilburg.nl",
    "name": "Martijn Halekor",
    "email": "martijn@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": true,
                "message": "Lighthouse audit completed successfully.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 97%",
                    "numeric_value": "97.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "Render-blocking resources detected.",
                "findings": [
                  {
                    "name": "test_results.render_blocking_resources",
                    "key": "render_blocking_resources",
                    "value": "Found 3 render-blocking resources. Consider using async/defer for scripts and preload for critical CSS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": true,
                "message": "All images have proper accessibility attributes.",
                "findings": [
                  {
                    "name": "Accessible images",
                    "key": "accessible_images",
                    "value": "All 4 images have proper accessibility attributes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": false,
                "message": "No skip links found.",
                "findings": [
                  {
                    "name": "No skip links",
                    "key": "no_skip_links",
                    "value": "No skip links were found. Consider adding skip links to improve accessibility for keyboard users.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All ARIA attributes are valid.",
                "findings": [
                  {
                    "name": "ARIA valid",
                    "key": "aria_valid",
                    "value": "All 2 elements with ARIA attributes are properly configured.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": true,
                "message": "Focus management is properly implemented.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "All 6 focusable elements have proper focus management.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": true,
                "message": "No forms found on the page.",
                "findings": [
                  {
                    "name": "No forms",
                    "key": "no_forms",
                    "value": "The page does not contain any forms.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All lists have proper structure.",
                "findings": [
                  {
                    "name": "Lists structure valid",
                    "key": "lists_structure_valid",
                    "value": "All 3 lists have proper semantic structure.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1, viewport-fit=cover",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": true,
                "message": "No accessibility violations found",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "The page passed all accessibility tests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": true,
                "message": "The meta description is valid.",
                "findings": [
                  {
                    "name": "test_results.meta_description_valid",
                    "key": "meta_description_valid",
                    "value": "The meta description is present and has a valid length of 75 characters.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "The title is valid.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "The title is present and has a valid length of 16 characters. Title content: \"Goesting Tilburg\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "Robots meta tag is valid.",
                "findings": [
                  {
                    "name": "Valid robots",
                    "key": "valid_robots",
                    "value": "The robots meta tag is present and valid with content: \"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": true,
                "message": "Page has all required Open Graph tags",
                "findings": [
                  {
                    "name": "test_results.og_tags_valid",
                    "key": "og_tags_valid",
                    "value": "All required Open Graph tags are present and have content: og:title, og:description, og:image, og:url",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": true,
                "message": "Heading structure is valid.",
                "findings": [
                  {
                    "name": "Heading structure valid",
                    "key": "heading_structure_valid",
                    "value": "The page has a valid heading structure with proper hierarchy.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "The lang attribute is valid.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "The lang attribute is present and has a valid value: 'nl'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Found broken internal links.",
                "findings": [
                  {
                    "name": "Broken links",
                    "key": "broken_links",
                    "value": "Found 3 broken internal links: [\n    {\n        \"url\": \"https:\\/\\/www.goestingtilburg.nl\\/\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.goestingtilburg.nl\\/menu\",\n        \"text\": \" Borrelhappen &amp; Dranken \",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.goestingtilburg.nl\\/contact\",\n        \"text\": \"Feestje of borrel?\",\n        \"status\": 403,\n        \"error\": null\n    }\n]",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Found broken images on the page.",
                "findings": [
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.goestingtilburg.nl/_vercel/image?url=%2Fimg%2FPHOTO-2025-06-05-19-32-03.jpg&amp;w=320&amp;q=75, Alt: , Status: 403, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.goestingtilburg.nl/_vercel/image?url=%2Fimg%2F250408_GOESTING_HR_022.jpg&amp;w=320&amp;q=75, Alt: , Status: 403, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.goestingtilburg.nl/_vercel/image?url=%2Fimg%2F250408_GOESTING_HR_034_square.jpg&amp;w=320&amp;q=75, Alt: , Status: 403, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.goestingtilburg.nl/_vercel/image?url=%2Fimg%2F250408_GOESTING_HR_031.jpg&amp;w=320&amp;q=75, Alt: , Status: 403, Error: HTTP request failed",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": false,
                "message": "Sitemap.xml not found or not accessible.",
                "findings": [
                  {
                    "name": "Sitemap not found",
                    "key": "sitemap_not_found",
                    "value": "The sitemap.xml file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": false,
                "message": "robots.txt not found or not accessible.",
                "findings": [
                  {
                    "name": "Robots not found",
                    "key": "robots_not_found",
                    "value": "The robots.txt file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": true,
                "message": "All sensitive files are properly secured.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "All sensitive files are properly secured with appropriate HTTP status codes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "No HTTPS redirect detected.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "The website does not redirect HTTP to HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": false,
                "message": "Missing required security headers.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "The following security headers are missing: Content-Security-Policy, X-Frame-Options, X-XSS-Protection, Strict-Transport-Security",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": true,
                "message": "SSL certificate is valid.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificate issued by Let's Encrypt is valid and will expire in 68 days.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jz8gt5vqqbeyv8nv82cfynfx.png",
    "created_at": "2025-07-03T16:09:45.000000Z",
    "updated_at": "2025-07-03T16:10:25.000000Z"
  },
  {
    "id": "01jzxgw3zabgxpx5jgvxg2fv6t",
    "url": "https://www.cardan.com",
    "name": "Danny",
    "email": "danny@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": false,
                "message": "Lighthouse audit completed successfully.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 64%",
                    "numeric_value": "64.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "Render-blocking resources detected.",
                "findings": [
                  {
                    "name": "test_results.render_blocking_resources",
                    "key": "render_blocking_resources",
                    "value": "Found 7 render-blocking resources. Consider using async/defer for scripts and preload for critical CSS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": true,
                "message": "All images have proper accessibility attributes.",
                "findings": [
                  {
                    "name": "Accessible images",
                    "key": "accessible_images",
                    "value": "All 20 images have proper accessibility attributes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": false,
                "message": "No skip links found.",
                "findings": [
                  {
                    "name": "No skip links",
                    "key": "no_skip_links",
                    "value": "No skip links were found. Consider adding skip links to improve accessibility for keyboard users.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All ARIA attributes are valid.",
                "findings": [
                  {
                    "name": "ARIA valid",
                    "key": "aria_valid",
                    "value": "All 33 elements with ARIA attributes are properly configured.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": true,
                "message": "Focus management is properly implemented.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "All 140 focusable elements have proper focus management.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": false,
                "message": "Form accessibility issues found.",
                "findings": [
                  {
                    "name": "Invalid required indicators",
                    "key": "invalid_required_indicators",
                    "value": "Required fields with poor indicators: Required field 'name' lacks accessible required indicator, Required field 'email' lacks accessible required indicator",
                    "numeric_value": null
                  },
                  {
                    "name": "Invalid required indicators",
                    "key": "invalid_required_indicators",
                    "value": "Required fields with poor indicators: Required field 'message' lacks accessible required indicator, Required field 'first_name' lacks accessible required indicator, Required field 'last_name' lacks accessible required indicator, Required field 'email' lacks accessible required indicator",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "All lists have proper structure.",
                "findings": [
                  {
                    "name": "Lists structure valid",
                    "key": "lists_structure_valid",
                    "value": "All 18 lists have proper semantic structure.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1, viewport-fit=cover",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": true,
                "message": "No accessibility violations found",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "The page passed all accessibility tests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": true,
                "message": "The meta description is valid.",
                "findings": [
                  {
                    "name": "test_results.meta_description_valid",
                    "key": "meta_description_valid",
                    "value": "The meta description is present and has a valid length of 119 characters.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "The title is valid.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "The title is present and has a valid length of 50 characters. Title content: \"Jouw partner in digitale toegankelijkheid | Cardan\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "No robots meta tag found.",
                "findings": [
                  {
                    "name": "No robots tag",
                    "key": "no_robots_tag",
                    "value": "No robots meta tag is present, which is valid as it allows search engines to index the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": true,
                "message": "Page has all required Open Graph tags",
                "findings": [
                  {
                    "name": "test_results.og_tags_valid",
                    "key": "og_tags_valid",
                    "value": "All required Open Graph tags are present and have content: og:title, og:description, og:image, og:url",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": true,
                "message": "Heading structure is valid.",
                "findings": [
                  {
                    "name": "Heading structure valid",
                    "key": "heading_structure_valid",
                    "value": "The page has a valid heading structure with proper hierarchy.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "The lang attribute is valid.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "The lang attribute is present and has a valid value: 'nl'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Found broken internal links.",
                "findings": [
                  {
                    "name": "Broken links",
                    "key": "broken_links",
                    "value": "Found 104 broken internal links: [\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#main\",\n        \"text\": \"Spring naar hoofdcontent\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/auditor\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/trainingen\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/advies-op-maat\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/bewustwording\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/project-management\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/overheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/bedrijven\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/leveranciers\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/digitale-toegankelijkheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/soorten-beperkingen\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/de-wcag\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/wet-digitale-overheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/european-accessibility-act\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/webinars\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/over-cardan\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/onze-mensen\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/vacatures\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/waarmerk-drempelvrij\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/overheid\",\n        \"text\": \"Overheid\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/bedrijven\",\n        \"text\": \"Bedrijven\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/leveranciers\",\n        \"text\": \"Leveranciers\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/complete-audit\",\n        \"text\": \"Complete WCAG 2.2 audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/technical-audit\",\n        \"text\": \"Technical audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/content-audit\",\n        \"text\": \"Content audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/quick-scan\",\n        \"text\": \"Quick scan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/app-audit\",\n        \"text\": \"App audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/pdf-audit\",\n        \"text\": \"PDF audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/additional-audit\",\n        \"text\": \"Additional audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/complete-audit\",\n        \"text\": \"Complete WCAG 2.2 audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/technical-audit\",\n        \"text\": \"Technical audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/content-audit\",\n        \"text\": \"Content audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/quick-scan\",\n        \"text\": \"Quick scan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/app-audit\",\n        \"text\": \"App audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/pdf-audit\",\n        \"text\": \"PDF audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/additional-audit\",\n        \"text\": \"Additional audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/complete-audit\",\n        \"text\": \"Complete WCAG 2.2 audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/technical-audit\",\n        \"text\": \"Technical audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/content-audit\",\n        \"text\": \"Content audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/quick-scan\",\n        \"text\": \"Quick scan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/app-audit\",\n        \"text\": \"App audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/pdf-audit\",\n        \"text\": \"PDF audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/additional-audit\",\n        \"text\": \"Additional audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/complete-audit\",\n        \"text\": \"Complete WCAG 2.2 audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/technical-audit\",\n        \"text\": \"Technical audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/content-audit\",\n        \"text\": \"Content audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/quick-scan\",\n        \"text\": \"Quick scan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/app-audit\",\n        \"text\": \"App audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/pdf-audit\",\n        \"text\": \"PDF audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/additional-audit\",\n        \"text\": \"Additional audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/complete-audit\",\n        \"text\": \"Complete WCAG 2.2 audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/technical-audit\",\n        \"text\": \"Technical audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/content-audit\",\n        \"text\": \"Content audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/quick-scan\",\n        \"text\": \"Quick scan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/app-audit\",\n        \"text\": \"App audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/pdf-audit\",\n        \"text\": \"PDF audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/additional-audit\",\n        \"text\": \"Additional audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/complete-audit\",\n        \"text\": \"Complete WCAG 2.2 audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/technical-audit\",\n        \"text\": \"Technical audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/content-audit\",\n        \"text\": \"Content audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/quick-scan\",\n        \"text\": \"Quick scan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/app-audit\",\n        \"text\": \"App audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/pdf-audit\",\n        \"text\": \"PDF audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/additional-audit\",\n        \"text\": \"Additional audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/digitale-toegankelijkheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/overheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/bedrijven\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/leveranciers\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/zo-werk-je-aan-digitale-toegankelijkheid-met-een-topsportmentaliteit-7-praktische-lessen\",\n        \"text\": \"Zo werk je aan digitale toegankelijkheid met een topsportmentaliteit: 7 praktische lessen\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/hoe-klinkt-jouw-website\",\n        \"text\": \"Hoe klinkt jouw website?\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/de-meeste-voorkomende-toegankelijkheidsfouten-bij-cookie-banners\",\n        \"text\": \"Cookiebanners en toegankelijkheid: dit gaat vaak mis\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/goed-kleurcontrast-zorg-dat-je-alles-goed-ziet\",\n        \"text\": \"Goed kleurcontrast: zorg dat je alles goed ziet\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/auditor\",\n        \"text\": \"Cardan Auditor\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\",\n        \"text\": \"Diensten\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\",\n        \"text\": \"Branches\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/de-wcag\",\n        \"text\": \"De WCAG\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\",\n        \"text\": \"Blog\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/nieuwsbrief-digitale-toegankelijkheid\",\n        \"text\": \"Inschrijven nieuwsbrief\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/over-cardan\",\n        \"text\": \"Over Cardan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/onze-mensen\",\n        \"text\": \"Onze mensen\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/vacatures\",\n        \"text\": \"Vacatures\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/sitemap\",\n        \"text\": \"Sitemap\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/toegankelijkheidsverklaring\",\n        \"text\": \"Toegankelijkheidsverklaring\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/beveiligingsverklaring\",\n        \"text\": \"Beveiligingsverklaring\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/privacy\",\n        \"text\": \"Privacyverklaring\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/algemene-voorwaarden\",\n        \"text\": \"Algemene voorwaarden\",\n        \"status\": 403,\n        \"error\": null\n    }\n]",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Found broken images on the page.",
                "findings": [
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fsfeerfotos%2Fmedewerkers%2Fcardanners_1.jpg&amp;w=1536&amp;q=80, Alt: Collage van Cardan medewerkers, Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fportretten%2Frechthoekig%2Fbeau-(1).jpg&amp;w=1536&amp;q=80, Alt: Beau, project manager bij Cardan, Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fcardan-sfeer-dec24-lr11.jpg&amp;w=1536&amp;q=80, Alt: Drie Cardanners zitten achter hun laptop en glimlachen, Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fportretten%2Fbob-(2).jpg&amp;w=768&amp;q=80, Alt: Marijn van der Laan, Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fsfeerfotos%2Ffotoshoot-tommy%2Fcardan-sfeer-dec24-lr02.jpg&amp;w=1024&amp;q=80, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Flogos_praktijkvoorbeelden%2Fasten.jpg&amp;w=1536&amp;q=80, Alt: logo gemeente asten, Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Flogos_praktijkvoorbeelden%2Flogo_websteen_og.jpg&amp;w=1536&amp;q=80, Alt: logo websteen, Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Flogos_praktijkvoorbeelden%2Fproud-nerds-logo.png&amp;w=1536&amp;q=80, Alt: logo Proud Nerds, Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Flogos_praktijkvoorbeelden%2Flogo-waterschap-brabantse-delta.png&amp;w=1536&amp;q=80, Alt: logo Waterschap Brabantse Delta, Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fsfeerfotos%2Fmedewerkers%2Fjesse-op-het-ijs.png&amp;w=480&amp;q=80, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fportretten%2F1721894176811.jpeg&amp;w=480&amp;q=80, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Farchive%2F2023%2F03%2Fmackbook-wcag-2-2-editors-draft-1175x783-1.jpg&amp;w=480&amp;q=80, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Farchive%2F2022%2F04%2Fpexels-valeria-boltneva-87584-scaled.jpg&amp;w=480&amp;q=80, Alt: , Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Broken image found: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fportretten%2Fcarolina-(2).jpg&amp;w=768&amp;q=80, Alt: Carolina van Setten, Brand Manager Cardan, Status: 400, Error: HTTP request failed",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": true,
                "message": "Sitemap.xml is valid and properly configured.",
                "findings": [
                  {
                    "name": "Sitemap valid",
                    "key": "sitemap_valid",
                    "value": "The sitemap.xml file is valid, accessible, and contains properly formatted URLs.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": false,
                "message": "robots.txt not found or not accessible.",
                "findings": [
                  {
                    "name": "Robots not found",
                    "key": "robots_not_found",
                    "value": "The robots.txt file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": true,
                "message": "All sensitive files are properly secured.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "All sensitive files are properly secured with appropriate HTTP status codes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "No HTTPS redirect detected.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "The website does not redirect HTTP to HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": false,
                "message": "Missing required security headers.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "The following security headers are missing: Content-Security-Policy, X-Frame-Options, X-XSS-Protection, Strict-Transport-Security",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": true,
                "message": "SSL certificate is valid.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificate issued by Let's Encrypt is valid and will expire in 78 days.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jzxgw3zabgxpx5jgvxg2fv6t.png",
    "created_at": "2025-07-11T19:54:52.000000Z",
    "updated_at": "2025-07-11T19:55:52.000000Z"
  },
  {
    "id": "01jzxh46sd6y33b1v2mwn26ksm",
    "url": "https://www.cardan.com",
    "name": "Danny",
    "email": "danny@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": false,
                "message": "Lighthouse audit succesvol voltooid.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 70%",
                    "numeric_value": "70.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "No resource hints found.",
                "findings": [
                  {
                    "name": "No resource hints",
                    "key": "no_resource_hints",
                    "value": "No resource hints (preload, prefetch, dns-prefetch) were found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": true,
                "message": "Geen afbeeldingen gevonden op de pagina.",
                "findings": [
                  {
                    "name": "No images",
                    "key": "no_images",
                    "value": "De pagina bevat geen afbeeldingen.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": false,
                "message": "No internal links found.",
                "findings": [
                  {
                    "name": "No internal links",
                    "key": "no_internal_links",
                    "value": "No internal links (href starting with #) were found on the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No ARIA attributes found on the page.",
                "findings": [
                  {
                    "name": "No ARIA elements",
                    "key": "no_aria_elements",
                    "value": "The page does not use ARIA attributes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": true,
                "message": "Focus management is properly implemented.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "All 1 focusable elements have proper focus management.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": true,
                "message": "Geen formulieren gevonden op de pagina.",
                "findings": [
                  {
                    "name": "No forms",
                    "key": "no_forms",
                    "value": "De pagina bevat geen formulieren.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No lists found on the page.",
                "findings": [
                  {
                    "name": "No lists",
                    "key": "no_lists",
                    "value": "The page does not contain any lists.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "No media elements found on the page.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "The page does not contain any media elements.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "No tables found on the page.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "The page does not contain any tables.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuration is accessible.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport allows proper zooming and scaling. Current viewport: width=device-width, initial-scale=1",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": true,
                "message": "Geen toegankelijkheidsovertredingen gevonden",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "De pagina is geslaagd voor alle toegankelijkheidstests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": false,
                "message": "De meta description tag ontbreekt.",
                "findings": [
                  {
                    "name": "Meta description missing",
                    "key": "meta_description_missing",
                    "value": "De meta description tag is niet aanwezig in de DOM.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "De title is geldig.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "De title is aanwezig en heeft een geldige lengte van 26 karakters. Title inhoud: \"Vercel Security Checkpoint\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "No robots meta tag found.",
                "findings": [
                  {
                    "name": "No robots tag",
                    "key": "no_robots_tag",
                    "value": "No robots meta tag is present, which is valid as it allows search engines to index the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": false,
                "message": "Ontbrekende tags: og:title, og:description, og:image, og:url",
                "findings": [
                  {
                    "name": "OG tags missing",
                    "key": "og_tags_missing",
                    "value": "De volgende vereiste Open Graph tags ontbreken: og:title, og:description, og:image, og:url",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": false,
                "message": "Geen kopregels gevonden op de pagina.",
                "findings": [
                  {
                    "name": "H1 missing",
                    "key": "h1_missing",
                    "value": "De pagina heeft helemaal geen kopregels.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "Het lang attribuut is geldig.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "Het lang attribuut is aanwezig en heeft een geldige waarde: 'en'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All internal links are valid.",
                "findings": [
                  {
                    "name": "Links valid",
                    "key": "links_valid",
                    "value": "All internal links are working correctly.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": true,
                "message": "All images are valid.",
                "findings": [
                  {
                    "name": "Images valid",
                    "key": "images_valid",
                    "value": "All images on the page are accessible and have valid content types.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": false,
                "message": "Sitemap.xml not found or not accessible.",
                "findings": [
                  {
                    "name": "Sitemap not found",
                    "key": "sitemap_not_found",
                    "value": "The sitemap.xml file is not found or not accessible.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": false,
                "message": "robots.txt niet gevonden of niet toegankelijk.",
                "findings": [
                  {
                    "name": "Robots not found",
                    "key": "robots_not_found",
                    "value": "Het robots.txt bestand is niet gevonden of niet toegankelijk.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": [
              {
                "success": false,
                "message": "No structured data found.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "No Schema.org structured data (JSON-LD) was found in the page.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "All resources on the page are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": true,
                "message": "All resources are loaded securely.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "All resources are loaded over HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": true,
                "message": "All sensitive files are properly secured.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "All sensitive files are properly secured with appropriate HTTP status codes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "Geen HTTPS omleiding gedetecteerd.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "De website leidt HTTP niet om naar HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": false,
                "message": "Ontbrekende vereiste beveiligingsheaders.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "De volgende beveiligingsheaders ontbreken: Content-Security-Policy, X-Frame-Options, X-XSS-Protection, Strict-Transport-Security",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": true,
                "message": "SSL certificaat is geldig.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificaat uitgegeven door Let's Encrypt is geldig en verloopt over 78 dagen.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header is missing.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "The Content-Security-Policy header is not present.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jzxh46sd6y33b1v2mwn26ksm.png",
    "created_at": "2025-07-11T19:59:17.000000Z",
    "updated_at": "2025-07-11T19:59:53.000000Z"
  },
  {
    "id": "01jzxmp64kc4834fgaz7npyqb4",
    "url": "https://www.cardan.com",
    "name": "Danny",
    "email": "danny@krafters.nl",
    "phone": null,
    "results": [
      {
        "category": "performance",
        "tests": [
          {
            "name": "Lighthouse prestatie test",
            "description": "Voert een uitgebreide Lighthouse-audit uit die prestaties, toegankelijkheid, best practices, SEO en PWA omvat.",
            "result": [
              {
                "success": false,
                "message": "Lighthouse test succesvol voltooid.",
                "findings": [
                  {
                    "name": "Lighthouse performance",
                    "key": "lighthouse_performance",
                    "value": "Score: 57%",
                    "numeric_value": "57.0000"
                  }
                ]
              }
            ]
          },
          {
            "name": "Kritieke Bronnen Laadtest",
            "description": "Controleert op resource hints, render-blokkerende bronnen, TTFB en kritieke CSS-implementatie.",
            "result": [
              {
                "success": false,
                "message": "Render-blokkerende bronnen gedetecteerd.",
                "findings": [
                  {
                    "name": "test_results.render_blocking_resources",
                    "key": "render_blocking_resources",
                    "value": "7 render-blokkerende bronnen gevonden. Overweeg async/defer te gebruiken voor scripts en preload voor kritieke CSS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "accessibility",
        "tests": [
          {
            "name": "Toegankelijke afbeeldingen Test",
            "description": "Controleert of alle afbeeldingen de juiste toegankelijkheidsattributen hebben (alt-tekst of decoratieve markeringen).",
            "result": [
              {
                "success": true,
                "message": "Alle afbeeldingen hebben juiste toegankelijkheidsattributen.",
                "findings": [
                  {
                    "name": "Accessible images",
                    "key": "accessible_images",
                    "value": "Alle 20 afbeeldingen hebben juiste toegankelijkheidsattributen.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "\"Skip link\" Test",
            "description": "Controleert op toegankelijkheids-skiplinks die toetsenbordgebruikers in staat stellen om navigatie over te slaan en direct naar de hoofdinhoud te gaan.",
            "result": [
              {
                "success": true,
                "message": "Geldige skip links gevonden.",
                "findings": [
                  {
                    "name": "Valid skip links",
                    "key": "valid_skip_links",
                    "value": "Geldige skip links gevonden: Link tekst: \"spring naar hoofdcontent\" verwijst naar ID: \"main\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "ARIA Attributen Test",
            "description": "Valideert de juiste implementatie van ARIA-attributen voor verbeterde ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "Alle ARIA attributen zijn geldig.",
                "findings": [
                  {
                    "name": "ARIA valid",
                    "key": "aria_valid",
                    "value": "Alle 33 elementen met ARIA attributen zijn correct geconfigureerd.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Focus Beheer Test",
            "description": "Controleert op goed focusbeheer, inclusief zichtbare focusindicatoren en logische tabvolgorde.",
            "result": [
              {
                "success": true,
                "message": "Focus beheer is correct geïmplementeerd.",
                "findings": [
                  {
                    "name": "Focus management valid",
                    "key": "focus_management_valid",
                    "value": "Alle 140 focusbare elementen hebben correct focus beheer.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke formulieren Test",
            "description": "Zorgt ervoor dat alle formulieren toegankelijk zijn met de juiste labels, foutafhandeling en ARIA-attributen.",
            "result": [
              {
                "success": false,
                "message": "Formulier toegankelijkheidsproblemen gevonden.",
                "findings": [
                  {
                    "name": "Invalid required indicators",
                    "key": "invalid_required_indicators",
                    "value": "Verplichte velden met slechte indicatoren: Verplicht veld 'name' mist toegankelijke vereiste indicator, Verplicht veld 'email' mist toegankelijke vereiste indicator",
                    "numeric_value": null
                  },
                  {
                    "name": "Invalid required indicators",
                    "key": "invalid_required_indicators",
                    "value": "Verplichte velden met slechte indicatoren: Verplicht veld 'message' mist toegankelijke vereiste indicator, Verplicht veld 'first_name' mist toegankelijke vereiste indicator, Verplicht veld 'last_name' mist toegankelijke vereiste indicator, Verplicht veld 'email' mist toegankelijke vereiste indicator",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Lijst Structuur Test",
            "description": "Verifieert het juiste gebruik van lijstelementen (ul, ol, dl) voor betere toegankelijkheid en ondersteuning van schermlezers.",
            "result": [
              {
                "success": true,
                "message": "Alle lijsten hebben een juiste structuur.",
                "findings": [
                  {
                    "name": "Lists structure valid",
                    "key": "lists_structure_valid",
                    "value": "Alle 18 lijsten hebben een juiste semantische structuur.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke media Test",
            "description": "Verifieert dat audio- en video-inhoud voorzien is van de juiste ondertiteling, transcripties en audiobeschrijvingen.",
            "result": [
              {
                "success": true,
                "message": "Geen media-elementen gevonden op de pagina.",
                "findings": [
                  {
                    "name": "No media elements",
                    "key": "no_media_elements",
                    "value": "De pagina bevat geen media-elementen.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Toegankelijke tabellen Test",
            "description": "Controleert of tabellen de juiste headers, bijschriften en ARIA-attributen hebben voor schermlezers.",
            "result": [
              {
                "success": true,
                "message": "Geen tabellen gevonden op de pagina.",
                "findings": [
                  {
                    "name": "No tables",
                    "key": "no_tables",
                    "value": "De pagina bevat geen tabellen.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Viewport en Zoom Test",
            "description": "Verifieert dat de viewport meta tag het juiste zoomen en schalen mogelijk maakt voor toegankelijkheid.",
            "result": [
              {
                "success": true,
                "message": "Viewport configuratie is toegankelijk.",
                "findings": [
                  {
                    "name": "test_results.viewport_accessible",
                    "key": "viewport_accessible",
                    "value": "Viewport staat correct zoomen en schalen toe. Huidige viewport: width=device-width, initial-scale=1, viewport-fit=cover",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Axe Toegankelijkheid Test",
            "description": "Voert een uitgebreide toegankelijkheidsaudit uit met behulp van axe-core.",
            "result": [
              {
                "success": true,
                "message": "Geen toegankelijkheidsovertredingen gevonden",
                "findings": [
                  {
                    "name": "Axe success",
                    "key": "axe_success",
                    "value": "De pagina is geslaagd voor alle toegankelijkheidstests.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "seo",
        "tests": [
          {
            "name": "Meta Beschrijving Test",
            "description": "Controleert of de website een geldige meta beschrijving heeft.",
            "result": [
              {
                "success": true,
                "message": "De meta description is geldig.",
                "findings": [
                  {
                    "name": "test_results.meta_description_valid",
                    "key": "meta_description_valid",
                    "value": "De meta description is aanwezig en heeft een geldige lengte van 119 karakters.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Meta Titel Test",
            "description": "Controleert of de website een geldige titel tag heeft met een passende lengte.",
            "result": [
              {
                "success": true,
                "message": "De title is geldig.",
                "findings": [
                  {
                    "name": "Title valid",
                    "key": "title_valid",
                    "value": "De title is aanwezig en heeft een geldige lengte van 50 karakters. Title inhoud: \"Jouw partner in digitale toegankelijkheid | Cardan\"",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Meta Test",
            "description": "Controleert of de webpagina een geldige robots meta tag implementatie heeft.",
            "result": [
              {
                "success": true,
                "message": "Geen robots meta tag gevonden.",
                "findings": [
                  {
                    "name": "No robots tag",
                    "key": "no_robots_tag",
                    "value": "Geen robots meta tag aanwezig, wat geldig is omdat het zoekmachines toestaat de pagina te indexeren.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open Graph Meta Test",
            "description": "Controleert of de webpagina alle vereiste Open Graph meta tags (og:title, og:description, og:image, og:url) heeft met geldige inhoud.",
            "result": [
              {
                "success": true,
                "message": "Pagina heeft alle vereiste Open Graph tags",
                "findings": [
                  {
                    "name": "test_results.og_tags_valid",
                    "key": "og_tags_valid",
                    "value": "Alle vereiste Open Graph tags zijn aanwezig en hebben inhoud: og:title, og:description, og:image, og:url",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Koppen Structuur Test",
            "description": "Controleert of de webpagina een goede hiërarchie van koppen (h1-h6) heeft met correcte volgorde en structuur.",
            "result": [
              {
                "success": true,
                "message": "Kopregel structuur is geldig.",
                "findings": [
                  {
                    "name": "Heading structure valid",
                    "key": "heading_structure_valid",
                    "value": "De pagina heeft een geldige kopregel structuur met juiste hiërarchie.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTML Taal Test",
            "description": "Controleert of de website een geldig HTML lang attribuut heeft.",
            "result": [
              {
                "success": true,
                "message": "Het lang attribuut is geldig.",
                "findings": [
                  {
                    "name": "Lang attribute valid",
                    "key": "lang_attribute_valid",
                    "value": "Het lang attribuut is aanwezig en heeft een geldige waarde: 'nl'.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Link Test",
            "description": "Controleert op gebroken interne links op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Gebroken interne links gevonden.",
                "findings": [
                  {
                    "name": "Broken links",
                    "key": "broken_links",
                    "value": "Aantal gebroken interne links gevonden: 104: [\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#main\",\n        \"text\": \"Spring naar hoofdcontent\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/auditor\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/wcag-2-2-onderzoeken\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/trainingen\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/advies-op-maat\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/bewustwording\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\\/project-management\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/overheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/bedrijven\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/leveranciers\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/digitale-toegankelijkheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/soorten-beperkingen\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/de-wcag\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/wet-digitale-overheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/european-accessibility-act\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/webinars\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/over-cardan\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/onze-mensen\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/vacatures\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/waarmerk-drempelvrij\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/contact\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/overheid\",\n        \"text\": \"Overheid\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/bedrijven\",\n        \"text\": \"Bedrijven\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/leveranciers\",\n        \"text\": \"Leveranciers\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/complete-audit\",\n        \"text\": \"Complete WCAG 2.2 audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/technical-audit\",\n        \"text\": \"Technical audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/content-audit\",\n        \"text\": \"Content audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/quick-scan\",\n        \"text\": \"Quick scan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/app-audit\",\n        \"text\": \"App audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/pdf-audit\",\n        \"text\": \"PDF audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/additional-audit\",\n        \"text\": \"Additional audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/complete-audit\",\n        \"text\": \"Complete WCAG 2.2 audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/technical-audit\",\n        \"text\": \"Technical audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/content-audit\",\n        \"text\": \"Content audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/quick-scan\",\n        \"text\": \"Quick scan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/app-audit\",\n        \"text\": \"App audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/pdf-audit\",\n        \"text\": \"PDF audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/additional-audit\",\n        \"text\": \"Additional audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/complete-audit\",\n        \"text\": \"Complete WCAG 2.2 audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/technical-audit\",\n        \"text\": \"Technical audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/content-audit\",\n        \"text\": \"Content audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/quick-scan\",\n        \"text\": \"Quick scan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/app-audit\",\n        \"text\": \"App audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/pdf-audit\",\n        \"text\": \"PDF audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/additional-audit\",\n        \"text\": \"Additional audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/complete-audit\",\n        \"text\": \"Complete WCAG 2.2 audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/technical-audit\",\n        \"text\": \"Technical audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/content-audit\",\n        \"text\": \"Content audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/quick-scan\",\n        \"text\": \"Quick scan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/app-audit\",\n        \"text\": \"App audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/pdf-audit\",\n        \"text\": \"PDF audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/additional-audit\",\n        \"text\": \"Additional audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/complete-audit\",\n        \"text\": \"Complete WCAG 2.2 audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/technical-audit\",\n        \"text\": \"Technical audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/content-audit\",\n        \"text\": \"Content audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/quick-scan\",\n        \"text\": \"Quick scan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/app-audit\",\n        \"text\": \"App audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/pdf-audit\",\n        \"text\": \"PDF audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/additional-audit\",\n        \"text\": \"Additional audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/complete-audit\",\n        \"text\": \"Complete WCAG 2.2 audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/technical-audit\",\n        \"text\": \"Technical audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/content-audit\",\n        \"text\": \"Content audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/quick-scan\",\n        \"text\": \"Quick scan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/app-audit\",\n        \"text\": \"App audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/pdf-audit\",\n        \"text\": \"PDF audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/en\\/services\\/wcag-2-2-audits\\/additional-audit\",\n        \"text\": \"Additional audit\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/#contact\",\n        \"text\": \"Neem contact op\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/digitale-toegankelijkheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/overheid\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/bedrijven\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\\/leveranciers\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\",\n        \"text\": \"\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/zo-werk-je-aan-digitale-toegankelijkheid-met-een-topsportmentaliteit-7-praktische-lessen\",\n        \"text\": \"Zo werk je aan digitale toegankelijkheid met een topsportmentaliteit: 7 praktische lessen\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/hoe-klinkt-jouw-website\",\n        \"text\": \"Hoe klinkt jouw website?\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/de-meeste-voorkomende-toegankelijkheidsfouten-bij-cookie-banners\",\n        \"text\": \"Cookiebanners en toegankelijkheid: dit gaat vaak mis\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\\/goed-kleurcontrast-zorg-dat-je-alles-goed-ziet\",\n        \"text\": \"Goed kleurcontrast: zorg dat je alles goed ziet\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/auditor\",\n        \"text\": \"Cardan Auditor\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/diensten\",\n        \"text\": \"Diensten\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/branches\",\n        \"text\": \"Branches\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/kennisbank\\/de-wcag\",\n        \"text\": \"De WCAG\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/blog\",\n        \"text\": \"Blog\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/nieuwsbrief-digitale-toegankelijkheid\",\n        \"text\": \"Inschrijven nieuwsbrief\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/over-cardan\",\n        \"text\": \"Over Cardan\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/onze-mensen\",\n        \"text\": \"Onze mensen\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/vacatures\",\n        \"text\": \"Vacatures\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/sitemap\",\n        \"text\": \"Sitemap\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/toegankelijkheidsverklaring\",\n        \"text\": \"Toegankelijkheidsverklaring\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/beveiligingsverklaring\",\n        \"text\": \"Beveiligingsverklaring\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/privacy\",\n        \"text\": \"Privacyverklaring\",\n        \"status\": 403,\n        \"error\": null\n    },\n    {\n        \"url\": \"https:\\/\\/www.cardan.com\\/algemene-voorwaarden\",\n        \"text\": \"Algemene voorwaarden\",\n        \"status\": 403,\n        \"error\": null\n    }\n]",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Afbeeldingen test",
            "description": "Controleert op gebroken afbeeldingen op de webpagina.",
            "result": [
              {
                "success": false,
                "message": "Kapotte afbeeldingen gevonden op de pagina.",
                "findings": [
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Kapotte afbeelding gevonden: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fsfeerfotos%2Fmedewerkers%2Fcardanners_1.jpg&amp;w=1536&amp;q=80, Alt: Collage van Cardan medewerkers, Status: 400, Fout: HTTP verzoek mislukt",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Kapotte afbeelding gevonden: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fportretten%2Frechthoekig%2Fbeau-(1).jpg&amp;w=1536&amp;q=80, Alt: Beau, project manager bij Cardan, Status: 400, Fout: HTTP verzoek mislukt",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Kapotte afbeelding gevonden: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fcardan-sfeer-dec24-lr11.jpg&amp;w=1536&amp;q=80, Alt: Drie Cardanners zitten achter hun laptop en glimlachen, Status: 400, Fout: HTTP verzoek mislukt",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Kapotte afbeelding gevonden: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fportretten%2Fbob-(2).jpg&amp;w=768&amp;q=80, Alt: Marijn van der Laan, Status: 400, Fout: HTTP verzoek mislukt",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Kapotte afbeelding gevonden: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fsfeerfotos%2Ffotoshoot-tommy%2Fcardan-sfeer-dec24-lr02.jpg&amp;w=1024&amp;q=80, Alt: , Status: 400, Fout: HTTP verzoek mislukt",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Kapotte afbeelding gevonden: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Flogos_praktijkvoorbeelden%2Fasten.jpg&amp;w=1536&amp;q=80, Alt: logo gemeente asten, Status: 400, Fout: HTTP verzoek mislukt",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Kapotte afbeelding gevonden: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Flogos_praktijkvoorbeelden%2Flogo_websteen_og.jpg&amp;w=1536&amp;q=80, Alt: logo websteen, Status: 400, Fout: HTTP verzoek mislukt",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Kapotte afbeelding gevonden: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Flogos_praktijkvoorbeelden%2Fproud-nerds-logo.png&amp;w=1536&amp;q=80, Alt: logo Proud Nerds, Status: 400, Fout: HTTP verzoek mislukt",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Kapotte afbeelding gevonden: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Flogos_praktijkvoorbeelden%2Flogo-waterschap-brabantse-delta.png&amp;w=1536&amp;q=80, Alt: logo Waterschap Brabantse Delta, Status: 400, Fout: HTTP verzoek mislukt",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Kapotte afbeelding gevonden: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fsfeerfotos%2Fmedewerkers%2Fjesse-op-het-ijs.png&amp;w=480&amp;q=80, Alt: , Status: 400, Fout: HTTP verzoek mislukt",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Kapotte afbeelding gevonden: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fportretten%2F1721894176811.jpeg&amp;w=480&amp;q=80, Alt: , Status: 400, Fout: HTTP verzoek mislukt",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Kapotte afbeelding gevonden: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Farchive%2F2023%2F03%2Fmackbook-wcag-2-2-editors-draft-1175x783-1.jpg&amp;w=480&amp;q=80, Alt: , Status: 400, Fout: HTTP verzoek mislukt",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Kapotte afbeelding gevonden: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Farchive%2F2022%2F04%2Fpexels-valeria-boltneva-87584-scaled.jpg&amp;w=480&amp;q=80, Alt: , Status: 400, Fout: HTTP verzoek mislukt",
                    "numeric_value": null
                  },
                  {
                    "name": "Broken image",
                    "key": "broken_image",
                    "value": "Kapotte afbeelding gevonden: URL: https://www.cardan.com/_vercel/image?url=https:%2F%2Fcms.cardan.com%2Fassets%2Fportretten%2Fcarolina-(2).jpg&amp;w=768&amp;q=80, Alt: Carolina van Setten, Brand Manager Cardan, Status: 400, Fout: HTTP verzoek mislukt",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Sitemap XML Test",
            "description": "Valideert de toegankelijkheid, structuur en URL-geldigheid van sitemap.xml.",
            "result": [
              {
                "success": true,
                "message": "Sitemap.xml is geldig en correct geconfigureerd.",
                "findings": [
                  {
                    "name": "Sitemap valid",
                    "key": "sitemap_valid",
                    "value": "Het sitemap.xml bestand is geldig, toegankelijk en bevat correct geformatteerde URLs.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Robots Test",
            "description": "Controleert de toegankelijkheid van robots.txt en valideert de vereiste richtlijnen.",
            "result": [
              {
                "success": false,
                "message": "robots.txt niet gevonden of niet toegankelijk.",
                "findings": [
                  {
                    "name": "Robots not found",
                    "key": "robots_not_found",
                    "value": "Het robots.txt bestand is niet gevonden of niet toegankelijk.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gestructureerde Data Test",
            "description": "Valideert JSON-LD gestructureerde data-implementatie en vereiste eigenschappen voor veelvoorkomende schema's.",
            "result": [
              {
                "success": false,
                "message": "Geen gestructureerde data gevonden.",
                "findings": [
                  {
                    "name": "No structured data",
                    "key": "no_structured_data",
                    "value": "Geen Schema.org gestructureerde data (JSON-LD) gevonden op de pagina.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "category": "security",
        "tests": [
          {
            "name": "Onveilige Bronnen Test",
            "description": "Controleert op bronnen die worden geladen via onveilige HTTP op HTTPS-pagina's.",
            "result": [
              {
                "success": true,
                "message": "Alle bronnen worden veilig geladen.",
                "findings": [
                  {
                    "name": "test_results.secure_resources",
                    "key": "secure_resources",
                    "value": "Alle bronnen op de pagina worden geladen via HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Gemengde Inhoud Test",
            "description": "Controleert op beveiligingsproblemen met gemengde inhoud op webpagina's, om ervoor te zorgen dat alle bronnen via HTTPS worden aangeboden.",
            "result": [
              {
                "success": true,
                "message": "Alle bronnen worden veilig geladen.",
                "findings": [
                  {
                    "name": "All secure",
                    "key": "all_secure",
                    "value": "Alle bronnen worden geladen via HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Open bestanden Test",
            "description": "Controleert op publiek toegankelijke gevoelige bestanden zoals .env, .git/config en andere configuratiebestanden.",
            "result": [
              {
                "success": true,
                "message": "Alle gevoelige bestanden zijn correct beveiligd.",
                "findings": [
                  {
                    "name": "test_results.sensitive_file_secure",
                    "key": "sensitive_file_secure",
                    "value": "Alle gevoelige bestanden zijn correct beveiligd met juiste HTTP statuscodes.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "HTTPS Test",
            "description": "Verifieert de juiste HTTPS-handhaving, inclusief omleidingen en eindpunt-toegankelijkheid.",
            "result": [
              {
                "success": false,
                "message": "Geen HTTPS omleiding gedetecteerd.",
                "findings": [
                  {
                    "name": "HTTPS no redirect",
                    "key": "https_no_redirect",
                    "value": "De website leidt HTTP niet om naar HTTPS.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Beveiligingsheaders Test",
            "description": "Controleert op essentiële beveiligingsheaders, waaronder Content-Security-Policy, X-Frame-Options, X-XSS-Protection en HSTS.",
            "result": [
              {
                "success": false,
                "message": "Ontbrekende vereiste beveiligingsheaders.",
                "findings": [
                  {
                    "name": "Security headers missing",
                    "key": "security_headers_missing",
                    "value": "De volgende beveiligingsheaders ontbreken: Content-Security-Policy, X-Frame-Options, X-XSS-Protection, Strict-Transport-Security",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "SSL Certificaat Test",
            "description": "Valideert de geldigheid van het SSL-certificaat, vervaldatum, domeinbereik en uitgeversinformatie.",
            "result": [
              {
                "success": true,
                "message": "SSL certificaat is geldig.",
                "findings": [
                  {
                    "name": "SSL valid",
                    "key": "ssl_valid",
                    "value": "SSL certificaat uitgegeven door Let's Encrypt is geldig en verloopt over 78 dagen.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          },
          {
            "name": "Content Security Policy Test",
            "description": "Valideert de aanwezigheid, configuratie en effectiviteit van CSP-headers tegen veelvoorkomende bypasses.",
            "result": [
              {
                "success": false,
                "message": "Content Security Policy header ontbreekt.",
                "findings": [
                  {
                    "name": "CSP missing",
                    "key": "csp_missing",
                    "value": "De Content-Security-Policy header is niet aanwezig.",
                    "numeric_value": null
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "screenshot": "https://quickscan.krafters.nl/storage/screenshots/01jzxmp64kc4834fgaz7npyqb4.png",
    "created_at": "2025-07-11T21:01:32.000000Z",
    "updated_at": "2025-07-11T21:02:22.000000Z"
  }
]