[ { "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 & 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 & 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&w=320&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&w=320&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&w=320&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&w=320&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&w=320&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&w=320&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&w=320&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&w=320&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&w=320&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&w=320&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&w=320&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&w=320&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&w=320&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&w=320&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&w=320&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&w=320&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 & 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&w=320&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&w=320&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&w=320&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&w=320&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&w=1536&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&w=1536&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&w=1536&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&w=768&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&w=1024&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&w=1536&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&w=1536&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&w=1536&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&w=1536&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&w=480&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&w=480&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&w=480&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&w=480&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&w=768&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&w=1536&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&w=1536&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&w=1536&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&w=768&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&w=1024&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&w=1536&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&w=1536&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&w=1536&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&w=1536&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&w=480&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&w=480&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&w=480&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&w=480&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&w=768&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" } ]