{
  "url": "https://indown.io",
  "auditedAt": "2026-07-20T16:51:44.351Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Atomic coverage complete: all 58 checks judged across five representative paths.",
  "page": {
    "appType": "mpa",
    "framework": "Laravel/server-rendered HTML with Bootstrap-style CSS and a small ES module",
    "notes": "Public multilingual downloader/PWA. Coverage included the core Instagram tool, sibling Reels and TikTok templates, contact form, and Arabic localization. Near-identical photo/story/highlight routes and every locale were not repeated because they share templates."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "lighthouse",
    "curl raw HTML/robots/sitemap/manifest/service-worker",
    "Modern Web Guidance search/retrieve"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "same-document-transitions",
    "scroll-position-aware-elements",
    "declarative-dialog-popover-control",
    "size-aware-styling",
    "performance",
    "optimize-image-priority",
    "identify-heavy-scripts",
    "improve-text-layout-and-legibility",
    "fluid-scaling",
    "security",
    "privacy",
    "full-session-analytics",
    "stabilize-reactive-state",
    "translator",
    "validate-input-after-interaction",
    "required-field-feedback",
    "autofill-sign-in-form",
    "deliver-optimized-decorative-images",
    "efficient-background-processing",
    "webmcp",
    "manage-recurring-intervals",
    "accessible-error-announcement",
    "html"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "Initial desktop viewport, consent wall",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "Initial 360x800 viewport, consent wall",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-light.png",
      "caption": "Home under prefers-color-scheme: light",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "Home under prefers-color-scheme: dark",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-mobile.json",
      "caption": "Mobile layout, CLS and overflow metrics",
      "findingIds": [
        "F10"
      ]
    },
    {
      "type": "other",
      "path": "evidence/preferences-motion.json",
      "caption": "Reduced-motion CSS and active-animation probe",
      "findingIds": [
        "F04"
      ]
    },
    {
      "type": "other",
      "path": "evidence/focus-targets.json",
      "caption": "Keyboard focus and target-size probe",
      "findingIds": [
        "F06"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "Lighthouse performance, accessibility, best-practices, SEO and agentic browsing",
      "findingIds": [
        "F05",
        "F06",
        "F10",
        "F11",
        "F12",
        "F19"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "Raw HAR for retained network evidence",
      "findingIds": [
        "F11",
        "F15"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "Compact HAR network summary",
      "findingIds": [
        "F11",
        "F15"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "DevTools performance trace",
      "findingIds": []
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "Compact trace summary",
      "findingIds": [
        "F10"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "Security response-header audit",
      "findingIds": [
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "Cookie attribute audit",
      "findingIds": [
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "Third-party tracker inventory",
      "findingIds": [
        "F11",
        "F15"
      ]
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "Client-side secret scan",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "Image dimensions, formats and responsive delivery audit",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability.json",
      "caption": "Raw HTML versus rendered discoverability result",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-rendered.png",
      "caption": "Browser-rendered view",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-crawler.png",
      "caption": "No-JavaScript crawler view",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/overlay-dom.json",
      "caption": "Consent overlay DOM structure",
      "findingIds": [
        "F02"
      ]
    },
    {
      "type": "other",
      "path": "evidence/platform-probe.json",
      "caption": "Platform feature, form, manifest and service-worker probe",
      "findingIds": [
        "F02",
        "F07",
        "F08",
        "F09",
        "F18"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/resource-dom.json",
      "caption": "Script and stylesheet delivery attributes",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "other",
      "path": "evidence/seo-social.json",
      "caption": "Canonical, hreflang, structured and social metadata",
      "findingIds": [
        "F13"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "Baseline heap summary",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.json",
      "caption": "Heap summary after ten FAQ cycles",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/memory-metrics.json",
      "caption": "Before/after JS heap and DOM metrics",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/manifest.json",
      "caption": "Web app manifest",
      "findingIds": [
        "F16"
      ]
    },
    {
      "type": "other",
      "path": "evidence/service-worker.json",
      "caption": "Active service-worker registration",
      "findingIds": [
        "F16"
      ]
    },
    {
      "type": "other",
      "path": "evidence/serviceworker.js",
      "caption": "Fetched service-worker source showing icon-only cache",
      "findingIds": [
        "F16"
      ]
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "Robots policy",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "Sitemap",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/contact-dom.json",
      "caption": "Contact form controls and metadata",
      "findingIds": [
        "F18"
      ]
    },
    {
      "type": "other",
      "path": "evidence/arabic.json",
      "caption": "Arabic locale metadata and direction probe",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/arabic-mobile.png",
      "caption": "Arabic locale at 360x800",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/reels.png",
      "caption": "Reels archetype first-load screenshot",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/tiktok.png",
      "caption": "TikTok archetype first-load screenshot",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/contact.png",
      "caption": "Contact archetype first-load screenshot",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "Rendered DOM and computed-style evidence",
      "findingIds": [
        "F03",
        "F09",
        "F19"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-recon.json",
      "caption": "Routes, headings, forms, metadata and navigation recon",
      "findingIds": []
    }
  ],
  "config": {
    "loaded": false
  },
  "coverage": {
    "catalogVersion": "modern-web-guidance@0.0.172",
    "catalogChecksum": "sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7",
    "expected": 58,
    "recorded": 58,
    "judged": 58,
    "blocked": 0,
    "notRun": 0,
    "missing": 0,
    "unknown": 0,
    "duplicates": 0,
    "complete": true
  },
  "checkOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-color-scheme",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "Light and dark emulation screenshots retain the same dark #212529 page surface; DOM computed styles report color-scheme: dark.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-light.png",
        "evidence/home-dark.png",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "The reduced-motion probe reports a running color-change animation with 1000ms duration even though prefers-reduced-motion: reduce matches.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/preferences-motion.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "CSS evidence contains reduced-motion rules but no prefers-contrast or forced-colors adaptation, while Lighthouse directly identifies essential tabs, headings, and brand text at only 2.22:1 to 2.69:1.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "The platform probe found no authored transition components, anchor positioning, or scroll timelines; navigation is conventional full-document links and the sampled FAQ/menu state uses Bootstrap-style abrupt state changes.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/resource-dom.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and product-surface applicability review.",
      "evidence": "No scroll-linked parallax, scrollytelling, carousel motion, or reveal effect exists on the representative paths, so there is no scroll animation implementation to assess.",
      "reason": "No scroll-linked parallax, scrollytelling, carousel motion, or reveal effect exists on the representative paths, so there is no scroll animation implementation to assess.",
      "pathIds": [
        "home-tool"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and product-surface applicability review.",
      "evidence": "No custom drag, swipe, pull, or gesture-driven interaction exists; the site uses ordinary native scrolling, links, and buttons.",
      "reason": "No custom drag, swipe, pull, or gesture-driven interaction exists; the site uses ordinary native scrolling, links, and buttons.",
      "pathIds": [
        "home-tool"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "The platform probe found no authored transition components, anchor positioning, or scroll timelines; navigation is conventional full-document links and the sampled FAQ/menu state uses Bootstrap-style abrupt state changes.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/resource-dom.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and product-surface applicability review.",
      "evidence": "No trigger-attached tooltip, popover, or edge menu exists on the representative paths; the centered modal consent dialog does not require anchor positioning.",
      "reason": "No trigger-attached tooltip, popover, or edge menu exists on the representative paths; the centered modal consent dialog does not require anchor positioning.",
      "pathIds": [
        "home-tool"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "The platform probe found no authored transition components, anchor positioning, or scroll timelines; navigation is conventional full-document links and the sampled FAQ/menu state uses Bootstrap-style abrupt state changes.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/resource-dom.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "Desktop and 360x800 screenshots on the home, Reels, TikTok, contact, and Arabic paths show a modal consent wall before the downloader or form can be used. On mobile it fills most of the viewport.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/reels.png",
        "evidence/tiktok.png",
        "evidence/contact.png"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "DOM evidence identifies .fc-consent-root containing a div role=dialog and a separate overlay; no <dialog>, popover, or details primitives exist on the page.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/overlay-dom.json",
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "Desktop and 360x800 screenshots on the home, Reels, TikTok, contact, and Arabic paths show a modal consent wall before the downloader or form can be used. On mobile it fills most of the viewport.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/reels.png",
        "evidence/tiktok.png",
        "evidence/contact.png"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, network, performance, metadata, or interaction evidence selected for this check.",
      "evidence": "At 360x800 the layout primitive reports scrollWidth=clientWidth=360 and zero horizontal overflow; viewport meta is present.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "CSSOM probing found zero CSSContainerRule entries even though the downloader/form/navigation components recur across templates.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "The focus probe shows the navbar toggle, URL input, search button, and FAQ buttons with outline none while focused; many navigation targets are 20-40px tall. Lighthouse also reports an invalid H2-to-H4 heading order.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/focus-targets.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, network, performance, metadata, or interaction evidence selected for this check.",
      "evidence": "The first page content and raw HTML identify “Instagram Video Downloader” and expose one URL field plus a SEARCH submit action.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, network, performance, metadata, or interaction evidence selected for this check.",
      "evidence": "DOM walkthrough shows a one-step POST form to /download with one required URL and no account or upsell step; the consent choice offers an equally prominent rejection action.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "The primary URL field has no label or aria-invalid state, and the invalid submission navigation closed the inspected target without an in-place role=alert or recoverable error captured.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "Lighthouse measured LCP 7.1s and CLS 0.225; the mobile layout primitive independently observed CLS 0.205. TBT remained low at 100ms.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-layout-mobile.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "Lighthouse measured LCP 7.1s and CLS 0.225; the mobile layout primitive independently observed CLS 0.205. TBT remained low at 100ms. The images primitive found all three images without width/height and two legacy JPEGs; Lighthouse reports three deprecated API warnings from the Cloudflare challenge script.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-layout-mobile.json",
        "evidence/home-trace-summary.json",
        "evidence/images.json"
      ],
      "findingIds": [
        "F10",
        "F12"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, network, performance, metadata, or interaction evidence selected for this check.",
      "evidence": "Trace recorded zero long tasks and 0ms TBT; Lighthouse TBT was 100ms.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "Lighthouse measured LCP 7.1s and CLS 0.225; the mobile layout primitive independently observed CLS 0.205. TBT remained low at 100ms. HAR records 930,902 transferred bytes, 821,879 third-party bytes and 805,862 script bytes. Lighthouse estimates 370 KiB unused JS and 45 KiB unused CSS.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-layout-mobile.json",
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F10",
        "F11"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "HAR records 930,902 transferred bytes, 821,879 third-party bytes and 805,862 script bytes. Lighthouse estimates 370 KiB unused JS and 45 KiB unused CSS.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/lighthouse.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "The contact DOM shows required email and message controls with placeholders but no associated labels or aria-labels; email autocomplete is empty. The downloader URL input also has no label and autocomplete=off.",
      "pathIds": [
        "contact-form"
      ],
      "artifacts": [
        "evidence/contact-dom.json",
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "Lighthouse reports contrast ratios of 2.22:1 to 2.69:1 for the brand, active tabs, H1, and H2 text against dark surfaces, below required 3:1 or 4.5:1 thresholds.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "The focus probe shows the navbar toggle, URL input, search button, and FAQ buttons with outline none while focused; many navigation targets are 20-40px tall. Lighthouse also reports an invalid H2-to-H4 heading order.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/focus-targets.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, network, performance, metadata, or interaction evidence selected for this check.",
      "evidence": "Mobile and desktop captures plus DOM styles show 16px base text, fluid widths, and no horizontal clipping; contrast divergences are separately recorded.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "The focus probe shows the navbar toggle, URL input, search button, and FAQ buttons with outline none while focused; many navigation targets are 20-40px tall. Lighthouse also reports an invalid H2-to-H4 heading order.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/focus-targets.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, network, performance, metadata, or interaction evidence selected for this check.",
      "evidence": "Lighthouse errors-in-console audit passed with no logged browser errors.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "The images primitive found all three images without width/height and two legacy JPEGs; Lighthouse reports three deprecated API warnings from the Cloudflare challenge script.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "The images primitive found all three images without width/height and two legacy JPEGs; Lighthouse reports three deprecated API warnings from the Cloudflare challenge script.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, network, performance, metadata, or interaction evidence selected for this check.",
      "evidence": "DOM and raw HTML contain the descriptive title “Instagram Video Downloader | Fast & Secure” and a matching meta description.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, network, performance, metadata, or interaction evidence selected for this check.",
      "evidence": "Lighthouse SEO passed; links have href values, viewport metadata exists, and robots.txt allows crawling.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, network, performance, metadata, or interaction evidence selected for this check.",
      "evidence": "HTTP returned 200; canonical and 22 hreflang/x-default links are present; robots.txt allows all and points to a populated sitemap.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "The metadata probe found no JSON-LD, Open Graph, or Twitter card tags on the public downloader page, despite a canonical URL and rich tool/organization content.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/seo-social.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "Headers evidence shows no CSP or HSTS, and no Referrer-Policy or Permissions-Policy. Cookie evidence reports six non-Secure analytics/consent cookies and SameSite=None usage.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "Trackers evidence finds 10 third-party origins and four known tracker domains; HAR assigns 20 requests and 821,879 bytes to third parties while the consent wall is still present.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and product-surface applicability review.",
      "evidence": "No authentication flow or browser-permission request exists on the representative public downloader and contact paths.",
      "reason": "No authentication flow or browser-permission request exists on the representative public downloader and contact paths.",
      "pathIds": [
        "home-tool"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "Headers evidence shows no CSP or HSTS, and no Referrer-Policy or Permissions-Policy. Cookie evidence reports six non-Secure analytics/consent cookies and SameSite=None usage.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, network, performance, metadata, or interaction evidence selected for this check.",
      "evidence": "Discoverability measured 88% raw/rendered content coverage, title/H1/description in raw HTML, and no empty JS shell.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "Desktop and 360x800 screenshots on the home, Reels, TikTok, contact, and Arabic paths show a modal consent wall before the downloader or form can be used. On mobile it fills most of the viewport.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/reels.png",
        "evidence/tiktok.png",
        "evidence/contact.png"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "A manifest and active service worker exist, but serviceworker.js caches only six icon files and falls through to fetch() for every page without an offline response.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/manifest.json",
        "evidence/service-worker.json",
        "evidence/serviceworker.js"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "The primary URL field has no label or aria-invalid state, and the invalid submission navigation closed the inspected target without an in-place role=alert or recoverable error captured.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "The Arabic path correctly sets lang=ar and exposes hreflang links, but documentElement.dir is empty while the visible content is Arabic.",
      "pathIds": [
        "arabic-localisation"
      ],
      "artifacts": [
        "evidence/arabic.json",
        "evidence/arabic-mobile.png"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and product-surface applicability review.",
      "evidence": "No dates, prices, currencies, durations, or other locale-sensitive data appear on the sampled downloader, support, or localized pages.",
      "reason": "No dates, prices, currencies, durations, or other locale-sensitive data appear on the sampled downloader, support, or localized pages.",
      "pathIds": [
        "home-tool"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and product-surface applicability review.",
      "evidence": "No event or time-zone-sensitive data appears on the sampled site.",
      "reason": "No event or time-zone-sensitive data appears on the sampled site.",
      "pathIds": [
        "home-tool"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "Trackers evidence finds 10 third-party origins and four known tracker domains; HAR assigns 20 requests and 821,879 bytes to third parties while the consent wall is still present.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "The contact DOM shows required email and message controls with placeholders but no associated labels or aria-labels; email autocomplete is empty. The downloader URL input also has no label and autocomplete=off. The primary URL field has no label or aria-invalid state, and the invalid submission navigation closed the inspected target without an in-place role=alert or recoverable error captured.",
      "pathIds": [
        "contact-form",
        "home-tool"
      ],
      "artifacts": [
        "evidence/contact-dom.json",
        "evidence/platform-probe.json",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F18",
        "F09"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "The contact DOM shows required email and message controls with placeholders but no associated labels or aria-labels; email autocomplete is empty. The downloader URL input also has no label and autocomplete=off.",
      "pathIds": [
        "contact-form"
      ],
      "artifacts": [
        "evidence/contact-dom.json",
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and product-surface applicability review.",
      "evidence": "No checkout, subscription, authentication, or account-management flow is present.",
      "reason": "No checkout, subscription, authentication, or account-management flow is present.",
      "pathIds": [
        "home-tool"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "The images primitive found all three images without width/height and two legacy JPEGs; Lighthouse reports three deprecated API warnings from the Cloudflare challenge script.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "HAR records 930,902 transferred bytes, 821,879 third-party bytes and 805,862 script bytes. Lighthouse estimates 370 KiB unused JS and 45 KiB unused CSS.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/lighthouse.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual/DOM/objective probe mapped to this exact check.",
      "evidence": "HAR records 930,902 transferred bytes, 821,879 third-party bytes and 805,862 script bytes. Lighthouse estimates 370 KiB unused JS and 45 KiB unused CSS. Trackers evidence finds 10 third-party origins and four known tracker domains; HAR assigns 20 requests and 821,879 bytes to third parties while the consent wall is still present.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/lighthouse.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F11",
        "F15"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and product-surface applicability review.",
      "evidence": "No declared agent-facing intent was found; this public downloader does not currently present an agent integration surface.",
      "reason": "No declared agent-facing intent was found; this public downloader does not currently present an agent integration surface.",
      "pathIds": [
        "home-tool"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and product-surface applicability review.",
      "evidence": "No summarisation or inference use case is part of the downloader’s visible product intent.",
      "reason": "No summarisation or inference use case is part of the downloader’s visible product intent.",
      "pathIds": [
        "home-tool"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, network, performance, metadata, or interaction evidence selected for this check.",
      "evidence": "After ten FAQ open/close cycles, heap node count fell from 406,191 to 404,034 and self size from 21,951,073 to 21,666,809 bytes; no retained-growth signal appeared.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post.json",
        "evidence/memory-metrics.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct visual, DOM, network, performance, metadata, or interaction evidence selected for this check.",
      "evidence": "Heap summaries show about 22MB self size for this advertising-supported page, while trace reports no long tasks; judged proportionate with medium confidence.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post.json",
        "evidence/memory-metrics.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, network, performance, metadata, or interaction evidence selected for this check.",
      "evidence": "Before/after heap summaries contain no Detached* constructor rows and node/edge counts did not grow after repeated FAQ interaction.",
      "pathIds": [
        "home-tool"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post.json",
        "evidence/memory-metrics.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03",
        "F04",
        "F19"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F02"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08",
        "F06"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F10",
        "F12",
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F18",
        "F05",
        "F06"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F14",
        "F15"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F01",
        "F16",
        "F09"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F15",
        "F18",
        "F09"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F12",
        "F11",
        "F15"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "No declared agent-facing intent was found; this public downloader does not currently present an agent integration surface. No summarisation or inference use case is part of the downloader’s visible product intent."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home-tool",
      "description": "English Instagram video downloader landing page and primary one-step URL form; represents the main downloader template.",
      "url": "https://indown.io/en2",
      "conditions": [
        "initial load",
        "desktop",
        "viewport: 360x800",
        "prefers-color-scheme: light/dark",
        "prefers-reduced-motion: reduce",
        "keyboard focus",
        "invalid URL"
      ],
      "result": "issues"
    },
    {
      "id": "reels-tool",
      "description": "Instagram Reels downloader; sampled as a sibling downloader archetype and not duplicated across every near-identical Instagram route.",
      "url": "https://indown.io/reels/en",
      "conditions": [
        "initial load",
        "desktop"
      ],
      "result": "issues"
    },
    {
      "id": "tiktok-tool",
      "description": "TikTok downloader; represents the second platform-specific downloader template.",
      "url": "https://indown.io/tiktok-downloader",
      "conditions": [
        "initial load",
        "desktop"
      ],
      "result": "issues"
    },
    {
      "id": "contact-form",
      "description": "Contact form; represents the secondary form, support, and recovery surface.",
      "url": "https://indown.io/contact-us",
      "conditions": [
        "initial load",
        "form DOM inspection"
      ],
      "result": "issues"
    },
    {
      "id": "arabic-localisation",
      "description": "Arabic locale; represents the 21 linked non-English localized variants and tests language/direction metadata.",
      "url": "https://indown.io/ar",
      "conditions": [
        "viewport: 360x800",
        "RTL locale"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "high",
      "confidence": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "user-experience",
      "summary": "Consent wall obscures every primary surface on first load",
      "evidence": "Desktop and 360x800 screenshots on the home, Reels, TikTok, contact, and Arabic paths show a modal consent wall before the downloader or form can be used. On mobile it fills most of the viewport.",
      "suggestedFix": "Defer non-essential advertising until a choice, keep equal accept/reject controls, and replace the blocking first-load wall with a compact, content-preserving consent surface where legally permissible.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/reels.png",
        "evidence/tiktok.png",
        "evidence/contact.png"
      ],
      "pathId": "home-tool",
      "url": "https://indown.io/en2"
    },
    {
      "id": "F02",
      "severity": "medium",
      "confidence": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "user-experience",
      "summary": "Consent UI is a custom div dialog rather than a native dialog primitive",
      "evidence": "DOM evidence identifies .fc-consent-root containing a div role=dialog and a separate overlay; no <dialog>, popover, or details primitives exist on the page.",
      "suggestedFix": "Use a native <dialog> for the modal consent flow, with platform focus containment, Escape handling, and explicit close/reject semantics.",
      "effort": "medium",
      "artifacts": [
        "evidence/overlay-dom.json",
        "evidence/platform-probe.json"
      ],
      "pathId": "home-tool",
      "url": "https://indown.io/en2"
    },
    {
      "id": "F03",
      "severity": "medium",
      "confidence": "high",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "summary": "Theme is hard-coded dark instead of following the user color-scheme preference",
      "evidence": "Light and dark emulation screenshots retain the same dark #212529 page surface; DOM computed styles report color-scheme: dark.",
      "suggestedFix": "Declare color-scheme: light dark and drive surface/text tokens from prefers-color-scheme or light-dark(), preserving sufficient contrast in both themes.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-light.png",
        "evidence/home-dark.png",
        "evidence/home-dom.json"
      ],
      "pathId": "home-tool",
      "url": "https://indown.io/en2"
    },
    {
      "id": "F04",
      "severity": "medium",
      "confidence": "high",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "A decorative animation continues under reduced-motion",
      "evidence": "The reduced-motion probe reports a running color-change animation with 1000ms duration even though prefers-reduced-motion: reduce matches.",
      "suggestedFix": "Disable the decorative color-change animation in the reduce query, not only Bootstrap transitions.",
      "effort": "medium",
      "artifacts": [
        "evidence/preferences-motion.json"
      ],
      "pathId": "home-tool",
      "url": "https://indown.io/en2"
    },
    {
      "id": "F05",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Primary brand, tab, and heading colours fail WCAG contrast",
      "evidence": "Lighthouse reports contrast ratios of 2.22:1 to 2.69:1 for the brand, active tabs, H1, and H2 text against dark surfaces, below required 3:1 or 4.5:1 thresholds.",
      "suggestedFix": "Replace the dark blue/purple text token with a lighter accessible token and verify normal and large text in all theme states.",
      "effort": "medium",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "pathId": "home-tool",
      "url": "https://indown.io/en2"
    },
    {
      "id": "F06",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Keyboard focus and target sizing are inconsistent, and heading order skips levels",
      "evidence": "The focus probe shows the navbar toggle, URL input, search button, and FAQ buttons with outline none while focused; many navigation targets are 20-40px tall. Lighthouse also reports an invalid H2-to-H4 heading order.",
      "suggestedFix": "Add a high-contrast :focus-visible style, keep 44px target sizing/spacing, and correct the heading hierarchy without using heading ranks for styling.",
      "effort": "medium",
      "artifacts": [
        "evidence/focus-targets.json",
        "evidence/lighthouse.json"
      ],
      "pathId": "home-tool",
      "url": "https://indown.io/en2"
    },
    {
      "id": "F07",
      "severity": "low",
      "confidence": "high",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "guidanceCategory": "user-experience",
      "summary": "Route and state changes lack authored transition/attention cues",
      "evidence": "The platform probe found no authored transition components, anchor positioning, or scroll timelines; navigation is conventional full-document links and the sampled FAQ/menu state uses Bootstrap-style abrupt state changes.",
      "suggestedFix": "Progressively enhance route and meaningful state changes with same/cross-document View Transitions and preserve reduced-motion fallbacks.",
      "effort": "small",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/resource-dom.json"
      ],
      "pathId": "home-tool",
      "url": "https://indown.io/en2"
    },
    {
      "id": "F08",
      "severity": "low",
      "confidence": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "css",
      "summary": "Reusable downloader components rely only on viewport layout",
      "evidence": "CSSOM probing found zero CSSContainerRule entries even though the downloader/form/navigation components recur across templates.",
      "suggestedFix": "Give reusable tool panels a containment context and use @container for local adaptations, retaining viewport rules as fallback.",
      "effort": "small",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "pathId": "home-tool",
      "url": "https://indown.io/en2"
    },
    {
      "id": "F09",
      "severity": "medium",
      "confidence": "high",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-system-state-and-recovery",
      "guidanceId": "accessible-error-announcement",
      "guidanceCategory": "accessibility",
      "summary": "Downloader failure and recovery states are not exposed accessibly",
      "evidence": "The primary URL field has no label or aria-invalid state, and the invalid submission navigation closed the inspected target without an in-place role=alert or recoverable error captured.",
      "suggestedFix": "Validate after interaction, keep the user on the form, announce a specific error in a live region, preserve the entered URL, and provide retry guidance.",
      "effort": "medium",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/home-dom.json"
      ],
      "pathId": "home-tool",
      "url": "https://indown.io/en2"
    },
    {
      "id": "F10",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "summary": "Largest content paint and layout stability miss the good range",
      "evidence": "Lighthouse measured LCP 7.1s and CLS 0.225; the mobile layout primitive independently observed CLS 0.205. TBT remained low at 100ms.",
      "suggestedFix": "Prioritize the real LCP content, reserve space for consent/ad/image regions, and prevent late UI insertion from shifting the page.",
      "effort": "medium",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-layout-mobile.json",
        "evidence/home-trace-summary.json"
      ],
      "pathId": "home-tool",
      "url": "https://indown.io/en2"
    },
    {
      "id": "F11",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "summary": "Third-party advertising and analytics dominate bytes and unused code",
      "evidence": "HAR records 930,902 transferred bytes, 821,879 third-party bytes and 805,862 script bytes. Lighthouse estimates 370 KiB unused JS and 45 KiB unused CSS.",
      "suggestedFix": "Load advertising/analytics only after consent and when an ad slot is near use, remove duplicate UA/GA4 payloads, subset font CSS, and split page-specific CSS/JS.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/lighthouse.json",
        "evidence/trackers.json"
      ],
      "pathId": "home-tool",
      "url": "https://indown.io/en2"
    },
    {
      "id": "F12",
      "severity": "medium",
      "confidence": "high",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "summary": "Images lack dimensions and third-party code uses deprecated APIs",
      "evidence": "The images primitive found all three images without width/height and two legacy JPEGs; Lighthouse reports three deprecated API warnings from the Cloudflare challenge script.",
      "suggestedFix": "Add intrinsic dimensions/aspect-ratio and responsive modern image sources; update or reconfigure the third-party challenge integration to remove deprecated API use.",
      "effort": "medium",
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse.json"
      ],
      "pathId": "home-tool",
      "url": "https://indown.io/en2"
    },
    {
      "id": "F13",
      "severity": "low",
      "confidence": "high",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "Rich entity and social-preview metadata are absent",
      "evidence": "The metadata probe found no JSON-LD, Open Graph, or Twitter card tags on the public downloader page, despite a canonical URL and rich tool/organization content.",
      "suggestedFix": "Add accurate Organization/WebSite/WebApplication JSON-LD plus Open Graph and Twitter preview tags that match visible content.",
      "effort": "small",
      "artifacts": [
        "evidence/seo-social.json"
      ],
      "pathId": "home-tool",
      "url": "https://indown.io/en2"
    },
    {
      "id": "F14",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "summary": "Security headers and cookie attributes are incomplete",
      "evidence": "Headers evidence shows no CSP or HSTS, and no Referrer-Policy or Permissions-Policy. Cookie evidence reports six non-Secure analytics/consent cookies and SameSite=None usage.",
      "suggestedFix": "Deploy an enforcing CSP, HSTS, strict referrer and permissions policies; mark all HTTPS cookies Secure and use Lax/Strict unless cross-site use is essential.",
      "effort": "medium",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "pathId": "home-tool",
      "url": "https://indown.io/en2"
    },
    {
      "id": "F15",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "summary": "Tracking starts with a broad third-party footprint before a consent choice",
      "evidence": "Trackers evidence finds 10 third-party origins and four known tracker domains; HAR assigns 20 requests and 821,879 bytes to third parties while the consent wall is still present.",
      "suggestedFix": "Block analytics and advertising requests before affirmative consent, minimise vendors and event collection, and batch only necessary measurements.",
      "effort": "medium",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "pathId": "home-tool",
      "url": "https://indown.io/en2"
    },
    {
      "id": "F16",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-resilient",
      "principleCheckId": "offline-and-installable",
      "guidanceId": "stabilize-reactive-state",
      "guidanceCategory": "performance",
      "summary": "Installed PWA has no offline fallback for core pages",
      "evidence": "A manifest and active service worker exist, but serviceworker.js caches only six icon files and falls through to fetch() for every page without an offline response.",
      "suggestedFix": "Precache an offline fallback page and core shell/content; handle navigation fetch failures explicitly while keeping network-first freshness where needed.",
      "effort": "medium",
      "artifacts": [
        "evidence/manifest.json",
        "evidence/service-worker.json",
        "evidence/serviceworker.js"
      ],
      "pathId": "home-tool",
      "url": "https://indown.io/en2"
    },
    {
      "id": "F17",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "guidanceCategory": "internationalization",
      "summary": "Arabic pages omit RTL direction metadata",
      "evidence": "The Arabic path correctly sets lang=ar and exposes hreflang links, but documentElement.dir is empty while the visible content is Arabic.",
      "suggestedFix": "Set dir=rtl on Arabic documents and migrate layout spacing/alignment to logical properties; regression-test mixed-direction URLs and numbers.",
      "effort": "medium",
      "artifacts": [
        "evidence/arabic.json",
        "evidence/arabic-mobile.png"
      ],
      "pathId": "arabic-localisation",
      "url": "https://indown.io/ar"
    },
    {
      "id": "F18",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-trustworthy",
      "principleCheckId": "humane-error-handling",
      "guidanceId": "validate-input-after-interaction",
      "guidanceCategory": "forms",
      "summary": "Forms depend on placeholders and omit durable labels/autocomplete assistance",
      "evidence": "The contact DOM shows required email and message controls with placeholders but no associated labels or aria-labels; email autocomplete is empty. The downloader URL input also has no label and autocomplete=off.",
      "suggestedFix": "Add visible labels and appropriate autocomplete tokens (email, url where useful), then provide post-interaction, accessible required-field feedback.",
      "effort": "medium",
      "artifacts": [
        "evidence/contact-dom.json",
        "evidence/platform-probe.json"
      ],
      "pathId": "contact-form",
      "url": "https://indown.io/contact-us"
    },
    {
      "id": "F19",
      "severity": "medium",
      "confidence": "high",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-contrast",
      "guidanceId": "adapt-scrollbar-to-contrast-preferences",
      "guidanceCategory": "accessibility",
      "summary": "The fixed theme has no high-contrast adaptation and already loses essential contrast",
      "evidence": "CSS evidence contains reduced-motion rules but no prefers-contrast or forced-colors adaptation, while Lighthouse directly identifies essential tabs, headings, and brand text at only 2.22:1 to 2.69:1.",
      "suggestedFix": "Add forced-colors and prefers-contrast adaptations for essential controls and text, use system colors where appropriate, and verify custom scrollbars and focus indicators remain visible.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/lighthouse.json"
      ],
      "pathId": "home-tool",
      "url": "https://indown.io/en2"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Stop advertising and analytics before affirmative consent; reduce the vendor/script footprint",
      "priority": 1,
      "findingIds": [
        "F01",
        "F11",
        "F15"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Fix LCP and CLS by reserving late content and prioritising the actual main content",
      "priority": 2,
      "findingIds": [
        "F10",
        "F12"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Repair contrast, focus-visible, target sizing, heading structure, and durable form labels",
      "priority": 3,
      "findingIds": [
        "F05",
        "F06",
        "F18"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Deploy CSP/HSTS/policy headers and correct cookie security attributes",
      "priority": 4,
      "findingIds": [
        "F14"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Make Arabic truly RTL with dir and logical layout properties",
      "priority": 5,
      "findingIds": [
        "F17"
      ],
      "guidanceId": "translator",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Add recoverable, announced downloader and form error states",
      "priority": 6,
      "findingIds": [
        "F09",
        "F18"
      ],
      "guidanceId": "validate-input-after-interaction",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Respect light/dark, reduced-motion, and high-contrast user preferences",
      "priority": 7,
      "findingIds": [
        "F03",
        "F04",
        "F19"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Add a real offline fallback to the installed PWA",
      "priority": 8,
      "findingIds": [
        "F16"
      ],
      "guidanceId": "stabilize-reactive-state",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Modernise images and remove deprecated/unused assets",
      "priority": 9,
      "findingIds": [
        "F11",
        "F12"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Add structured data and social preview metadata",
      "priority": 10,
      "findingIds": [
        "F13"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Progressively enhance route/state navigation and component responsiveness",
      "priority": 11,
      "findingIds": [
        "F07",
        "F08"
      ],
      "guidanceId": "same-document-transitions",
      "status": "open"
    },
    {
      "id": "T12",
      "title": "Use a native semantic dialog and reduce consent-wall obstruction",
      "priority": 12,
      "findingIds": [
        "F01",
        "F02"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 5,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-20T16-51-44-351Z"
}
