{
  "url": "https://www.novinky.cz",
  "auditedAt": "2026-07-23T10:44:50.270Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete report-mode audit. Fresh-profile section and article paths exposed a consent/CMP interception; this is reported as direct user-journey evidence rather than an audit blocker.",
  "page": {
    "appType": "mpa",
    "framework": "IMA.js/server-rendered MPA",
    "notes": "Public Czech news publication. Audited homepage, section listing, article detail, and 404 recovery. Search submission, login/account internals, paywall checkout completion, comments, podcasts/video playback, and every topical section were not covered because they are separate or authenticated journeys; one representative page per shared news template was selected."
  },
  "evidenceUsed": [
    "screenshot",
    "DOM+computed styles",
    "layout metrics",
    "evaluate probes",
    "DevTools trace",
    "HAR summary",
    "discoverability/raw HTML",
    "security headers",
    "cookies",
    "tracker enumeration",
    "image audit",
    "secret scan",
    "heap summaries",
    "Lighthouse",
    "HTTP/robots/manifest probe"
  ],
  "guidanceConsulted": [
    "accessibility",
    "accessible-error-announcement",
    "adapt-scrollbar-to-contrast-preferences",
    "agentic-forms",
    "agentic-javascript-tools",
    "anchor-positioning-tab-underline",
    "animate-element-entry-exit",
    "animate-to-from-top-layer",
    "animate-to-intrinsic-sizes",
    "animated-select-picker",
    "apply-webgl-shaders",
    "autofill-address-form",
    "autofill-highlight-inputs",
    "autofill-payment-form",
    "autofill-sign-in-form",
    "autofill-sign-up-form",
    "batch-analytics-events",
    "brand-consistent-forms",
    "branded-select-styling",
    "break-up-long-tasks",
    "calculate-event-differentials",
    "calculate-total-foreground-time",
    "calculate-with-intrinsic-sizes",
    "capture-location-agnostic-data",
    "carousel-slide-effects",
    "carousel-snap-highlights",
    "child-state-based-styling",
    "complex-shapes",
    "component-specific-light-dark-theme",
    "conditional-async-dependencies",
    "consistent-cross-document-transitions",
    "content-based-styling",
    "coordinate-global-events",
    "cross-document-transitions",
    "css",
    "css-layout",
    "custom-select-picker-layouts",
    "customize-scrollbar-color-and-thickness",
    "dark-mode",
    "declarative-button-actions",
    "declarative-dialog-popover-control",
    "defer-rendering-heavy-content",
    "defer-work-until-scroll-ends",
    "deliver-optimized-decorative-images",
    "deprioritize-background-fetches",
    "design-token-reactivity",
    "detect-initial-visibility-state",
    "directional-navigation-transitions",
    "dynamic-sibling-animations",
    "dynamic-sibling-styling",
    "efficient-background-processing",
    "export-html-media-from-canvas",
    "expose-canvas-content-to-browser-features",
    "faster-spa-view-transitions",
    "flicker-free-client-side-ab-testing",
    "fluid-scaling",
    "form-fields-automatically-fit-contents",
    "format-human-readable-durations",
    "forms",
    "full-session-analytics",
    "group-element-transitions",
    "highlight-text-ranges",
    "html",
    "identify-heavy-scripts",
    "identify-inp-causes",
    "improve-next-page-load-performance",
    "improve-text-layout-and-legibility",
    "individual-transform-properties",
    "interactions-in-complex-layouts",
    "interactive-content-in-3d-scenes",
    "interactive-content-reveal",
    "interest-triggered-action-previews",
    "interest-triggered-tooltips",
    "language-detection",
    "language-model",
    "light-dismiss-a-dialog",
    "manage-recurring-intervals",
    "model-partial-time-concepts",
    "move-dom-element-without-losing-state",
    "navigation-drawer",
    "optimize-image-priority",
    "optimize-preload-priority",
    "optimize-script-priority",
    "overflow-clipping-control",
    "parallax-scroll-effects",
    "passkey-authentication",
    "passkey-conditional-create",
    "passkey-management",
    "passkey-reauthentication",
    "passkey-registration",
    "passkeys",
    "performance",
    "persistent-app-tours",
    "persistent-toast-notifications",
    "persistent-top-layer-ui",
    "physics-based-easing",
    "platform-controls-dismiss-dialog",
    "position-aware-tooltips",
    "precise-text-alignment",
    "prevent-text-wrapping",
    "privacy",
    "pull-to-reveal",
    "reduce-style-repetition",
    "required-field-feedback",
    "resilient-context-menus-and-nested-dropdowns",
    "resolution-optimized-pseudo-elements",
    "rich-media-picker",
    "same-document-transitions",
    "schedule-tasks-by-priority",
    "scroll-entry-exit-effects",
    "scroll-position-aware-elements",
    "scroll-progress-indicator",
    "scroll-snap-realtime-feedback",
    "scroll-snap-state-sync",
    "scroll-target-on-load",
    "scrollability-affordance-hints",
    "scrollytelling",
    "search-hidden-content",
    "security",
    "select-menu-interaction",
    "sequence-distributed-events",
    "shaped-cutouts",
    "shrinking-header-on-scroll",
    "size-aware-styling",
    "soft-edge-content-fade",
    "stabilize-reactive-state",
    "stack-drill-down",
    "style-parent-with-has",
    "summarizer",
    "support-global-calendar-systems",
    "swipe-to-remove",
    "translator",
    "validate-input-after-interaction",
    "visually-stable-font-fallbacks",
    "visually-stable-mixed-fonts",
    "visually-texture-content",
    "webmcp"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/article-desktop.png",
      "caption": "article desktop",
      "findingIds": [
        "F006"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-crawler.png",
      "caption": "article discoverability crawler",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-rendered.png",
      "caption": "article discoverability rendered",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/article-discoverability.json",
      "caption": "article discoverability",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/article-dom.json",
      "caption": "article dom",
      "findingIds": [
        "F009",
        "F025"
      ]
    },
    {
      "type": "other",
      "path": "evidence/article-images.json",
      "caption": "article images",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/article-mobile-layout.json",
      "caption": "article mobile layout",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/article-mobile.png",
      "caption": "article mobile",
      "findingIds": [
        "F006",
        "F009"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-accessibility-probe.json",
      "caption": "home accessibility probe",
      "findingIds": [
        "F008",
        "F014",
        "F016",
        "F021"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-contrast.png",
      "caption": "home contrast",
      "findingIds": [
        "F015"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-cookies.json",
      "caption": "home cookies",
      "findingIds": [
        "F022"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark",
      "findingIds": [
        "F001"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "home discoverability crawler",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "home discoverability rendered",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "home discoverability",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom",
      "findingIds": [
        "F001",
        "F003",
        "F004",
        "F005"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-headers.json",
      "caption": "home headers",
      "findingIds": [
        "F022",
        "F024"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/home-heap-baseline",
      "caption": "home heap baseline",
      "findingIds": [
        "F030",
        "F031"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/home-heap-post-menu10",
      "caption": "home heap post menu10",
      "findingIds": [
        "F030"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images",
      "findingIds": [
        "F014",
        "F019",
        "F028"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-menu-open.png",
      "caption": "home menu open",
      "findingIds": [
        "F005"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout",
      "findingIds": [
        "F007",
        "F017"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "findingIds": [
        "F007",
        "F017"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-probe.json",
      "caption": "home probe",
      "findingIds": [
        "F026",
        "F027"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-reduced-motion-probe.json",
      "caption": "home reduced motion probe",
      "findingIds": [
        "F002"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-secrets.json",
      "caption": "home secrets",
      "findingIds": []
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F012",
        "F023",
        "F029"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace",
      "caption": "home trace",
      "findingIds": [
        "F010"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": [
        "F010"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-trackers.json",
      "caption": "home trackers",
      "findingIds": [
        "F023",
        "F029"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": [
        "F012",
        "F023"
      ]
    },
    {
      "type": "other",
      "path": "evidence/http-discovery.txt",
      "caption": "http discovery",
      "findingIds": [
        "F026"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "lighthouse home",
      "findingIds": [
        "F010",
        "F012",
        "F013",
        "F014",
        "F015",
        "F016",
        "F018",
        "F020",
        "F021"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/not-found-dom.json",
      "caption": "not found dom",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/not-found-mobile.png",
      "caption": "not found mobile",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/raw-metadata.json",
      "caption": "raw metadata",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/section-desktop.png",
      "caption": "section desktop",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/section-discoverability-crawler.png",
      "caption": "section discoverability crawler",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/section-discoverability-rendered.png",
      "caption": "section discoverability rendered",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/section-discoverability.json",
      "caption": "section discoverability",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/section-dom.json",
      "caption": "section dom",
      "findingIds": [
        "F025"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/section-mobile-layout.json",
      "caption": "section mobile layout",
      "findingIds": [
        "F011"
      ]
    }
  ],
  "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": "The dark-condition screenshot is pixel-identical in appearance to the default capture; computed html color-scheme is normal and the main surface remains white",
      "evidence": "The dark-condition screenshot is pixel-identical in appearance to the default capture; computed html color-scheme is normal and the main surface remains white.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F001"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Under prefers-reduced-motion: reduce, the probe found no matching CSS rules and still observed a running 1100 ms atmLoader-white animation",
      "evidence": "Under prefers-reduced-motion: reduce, the probe found no matching CSS rules and still observed a running 1100 ms atmLoader-white animation.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-reduced-motion-probe.json"
      ],
      "findingIds": [
        "F002"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "visual emulation",
      "evidence": "Screenshot under prefers-contrast: more remained legible and Lighthouse isolated contrast failures separately; controls/text did not disappear.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-contrast.png"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Rendered CSS contains no view-transition usage; the article and section are ordinary document navigations",
      "evidence": "Rendered CSS contains no view-transition usage; the article and section are ordinary document navigations.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F003"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon-based applicability judgement",
      "evidence": "No parallax, scrollytelling, reveal, or other scroll-linked animation was observed on the representative pages, so there is no implementation to judge.",
      "reason": "No parallax, scrollytelling, reveal, or other scroll-linked animation was observed on the representative pages, so there is no implementation to judge.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon-based applicability judgement",
      "evidence": "The audited news surfaces expose ordinary links and scrolling, not a custom pull/swipe/drag gesture that requires a platform-native implementation.",
      "reason": "The audited news surfaces expose ordinary links and scrolling, not a custom pull/swipe/drag gesture that requires a platform-native implementation.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "DOM evidence shows a fixed 56 px header on a 10,342 px main feed, but no scroll-state query, scroll timeline, or progress treatment",
      "evidence": "DOM evidence shows a fixed 56 px header on a 10,342 px main feed, but no scroll-state query, scroll timeline, or progress treatment.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F004"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon-based applicability judgement",
      "evidence": "No tooltip, anchored popover, or edge-positioned menu was exposed in the representative public surfaces.",
      "reason": "No tooltip, anchored popover, or edge-positioned menu was exposed in the representative public surfaces.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "screenshot + DOM inspection",
      "evidence": "Visible section headings, explicit “Celý článek” links, and a persistent global header orient users through the feed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "The 360x800 article screenshot contains only the Seznam consent plans and Agree/Subscribe actions; article content is absent from the viewport",
      "evidence": "The 360x800 article screenshot contains only the Seznam consent plans and Agree/Subscribe actions; article content is absent from the viewport.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-mobile.png",
        "evidence/article-desktop.png"
      ],
      "findingIds": [
        "F006"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/CSS evidence shows ",
      "evidence": "DOM/CSS evidence shows .ribbon-menu as a fixed custom element; the page has zero dialog, popover, or details elements.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-menu-open.png"
      ],
      "findingIds": [
        "F005"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "visual inspection",
      "evidence": "Outside the large reserved ad region, the homepage uses a compact 56 px header and content-led card grid rather than persistent side chrome.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "Layout measured scrollWidth 479 versus clientWidth 360 (119 px overflow); the mobile screenshot shows the lead headline rendered mostly off-screen to the right",
      "evidence": "Layout measured scrollWidth 479 versus clientWidth 360 (119 px overflow); the mobile screenshot shows the lead headline rendered mostly off-screen to the right.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F007"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "pass",
      "confidence": "low",
      "method": "cross-viewport screenshot/CSS inspection",
      "evidence": "Card dimensions and typography adapt at desktop widths, but direct evidence of component behavior is limited; the distinct mobile failure is recorded under responsive reflow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "The focus probe found no outline on the search input/button and numerous links; the main menu target is only 32x32 px",
      "evidence": "The focus probe found no outline on the search input/button and numerous links; the main menu target is only 32x32 px.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-accessibility-probe.json"
      ],
      "findingIds": [
        "F008"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "first-viewport screenshot + headings probe",
      "evidence": "Title, Novinky branding, lead headline, topical sections, and search make the news-reading purpose and next actions explicit.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "issues",
      "confidence": "high",
      "method": "Direct article navigation produced a full-screen three-plan consent/subscription surface instead of the requested report, creating a mandatory detour",
      "evidence": "Direct article navigation produced a full-screen three-plan consent/subscription surface instead of the requested report, creating a mandatory detour.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-mobile.png",
        "evidence/article-dom.json"
      ],
      "findingIds": [
        "F009"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "404 walkthrough",
      "evidence": "The synthetic 404 clearly says the page was not found and provides a prominent return-to-Novinky action.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/not-found-mobile.png",
        "evidence/not-found-dom.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse measured LCP 7",
      "evidence": "Lighthouse measured LCP 7.3 s, FCP 4.6 s, TBT 250 ms, and performance 0.55; the independent trace measured LCP/FCP 3.52 s.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json",
        "evidence/home-trace"
      ],
      "findingIds": [
        "F010"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "issues",
      "confidence": "high",
      "method": "The mobile section layout observer recorded CLS 0",
      "evidence": "The mobile section layout observer recorded CLS 0.168 from a single shift at about 4.5 s, above the good threshold.",
      "pathIds": [
        "section"
      ],
      "artifacts": [
        "evidence/section-mobile-layout.json"
      ],
      "findingIds": [
        "F011"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "DevTools trace summary",
      "evidence": "Independent trace recorded one 51.86 ms long task and only 1.86 ms total blocking time during its capture.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-trace"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "HAR recorded 130 requests and 2,056,434 transferred bytes, including 865,678 script bytes; Lighthouse LCP was 7",
      "evidence": "HAR recorded 130 requests and 2,056,434 transferred bytes, including 865,678 script bytes; Lighthouse LCP was 7.3 s.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F012"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse estimated 317 KiB unused JavaScript and 14 KiB unused CSS",
      "evidence": "Lighthouse estimated 317 KiB unused JavaScript and 14 KiB unused CSS.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F013"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse failed image-alt, link-name, frame-title and accessibility-tree audits; the probe counted 140 unnamed links and two untitled iframes",
      "evidence": "Lighthouse failed image-alt, link-name, frame-title and accessibility-tree audits; the probe counted 140 unnamed links and two untitled iframes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-accessibility-probe.json",
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F014"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse color-contrast audit failed on the homepage",
      "evidence": "Lighthouse color-contrast audit failed on the homepage.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-contrast.png"
      ],
      "findingIds": [
        "F015"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse failed heading-order; the probe begins with H6 elements before H1 and found many focusable links/controls with outline none",
      "evidence": "Lighthouse failed heading-order; the probe begins with H6 elements before H1 and found many focusable links/controls with outline none.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-accessibility-probe.json"
      ],
      "findingIds": [
        "F016"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "visual inspection",
      "evidence": "Visible article-card headlines use large, high-contrast typography and are readable where not affected by the separately reported mobile overflow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "At 360 px the page overflows by 119 px and clips the lead headline, so equivalent zoom/reflow use is not preserved",
      "evidence": "At 360 px the page overflows by 119 px and clips the lead headline, so equivalent zoom/reflow use is not preserved.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F017"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse failed errors-in-console; its run also logged a malformed source-map mapping warning for xgemius",
      "evidence": "Lighthouse failed errors-in-console; its run also logged a malformed source-map mapping warning for xgemius.min.js.map.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F018"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "The images primitive found 8 images without dimensions, 6 without srcset, one oversized image, and 22 without alt",
      "evidence": "The images primitive found 8 images without dimensions, 6 without srcset, one oversized image, and 22 without alt.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F019"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse failed deprecations, bf-cache, and inspector-issues audits, including one BFCache failure reason",
      "evidence": "Lighthouse failed deprecations, bf-cache, and inspector-issues audits, including one BFCache failure reason.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F020"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "raw HTTP metadata probe",
      "evidence": "Raw HTTP metadata shows unique descriptive titles and descriptions for home, section, and article, all with status 200.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/raw-metadata.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "The DOM probe counted 140 href links without text, aria-label, or an alt-bearing image; Lighthouse link-name failed",
      "evidence": "The DOM probe counted 140 href links without text, aria-label, or an alt-bearing image; Lighthouse link-name failed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-accessibility-probe.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F021"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "raw HTTP + robots inspection",
      "evidence": "All three representative URLs return 200 with self-canonicals; robots.txt allows general crawling and declares four sitemap indexes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/raw-metadata.json",
        "evidence/http-discovery.txt"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "raw metadata + DOM inspection",
      "evidence": "The article raw HTML includes two JSON-LD blocks and page DOM includes Open Graph/Twitter metadata matching visible titles.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/raw-metadata.json",
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Headers show CSP permits unsafe-inline and unsafe-eval; all four observed first-party cookies use SameSite=None",
      "evidence": "Headers show CSP permits unsafe-inline and unsafe-eval; all four observed first-party cookies use SameSite=None. HSTS and nosniff are present.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json"
      ],
      "findingIds": [
        "F022"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Tracker evidence recorded 25 origins, 24 third-party origins and Google Tag Manager; HAR recorded 130 requests and 2",
      "evidence": "Tracker evidence recorded 25 origins, 24 third-party origins and Google Tag Manager; HAR recorded 130 requests and 2.06 MB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trackers.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "findingIds": [
        "F023"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon-based applicability judgement",
      "evidence": "The public news-reading scope requires neither a browser permission nor authentication; no permission prompt fired on load. Account authentication was not required for the representative core task.",
      "reason": "The public news-reading scope requires neither a browser permission nor authentication; no permission prompt fired on load. Account authentication was not required for the representative core task.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Permissions-Policy is absent and CSP allows unsafe-inline/unsafe-eval; HSTS, frame protection, nosniff and Referrer-Policy are present",
      "evidence": "Permissions-Policy is absent and CSP allows unsafe-inline/unsafe-eval; HSTS, frame protection, nosniff and Referrer-Policy are present.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "findingIds": [
        "F024"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "no-JS/raw HTML comparison",
      "evidence": "Homepage discoverability found 83% rendered-word coverage in raw HTML with title, H1 and description present; raw article HTML also contains its H1 and metadata.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/raw-metadata.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "issues",
      "confidence": "high",
      "method": "The section/article DOM capture redirected to cmp",
      "evidence": "The section/article DOM capture redirected to cmp.seznam.cz and reported “Unable to load … scmp-cw.js”; requested content was not present.",
      "pathIds": [
        "section"
      ],
      "artifacts": [
        "evidence/section-dom.json",
        "evidence/article-dom.json"
      ],
      "findingIds": [
        "F025"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "issues",
      "confidence": "high",
      "method": "A standalone web app manifest is linked, but the homepage probe found no controlling service worker and the manifest has an empty name",
      "evidence": "A standalone web app manifest is linked, but the homepage probe found no controlling service worker and the manifest has an empty name.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/http-discovery.txt"
      ],
      "findingIds": [
        "F026"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "failure-path walkthrough",
      "evidence": "The 404 state is useful and actionable; the CMP script failure also explains the failure and links support, though its content replacement is reported separately.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/not-found-mobile.png",
        "evidence/section-dom.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "DOM probe",
      "evidence": "The document declares lang=\"cs\" and an LTR reading direction appropriate to Czech content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-accessibility-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon-based applicability judgement",
      "evidence": "Novinky is a deliberately Czech-language national publication in this audited scope; no locale switch, currency input, or multi-locale data flow was offered.",
      "reason": "Novinky is a deliberately Czech-language national publication in this audited scope; no locale switch, currency input, or multi-locale data flow was offered.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon-based applicability judgement",
      "evidence": "No event scheduling, recurring interval, user-entered date/time, or cross-zone coordination flow exists in the representative news-reading scope.",
      "reason": "No event scheduling, recurring interval, user-entered date/time, or cross-zone coordination flow exists in the representative news-reading scope.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "consent-screen review",
      "evidence": "The consent surface describes Free with ads, untargeted paid, and ad-free choices with prices and a Detailed settings link; no confirmshaming wording was observed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/article-mobile.png"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon-based applicability judgement",
      "evidence": "The only authored form is a single optional search field with no required-field or multi-step validation state to exercise.",
      "reason": "The only authored form is a single optional search field with no required-field or multi-step validation state to exercise.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "DOM form evidence reports autocomplete=\"off\" on the only text input",
      "evidence": "DOM form evidence reports autocomplete=\"off\" on the only text input.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F027"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "high",
      "method": "commercial-flow screenshot review",
      "evidence": "The observed subscription options display monthly prices and an ad-free trial commitment directly on the choice cards.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/article-mobile.png"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Image audit found 8 missing dimensions, 6 missing srcset, one oversized asset, and only 3 of 44 URLs recognized as modern formats",
      "evidence": "Image audit found 8 missing dimensions, 6 missing srcset, one oversized asset, and only 3 of 44 URLs recognized as modern formats.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F028"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "pass",
      "confidence": "high",
      "method": "trace + media probe",
      "evidence": "The trace observed only one marginal long task and the page contains no autoplay audio/video; waste from third parties is recorded in the separate budget check.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "The page transferred 2",
      "evidence": "The page transferred 2.06 MB across 130 requests, including 866 KB scripts, and contacted 24 third-party origins.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trackers.json"
      ],
      "findingIds": [
        "F029"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon-based applicability judgement",
      "evidence": "Emerging agent actions are not required for this read-only public news scope; raw HTML remains machine-readable, and absence of WebMCP is treated as an opportunity rather than a failure.",
      "reason": "Emerging agent actions are not required for this read-only public news scope; raw HTML remains machine-readable, and absence of WebMCP is treated as an opportunity rather than a failure.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon-based applicability judgement",
      "evidence": "No user task in the audited scope requires on-device inference; absence of built-in summarization is not penalized under this emerging contextual principle.",
      "reason": "No user task in the audited scope requires on-device inference; absence of built-in summarization is not penalized under this emerging contextual principle.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "issues",
      "confidence": "medium",
      "method": "Heap summaries increased from 446,555 to 529,564 nodes (+18",
      "evidence": "Heap summaries increased from 446,555 to 529,564 nodes (+18.6%) and 23.0 MB to 27.7 MB (+20.6%) after ten menu open/close cycles. Separate fresh-profile snapshots reduce confidence, so confirm with same-session baseline/target/final analysis.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-heap-baseline",
        "evidence/home-heap-post-menu10"
      ],
      "findingIds": [
        "F030"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "medium",
      "method": "Baseline heap summary contains 446,555 nodes, 1,995,444 edges and 23",
      "evidence": "Baseline heap summary contains 446,555 nodes, 1,995,444 edges and 23.0 MB self size before extended interaction.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-heap-baseline"
      ],
      "findingIds": [
        "F031"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "before/after heap-summary inspection",
      "evidence": "Neither heap summary exposed Detached* constructors among its largest retained constructor groups after ten menu cycles; no direct detached-DOM signature was observed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-heap-baseline",
        "evidence/home-heap-post-menu10"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F001",
        "F002"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F003"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F004"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F006",
        "F005"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F007",
        "F008"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F009"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F010",
        "F011",
        "F012",
        "F013"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F014",
        "F015",
        "F016",
        "F017"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F018",
        "F019",
        "F020"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F021"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F022",
        "F023",
        "F024"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F025",
        "F026"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F027"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F028",
        "F029"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "All checks were judged not applicable to this deliberately scoped public news-reading experience."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F030",
        "F031"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and primary news index; audited as the entry point, navigation surface, search surface, and representative feed.",
      "url": "https://www.novinky.cz/",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "prefers-color-scheme: dark",
        "prefers-contrast: more",
        "prefers-reduced-motion: reduce",
        "keyboard-focus probe"
      ],
      "result": "issues"
    },
    {
      "id": "section",
      "description": "Domestic-news section listing, representing section/index templates. A fresh session redirected to the Seznam consent/CMP surface.",
      "url": "https://www.novinky.cz/sekce/domaci-13",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "fresh browser profile"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "Lead news article, representing article/detail templates and the core read-article journey. A fresh session was intercepted by the consent choice wall.",
      "url": "https://www.novinky.cz/clanek/valka-na-ukrajine-je-to-reznik-a-stvura-jmenovani-drapateho-do-cela-ukrajinske-armady-vyvolalo-v-rusku-obavy-40589394",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "fresh browser profile",
        "crawler/raw HTML"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Synthetic missing URL, representing HTTP failure and recovery behavior.",
      "url": "https://www.novinky.cz/this-page-does-not-exist-web-uplift",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F001",
      "severity": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "summary": "The site remains light when the user requests a dark color scheme.",
      "evidence": "The dark-condition screenshot is pixel-identical in appearance to the default capture; computed html color-scheme is normal and the main surface remains white.",
      "suggestedFix": "Declare color-scheme and provide preference-driven dark tokens with prefers-color-scheme or light-dark().",
      "guidanceId": "dark-mode",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-dom.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F002",
      "severity": "low",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "summary": "Reduced-motion preferences are not represented in the page styles.",
      "evidence": "Under prefers-reduced-motion: reduce, the probe found no matching CSS rules and still observed a running 1100 ms atmLoader-white animation.",
      "suggestedFix": "Add a prefers-reduced-motion: reduce branch that removes non-essential loaders/transitions and prevents auto-advance.",
      "guidanceId": "accessibility",
      "artifacts": [
        "evidence/home-reduced-motion-probe.json"
      ],
      "effort": "small",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F003",
      "severity": "low",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "summary": "Navigation changes use abrupt document swaps rather than View Transitions.",
      "evidence": "Rendered CSS contains no view-transition usage; the article and section are ordinary document navigations.",
      "suggestedFix": "Progressively add same-document or cross-document View Transitions, with reduced-motion handling.",
      "guidanceId": "cross-document-transitions",
      "artifacts": [
        "evidence/home-dom.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F004",
      "severity": "low",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "summary": "The fixed header does not communicate scroll position or adapt as the long feed is traversed.",
      "evidence": "DOM evidence shows a fixed 56 px header on a 10,342 px main feed, but no scroll-state query, scroll timeline, or progress treatment.",
      "suggestedFix": "Use a scroll-state container query or a lightweight declarative progress/shrinking-header treatment.",
      "guidanceId": "shrinking-header-on-scroll",
      "artifacts": [
        "evidence/home-dom.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F005",
      "severity": "low",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "summary": "The global menu is a custom fixed overlay rather than a semantic popover/dialog.",
      "evidence": "DOM/CSS evidence shows .ribbon-menu as a fixed custom element; the page has zero dialog, popover, or details elements.",
      "suggestedFix": "Use the popover API for transient navigation or dialog for a modal menu, preserving light-dismiss and focus behavior.",
      "guidanceId": "declarative-dialog-popover-control",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-menu-open.png"
      ],
      "effort": "medium",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F006",
      "severity": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "summary": "Fresh article and section visits are replaced by a full-screen consent/subscription choice wall.",
      "evidence": "The 360x800 article screenshot contains only the Seznam consent plans and Agree/Subscribe actions; article content is absent from the viewport.",
      "suggestedFix": "Keep essential news content available while presenting a compact, dismissible, non-obscuring consent choice with equal access to detailed controls.",
      "guidanceId": "light-dismiss-a-dialog",
      "artifacts": [
        "evidence/article-mobile.png",
        "evidence/article-desktop.png"
      ],
      "effort": "large",
      "pathId": "article",
      "confidence": "high"
    },
    {
      "id": "F007",
      "severity": "critical",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "summary": "The homepage has severe horizontal overflow at 360 px, clipping the lead story text.",
      "evidence": "Layout measured scrollWidth 479 versus clientWidth 360 (119 px overflow); the mobile screenshot shows the lead headline rendered mostly off-screen to the right.",
      "suggestedFix": "Replace the fixed-width lead grid with intrinsic sizing (minmax/min(100%,…)), constrain media to max-inline-size:100%, and test at 320–360 px.",
      "guidanceId": "css-layout",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png"
      ],
      "effort": "medium",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F008",
      "severity": "medium",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "summary": "Many interactive elements have no visible focus indicator and some targets are below recommended size.",
      "evidence": "The focus probe found no outline on the search input/button and numerous links; the main menu target is only 32x32 px.",
      "suggestedFix": "Use :focus-visible with a high-contrast outline and provide at least 44x44 CSS-pixel pointer targets without reducing visual density.",
      "guidanceId": "accessibility",
      "artifacts": [
        "evidence/home-accessibility-probe.json"
      ],
      "effort": "small",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F009",
      "severity": "high",
      "principleId": "support-core-task-success",
      "principleCheckId": "primary-flow-completion",
      "summary": "The representative read-article journey cannot reach the article in a fresh session without first resolving the consent wall.",
      "evidence": "Direct article navigation produced a full-screen three-plan consent/subscription surface instead of the requested report, creating a mandatory detour.",
      "suggestedFix": "Allow the article to render behind or alongside a concise consent control; defer personalization until an explicit choice.",
      "guidanceId": "privacy",
      "artifacts": [
        "evidence/article-mobile.png",
        "evidence/article-dom.json"
      ],
      "effort": "large",
      "pathId": "article",
      "confidence": "high"
    },
    {
      "id": "F010",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "summary": "Lab loading performance is outside the good range.",
      "evidence": "Lighthouse measured LCP 7.3 s, FCP 4.6 s, TBT 250 ms, and performance 0.55; the independent trace measured LCP/FCP 3.52 s.",
      "suggestedFix": "Prioritize the LCP image, shorten critical dependency chains, defer non-critical scripts, and verify against LCP/INP/CLS budgets.",
      "guidanceId": "performance",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json",
        "evidence/home-trace"
      ],
      "effort": "large",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F011",
      "severity": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "visual-stability",
      "summary": "The section path shifts substantially during loading.",
      "evidence": "The mobile section layout observer recorded CLS 0.168 from a single shift at about 4.5 s, above the good threshold.",
      "suggestedFix": "Reserve space for late consent/banner/content UI and give images/ad slots explicit dimensions.",
      "guidanceId": "visually-stable-font-fallbacks",
      "artifacts": [
        "evidence/section-mobile-layout.json"
      ],
      "effort": "medium",
      "pathId": "section",
      "confidence": "high"
    },
    {
      "id": "F012",
      "severity": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "summary": "The homepage delivery is heavy for a news index and delays content.",
      "evidence": "HAR recorded 130 requests and 2,056,434 transferred bytes, including 865,678 script bytes; Lighthouse LCP was 7.3 s.",
      "suggestedFix": "Reduce critical requests, defer non-essential third parties, and ensure the LCP image is discoverable and high priority.",
      "guidanceId": "optimize-image-priority",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/lighthouse-home.json"
      ],
      "effort": "large",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F013",
      "severity": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "summary": "Substantial unused JavaScript and CSS are shipped on initial load.",
      "evidence": "Lighthouse estimated 317 KiB unused JavaScript and 14 KiB unused CSS.",
      "suggestedFix": "Code-split by surface, conditionally load advertising/login widgets, and remove dead CSS from the entry bundle.",
      "guidanceId": "conditional-async-dependencies",
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "effort": "large",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F014",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "summary": "Many links/images and embedded frames lack accessible names.",
      "evidence": "Lighthouse failed image-alt, link-name, frame-title and accessibility-tree audits; the probe counted 140 unnamed links and two untitled iframes.",
      "suggestedFix": "Give every functional link/frame an accessible name/title and meaningful images concise alt text; use empty alt only for decoration.",
      "guidanceId": "accessibility",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-accessibility-probe.json",
        "evidence/home-images.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F015",
      "severity": "medium",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "summary": "Some text and controls do not meet WCAG contrast minimums.",
      "evidence": "Lighthouse color-contrast audit failed on the homepage.",
      "suggestedFix": "Adjust foreground/surface tokens to meet 4.5:1 for normal text and 3:1 for large text and essential UI.",
      "guidanceId": "accessibility",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-contrast.png"
      ],
      "effort": "small",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F016",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "summary": "Heading order and keyboard focus treatment are unreliable.",
      "evidence": "Lighthouse failed heading-order; the probe begins with H6 elements before H1 and found many focusable links/controls with outline none.",
      "suggestedFix": "Use headings for document hierarchy rather than styling, and apply consistent :focus-visible treatment in reading order.",
      "guidanceId": "accessibility",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-accessibility-probe.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F017",
      "severity": "medium",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "summary": "The layout does not reflow cleanly at a narrow viewport.",
      "evidence": "At 360 px the page overflows by 119 px and clips the lead headline, so equivalent zoom/reflow use is not preserved.",
      "suggestedFix": "Use intrinsic responsive layout and validate at 400% zoom/narrow reflow; maintain adequately sized targets.",
      "guidanceId": "fluid-scaling",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png"
      ],
      "effort": "medium",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F018",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "summary": "The page logs browser errors.",
      "evidence": "Lighthouse failed errors-in-console; its run also logged a malformed source-map mapping warning for xgemius.min.js.map.",
      "suggestedFix": "Fix runtime/network exceptions and only publish valid source maps for production bundles.",
      "guidanceId": "html",
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "effort": "small",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F019",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "summary": "Image markup is inconsistent despite a valid doctype/charset.",
      "evidence": "The images primitive found 8 images without dimensions, 6 without srcset, one oversized image, and 22 without alt.",
      "suggestedFix": "Add intrinsic width/height, responsive sources, and correct alt semantics to every image component.",
      "guidanceId": "html",
      "artifacts": [
        "evidence/home-images.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F020",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "summary": "The page triggers deprecated API, BFCache, and DevTools inspector issues.",
      "evidence": "Lighthouse failed deprecations, bf-cache, and inspector-issues audits, including one BFCache failure reason.",
      "suggestedFix": "Remove deprecated API calls, resolve inspector issues, and eliminate avoidable unload/cache blockers.",
      "guidanceId": "html",
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F021",
      "severity": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "summary": "A large number of crawlable links have no descriptive text.",
      "evidence": "The DOM probe counted 140 href links without text, aria-label, or an alt-bearing image; Lighthouse link-name failed.",
      "suggestedFix": "Give image/card links descriptive accessible text while retaining real href URLs and the existing viewport metadata.",
      "guidanceId": "accessibility",
      "artifacts": [
        "evidence/home-accessibility-probe.json",
        "evidence/lighthouse-home.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F022",
      "severity": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "summary": "Transport is HTTPS, but CSP and cookie posture are weaker than necessary.",
      "evidence": "Headers show CSP permits unsafe-inline and unsafe-eval; all four observed first-party cookies use SameSite=None. HSTS and nosniff are present.",
      "suggestedFix": "Remove unsafe-eval/inline through nonces or hashes and use Lax/Strict for cookies that do not require cross-site delivery.",
      "guidanceId": "security",
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json"
      ],
      "effort": "large",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F023",
      "severity": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "summary": "The homepage exposes a broad third-party and analytics footprint before a demonstrated user choice.",
      "evidence": "Tracker evidence recorded 25 origins, 24 third-party origins and Google Tag Manager; HAR recorded 130 requests and 2.06 MB.",
      "suggestedFix": "Minimize default analytics, gate optional vendors behind consent, batch events, and remove third parties without clear user value.",
      "guidanceId": "privacy",
      "artifacts": [
        "evidence/home-trackers.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "effort": "large",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F024",
      "severity": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "summary": "Browser-enforced defenses are incomplete.",
      "evidence": "Permissions-Policy is absent and CSP allows unsafe-inline/unsafe-eval; HSTS, frame protection, nosniff and Referrer-Policy are present.",
      "suggestedFix": "Add a least-privilege Permissions-Policy and tighten CSP, preserving frame-ancestors and HSTS.",
      "guidanceId": "security",
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F025",
      "severity": "high",
      "principleId": "be-resilient",
      "principleCheckId": "resilient-runtime-behaviour",
      "summary": "The consent runtime can fail and replace requested content with an error surface.",
      "evidence": "The section/article DOM capture redirected to cmp.seznam.cz and reported “Unable to load … scmp-cw.js”; requested content was not present.",
      "suggestedFix": "Make consent script failure fail open for essential content, with a local fallback that preserves navigation and privacy-safe defaults.",
      "guidanceId": "conditional-async-dependencies",
      "artifacts": [
        "evidence/section-dom.json",
        "evidence/article-dom.json"
      ],
      "effort": "large",
      "pathId": "section",
      "confidence": "high"
    },
    {
      "id": "F026",
      "severity": "low",
      "principleId": "be-resilient",
      "principleCheckId": "offline-and-installable",
      "summary": "Installability intent is incomplete.",
      "evidence": "A standalone web app manifest is linked, but the homepage probe found no controlling service worker and the manifest has an empty name.",
      "suggestedFix": "If installability is intended, provide a named manifest and offline fallback service worker; otherwise remove misleading standalone metadata.",
      "guidanceId": "detect-initial-visibility-state",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/http-discovery.txt"
      ],
      "effort": "medium",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F027",
      "severity": "low",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "summary": "The search field explicitly disables autocomplete.",
      "evidence": "DOM form evidence reports autocomplete=\"off\" on the only text input.",
      "suggestedFix": "Use an appropriate search autocomplete token/behavior and avoid suppressing browser assistance without a concrete reason.",
      "guidanceId": "forms",
      "artifacts": [
        "evidence/home-probe.json"
      ],
      "effort": "small",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F028",
      "severity": "medium",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "summary": "Image delivery leaves avoidable responsive-image waste.",
      "evidence": "Image audit found 8 missing dimensions, 6 missing srcset, one oversized asset, and only 3 of 44 URLs recognized as modern formats.",
      "suggestedFix": "Standardize image components on responsive srcset/sizes, explicit dimensions, and negotiated AVIF/WebP delivery.",
      "guidanceId": "optimize-image-priority",
      "artifacts": [
        "evidence/home-images.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F029",
      "severity": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "summary": "Third-party scripts and network traffic are disproportionate to the initial text-news experience.",
      "evidence": "The page transferred 2.06 MB across 130 requests, including 866 KB scripts, and contacted 24 third-party origins.",
      "suggestedFix": "Set a third-party/page-weight budget, defer non-essential vendors to interaction/consent, and monitor transfer size per template.",
      "guidanceId": "deprioritize-background-fetches",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trackers.json"
      ],
      "effort": "large",
      "pathId": "home",
      "confidence": "high"
    },
    {
      "id": "F030",
      "severity": "medium",
      "principleId": "be-memory-efficient",
      "principleCheckId": "no-leak-under-repeated-interaction",
      "summary": "Heap size grew materially after repeating the menu interaction ten times.",
      "evidence": "Heap summaries increased from 446,555 to 529,564 nodes (+18.6%) and 23.0 MB to 27.7 MB (+20.6%) after ten menu open/close cycles. Separate fresh-profile snapshots reduce confidence, so confirm with same-session baseline/target/final analysis.",
      "suggestedFix": "Profile menu setup/teardown in one session, remove accumulating listeners/caches, and verify retained objects return toward baseline after GC.",
      "guidanceId": "manage-recurring-intervals",
      "artifacts": [
        "evidence/home-heap-baseline",
        "evidence/home-heap-post-menu10"
      ],
      "effort": "large",
      "pathId": "home",
      "confidence": "medium"
    },
    {
      "id": "F031",
      "severity": "low",
      "principleId": "be-memory-efficient",
      "principleCheckId": "bounded-footprint",
      "summary": "The initial homepage object population is large for a primarily textual index.",
      "evidence": "Baseline heap summary contains 446,555 nodes, 1,995,444 edges and 23.0 MB self size before extended interaction.",
      "suggestedFix": "Lazy-initialize below-fold and third-party widgets and set a repeatable heap/DOM-node budget for the homepage.",
      "guidanceId": "defer-rendering-heavy-content",
      "artifacts": [
        "evidence/home-heap-baseline"
      ],
      "effort": "medium",
      "pathId": "home",
      "confidence": "medium"
    }
  ],
  "taskList": [
    {
      "id": "T1",
      "title": "Repair mobile reflow for the lead grid",
      "priority": 1,
      "findingIds": [
        "F007",
        "F017"
      ],
      "guidanceId": "css-layout",
      "status": "open"
    },
    {
      "id": "T2",
      "title": "Keep core article content reachable around consent",
      "priority": 2,
      "findingIds": [
        "F006",
        "F009",
        "F025"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T3",
      "title": "Reduce LCP, unused code, and initial network cost",
      "priority": 3,
      "findingIds": [
        "F010",
        "F012",
        "F013",
        "F029"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T4",
      "title": "Fix accessible names, heading order, focus, and contrast",
      "priority": 4,
      "findingIds": [
        "F008",
        "F014",
        "F015",
        "F016",
        "F021"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T5",
      "title": "Tighten CSP, cookie policy, and third-party collection",
      "priority": 5,
      "findingIds": [
        "F022",
        "F023",
        "F024"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T6",
      "title": "Standardize responsive image markup",
      "priority": 6,
      "findingIds": [
        "F011",
        "F019",
        "F028"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T7",
      "title": "Honor color and motion preferences",
      "priority": 7,
      "findingIds": [
        "F001",
        "F002"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T8",
      "title": "Confirm and remove repeated-interaction heap growth",
      "priority": 8,
      "findingIds": [
        "F030",
        "F031"
      ],
      "guidanceId": "manage-recurring-intervals",
      "status": "open"
    },
    {
      "id": "T9",
      "title": "Resolve console, BFCache, deprecation, and inspector issues",
      "priority": 9,
      "findingIds": [
        "F018",
        "F020"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Modernize navigation primitives and transitions",
      "priority": 10,
      "findingIds": [
        "F003",
        "F004",
        "F005"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Complete or remove installability metadata",
      "priority": 11,
      "findingIds": [
        "F026"
      ],
      "guidanceId": "detect-initial-visibility-state",
      "status": "open"
    },
    {
      "id": "T12",
      "title": "Restore browser assistance for search",
      "priority": 12,
      "findingIds": [
        "F027"
      ],
      "guidanceId": "forms",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 4,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-23T10-44-50-270Z"
}
