{
  "url": "https://pogoda.interia.pl",
  "auditedAt": "2026-07-18T19:44:01.282Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete model audit of six representative paths. Excluded: individual region/city duplicates, every news article, ski and world detail pages, and authenticated Interia surfaces because sampled templates represent their shared origin-level behavior.",
  "page": {
    "appType": "mpa",
    "framework": "Server-rendered multi-page site with legacy jQuery/RequireJS and third-party modules",
    "notes": "Public Polish weather portal with forecast, listing, news, and air-quality templates."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "layout-metrics",
    "evaluate-probe",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "images",
    "secrets",
    "lighthouse",
    "heap-summary",
    "robots-and-sitemap"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "light-dismiss-a-dialog",
    "declarative-dialog-popover-control",
    "fluid-scaling",
    "size-aware-styling",
    "improve-text-layout-and-legibility",
    "forms",
    "identify-inp-causes",
    "performance",
    "optimize-image-priority",
    "identify-heavy-scripts",
    "security",
    "privacy",
    "flicker-free-client-side-ab-testing",
    "translator",
    "support-global-calendar-systems",
    "search-hidden-content",
    "deliver-optimized-decorative-images",
    "deprioritize-background-fetches",
    "webmcp",
    "language-model",
    "manage-recurring-intervals",
    "scroll-progress-indicator",
    "html",
    "css"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "Homepage first-visit desktop state.",
      "condition": "1440x1000",
      "findingIds": [
        "F02",
        "F03",
        "F06",
        "F22"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "Homepage first-visit mobile state.",
      "condition": "360x800",
      "findingIds": [
        "F02",
        "F03",
        "F04",
        "F06",
        "F11",
        "F22"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark-reduced.png",
      "caption": "Homepage under dark and reduced-motion preferences.",
      "condition": "prefers-color-scheme: dark; prefers-reduced-motion: reduce",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "Mobile overflow, CLS and long-task observations.",
      "condition": "360x800",
      "findingIds": [
        "F04"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "Rendered homepage DOM and styles."
    },
    {
      "type": "other",
      "path": "evidence/page-probe.json",
      "caption": "Metadata, headings, links, controls, forms and feature probe.",
      "condition": [
        "F01",
        "F03",
        "F06",
        "F14",
        "F22"
      ]
    },
    {
      "type": "other",
      "path": "evidence/platform-probe.json",
      "caption": "Manifest, service-worker, viewport and CSS-feature probe.",
      "condition": [
        "F01",
        "F04",
        "F05",
        "F18"
      ]
    },
    {
      "type": "other",
      "path": "evidence/a11y-probe.json",
      "caption": "Focus, labels, targets and landmarks probe.",
      "condition": [
        "F06",
        "F09",
        "F11"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "Full Lighthouse JSON.",
      "condition": "mobile",
      "findingIds": [
        "F04",
        "F07",
        "F08",
        "F09",
        "F10",
        "F11",
        "F12",
        "F13",
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-summary.json",
      "caption": "Compact Lighthouse scores and failed audits.",
      "condition": "mobile",
      "findingIds": [
        "F07",
        "F08",
        "F09",
        "F10",
        "F12",
        "F14"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "DevTools performance trace.",
      "condition": "load",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "Trace timing and long-task summary.",
      "condition": "load",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "HAR 1.2 network capture.",
      "condition": "load",
      "findingIds": [
        "F08"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "Network totals, third parties, blocking candidates and weight offenders.",
      "condition": "load",
      "findingIds": [
        "F08",
        "F16",
        "F19",
        "F20"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "Raw HTML versus rendered content comparison.",
      "condition": "JavaScript disabled crawler",
      "findingIds": [
        "F14",
        "F17"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "Crawler view with JavaScript disabled.",
      "condition": "JavaScript disabled",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "Rendered browser view paired with crawler view.",
      "condition": "JavaScript enabled",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "Security response-header inspection.",
      "condition": [
        "F15"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "Cookie security and lifetime inspection.",
      "condition": [
        "F15",
        "F16"
      ]
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "Third-party and known-tracker enumeration.",
      "condition": [
        "F16",
        "F19"
      ]
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "Image dimensions, formats, lazy loading and alt inspection.",
      "condition": [
        "F09",
        "F13",
        "F19"
      ]
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "Client-visible secret scan; zero findings."
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "Baseline readable heap summary.",
      "condition": [
        "F20"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-interaction.json",
      "caption": "Heap summary after ten consent-settings cycles.",
      "condition": [
        "F20"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/polska-desktop.png",
      "caption": "Country forecast listing first-visit state.",
      "condition": "1440x1000",
      "findingIds": [
        "F02",
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/warsaw-detail-mobile.png",
      "caption": "Detailed Warsaw forecast first-visit state.",
      "condition": "360x800",
      "findingIds": [
        "F02",
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/news-desktop.png",
      "caption": "News listing first-visit state.",
      "condition": "1440x1000",
      "findingIds": [
        "F02",
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/air-mobile.png",
      "caption": "Air quality first-visit state.",
      "condition": "360x800",
      "findingIds": [
        "F02",
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/error-mobile.png",
      "caption": "404 recovery state.",
      "condition": "360x800"
    },
    {
      "type": "other",
      "path": "evidence/error-probe.json",
      "caption": "404 title, message, and recovery-link probe."
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots.txt response."
    },
    {
      "type": "other",
      "path": "evidence/sitemap-index.xml",
      "caption": "Sitemap index excerpt."
    },
    {
      "type": "other",
      "path": "evidence/guidance-retrieved.md",
      "caption": "Retrieved Modern Web Guidance used to set the audit bar."
    },
    {
      "type": "other",
      "path": "evidence/guidance-searches.txt",
      "caption": "Guidance searches used for unmapped observations."
    }
  ],
  "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": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F01: The dark/reduced-motion screenshot remains a hard-coded white surface; the platform probe reports colorScheme \"normal\" and body background rgb(255,255,255).",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark-reduced.png",
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "Direct representative-path screenshot, DOM/evaluate, or objective evidence review.",
      "evidence": "Emulated reduced-motion capture and getAnimations() probe found zero active animations; no auto-advance motion persisted.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark-reduced.png",
        "evidence/page-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F10: Lighthouse found 44 contrast failures, including 2.61:1 “Powered by”, 4.02:1 9px weather labels, and 2.64:1 air-quality values.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "medium",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F21: The desktop/mobile captures show static header chrome on a 7,505px page; CSS inspection found scroll-timeline rules but no evidence of scroll-state-aware header/navigation cues.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "pass",
      "confidence": "high",
      "method": "Direct representative-path screenshot, DOM/evaluate, or objective evidence review.",
      "evidence": "Stylesheet probe found scroll-timeline/animation-timeline use, and trace showed only one 52ms long task rather than scroll-event-driven blocking.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "Direct representative-path screenshot, DOM/evaluate, or objective evidence review.",
      "evidence": "Representative screenshots/DOM show button/link navigation and no custom swipe/pull gesture surface that fights native scrolling.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "medium",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F21: The desktop/mobile captures show static header chrome on a 7,505px page; CSS inspection found scroll-timeline rules but no evidence of scroll-state-aware header/navigation cues.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-flow applicability judgement.",
      "evidence": "No tooltip or edge-anchored transient menu was present on the representative paths, so there is no anchored surface to position.",
      "reason": "No tooltip or edge-anchored transient menu was present on the representative paths, so there is no anchored surface to position."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Direct representative-path screenshot, DOM/evaluate, or objective evidence review.",
      "evidence": "Listing screenshots show active navigation state, breadcrumbs, labelled forecast tabs, and clear destination links.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/polska-desktop.png",
        "evidence/news-desktop.png",
        "evidence/page-probe.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F02: Desktop and mobile screenshots show a large modal covering nearly all weather content before interaction; on mobile the disclosure itself is clipped into a scroll area.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/polska-desktop.png",
        "evidence/warsaw-detail-mobile.png",
        "evidence/news-desktop.png",
        "evidence/air-mobile.png"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F22: DOM inspection reports zero dialog and popover elements while screenshots show a modal, focus-blocking consent surface.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/page-probe.json",
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F02: Desktop and mobile screenshots show a large modal covering nearly all weather content before interaction; on mobile the disclosure itself is clipped into a scroll area.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/polska-desktop.png",
        "evidence/warsaw-detail-mobile.png",
        "evidence/news-desktop.png",
        "evidence/air-mobile.png"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F04: Layout reports 10px horizontal overflow at 360px. The viewport is initial-scale=1, maximum-scale=1, user-scalable=no, and Lighthouse fails the zoom audit.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json",
        "evidence/platform-probe.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "medium",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F05: The live stylesheet probe found no @container rules, while the same forecast/navigation components are reused in wide and narrow shells.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F11: There is no H1 and no main landmark; the viewport disables pinch zoom. The a11y probe found many visible links only 13–19px high.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/page-probe.json",
        "evidence/a11y-probe.json",
        "evidence/platform-probe.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F06: All five core templates are covered by the consent wall. The DOM probe finds two text inputs named q without labels and no H1 on the homepage.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/page-probe.json",
        "evidence/a11y-probe.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F06: All five core templates are covered by the consent wall. The DOM probe finds two text inputs named q without labels and no H1 on the homepage.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/page-probe.json",
        "evidence/a11y-probe.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Direct representative-path screenshot, DOM/evaluate, or objective evidence review.",
      "evidence": "The exercised invalid route renders a Polish “Strona nie została odnaleziona” state and a visible recovery action.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/error-mobile.png",
        "evidence/error-probe.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F07: Lighthouse measured LCP 6.9s and Time to Interactive 10.9s (performance 0.74); the separate trace measured LCP 2.95s, showing condition-sensitive but material load risk.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json",
        "evidence/home-trace.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Direct representative-path screenshot, DOM/evaluate, or objective evidence review.",
      "evidence": "Mobile layout observer measured CLS 0 with no shifts; Lighthouse measured CLS 0.003.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "Direct representative-path screenshot, DOM/evaluate, or objective evidence review.",
      "evidence": "Trace recorded one 52.35ms long task and 2.35ms TBT; Lighthouse TBT was 57ms, both indicating a responsive main thread after load.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F08: HAR captured 126 requests/1.12MB, 56 scripts/663KB, and multiple parser-inserted stylesheets; Lighthouse estimates 560ms render-blocking savings, 354KiB unused JS, 57KiB unused CSS, plus legacy/duplicate JS.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F08: HAR captured 126 requests/1.12MB, 56 scripts/663KB, and multiple parser-inserted stylesheets; Lighthouse estimates 560ms render-blocking savings, 354KiB unused JS, 57KiB unused CSS, plus legacy/duplicate JS.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F09: Lighthouse reports an unnamed video button, three unnamed links, and one image without alt; the custom probe finds six empty links, unlabelled search inputs, and no main landmark.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json",
        "evidence/a11y-probe.json",
        "evidence/images.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F10: Lighthouse found 44 contrast failures, including 2.61:1 “Powered by”, 4.02:1 9px weather labels, and 2.64:1 air-quality values.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F11: There is no H1 and no main landmark; the viewport disables pinch zoom. The a11y probe found many visible links only 13–19px high.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/page-probe.json",
        "evidence/a11y-probe.json",
        "evidence/platform-probe.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F10: Lighthouse found 44 contrast failures, including 2.61:1 “Powered by”, 4.02:1 9px weather labels, and 2.64:1 air-quality values.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F11: There is no H1 and no main landmark; the viewport disables pinch zoom. The a11y probe found many visible links only 13–19px high.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/page-probe.json",
        "evidence/a11y-probe.json",
        "evidence/platform-probe.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F12: Lighthouse reports an uncaught TypeError in inpl.tiled-mixer-injection.js and cookie Inspector issues; best-practices score is 0.73.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F13: The images primitive finds 14/17 images without dimensions, 13 below-fold images not lazy-loaded, 13 without srcset, 14 legacy-format assets, and two missing alt values.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F12: Lighthouse reports an uncaught TypeError in inpl.tiled-mixer-injection.js and cookie Inspector issues; best-practices score is 0.73.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F14: The homepage has a descriptive title but no meta description, no H1, no JSON-LD, and only og:site_name; Lighthouse SEO is 0.85 and flags two non-crawlable anchors.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/page-probe.json",
        "evidence/home-discoverability.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F14: The homepage has a descriptive title but no meta description, no H1, no JSON-LD, and only og:site_name; Lighthouse SEO is 0.85 and flags two non-crawlable anchors. F04: Layout reports 10px horizontal overflow at 360px. The viewport is initial-scale=1, maximum-scale=1, user-scalable=no, and Lighthouse fails the zoom audit.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/page-probe.json",
        "evidence/home-discoverability.json",
        "evidence/lighthouse.json",
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json",
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F14",
        "F04"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "Direct representative-path screenshot, DOM/evaluate, or objective evidence review.",
      "evidence": "Fetch returned 200; live DOM exposes canonical https://pogoda.interia.pl/, robots index/follow, and robots.txt points to a working sitemap index.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/page-probe.json",
        "evidence/robots.txt",
        "evidence/sitemap-index.xml"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F14: The homepage has a descriptive title but no meta description, no H1, no JSON-LD, and only og:site_name; Lighthouse SEO is 0.85 and flags two non-crawlable anchors.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/page-probe.json",
        "evidence/home-discoverability.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F15: Headers are missing HSTS, X-Content-Type-Options, Referrer-Policy, and Permissions-Policy. Ten cookies were observed; six lack Secure and all use SameSite=None, many for about 400 days.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F16: Tracker evidence found 18 third-party origins and known Google Tag Manager/DoubleClick trackers. HAR attributes 80 requests and 723KB to third parties, including analytics and ad SDKs.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "pass",
      "confidence": "high",
      "method": "Direct representative-path screenshot, DOM/evaluate, or objective evidence review.",
      "evidence": "No geolocation/notification prompt appeared on load across repeated sessions; authentication is not part of this weather origin’s representative flow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/page-probe.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F15: Headers are missing HSTS, X-Content-Type-Options, Referrer-Policy, and Permissions-Policy. Ten cookies were observed; six lack Secure and all use SameSite=None, many for about 400 days.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F17: Discoverability measured 41% raw/rendered word coverage. It is not an empty shell, but raw HTML lacks the rendered H1/description signals and omits most content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/home-discoverability-crawler.png",
        "evidence/home-discoverability-rendered.png",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "Direct representative-path screenshot, DOM/evaluate, or objective evidence review.",
      "evidence": "Menus/content rendered on all five templates at desktop/mobile sizes; the consent surface remained operable with persistent actions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/polska-desktop.png",
        "evidence/warsaw-detail-mobile.png",
        "evidence/news-desktop.png",
        "evidence/air-mobile.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F18: A valid standalone manifest is linked, but navigator.serviceWorker.getRegistrations() returned an empty list; the app-like weather experience has no observed offline fallback.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Direct representative-path screenshot, DOM/evaluate, or objective evidence review.",
      "evidence": "The invalid-route exercise produced a clear 404 title, explanatory text, and recovery link rather than a blank shell.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/error-mobile.png",
        "evidence/error-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "Direct representative-path screenshot, DOM/evaluate, or objective evidence review.",
      "evidence": "The rendered document correctly declares lang=pl and Polish reading order/content on all inspected pages; no RTL variant is offered.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/page-probe.json",
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "Direct representative-path screenshot, DOM/evaluate, or objective evidence review.",
      "evidence": "Rendered weather dates/day names and numeric readings are consistently localised in Polish on the representative forecast surfaces.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/warsaw-detail-mobile.png"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "pass",
      "confidence": "high",
      "method": "Direct representative-path screenshot, DOM/evaluate, or objective evidence review.",
      "evidence": "Observed forecast times are presented in each city forecast context; no cross-zone event scheduling or ambiguous stored timestamp flow is exposed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/warsaw-detail-mobile.png",
        "evidence/page-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F03: The copy says users can choose “Przypomnij później”, but captured consent surfaces show only “Ustawienia prywatności” and the prominent “Przejdź do serwisu”; the DOM uses a custom overlay rather than dialog.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/page-probe.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-flow applicability judgement.",
      "evidence": "No data-entry or submission form beyond location search is part of the audited weather journey, so invalid-submission feedback is not applicable.",
      "reason": "No data-entry or submission form beyond location search is part of the audited weather journey, so invalid-submission feedback is not applicable."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F09: Lighthouse reports an unnamed video button, three unnamed links, and one image without alt; the custom probe finds six empty links, unlabelled search inputs, and no main landmark.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json",
        "evidence/a11y-probe.json",
        "evidence/images.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-flow applicability judgement.",
      "evidence": "No checkout, subscription, authentication, or account-management flow exists on the audited weather origin.",
      "reason": "No checkout, subscription, authentication, or account-management flow exists on the audited weather origin."
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F13: The images primitive finds 14/17 images without dimensions, 13 below-fold images not lazy-loaded, 13 without srcset, 14 legacy-format assets, and two missing alt values. F19: HAR records 723KB third-party bytes of 1.12MB total; 56 scripts dominate transfer. Images lack srcset/lazy loading and mostly use legacy formats.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse.json",
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F13",
        "F19"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F16: Tracker evidence found 18 third-party origins and known Google Tag Manager/DoubleClick trackers. HAR attributes 80 requests and 723KB to third parties, including analytics and ad SDKs. F19: HAR records 723KB third-party bytes of 1.12MB total; 56 scripts dominate transfer. Images lack srcset/lazy loading and mostly use legacy formats.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/cookies.json",
        "evidence/images.json"
      ],
      "findingIds": [
        "F16",
        "F19"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F19: HAR records 723KB third-party bytes of 1.12MB total; 56 scripts dominate transfer. Images lack srcset/lazy loading and mostly use legacy formats.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json",
        "evidence/images.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-flow applicability judgement.",
      "evidence": "Emerging agent-facing capabilities are not declared as site intent; absence is an opportunity, not a failure.",
      "reason": "Emerging agent-facing capabilities are not declared as site intent; absence is an opportunity, not a failure."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-flow applicability judgement.",
      "evidence": "No user task on the audited weather pages requires on-device language-model or summarisation inference.",
      "reason": "No user task on the audited weather pages requires on-device language-model or summarisation inference."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "issues",
      "confidence": "medium",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F20: Baseline heap contains 420,121 nodes and 21.72MB self size. After ten consent-settings cycles the independent post snapshot contains 438,160 nodes and 22.70MB, including closures rising 15,936→16,740; this is a medium-confidence retained-growth signal.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-interaction.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "medium",
      "method": "Cross-path screenshot, rendered DOM/evaluate probes, and relevant objective audit artifacts.",
      "evidence": "F20: Baseline heap contains 420,121 nodes and 21.72MB self size. After ten consent-settings cycles the independent post snapshot contains 438,160 nodes and 22.70MB, including closures rising 15,936→16,740; this is a medium-confidence retained-growth signal.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-interaction.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "Direct representative-path screenshot, DOM/evaluate, or objective evidence review.",
      "evidence": "Heap summaries list no Detached* constructor among retained top constructors before or after the repeated interaction; closure growth is separately reported under F20.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-interaction.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F10"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F02",
        "F22"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04",
        "F05",
        "F11"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F07",
        "F08"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F09",
        "F10",
        "F11"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F12",
        "F13"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F14",
        "F04"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F15",
        "F16"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F17",
        "F18"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03",
        "F09"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F13",
        "F19",
        "F16"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "Emerging agent-facing capabilities are not declared as site intent; absence is an opportunity, not a failure. No user task on the audited weather pages requires on-device language-model or summarisation inference."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F20"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and primary weather lookup surface; audited on desktop, mobile, dark/reduced-motion, crawler, performance, privacy, accessibility, and memory conditions.",
      "url": "https://pogoda.interia.pl/",
      "conditions": [
        "1440x1000",
        "360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "JavaScript disabled crawler",
        "keyboard focus"
      ],
      "result": "issues"
    },
    {
      "id": "polska",
      "description": "Country forecast listing archetype; represents regional and national forecast listings.",
      "url": "https://pogoda.interia.pl/polska",
      "conditions": [
        "1440x1000",
        "first visit consent state"
      ],
      "result": "issues"
    },
    {
      "id": "warsaw-detail",
      "description": "Detailed city forecast archetype and primary forecast journey.",
      "url": "https://pogoda.interia.pl/prognoza-szczegolowa-warszawa,cId,36917",
      "conditions": [
        "360x800",
        "first visit consent state"
      ],
      "result": "issues"
    },
    {
      "id": "news",
      "description": "Weather-news listing/content archetype.",
      "url": "https://pogoda.interia.pl/wiadomosci",
      "conditions": [
        "1440x1000",
        "first visit consent state"
      ],
      "result": "issues"
    },
    {
      "id": "air",
      "description": "Air-quality data surface, a distinct data template.",
      "url": "https://pogoda.interia.pl/jakosc-powietrza",
      "conditions": [
        "360x800",
        "first visit consent state"
      ],
      "result": "issues"
    },
    {
      "id": "error",
      "description": "Invalid route used to inspect the HTTP/error recovery state.",
      "url": "https://pogoda.interia.pl/this-page-should-not-exist-web-uplift",
      "conditions": [
        "360x800"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "medium",
      "confidence": "high",
      "summary": "System dark-mode preference is ignored.",
      "evidence": "The dark/reduced-motion screenshot remains a hard-coded white surface; the platform probe reports colorScheme \"normal\" and body background rgb(255,255,255).",
      "artifacts": [
        "evidence/home-dark-reduced.png",
        "evidence/platform-probe.json"
      ],
      "suggestedFix": "Declare color-scheme and retint surfaces and controls with prefers-color-scheme or light-dark().",
      "effort": "medium",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience"
    },
    {
      "id": "F02",
      "severity": "high",
      "confidence": "high",
      "summary": "The first-visit consent wall obscures the primary content on every representative template.",
      "evidence": "Desktop and mobile screenshots show a large modal covering nearly all weather content before interaction; on mobile the disclosure itself is clipped into a scroll area.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/polska-desktop.png",
        "evidence/warsaw-detail-mobile.png",
        "evidence/news-desktop.png",
        "evidence/air-mobile.png"
      ],
      "suggestedFix": "Replace the blocking first-load wall with a compact, content-first consent surface and preserve an equally prominent reject/defer path.",
      "effort": "large",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience"
    },
    {
      "id": "F03",
      "severity": "high",
      "confidence": "high",
      "summary": "Consent choices are asymmetric and the advertised defer option is not visibly available.",
      "evidence": "The copy says users can choose “Przypomnij później”, but captured consent surfaces show only “Ustawienia prywatności” and the prominent “Przejdź do serwisu”; the DOM uses a custom overlay rather than dialog.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/page-probe.json"
      ],
      "suggestedFix": "Present accept, reject, and defer choices with equal prominence, truthful labels, and easy reversal; avoid consent through a generic “enter service” action.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy"
    },
    {
      "id": "F04",
      "severity": "medium",
      "confidence": "high",
      "summary": "Mobile reflow and zoom support are restricted.",
      "evidence": "Layout reports 10px horizontal overflow at 360px. The viewport is initial-scale=1, maximum-scale=1, user-scalable=no, and Lighthouse fails the zoom audit.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json",
        "evidence/platform-probe.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Remove user-scalable=no/maximum-scale, fix the overflowing element with intrinsic sizing, and test reflow at 320–360px and 200% zoom.",
      "effort": "small",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "user-experience"
    },
    {
      "id": "F05",
      "severity": "low",
      "confidence": "medium",
      "summary": "Reusable components depend on viewport-era CSS rather than container adaptation.",
      "evidence": "The live stylesheet probe found no @container rules, while the same forecast/navigation components are reused in wide and narrow shells.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Give reusable forecast cards/navigation a containment context and adapt them with size-aware container queries, retaining a fallback.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "user-experience"
    },
    {
      "id": "F06",
      "severity": "high",
      "confidence": "high",
      "summary": "Primary weather lookup is delayed behind consent and its search controls are not self-explanatory.",
      "evidence": "All five core templates are covered by the consent wall. The DOM probe finds two text inputs named q without labels and no H1 on the homepage.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/page-probe.json",
        "evidence/a11y-probe.json"
      ],
      "suggestedFix": "Keep current conditions and location search available immediately, add a clear H1 and labelled search, then defer optional consent-dependent services.",
      "effort": "large",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "support-core-task-success",
      "principleCheckId": "primary-flow-completion",
      "guidanceId": "forms",
      "guidanceCategory": "forms"
    },
    {
      "id": "F07",
      "severity": "high",
      "confidence": "high",
      "summary": "Largest Contentful Paint is slow on the mobile Lighthouse profile.",
      "evidence": "Lighthouse measured LCP 6.9s and Time to Interactive 10.9s (performance 0.74); the separate trace measured LCP 2.95s, showing condition-sensitive but material load risk.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json",
        "evidence/home-trace.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Prioritise the actual LCP resource, delay ad/analytics work, and verify LCP under a representative mobile/network profile.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance"
    },
    {
      "id": "F08",
      "severity": "medium",
      "confidence": "high",
      "summary": "Resource delivery ships avoidable render-blocking and unused code.",
      "evidence": "HAR captured 126 requests/1.12MB, 56 scripts/663KB, and multiple parser-inserted stylesheets; Lighthouse estimates 560ms render-blocking savings, 354KiB unused JS, 57KiB unused CSS, plus legacy/duplicate JS.",
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Reduce and conditionally load JavaScript/CSS, defer non-critical third parties, and shorten the critical CSS/resource chain.",
      "effort": "large",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance"
    },
    {
      "id": "F09",
      "severity": "high",
      "confidence": "high",
      "summary": "Controls and media lack accessible names.",
      "evidence": "Lighthouse reports an unnamed video button, three unnamed links, and one image without alt; the custom probe finds six empty links, unlabelled search inputs, and no main landmark.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json",
        "evidence/a11y-probe.json",
        "evidence/images.json"
      ],
      "suggestedFix": "Add semantic names/labels and alt text, remove empty focusable links, and expose page content through a main landmark.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility"
    },
    {
      "id": "F10",
      "severity": "high",
      "confidence": "high",
      "summary": "Text and essential weather indicators fail contrast requirements.",
      "evidence": "Lighthouse found 44 contrast failures, including 2.61:1 “Powered by”, 4.02:1 9px weather labels, and 2.64:1 air-quality values.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Adjust foreground/background tokens to WCAG contrast minimums and test all weather-state colors, focus states, and consent text.",
      "effort": "small",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility"
    },
    {
      "id": "F11",
      "severity": "high",
      "confidence": "high",
      "summary": "Document structure and user scaling are inaccessible.",
      "evidence": "There is no H1 and no main landmark; the viewport disables pinch zoom. The a11y probe found many visible links only 13–19px high.",
      "artifacts": [
        "evidence/page-probe.json",
        "evidence/a11y-probe.json",
        "evidence/platform-probe.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Add one descriptive H1 and main landmark, enable zoom, preserve logical focus order, and enlarge touch targets to at least a comfortable 24–44 CSS px target area.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility"
    },
    {
      "id": "F12",
      "severity": "medium",
      "confidence": "high",
      "summary": "The page logs a production JavaScript exception and browser issues.",
      "evidence": "Lighthouse reports an uncaught TypeError in inpl.tiled-mixer-injection.js and cookie Inspector issues; best-practices score is 0.73.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Fix the null dereference, add regression coverage for injection timing, and resolve remaining DevTools Issues before release.",
      "effort": "small",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "html",
      "guidanceCategory": "html"
    },
    {
      "id": "F13",
      "severity": "medium",
      "confidence": "high",
      "summary": "Image markup is not dimensioned or efficiently responsive.",
      "evidence": "The images primitive finds 14/17 images without dimensions, 13 below-fold images not lazy-loaded, 13 without srcset, 14 legacy-format assets, and two missing alt values.",
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Reserve dimensions, use responsive srcset/sizes and modern formats, lazy-load below-fold content, and provide purposeful alt text.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance"
    },
    {
      "id": "F14",
      "severity": "medium",
      "confidence": "high",
      "summary": "Public-page metadata is incomplete.",
      "evidence": "The homepage has a descriptive title but no meta description, no H1, no JSON-LD, and only og:site_name; Lighthouse SEO is 0.85 and flags two non-crawlable anchors.",
      "artifacts": [
        "evidence/page-probe.json",
        "evidence/home-discoverability.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Add unique descriptions, a page H1, complete Open Graph metadata, appropriate structured data, and real hrefs for navigational controls.",
      "effort": "small",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "be-discoverable",
      "principleCheckId": "title-and-description",
      "guidanceId": "html",
      "guidanceCategory": "html"
    },
    {
      "id": "F15",
      "severity": "high",
      "confidence": "high",
      "summary": "Transport, browser-defense, and cookie policy are incomplete.",
      "evidence": "Headers are missing HSTS, X-Content-Type-Options, Referrer-Policy, and Permissions-Policy. Ten cookies were observed; six lack Secure and all use SameSite=None, many for about 400 days.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "suggestedFix": "Add the missing defense headers, tighten CSP beyond frame-ancestors/upgrade-insecure-requests, and set Secure plus the least-permissive SameSite and expiry each cookie needs.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security"
    },
    {
      "id": "F16",
      "severity": "high",
      "confidence": "high",
      "summary": "The page loads a large tracking and third-party footprint before explicit consent.",
      "evidence": "Tracker evidence found 18 third-party origins and known Google Tag Manager/DoubleClick trackers. HAR attributes 80 requests and 723KB to third parties, including analytics and ad SDKs.",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/cookies.json"
      ],
      "suggestedFix": "Default to data minimisation: gate non-essential trackers until consent, remove redundant vendors, and batch/defer analytics.",
      "effort": "large",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy"
    },
    {
      "id": "F17",
      "severity": "medium",
      "confidence": "high",
      "summary": "Non-JavaScript clients receive less than half of rendered content.",
      "evidence": "Discoverability measured 41% raw/rendered word coverage. It is not an empty shell, but raw HTML lacks the rendered H1/description signals and omits most content.",
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/home-discoverability-crawler.png",
        "evidence/home-discoverability-rendered.png",
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Server-render core forecast and explanatory content, links, title/H1/description, then progressively enhance dynamic updates.",
      "effort": "large",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "be-resilient",
      "principleCheckId": "progressive-enhancement",
      "guidanceId": "html",
      "guidanceCategory": "html"
    },
    {
      "id": "F18",
      "severity": "medium",
      "confidence": "high",
      "summary": "The installable manifest is not backed by offline capability.",
      "evidence": "A valid standalone manifest is linked, but navigator.serviceWorker.getRegistrations() returned an empty list; the app-like weather experience has no observed offline fallback.",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "suggestedFix": "Register a service worker and provide a useful cached shell/offline forecast state, or stop presenting the site as standalone-installable.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "be-resilient",
      "principleCheckId": "offline-and-installable",
      "guidanceId": "html",
      "guidanceCategory": "html"
    },
    {
      "id": "F19",
      "severity": "medium",
      "confidence": "high",
      "summary": "The page spends most transferred bytes on third parties and ships avoidable asset work.",
      "evidence": "HAR records 723KB third-party bytes of 1.12MB total; 56 scripts dominate transfer. Images lack srcset/lazy loading and mostly use legacy formats.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json",
        "evidence/images.json"
      ],
      "suggestedFix": "Set a third-party/page-weight budget, remove low-value scripts, defer analytics/media, and modernise responsive image delivery.",
      "effort": "large",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "user-experience"
    },
    {
      "id": "F20",
      "severity": "medium",
      "confidence": "medium",
      "summary": "The initial memory footprint and repeated consent interaction growth are disproportionate.",
      "evidence": "Baseline heap contains 420,121 nodes and 21.72MB self size. After ten consent-settings cycles the independent post snapshot contains 438,160 nodes and 22.70MB, including closures rising 15,936→16,740; this is a medium-confidence retained-growth signal.",
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-interaction.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Profile baseline/target/final snapshots in one controlled session, remove retained consent/analytics listeners and nodes, and keep third-party modules out of the initial heap.",
      "effort": "large",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "be-memory-efficient",
      "principleCheckId": "no-leak-under-repeated-interaction",
      "guidanceId": "manage-recurring-intervals",
      "guidanceCategory": "scheduling"
    },
    {
      "id": "F21",
      "severity": "low",
      "confidence": "medium",
      "summary": "Long-page navigation does not visibly adapt to scroll state.",
      "evidence": "The desktop/mobile captures show static header chrome on a 7,505px page; CSS inspection found scroll-timeline rules but no evidence of scroll-state-aware header/navigation cues.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "suggestedFix": "Use a compact sticky header or scroll-state query/progress affordance that preserves content space and orientation.",
      "effort": "small",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "scroll-progress-indicator",
      "guidanceCategory": "user-experience"
    },
    {
      "id": "F22",
      "severity": "medium",
      "confidence": "high",
      "summary": "The consent overlay is an ad-hoc custom control rather than a semantic modal.",
      "evidence": "DOM inspection reports zero dialog and popover elements while screenshots show a modal, focus-blocking consent surface.",
      "artifacts": [
        "evidence/page-probe.json",
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Implement the modal with dialog semantics, labelled title/description, trapped/restored focus, Escape handling where lawful, and explicit consent actions.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://pogoda.interia.pl/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "user-experience"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Replace the blocking, asymmetric consent wall with truthful equal-choice consent that leaves core weather visible.",
      "priority": 1,
      "findingIds": [
        "F02",
        "F03",
        "F06",
        "F22"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Cut LCP and third-party cost by deferring ads/analytics and trimming unused scripts and CSS.",
      "priority": 2,
      "findingIds": [
        "F07",
        "F08",
        "F16",
        "F19",
        "F20"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Repair accessibility names, landmarks, contrast, zoom, labels, and touch targets.",
      "priority": 3,
      "findingIds": [
        "F04",
        "F09",
        "F10",
        "F11"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Harden headers and cookie attributes and shorten tracking lifetimes.",
      "priority": 4,
      "findingIds": [
        "F15",
        "F16"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Server-render core forecast content and complete page/share metadata.",
      "priority": 5,
      "findingIds": [
        "F14",
        "F17"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Modernise image dimensions, responsive sources, formats, and lazy loading.",
      "priority": 6,
      "findingIds": [
        "F13",
        "F19"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Enable dark mode and modern responsive component adaptation.",
      "priority": 7,
      "findingIds": [
        "F01",
        "F04",
        "F05"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Fix the production exception and profile retained consent/analytics memory.",
      "priority": 8,
      "findingIds": [
        "F12",
        "F20"
      ],
      "guidanceId": "manage-recurring-intervals",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Either implement a useful offline service worker or remove standalone-installable positioning.",
      "priority": 9,
      "findingIds": [
        "F18"
      ],
      "guidanceId": "html",
      "status": "open"
    }
  ],
  "budget": {
    "wallClockSeconds": 1800,
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-18T19-44-01-282Z"
}
