{
  "url": "https://www.blic.rs",
  "auditedAt": "2026-07-21T04:33:01.311Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete representative audit of seven paths/templates. Not covered: paywalled subscriber-only states, comment posting, destructive account actions, and live video playback because they require credentials or consequential actions.",
  "page": {
    "appType": "mpa",
    "framework": "server-rendered Ring Publishing templates",
    "notes": "Serbian public news site with server-rendered content, advertising, analytics, search and shared Ringier login."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "layout-metrics",
    "evaluate-probe",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "Lighthouse",
    "curl HTTP/robots/sitemap",
    "Modern Web Guidance"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "same-document-transitions",
    "scroll-position-aware-elements",
    "declarative-dialog-popover-control",
    "fluid-scaling",
    "size-aware-styling",
    "forms",
    "performance",
    "optimize-image-priority",
    "break-up-long-tasks",
    "identify-heavy-scripts",
    "html",
    "security",
    "privacy",
    "passkeys",
    "flicker-free-client-side-ab-testing",
    "translator",
    "coordinate-global-events",
    "validate-input-after-interaction",
    "autofill-sign-in-form",
    "deliver-optimized-decorative-images",
    "efficient-background-processing",
    "webmcp",
    "language-model",
    "manage-recurring-intervals"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/article-desktop.png",
      "caption": "article desktop",
      "findingIds": [
        "F3",
        "F4"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/article-dom.json",
      "caption": "article dom",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/article-probe.log",
      "caption": "article probe",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies",
      "findingIds": [
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/dark-probe.log",
      "caption": "dark probe",
      "findingIds": [
        "F1"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discover-article-crawler.png",
      "caption": "discover article crawler",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discover-article-rendered.png",
      "caption": "discover article rendered",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/discover-article.json",
      "caption": "discover article",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discover-home-crawler.png",
      "caption": "discover home crawler",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discover-home-rendered.png",
      "caption": "discover home rendered",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/discover-home.json",
      "caption": "discover home",
      "findingIds": [
        "F13"
      ]
    },
    {
      "type": "other",
      "path": "evidence/guidance-list.json",
      "caption": "guidance list",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance-retrieved.md",
      "caption": "guidance retrieved",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance-search.json",
      "caption": "guidance search",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers",
      "findingIds": [
        "F14"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.heapsnapshot",
      "caption": "heap baseline",
      "findingIds": [
        "F23"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-carousel-post.heapsnapshot",
      "caption": "heap carousel post",
      "findingIds": [
        "F23"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.heapsnapshot",
      "caption": "heap post",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark",
      "findingIds": [
        "F1"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": [
        "F2"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-forced-colors.png",
      "caption": "home forced colors",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout",
      "findingIds": [
        "F5",
        "F10",
        "F13"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "findingIds": [
        "F5"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-probe.log",
      "caption": "home probe",
      "findingIds": [
        "F2",
        "F3",
        "F4",
        "F5",
        "F8",
        "F10",
        "F13",
        "F17",
        "F18",
        "F19"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-recon.json",
      "caption": "home recon",
      "findingIds": []
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F7",
        "F15",
        "F22"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": [
        "F6"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace",
      "findingIds": [
        "F6"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": [
        "F7",
        "F15"
      ]
    },
    {
      "type": "other",
      "path": "evidence/images-home.json",
      "caption": "images home",
      "findingIds": [
        "F12",
        "F21"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/latest-desktop.png",
      "caption": "latest desktop",
      "findingIds": []
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "lighthouse home",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-summary.json",
      "caption": "lighthouse summary",
      "findingIds": [
        "F6",
        "F7",
        "F8",
        "F9",
        "F11",
        "F12",
        "F21",
        "F22"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/login-empty-submit.png",
      "caption": "login empty submit",
      "findingIds": [
        "F16",
        "F20"
      ]
    },
    {
      "type": "other",
      "path": "evidence/login-probe.log",
      "caption": "login probe",
      "findingIds": [
        "F16",
        "F20"
      ]
    },
    {
      "type": "other",
      "path": "evidence/not-found-headers.txt",
      "caption": "not found headers",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/not-found.png",
      "caption": "not found",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/platform-probe.log",
      "caption": "platform probe",
      "findingIds": [
        "F19"
      ]
    },
    {
      "type": "other",
      "path": "evidence/reduced-motion-probe.log",
      "caption": "reduced motion probe",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/robots-headers.txt",
      "caption": "robots headers",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/search-probe.log",
      "caption": "search probe",
      "findingIds": [
        "F8"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/search-results.png",
      "caption": "search results",
      "findingIds": [
        "F4",
        "F17",
        "F22"
      ]
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/section-mobile.png",
      "caption": "section mobile",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/sitemap-headers.txt",
      "caption": "sitemap headers",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "sitemap",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers",
      "findingIds": [
        "F15"
      ]
    }
  ],
  "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": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "The dark-mode screenshot remains a white/red light theme; the dark probe reports color-scheme: normal and unchanged light foreground/surface values while prefers-color-scheme: dark matches.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/dark-probe.log"
      ],
      "findingIds": [
        "F1"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "Reduced-motion emulation matched the preference, reported zero document animations, and the active carousel content did not auto-advance during a 3.5s sample.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/reduced-motion-probe.log"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "Forced-colors emulation preserved visible header controls, text, imagery boundaries and content navigation.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-forced-colors.png"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "The DOM/CSS probe found no View Transition rules, container/scroll timelines, or running document animations; the carousel is implemented with the shipped Swiper library.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.log",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F2"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "The DOM/CSS probe found no View Transition rules, container/scroll timelines, or running document animations; the carousel is implemented with the shipped Swiper library.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.log",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F2"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "The DOM/CSS probe found no View Transition rules, container/scroll timelines, or running document animations; the carousel is implemented with the shipped Swiper library.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.log",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F2"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "Desktop and article captures show a static two-row header without reading progress; CSS inspection found no modern positioning/state rules and no popover primitives.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-desktop.png",
        "evidence/home-probe.log"
      ],
      "findingIds": [
        "F3"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "Desktop and article captures show a static two-row header without reading progress; CSS inspection found no modern positioning/state rules and no popover primitives.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-desktop.png",
        "evidence/home-probe.log"
      ],
      "findingIds": [
        "F3"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "Article breadcrumbs, active section underline, descriptive navigation labels and clear 404 recovery actions orient the reader.",
      "pathIds": [
        "article",
        "not-found"
      ],
      "artifacts": [
        "evidence/article-desktop.png",
        "evidence/not-found.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "The first article viewport gives most of its height to a large ad; homepage/search screenshots show a fixed Biz Chat control and a bottom video overlay covering results. DOM reports zero dialog/popover/details primitives.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-desktop.png",
        "evidence/search-results.png",
        "evidence/home-probe.log"
      ],
      "findingIds": [
        "F4"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "The first article viewport gives most of its height to a large ad; homepage/search screenshots show a fixed Biz Chat control and a bottom video overlay covering results. DOM reports zero dialog/popover/details primitives.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-desktop.png",
        "evidence/search-results.png",
        "evidence/home-probe.log"
      ],
      "findingIds": [
        "F4"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "The first article viewport gives most of its height to a large ad; homepage/search screenshots show a fixed Biz Chat control and a bottom video overlay covering results. DOM reports zero dialog/popover/details primitives.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-desktop.png",
        "evidence/search-results.png",
        "evidence/home-probe.log"
      ],
      "findingIds": [
        "F4"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "At 360×800 the layout primitive measured scrollWidth 1296 versus a 360px visual viewport, 936px horizontal overflow. The focus probe found many links with outline none and controls as small as 18×18 or 24×24. No container queries were found.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png",
        "evidence/home-probe.log"
      ],
      "findingIds": [
        "F5"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "At 360×800 the layout primitive measured scrollWidth 1296 versus a 360px visual viewport, 936px horizontal overflow. The focus probe found many links with outline none and controls as small as 18×18 or 24×24. No container queries were found.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png",
        "evidence/home-probe.log"
      ],
      "findingIds": [
        "F5"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "At 360×800 the layout primitive measured scrollWidth 1296 versus a 360px visual viewport, 936px horizontal overflow. The focus probe found many links with outline none and controls as small as 18×18 or 24×24. No container queries were found.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png",
        "evidence/home-probe.log"
      ],
      "findingIds": [
        "F5"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "Homepage, section, latest and article captures clearly present current news, section labels and headline links; the article has a prominent H1.",
      "pathIds": [
        "home",
        "section",
        "latest",
        "article"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/article-desktop.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "The reader journey from homepage/section to a server-rendered article and the search journey to populated results both completed without an account wall.",
      "pathIds": [
        "home",
        "section",
        "article",
        "search"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/search-results.png",
        "evidence/discover-article.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "A real missing URL returns HTTP 404 and shows an explicit explanation plus Search and Home recovery actions.",
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/not-found.png",
        "evidence/not-found-headers.txt"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "Lighthouse measured LCP 3.5s, TBT 1,230ms, Speed Index 21.9s, 27.2s main-thread work and 13.3s JavaScript execution. The trace corroborated a 4.47s LCP.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json"
      ],
      "findingIds": [
        "F6"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "Layout observer measured CLS 0.0004 during its sample and Lighthouse measured CLS 0.047, both in the good range.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "Lighthouse measured LCP 3.5s, TBT 1,230ms, Speed Index 21.9s, 27.2s main-thread work and 13.3s JavaScript execution. The trace corroborated a 4.47s LCP.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json"
      ],
      "findingIds": [
        "F6"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "HAR recorded 276 requests and 3.85MB transferred, including 86 scripts/2.26MB and 270 third-party requests. Lighthouse found 1,165KiB potential unused-JS savings, 1,250ms render-blocking savings, and 2,219KiB cache-lifetime savings.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F7"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "HAR recorded 276 requests and 3.85MB transferred, including 86 scripts/2.26MB and 270 third-party requests. Lighthouse found 1,165KiB potential unused-JS savings, 1,250ms render-blocking savings, and 2,219KiB cache-lifetime savings.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F7"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "Lighthouse found five unnamed links, two untitled iframes, and one visible-label/accessibility-name mismatch. The DOM probe counted 30 links without a usable name and search inputs have no associated label or aria-label.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-probe.log",
        "evidence/search-probe.log"
      ],
      "findingIds": [
        "F8"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "Lighthouse found nine contrast failures, including #9f9f9f on #f5f5f5 at 2.42:1 and red timestamps on beige at 3.61:1, below the required 4.5:1.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F9"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "The active focus probe reports outline none on the menu button and navigation links; the 360px layout has 936px horizontal overflow. This prevents dependable keyboard orientation and narrow/zoomed reflow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.log",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "Homepage/article screenshots show readable body/headline typography with strong line spacing and no observed text clipping in the primary content.",
      "pathIds": [
        "home",
        "article"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/article-desktop.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "The active focus probe reports outline none on the menu button and navigation links; the 360px layout has 936px horizontal overflow. This prevents dependable keyboard orientation and narrow/zoomed reflow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.log",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "Lighthouse recorded ten console/network errors and four deprecations, including unload listeners, Topics, Attribution Reporting, and Shared Storage; it also found a BFCache failure.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "The image audit found 7 images without dimensions, 42 without alt, 75 without srcset and 15 below-fold images not lazy-loaded; Lighthouse independently found unsized images.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images-home.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "Lighthouse recorded ten console/network errors and four deprecations, including unload listeners, Topics, Attribution Reporting, and Shared Storage; it also found a BFCache failure.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "Homepage and article probes show unique descriptive titles and populated meta descriptions.",
      "pathIds": [
        "home",
        "article"
      ],
      "artifacts": [
        "evidence/home-probe.log",
        "evidence/article-probe.log"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "Discoverability found server-rendered title/description and 100% raw-content coverage, but both recon and discoverability recorded zero H1 elements. The mobile layout overflows by 936px.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/discover-home.json",
        "evidence/home-mobile-layout.json",
        "evidence/home-probe.log"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "Both audited public pages return 200, expose self-referencing canonicals, avoid noindex, and robots.txt allows crawling and declares current sitemap indexes.",
      "pathIds": [
        "home",
        "article"
      ],
      "artifacts": [
        "evidence/home-probe.log",
        "evidence/article-probe.log",
        "evidence/robots.txt"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "Homepage exposes Organization/WebSite metadata and article exposes NewsArticle, breadcrumb, image, dates, canonical and matching Open Graph metadata.",
      "pathIds": [
        "home",
        "article"
      ],
      "artifacts": [
        "evidence/home-probe.log",
        "evidence/article-probe.log"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "The headers primitive found no CSP, HSTS, nosniff, clickjacking, Referrer-Policy or Permissions-Policy headers. Cookie audit found 30 of 31 cookies insecure, many SameSite=None and several lasting 390–400 days.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "Tracker capture contacted 109 third-party origins and identified 26 known tracker domains. HAR attributes 270 of 276 requests and 3.74MB of 3.85MB to third parties, before any explicit reader action.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "The login probe found a labelled email flow with autocomplete=email and social sign-in choices, but no WebAuthn/passkey affordance or implementation signal.",
      "pathIds": [
        "login"
      ],
      "artifacts": [
        "evidence/login-probe.log",
        "evidence/login-empty-submit.png"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "The headers primitive found no CSP, HSTS, nosniff, clickjacking, Referrer-Policy or Permissions-Policy headers. Cookie audit found 30 of 31 cookies insecure, many SameSite=None and several lasting 390–400 days.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "Discoverability comparison found 100% homepage and 97% article content coverage in raw server HTML with titles/descriptions and article H1 intact without JavaScript.",
      "pathIds": [
        "home",
        "article"
      ],
      "artifacts": [
        "evidence/discover-home.json",
        "evidence/discover-article.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "Search and homepage captures show a custom bottom video layer and fixed chat widget overlapping the content; DOM reports no dialog/popover primitives that provide top-layer semantics and platform dismissal.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-results.png",
        "evidence/home-probe.log"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "The platform probe found a manifest link but no active service worker; therefore no offline fallback is available for previously visited articles or a network-failure shell.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.log"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "The missing-route test returns a true 404 and provides useful recovery actions instead of a blank shell or misleading success.",
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/not-found.png",
        "evidence/not-found-headers.txt"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "The platform probe confirms lang=sr but finds physical CSS properties and no logical inline/block properties; dir is not explicitly declared.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.log",
        "evidence/platform-probe.log"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "Article markup uses Serbian page language and an ISO 8601 datetime with +02:00 while rendering a Serbian-localised date and time.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-probe.log"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "Published/modified times in JSON-LD and time markup are unambiguous ISO values with explicit +02:00 offsets.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-probe.log"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "Homepage, search, article, 404 and login walkthroughs showed no confirmshaming, forced continuity, disguised purchase action or obstructed cancellation.",
      "pathIds": [
        "home",
        "article",
        "search",
        "login",
        "not-found"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/login-empty-submit.png",
        "evidence/not-found.png"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "After activating Continue with an empty email field, the captured login page shows no inline required-field message, error summary, or invalid state; the input is not marked required.",
      "pathIds": [
        "login"
      ],
      "artifacts": [
        "evidence/login-empty-submit.png",
        "evidence/login-probe.log"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "The sign-in email field has a real visible label, type=email and autocomplete=email; alternative sign-in methods are clearly named.",
      "pathIds": [
        "login"
      ],
      "artifacts": [
        "evidence/login-probe.log",
        "evidence/login-empty-submit.png"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "No checkout/subscription flow was presented; the relevant account flow clearly identifies email and social options, registration, privacy policy, terms and support.",
      "pathIds": [
        "login"
      ],
      "artifacts": [
        "evidence/login-empty-submit.png"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "The image audit found 75/100 images without srcset, 15 below-fold images eager-loaded, 7 missing dimensions and 3 oversized; Lighthouse estimated 371KiB image-delivery savings.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images-home.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "HAR shows 270 third-party requests, 86 scripts, 83 fetches and 3.74MB third-party transfer; screenshots show large/sticky advertising and video occupying content space. Lighthouse saw a 31MB payload under its throttled run.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-summary.json",
        "evidence/search-results.png"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "HAR shows 270 third-party requests, 86 scripts, 83 fetches and 3.74MB third-party transfer; screenshots show large/sticky advertising and video occupying content space. Lighthouse saw a 31MB payload under its throttled run.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-summary.json",
        "evidence/search-results.png"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and rendered/source capability probe.",
      "evidence": "Agent-facing tools and on-device inference are an emerging contextual opportunity; this public news reader does not expose an agent action surface, so absence is not treated as a failure.",
      "reason": "Agent-facing tools and on-device inference are an emerging contextual opportunity; this public news reader does not expose an agent action surface, so absence is not treated as a failure.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.log",
        "evidence/discover-home.json"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and rendered/source capability probe.",
      "evidence": "Agent-facing tools and on-device inference are an emerging contextual opportunity; this public news reader does not expose an agent action surface, so absence is not treated as a failure.",
      "reason": "Agent-facing tools and on-device inference are an emerging contextual opportunity; this public news reader does not expose an agent action surface, so absence is not treated as a failure.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.log",
        "evidence/discover-home.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "After 10 carousel next/back cycles the post heap was smaller (58.6MB, 1.11M nodes) than the independent loaded baseline (63.2MB, 1.21M nodes), so this bounded sample shows no retained-growth signal.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-carousel-post.heapsnapshot"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual, DOM, performance, network, security or interaction evidence as cited.",
      "evidence": "The baseline heap summary contains about 1.21 million nodes, 5.60 million edges and 63.2MB self size for a news homepage. A repeated 10× carousel next/back run did not increase the footprint, but the steady-state allocation remains high.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-carousel-post.heapsnapshot"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct visual, DOM, HTTP, interaction or objective probe as cited.",
      "evidence": "Baseline and repeated-carousel heap summaries show no Detached* constructor among the dominant constructors and no total growth after the repeated interaction.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-carousel-post.heapsnapshot"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F1"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F2"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F3"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F4"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F5"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F6",
        "F7"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F8",
        "F9",
        "F10"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F11",
        "F12"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F14",
        "F15",
        "F16"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F17",
        "F18"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F21",
        "F22"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "Agent-facing tools and on-device inference are an emerging contextual opportunity; this public news reader does not expose an agent action surface, so absence is not treated as a failure."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F23"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage: primary news landing template, global navigation, ads, preferences, mobile layout, network/performance/security and carousel interaction.",
      "url": "https://www.blic.rs",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "forced-colors: active",
        "keyboard focus",
        "10x carousel interaction"
      ],
      "result": "issues"
    },
    {
      "id": "section",
      "description": "News section listing template representing category indexes.",
      "url": "https://www.blic.rs/vesti",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "latest",
      "description": "Latest-news chronological listing template.",
      "url": "https://www.blic.rs/najnovije-vesti",
      "conditions": [
        "desktop"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "Representative news article and primary reading journey, including metadata and no-JavaScript content.",
      "url": "https://www.blic.rs/vesti/hronika/decak-4-se-utopio-u-akva-parku-u-smederevu/jrjn36e",
      "conditions": [
        "desktop",
        "JavaScript enabled",
        "JavaScript-disabled crawler"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Primary search flow with a populated query and result list.",
      "url": "https://www.blic.rs/search?q=Beograd",
      "conditions": [
        "desktop",
        "query: Beograd"
      ],
      "result": "issues"
    },
    {
      "id": "login",
      "description": "Account/sign-in form, input assistance, auth options and empty-submit validation.",
      "url": "https://www.blic.rs/login",
      "conditions": [
        "desktop",
        "empty form submit"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Recovery path for a missing URL, including true HTTP status and navigation options.",
      "url": "https://www.blic.rs/this-page-does-not-exist-audit",
      "conditions": [
        "desktop"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F1",
      "severity": "medium",
      "summary": "The site ignores the user’s dark colour-scheme preference.",
      "evidence": "The dark-mode screenshot remains a white/red light theme; the dark probe reports color-scheme: normal and unchanged light foreground/surface values while prefers-color-scheme: dark matches.",
      "suggestedFix": "Declare color-scheme: light dark and use prefers-color-scheme or light-dark() tokens for page, controls, ads placeholders, and embedded surfaces.",
      "effort": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/dark-probe.log"
      ],
      "confidence": "high"
    },
    {
      "id": "F2",
      "severity": "low",
      "summary": "Interactive movement is library-driven and lacks modern transition and scroll primitives.",
      "evidence": "The DOM/CSS probe found no View Transition rules, container/scroll timelines, or running document animations; the carousel is implemented with the shipped Swiper library.",
      "suggestedFix": "Progressively enhance route/state changes with View Transitions and implement scroll/gesture behaviour with CSS scroll timelines, scroll snap, and platform overscroll where appropriate.",
      "effort": "medium",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "physical-gestures",
      "guidanceId": "same-document-transitions",
      "guidanceCategory": "user-experience",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/home-probe.log",
        "evidence/home-desktop.png"
      ],
      "confidence": "medium"
    },
    {
      "id": "F3",
      "severity": "low",
      "summary": "Navigation chrome does not react to reading position and overlays are not anchor-positioned.",
      "evidence": "Desktop and article captures show a static two-row header without reading progress; CSS inspection found no modern positioning/state rules and no popover primitives.",
      "suggestedFix": "Add a scroll-state-aware compact header/progress cue and use CSS anchor positioning with fallbacks for transient menus and tooltips.",
      "effort": "medium",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "scroll-position-aware-elements",
      "guidanceCategory": "user-experience",
      "pathId": "article",
      "url": "https://www.blic.rs/vesti/hronika/decak-4-se-utopio-u-akva-parku-u-smederevu/jrjn36e",
      "artifacts": [
        "evidence/article-desktop.png",
        "evidence/home-probe.log"
      ],
      "confidence": "medium"
    },
    {
      "id": "F4",
      "severity": "high",
      "summary": "Advertising and custom fixed widgets overwhelm and obscure the core news content.",
      "evidence": "The first article viewport gives most of its height to a large ad; homepage/search screenshots show a fixed Biz Chat control and a bottom video overlay covering results. DOM reports zero dialog/popover/details primitives.",
      "suggestedFix": "Defer nonessential ads/widgets, cap their occupied area, avoid autoplay/sticky media, and implement transient controls with dialog/popover and clear light-dismiss.",
      "effort": "large",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "user-experience",
      "pathId": "article",
      "url": "https://www.blic.rs/vesti/hronika/decak-4-se-utopio-u-akva-parku-u-smederevu/jrjn36e",
      "artifacts": [
        "evidence/article-desktop.png",
        "evidence/search-results.png",
        "evidence/home-probe.log"
      ],
      "confidence": "high"
    },
    {
      "id": "F5",
      "severity": "high",
      "summary": "The narrow layout overflows and keyboard/touch affordances are weak.",
      "evidence": "At 360×800 the layout primitive measured scrollWidth 1296 versus a 360px visual viewport, 936px horizontal overflow. The focus probe found many links with outline none and controls as small as 18×18 or 24×24. No container queries were found.",
      "suggestedFix": "Remove desktop minimum widths, make navigation intentionally scrollable without enlarging the document, use container queries for cards, provide visible :focus-visible styles, and make touch targets at least 44px.",
      "effort": "large",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "css",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png",
        "evidence/home-probe.log"
      ],
      "confidence": "high"
    },
    {
      "id": "F6",
      "severity": "high",
      "summary": "Loading and interaction performance miss modern responsiveness targets.",
      "evidence": "Lighthouse measured LCP 3.5s, TBT 1,230ms, Speed Index 21.9s, 27.2s main-thread work and 13.3s JavaScript execution. The trace corroborated a 4.47s LCP.",
      "suggestedFix": "Profile long tasks, split and defer noncritical script, prioritise the LCP asset, and schedule analytics/ad work after core content and interaction readiness.",
      "effort": "large",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F7",
      "severity": "high",
      "summary": "Resource delivery is dominated by unused code and third-party dependencies.",
      "evidence": "HAR recorded 276 requests and 3.85MB transferred, including 86 scripts/2.26MB and 270 third-party requests. Lighthouse found 1,165KiB potential unused-JS savings, 1,250ms render-blocking savings, and 2,219KiB cache-lifetime savings.",
      "suggestedFix": "Remove duplicate/unused vendor tags, load optional integrations on demand, self-host/subset fonts where appropriate, and tighten cache and priority policy.",
      "effort": "large",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/lighthouse-summary.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F8",
      "severity": "high",
      "summary": "Multiple interactive elements lack accessible names and structural labelling.",
      "evidence": "Lighthouse found five unnamed links, two untitled iframes, and one visible-label/accessibility-name mismatch. The DOM probe counted 30 links without a usable name and search inputs have no associated label or aria-label.",
      "suggestedFix": "Give every icon link and iframe a purpose-specific accessible name/title, add real labels for search inputs, and keep visible and accessible names aligned.",
      "effort": "medium",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-probe.log",
        "evidence/search-probe.log"
      ],
      "confidence": "high"
    },
    {
      "id": "F9",
      "severity": "high",
      "summary": "Text and controls fail minimum colour contrast.",
      "evidence": "Lighthouse found nine contrast failures, including #9f9f9f on #f5f5f5 at 2.42:1 and red timestamps on beige at 3.61:1, below the required 4.5:1.",
      "suggestedFix": "Adjust text and surface tokens to meet WCAG AA in every state and add automated contrast coverage for recurring card/tab components.",
      "effort": "small",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F10",
      "severity": "high",
      "summary": "Focus visibility and reflow are not reliable.",
      "evidence": "The active focus probe reports outline none on the menu button and navigation links; the 360px layout has 936px horizontal overflow. This prevents dependable keyboard orientation and narrow/zoomed reflow.",
      "suggestedFix": "Define strong :focus-visible styles that survive theme colours and ensure all content reflows at narrow/zoomed widths without document-level horizontal scrolling.",
      "effort": "medium",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/home-probe.log",
        "evidence/home-mobile-layout.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F11",
      "severity": "medium",
      "summary": "The page logs runtime errors and uses deprecated browser APIs.",
      "evidence": "Lighthouse recorded ten console/network errors and four deprecations, including unload listeners, Topics, Attribution Reporting, and Shared Storage; it also found a BFCache failure.",
      "suggestedFix": "Remove unload handlers, update or remove obsolete ad/analytics integrations, handle failed vendor responses, and restore BFCache eligibility.",
      "effort": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F12",
      "severity": "medium",
      "summary": "Image/document asset hygiene has avoidable defects.",
      "evidence": "The image audit found 7 images without dimensions, 42 without alt, 75 without srcset and 15 below-fold images not lazy-loaded; Lighthouse independently found unsized images.",
      "suggestedFix": "Emit width/height or aspect-ratio, meaningful or empty alt as appropriate, responsive srcset/sizes, and lazy loading for below-fold editorial media.",
      "effort": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/images-home.json",
        "evidence/lighthouse-summary.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F13",
      "severity": "medium",
      "summary": "The public homepage lacks an H1 and mobile crawlability is undermined by overflow.",
      "evidence": "Discoverability found server-rendered title/description and 100% raw-content coverage, but both recon and discoverability recorded zero H1 elements. The mobile layout overflows by 936px.",
      "suggestedFix": "Add one descriptive homepage H1 (visually integrated, not keyword stuffing) and fix narrow reflow while preserving real href links and server-rendered content.",
      "effort": "small",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/discover-home.json",
        "evidence/home-mobile-layout.json",
        "evidence/home-probe.log"
      ],
      "confidence": "high"
    },
    {
      "id": "F14",
      "severity": "critical",
      "summary": "Core browser security headers and cookie protections are absent.",
      "evidence": "The headers primitive found no CSP, HSTS, nosniff, clickjacking, Referrer-Policy or Permissions-Policy headers. Cookie audit found 30 of 31 cookies insecure, many SameSite=None and several lasting 390–400 days.",
      "suggestedFix": "Deploy a restrictive report-tested CSP, HSTS, nosniff, frame-ancestors, Referrer-Policy and Permissions-Policy; mark every HTTPS cookie Secure and minimise SameSite=None/lifetimes.",
      "effort": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F15",
      "severity": "critical",
      "summary": "The default page load exposes readers to an extreme tracking and advertising footprint.",
      "evidence": "Tracker capture contacted 109 third-party origins and identified 26 known tracker domains. HAR attributes 270 of 276 requests and 3.74MB of 3.85MB to third parties, before any explicit reader action.",
      "suggestedFix": "Adopt data minimisation by default, gate nonessential trackers behind valid consent, consolidate vendors, batch analytics, and publish a measurable third-party budget.",
      "effort": "large",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "confidence": "high"
    },
    {
      "id": "F16",
      "severity": "medium",
      "summary": "Authentication offers no phishing-resistant passkey option.",
      "evidence": "The login probe found a labelled email flow with autocomplete=email and social sign-in choices, but no WebAuthn/passkey affordance or implementation signal.",
      "suggestedFix": "Add passkey registration and authentication as a primary option, with existing identity-provider/email flows retained as recovery fallbacks.",
      "effort": "large",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "passkeys",
      "guidanceCategory": "security",
      "pathId": "login",
      "url": "https://www.blic.rs/login",
      "artifacts": [
        "evidence/login-probe.log",
        "evidence/login-empty-submit.png"
      ],
      "confidence": "high"
    },
    {
      "id": "F17",
      "severity": "medium",
      "summary": "Custom sticky overlays make runtime behaviour fragile.",
      "evidence": "Search and homepage captures show a custom bottom video layer and fixed chat widget overlapping the content; DOM reports no dialog/popover primitives that provide top-layer semantics and platform dismissal.",
      "suggestedFix": "Use top-layer dialog/popover primitives, reserve layout space for persistent media, restore focus on close, and test edge positioning at every viewport.",
      "effort": "medium",
      "principleId": "be-resilient",
      "principleCheckId": "resilient-runtime-behaviour",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "user-experience",
      "pathId": "search",
      "url": "https://www.blic.rs/search?q=Beograd",
      "artifacts": [
        "evidence/search-results.png",
        "evidence/home-probe.log"
      ],
      "confidence": "high"
    },
    {
      "id": "F18",
      "severity": "low",
      "summary": "The news experience is not available offline despite shipping a manifest.",
      "evidence": "The platform probe found a manifest link but no active service worker; therefore no offline fallback is available for previously visited articles or a network-failure shell.",
      "suggestedFix": "Add a small service worker with an offline fallback and conservative caching for app shell and recently read articles; keep live news network-first.",
      "effort": "medium",
      "principleId": "be-resilient",
      "principleCheckId": "offline-and-installable",
      "guidanceId": "flicker-free-client-side-ab-testing",
      "guidanceCategory": "performance",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/home-probe.log"
      ],
      "confidence": "medium"
    },
    {
      "id": "F19",
      "severity": "medium",
      "summary": "Layout CSS is not prepared for bidirectional or alternate writing modes.",
      "evidence": "The platform probe confirms lang=sr but finds physical CSS properties and no logical inline/block properties; dir is not explicitly declared.",
      "suggestedFix": "Set the intended direction and replace physical left/right/width-dependent component rules with logical properties and translation-tolerant sizing.",
      "effort": "medium",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "guidanceCategory": "internationalization",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/home-probe.log",
        "evidence/platform-probe.log"
      ],
      "confidence": "medium"
    },
    {
      "id": "F20",
      "severity": "medium",
      "summary": "Submitting the empty sign-in form gives no visible, actionable feedback.",
      "evidence": "After activating Continue with an empty email field, the captured login page shows no inline required-field message, error summary, or invalid state; the input is not marked required.",
      "suggestedFix": "Use required/email constraints, validate after interaction, display a specific inline message, set aria-invalid, and announce errors through a live region.",
      "effort": "small",
      "principleId": "be-trustworthy",
      "principleCheckId": "humane-error-handling",
      "guidanceId": "validate-input-after-interaction",
      "guidanceCategory": "forms",
      "pathId": "login",
      "url": "https://www.blic.rs/login",
      "artifacts": [
        "evidence/login-empty-submit.png",
        "evidence/login-probe.log"
      ],
      "confidence": "high"
    },
    {
      "id": "F21",
      "severity": "high",
      "summary": "Image delivery wastes bandwidth across a media-heavy homepage.",
      "evidence": "The image audit found 75/100 images without srcset, 15 below-fold images eager-loaded, 7 missing dimensions and 3 oversized; Lighthouse estimated 371KiB image-delivery savings.",
      "suggestedFix": "Generate AVIF/WebP variants, emit width-aware srcset/sizes, lazy-load below-fold images, and preserve dimensions while prioritising only the LCP image.",
      "effort": "medium",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "performance",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/images-home.json",
        "evidence/lighthouse-summary.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F22",
      "severity": "critical",
      "summary": "Third-party scripts and media are disproportionate to the core reading experience.",
      "evidence": "HAR shows 270 third-party requests, 86 scripts, 83 fetches and 3.74MB third-party transfer; screenshots show large/sticky advertising and video occupying content space. Lighthouse saw a 31MB payload under its throttled run.",
      "suggestedFix": "Set enforceable third-party request/byte/CPU budgets, remove low-value vendors, load ads/media only near view or after consent, and stop sticky/autoplay media by default.",
      "effort": "large",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "efficient-background-processing",
      "guidanceCategory": "performance",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-summary.json",
        "evidence/search-results.png"
      ],
      "confidence": "high"
    },
    {
      "id": "F23",
      "severity": "medium",
      "summary": "The homepage has a disproportionate memory footprint.",
      "evidence": "The baseline heap summary contains about 1.21 million nodes, 5.60 million edges and 63.2MB self size for a news homepage. A repeated 10× carousel next/back run did not increase the footprint, but the steady-state allocation remains high.",
      "suggestedFix": "Reduce vendor runtimes and duplicate trackers, virtualise long feeds, destroy offscreen widgets/iframes, and establish a heap/node budget in regression tests.",
      "effort": "large",
      "principleId": "be-memory-efficient",
      "principleCheckId": "bounded-footprint",
      "guidanceId": "manage-recurring-intervals",
      "guidanceCategory": "javascript",
      "pathId": "home",
      "url": "https://www.blic.rs",
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-carousel-post.heapsnapshot"
      ],
      "confidence": "medium"
    }
  ],
  "taskList": [
    {
      "id": "T1",
      "title": "Deploy a restrictive report-tested CSP, HSTS, nosniff, frame-ancestors, Referrer-Policy and Permissions-Policy; mark every HTTPS cookie Secure and minimise SameSite=None/lifetimes.",
      "priority": 1,
      "findingIds": [
        "F14"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T2",
      "title": "Adopt data minimisation by default, gate nonessential trackers behind valid consent, consolidate vendors, batch analytics, and publish a measurable third-party budget.",
      "priority": 2,
      "findingIds": [
        "F15"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T3",
      "title": "Set enforceable third-party request/byte/CPU budgets, remove low-value vendors, load ads/media only near view or after consent, and stop sticky/autoplay media by default.",
      "priority": 3,
      "findingIds": [
        "F22"
      ],
      "guidanceId": "efficient-background-processing",
      "status": "open"
    },
    {
      "id": "T4",
      "title": "Defer nonessential ads/widgets, cap their occupied area, avoid autoplay/sticky media, and implement transient controls with dialog/popover and clear light-dismiss.",
      "priority": 4,
      "findingIds": [
        "F4"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T5",
      "title": "Profile long tasks, split and defer noncritical script, prioritise the LCP asset, and schedule analytics/ad work after core content and interaction readiness.",
      "priority": 5,
      "findingIds": [
        "F6"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T6",
      "title": "Remove desktop minimum widths, make navigation intentionally scrollable without enlarging the document, use container queries for cards, provide visible :focus-visible styles, and make touch targets at least 44px.",
      "priority": 6,
      "findingIds": [
        "F5"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T7",
      "title": "Give every icon link and iframe a purpose-specific accessible name/title, add real labels for search inputs, and keep visible and accessible names aligned.",
      "priority": 7,
      "findingIds": [
        "F8"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T8",
      "title": "Adjust text and surface tokens to meet WCAG AA in every state and add automated contrast coverage for recurring card/tab components.",
      "priority": 8,
      "findingIds": [
        "F9"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T9",
      "title": "Remove duplicate/unused vendor tags, load optional integrations on demand, self-host/subset fonts where appropriate, and tighten cache and priority policy.",
      "priority": 9,
      "findingIds": [
        "F7"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Generate AVIF/WebP variants, emit width-aware srcset/sizes, lazy-load below-fold images, and preserve dimensions while prioritising only the LCP image.",
      "priority": 10,
      "findingIds": [
        "F21"
      ],
      "guidanceId": "deliver-optimized-decorative-images",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Define strong :focus-visible styles that survive theme colours and ensure all content reflows at narrow/zoomed widths without document-level horizontal scrolling.",
      "priority": 11,
      "findingIds": [
        "F10"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T12",
      "title": "Remove unload handlers, update or remove obsolete ad/analytics integrations, handle failed vendor responses, and restore BFCache eligibility.",
      "priority": 12,
      "findingIds": [
        "F11"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T13",
      "title": "Add passkey registration and authentication as a primary option, with existing identity-provider/email flows retained as recovery fallbacks.",
      "priority": 13,
      "findingIds": [
        "F16"
      ],
      "guidanceId": "passkeys",
      "status": "open"
    },
    {
      "id": "T14",
      "title": "Use required/email constraints, validate after interaction, display a specific inline message, set aria-invalid, and announce errors through a live region.",
      "priority": 14,
      "findingIds": [
        "F20"
      ],
      "guidanceId": "validate-input-after-interaction",
      "status": "open"
    },
    {
      "id": "T15",
      "title": "Reduce vendor runtimes and duplicate trackers, virtualise long feeds, destroy offscreen widgets/iframes, and establish a heap/node budget in regression tests.",
      "priority": 15,
      "findingIds": [
        "F23"
      ],
      "guidanceId": "manage-recurring-intervals",
      "status": "open"
    },
    {
      "id": "T16",
      "title": "Emit width/height or aspect-ratio, meaningful or empty alt as appropriate, responsive srcset/sizes, and lazy loading for below-fold editorial media.",
      "priority": 16,
      "findingIds": [
        "F12"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T17",
      "title": "Add one descriptive homepage H1 (visually integrated, not keyword stuffing) and fix narrow reflow while preserving real href links and server-rendered content.",
      "priority": 17,
      "findingIds": [
        "F13"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T18",
      "title": "Use top-layer dialog/popover primitives, reserve layout space for persistent media, restore focus on close, and test edge positioning at every viewport.",
      "priority": 18,
      "findingIds": [
        "F17"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T19",
      "title": "Set the intended direction and replace physical left/right/width-dependent component rules with logical properties and translation-tolerant sizing.",
      "priority": 19,
      "findingIds": [
        "F19"
      ],
      "guidanceId": "translator",
      "status": "open"
    },
    {
      "id": "T20",
      "title": "Declare color-scheme: light dark and use prefers-color-scheme or light-dark() tokens for page, controls, ads placeholders, and embedded surfaces.",
      "priority": 20,
      "findingIds": [
        "F1"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T21",
      "title": "Add a small service worker with an offline fallback and conservative caching for app shell and recently read articles; keep live news network-first.",
      "priority": 21,
      "findingIds": [
        "F18"
      ],
      "guidanceId": "flicker-free-client-side-ab-testing",
      "status": "open"
    },
    {
      "id": "T22",
      "title": "Progressively enhance route/state changes with View Transitions and implement scroll/gesture behaviour with CSS scroll timelines, scroll snap, and platform overscroll where appropriate.",
      "priority": 22,
      "findingIds": [
        "F2"
      ],
      "guidanceId": "same-document-transitions",
      "status": "open"
    },
    {
      "id": "T23",
      "title": "Add a scroll-state-aware compact header/progress cue and use CSS anchor positioning with fallbacks for transient menus and tooltips.",
      "priority": 23,
      "findingIds": [
        "F3"
      ],
      "guidanceId": "scroll-position-aware-elements",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 7,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-21T04-33-01-311Z"
}
