{
  "url": "https://m.bild.de",
  "auditedAt": "2026-07-22T17:39:23.916Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete audit. Consent UI prevented first-run interaction with underlying content, but server-rendered DOM, no-JS output, representative templates and objective browser evidence remained inspectable.",
  "page": {
    "appType": "mpa",
    "framework": "Vue-like hydrated MPA (framework inferred from rendered comment markers; server-rendered content)",
    "notes": "m.bild.de redirects browser navigation to www.bild.de while retaining complete server-rendered news content. Representative coverage included homepage, section, article and search. Checkout, subscriber account management and deep video playback were not covered because they are distinct authenticated/commercial journeys and the first-run consent wall prevented entry."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "images",
    "secrets",
    "heap-summary",
    "lighthouse",
    "robots/sitemap fetch",
    "Modern Web Guidance"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "performance",
    "forms",
    "security",
    "privacy",
    "html",
    "css",
    "optimize-image-priority",
    "break-up-long-tasks",
    "improve-text-layout-and-legibility",
    "light-dismiss-a-dialog",
    "fluid-scaling",
    "translator",
    "same-document-transitions",
    "scroll-progress-indicator",
    "size-aware-styling",
    "accessible-error-announcement",
    "visually-stable-font-fallbacks",
    "identify-heavy-scripts",
    "agentic-forms",
    "webmcp",
    "deprioritize-background-fetches",
    "deliver-optimized-decorative-images",
    "manage-recurring-intervals"
  ],
  "artifacts": [
    {
      "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": [
        "F04"
      ]
    },
    {
      "type": "other",
      "path": "evidence/article-links.json",
      "caption": "article links",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/article-mobile.png",
      "caption": "article mobile",
      "findingIds": [
        "F01",
        "F05"
      ]
    },
    {
      "type": "other",
      "path": "evidence/article-probe.json",
      "caption": "article probe",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies",
      "findingIds": [
        "F12",
        "F13"
      ]
    },
    {
      "type": "other",
      "path": "evidence/coverage-manifest.tsv",
      "caption": "coverage manifest",
      "findingIds": []
    },
    {
      "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/headers.json",
      "caption": "headers",
      "findingIds": [
        "F11",
        "F13"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline",
      "caption": "heap baseline",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post",
      "caption": "heap post",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-content-mobile.png",
      "caption": "home content mobile",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark",
      "findingIds": [
        "F02"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": [
        "F01",
        "F15"
      ]
    },
    {
      "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": [
        "F09"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-forced-colors.png",
      "caption": "home forced colors",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-mobile.json",
      "caption": "home layout mobile",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "findingIds": [
        "F01",
        "F05",
        "F15"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F07",
        "F12"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace",
      "caption": "home trace",
      "findingIds": []
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": [
        "F06"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "images",
      "findingIds": [
        "F08",
        "F16"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "lighthouse",
      "findingIds": [
        "F06",
        "F07",
        "F08",
        "F10",
        "F16",
        "F17"
      ]
    },
    {
      "type": "other",
      "path": "evidence/login-link.json",
      "caption": "login link",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/manifest-404.json",
      "caption": "manifest 404",
      "findingIds": [
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/platform-probe.json",
      "caption": "platform probe",
      "findingIds": [
        "F02",
        "F03",
        "F04",
        "F08",
        "F09",
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/recon.json",
      "caption": "recon",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/search-mobile.png",
      "caption": "search mobile",
      "findingIds": [
        "F05"
      ]
    },
    {
      "type": "other",
      "path": "evidence/search-probe.json",
      "caption": "search probe",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/section-mobile.png",
      "caption": "section mobile",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/security-agent-probe.json",
      "caption": "security agent probe",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "sitemap",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers",
      "findingIds": [
        "F12"
      ]
    }
  ],
  "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": "Objective primitive/tool evidence and visual review",
      "evidence": "Under prefers-color-scheme: dark, the site remains light; the platform probe found no prefers-color-scheme rules and computed color-scheme is light/normal.",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F02"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "CSS/media probe under reduced-motion",
      "evidence": "The loaded CSS contains prefers-reduced-motion handling, and document.getAnimations() returned zero on the first-run state.",
      "artifacts": [
        "evidence/platform-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Forced-colors screenshot",
      "evidence": "Under forced-colors: active and prefers-contrast: more, consent text, links, borders and controls remain visible with system colors.",
      "artifacts": [
        "evidence/home-forced-colors.png"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "The CSS/platform probe found no view-transition usage across the homepage bundle, while the site exposes many route and carousel state changes.",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F03"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "pass",
      "confidence": "high",
      "method": "CSS and runtime motion inspection",
      "evidence": "No scroll-linked animation was present to implement with main-thread scroll handlers; getAnimations() was zero and the page uses native scrolling.",
      "artifacts": [
        "evidence/platform-probe.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "CSS capability inspection",
      "evidence": "The loaded CSS uses scroll-snap for carousel-like content and no evidence showed pointer-driven scrolling fighting the platform.",
      "artifacts": [
        "evidence/platform-probe.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "The article is about 4,749 CSS px high and the homepage about 25,889 CSS px, but the CSS probe found no scroll timeline and screenshots show no reading-progress affordance.",
      "artifacts": [
        "evidence/article-dom.json",
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F04"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "pass",
      "confidence": "high",
      "method": "CSS capability inspection",
      "evidence": "The loaded CSS contains anchor positioning support, providing declarative attachment for positioned UI.",
      "artifacts": [
        "evidence/platform-probe.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "medium",
      "method": "DOM and first-view inspection",
      "evidence": "Skip-to-main, descriptive navigation labels, carousel control names, and visible headline hierarchy provide concrete navigation cues.",
      "artifacts": [
        "evidence/recon.json",
        "evidence/platform-probe.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "Mobile and desktop screenshots of the homepage, section, article and search all show the same full-viewport modal before any content can be used. The only immediate paths are accepting tracking, opening settings, or paying for BILD Pur.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-desktop.png",
        "evidence/article-mobile.png"
      ],
      "findingIds": [
        "F01"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "pass",
      "confidence": "high",
      "method": "DOM semantic inspection",
      "evidence": "The page contains a native dialog plus a role=dialog consent wrapper rather than an unlabelled generic full-screen div.",
      "artifacts": [
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "medium",
      "method": "Desktop screenshot inspection",
      "evidence": "Behind the modal, the page uses edge-to-edge editorial cards and imagery; the main failure is interruption rather than a persistent application frame.",
      "artifacts": [
        "evidence/home-dark.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "Narrow layout metrics",
      "evidence": "At 390x844, scrollWidth, clientWidth and innerWidth were all 390 with zero horizontal overflow and a viewport meta tag.",
      "artifacts": [
        "evidence/home-layout-mobile.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "pass",
      "confidence": "high",
      "method": "CSS capability inspection",
      "evidence": "The loaded styles contain container query/container-type usage and the narrow layout reflows without overflow.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/home-layout-mobile.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "The homepage has no H1 and begins its sampled hierarchy at H3. The probe also found many carousel buttons rendered only 4 CSS px high.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F09"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Rendered content and metadata inspection",
      "evidence": "The homepage title, nav and headline cards clearly establish a current-news destination; the search page has an H1 and explicit search prompt.",
      "artifacts": [
        "evidence/recon.json",
        "evidence/search-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "All four representative routes are obscured by the consent-or-pay wall; the agent could inspect server-rendered content but a first-time user cannot read or search before choosing tracking or subscription.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/search-mobile.png",
        "evidence/article-mobile.png"
      ],
      "findingIds": [
        "F05"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "404 and consent-state inspection",
      "evidence": "A synthetic missing route returned HTTP 404 with an explicit German error document; the consent state clearly presents settings and subscription alternatives.",
      "artifacts": [
        "evidence/manifest-404.json",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "Lighthouse measured performance 0.53, FCP 8.7 s, LCP 16.3 s and TTI 16.5 s. A separate warm trace measured LCP 2.22 s, showing the cold path is the material risk.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F06"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Layout observer and image audit",
      "evidence": "The mobile layout observer measured CLS 0 with no shifts; all 100 sampled images had explicit width and height.",
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/images.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "Lighthouse measured performance 0.53, FCP 8.7 s, LCP 16.3 s and TTI 16.5 s. A separate warm trace measured LCP 2.22 s, showing the cold path is the material risk. The HAR recorded 155 requests and 1.75 MB transferred during the sampled load, including 78 scripts; Lighthouse reported 2.96 MiB total, about 930 ms render-blocking savings, 185 KiB unused JS and 40 KiB unused CSS.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-trace-summary.json",
        "evidence/home.har",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F06",
        "F07"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "The HAR recorded 155 requests and 1.75 MB transferred during the sampled load, including 78 scripts; Lighthouse reported 2.96 MiB total, about 930 ms render-blocking savings, 185 KiB unused JS and 40 KiB unused CSS.",
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F07"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "The HAR recorded 155 requests and 1.75 MB transferred during the sampled load, including 78 scripts; Lighthouse reported 2.96 MiB total, about 930 ms render-blocking savings, 185 KiB unused JS and 40 KiB unused CSS.",
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F07"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "Lighthouse failed link-name and frame-title. The DOM probe counted 143 links with no visible or fallback text and 184 controls without a detected name; the image primitive found 32 images without alt attributes.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/platform-probe.json",
        "evidence/images.json"
      ],
      "findingIds": [
        "F08"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse accessibility and forced-colors inspection",
      "evidence": "Lighthouse accessibility scored 0.94 without a contrast failure, and forced-colors retained legible text and controls.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-forced-colors.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "The homepage has no H1 and begins its sampled hierarchy at H3. The probe also found many carousel buttons rendered only 4 CSS px high.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F09"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots and computed styles",
      "evidence": "Consent copy remains readable at mobile width with clear spacing and no clipping; article text is server-rendered and uses responsive layout.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/article-dom.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "The homepage has no H1 and begins its sampled hierarchy at H3. The probe also found many carousel buttons rendered only 4 CSS px high.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F09"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "Lighthouse failed errors-in-console; its run also reported an out-of-bounds source-map mapping for html-load.com/loader.min.js.map.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F10"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "The image audit found six oversized images and Lighthouse estimated 146 KiB image savings. The load also shipped 2.96 MiB overall despite the first viewport being blocked by consent.",
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F16"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "Lighthouse failed errors-in-console; its run also reported an out-of-bounds source-map mapping for html-load.com/loader.min.js.map.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F10"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Metadata probe",
      "evidence": "Homepage and article have descriptive titles and meta descriptions; article values accurately name the visible story.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/article-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "Lighthouse failed the robots-txt audit with one error, although manual inspection confirmed public crawling rules and four sitemap declarations.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/robots.txt"
      ],
      "findingIds": [
        "F17"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "Metadata, status, robots and sitemap inspection",
      "evidence": "Homepage/article returned 200, declare canonical URLs and index/follow, and robots.txt lists four sitemap endpoints.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/article-probe.json",
        "evidence/robots.txt"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "Article metadata parsing",
      "evidence": "The article supplies matching Open Graph fields plus NewsArticle and BreadcrumbList JSON-LD with dates, author, image and canonical entity URL.",
      "artifacts": [
        "evidence/article-probe.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "The headers primitive confirmed HTTPS but found no CSP, HSTS, X-Content-Type-Options, clickjacking policy, Referrer-Policy or Permissions-Policy on the audited document. Seven of eight observed cookies were flagged insecure; several analytics identifiers were SameSite=None and two persisted for 400 days. The response also lacked clickjacking, referrer and permissions policies.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F11",
        "F13"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "The tracker probe saw 26 third-party origins and a known AppNexus origin. The HAR attributed 149 of 155 requests and 1.62 MB to origins other than m.bild.de (including related BILD hosts), and cookies were created before consent.",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F12"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "pass",
      "confidence": "high",
      "method": "Permission/auth surface probe",
      "evidence": "No notification or geolocation request code was found on load; the public reading journey requires no authentication.",
      "artifacts": [
        "evidence/security-agent-probe.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "The headers primitive confirmed HTTPS but found no CSP, HSTS, X-Content-Type-Options, clickjacking policy, Referrer-Policy or Permissions-Policy on the audited document. Seven of eight observed cookies were flagged insecure; several analytics identifiers were SameSite=None and two persisted for 400 days. The response also lacked clickjacking, referrer and permissions policies.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F11",
        "F13"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Raw-vs-rendered discoverability comparison",
      "evidence": "Raw HTML retained 81% of homepage content and 100% of article content; neither route is a JavaScript shell.",
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/article-discoverability.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "DOM and CSS platform inspection",
      "evidence": "The first-run overlay remains within the viewport at desktop/mobile, uses fixed overflow handling, and CSS anchor positioning is available for attached UI.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/platform-probe.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "A valid manifest is linked and includes icons, theme and language metadata, but the runtime probe found no controlling service worker.",
      "artifacts": [
        "evidence/manifest-404.json",
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F14"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "HTTP failure probe",
      "evidence": "A fabricated route returned HTTP 404 with an explicit German error page rather than a successful blank shell.",
      "artifacts": [
        "evidence/manifest-404.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/CSS internationalisation probe",
      "evidence": "html lang is de; the CSS bundle uses logical inline properties and the manifest also declares lang de and dir ltr.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/manifest-404.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "Article semantic data probe",
      "evidence": "Visible dates use German formatting while time elements carry unambiguous ISO datetime values.",
      "artifacts": [
        "evidence/article-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "pass",
      "confidence": "high",
      "method": "Article semantic data probe",
      "evidence": "Published and modified times are represented as ISO timestamps with Z offsets, while presentation is localised for German readers.",
      "artifacts": [
        "evidence/article-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "The first-run modal gives a prominent free “Alle akzeptieren” action while the no-tracking route costs €3.99/month (€2.99 for subscribers); no equivalent free reject action is presented in the initial view.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F15"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from recon and declared crawler policy",
      "evidence": "No data-entry or submission form was present in the selected public reading/search path, so invalid-field timing and recovery do not apply.",
      "reason": "No data-entry or submission form was present in the selected public reading/search path, so invalid-field timing and recovery do not apply."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "pass",
      "confidence": "medium",
      "method": "Search state inspection",
      "evidence": "The search page provides a visible “Was suchen Sie?” prompt and clearly named SUCHEN action; no checkout/address/payment fields occur in the selected primary journey.",
      "artifacts": [
        "evidence/search-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "The first-run modal gives a prominent free “Alle akzeptieren” action while the no-tracking route costs €3.99/month (€2.99 for subscribers); no equivalent free reject action is presented in the initial view.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F15"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "The image audit found six oversized images and Lighthouse estimated 146 KiB image savings. The load also shipped 2.96 MiB overall despite the first viewport being blocked by consent.",
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F16"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "The HAR recorded 155 requests and 1.75 MB transferred during the sampled load, including 78 scripts; Lighthouse reported 2.96 MiB total, about 930 ms render-blocking savings, 185 KiB unused JS and 40 KiB unused CSS.",
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F07"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Objective primitive/tool evidence and visual review",
      "evidence": "The tracker probe saw 26 third-party origins and a known AppNexus origin. The HAR attributed 149 of 155 requests and 1.62 MB to origins other than m.bild.de (including related BILD hosts), and cookies were created before consent. The image audit found six oversized images and Lighthouse estimated 146 KiB image savings. The load also shipped 2.96 MiB overall despite the first viewport being blocked by consent.",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/cookies.json",
        "evidence/images.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F12",
        "F16"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from recon and declared crawler policy",
      "evidence": "BILD explicitly disallows the audited AI/agent crawler set in robots.txt, indicating it does not intend an agent-facing capability surface for this content.",
      "reason": "BILD explicitly disallows the audited AI/agent crawler set in robots.txt, indicating it does not intend an agent-facing capability surface for this content."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from recon and declared crawler policy",
      "evidence": "No summarisation or generative feature is offered in the audited news reading/search experience, so on-device inference is not required.",
      "reason": "No summarisation or generative feature is offered in the audited news reading/search experience, so on-device inference is not required."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "Before/after heap comparison after repeated scrolling",
      "evidence": "After ten down/up scroll cycles, retained self size changed only 104,366 bytes (0.22%) and object/closure populations were stable.",
      "artifacts": [
        "evidence/heap-baseline",
        "evidence/heap-post"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "Heap summary review",
      "evidence": "The content-heavy homepage retained about 47.2 MB; object and closure counts stayed stable across the comparison, proportionate to a large news page though improvable.",
      "artifacts": [
        "evidence/heap-baseline",
        "evidence/heap-post"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "Heap constructor comparison",
      "evidence": "Neither summary reported a growing Detached* constructor; object and closure counts were flat after repeated scrolling.",
      "artifacts": [
        "evidence/heap-baseline",
        "evidence/heap-post"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06",
        "F07"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08",
        "F09"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F10",
        "F16"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F11",
        "F13",
        "F12"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F16",
        "F07",
        "F12"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "All checks were judged not applicable from the site’s explicit crawler policy and absence of an agent-facing experience."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Entry page and news homepage; represents headline discovery, navigation, consent, responsive layout, privacy and performance.",
      "url": "https://m.bild.de",
      "conditions": [
        "desktop",
        "viewport: 390x844",
        "prefers-color-scheme: dark",
        "prefers-contrast: more / forced-colors",
        "prefers-reduced-motion: reduce",
        "no JavaScript crawler"
      ],
      "result": "issues"
    },
    {
      "id": "section",
      "description": "Politics section; represents category/listing templates.",
      "url": "https://www.bild.de/politik/startseite/politik/politik-16804552.bild.html",
      "conditions": [
        "viewport: 390x844"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "Current sports story; represents article/detail pages, article metadata, media and no-JavaScript delivery.",
      "url": "https://www.bild.de/sport/fussball/nach-krebs-diagnose-bundesliga-star-rasiert-seiner-freundin-die-haare-ab-6a60cdd7f8f5988963725262",
      "conditions": [
        "viewport: 390x844",
        "no JavaScript crawler"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Search landing page; represents the primary interactive find-content journey.",
      "url": "https://www.bild.de/suche.bild.html",
      "conditions": [
        "viewport: 390x844"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "critical",
      "confidence": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "summary": "Consent-or-subscribe wall blocks all content on every tested route",
      "evidence": "Mobile and desktop screenshots of the homepage, section, article and search all show the same full-viewport modal before any content can be used. The only immediate paths are accepting tracking, opening settings, or paying for BILD Pur.",
      "suggestedFix": "Keep privacy choices available without covering the core article/listing surface. Use a compact, dismissible consent UI and preserve a clearly equivalent no-tracking route without requiring payment.",
      "effort": "large",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-desktop.png",
        "evidence/article-mobile.png"
      ],
      "pathId": "home",
      "url": "https://m.bild.de"
    },
    {
      "id": "F02",
      "severity": "medium",
      "confidence": "high",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "summary": "The site does not provide a user-preference-driven dark theme",
      "evidence": "Under prefers-color-scheme: dark, the site remains light; the platform probe found no prefers-color-scheme rules and computed color-scheme is light/normal.",
      "suggestedFix": "Declare light dark color-scheme at the root and map surfaces/text to adaptive tokens, using light-dark() or a prefers-color-scheme query.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://m.bild.de"
    },
    {
      "id": "F03",
      "severity": "low",
      "confidence": "high",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "summary": "Route and state changes have no View Transition treatment",
      "evidence": "The CSS/platform probe found no view-transition usage across the homepage bundle, while the site exposes many route and carousel state changes.",
      "suggestedFix": "Progressively enhance same-document and cross-document navigation with the View Transitions API, while retaining reduced-motion fallbacks.",
      "effort": "medium",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://m.bild.de"
    },
    {
      "id": "F04",
      "severity": "low",
      "confidence": "high",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "scroll-progress-indicator",
      "summary": "Long news pages do not expose scroll-state guidance",
      "evidence": "The article is about 4,749 CSS px high and the homepage about 25,889 CSS px, but the CSS probe found no scroll timeline and screenshots show no reading-progress affordance.",
      "suggestedFix": "Add a lightweight CSS scroll-driven progress indicator and adapt sticky chrome using scroll-state/container queries where supported.",
      "effort": "small",
      "artifacts": [
        "evidence/article-dom.json",
        "evidence/platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://m.bild.de"
    },
    {
      "id": "F05",
      "severity": "high",
      "confidence": "high",
      "principleId": "support-core-task-success",
      "principleCheckId": "primary-flow-completion",
      "guidanceId": "forms",
      "summary": "The primary read/search journeys are gated before they begin",
      "evidence": "All four representative routes are obscured by the consent-or-pay wall; the agent could inspect server-rendered content but a first-time user cannot read or search before choosing tracking or subscription.",
      "suggestedFix": "Allow the core news and search journeys to begin while presenting proportionate consent controls that do not replace the page.",
      "effort": "large",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/search-mobile.png",
        "evidence/article-mobile.png"
      ],
      "pathId": "home",
      "url": "https://m.bild.de"
    },
    {
      "id": "F06",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "summary": "Cold mobile loading is slow",
      "evidence": "Lighthouse measured performance 0.53, FCP 8.7 s, LCP 16.3 s and TTI 16.5 s. A separate warm trace measured LCP 2.22 s, showing the cold path is the material risk.",
      "suggestedFix": "Prioritise the LCP asset, reduce render-blocking CSS and startup JavaScript, and defer consent/advertising dependencies until needed.",
      "effort": "large",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-trace-summary.json"
      ],
      "pathId": "home",
      "url": "https://m.bild.de"
    },
    {
      "id": "F07",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-image-priority",
      "summary": "The critical path ships excessive render-blocking and unused resources",
      "evidence": "The HAR recorded 155 requests and 1.75 MB transferred during the sampled load, including 78 scripts; Lighthouse reported 2.96 MiB total, about 930 ms render-blocking savings, 185 KiB unused JS and 40 KiB unused CSS.",
      "suggestedFix": "Audit critical CSS, split and conditionally load non-core scripts, improve cache lifetimes, use font-display, and ensure the LCP image is discoverable and prioritised.",
      "effort": "large",
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/lighthouse.json"
      ],
      "pathId": "home",
      "url": "https://m.bild.de"
    },
    {
      "id": "F08",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "summary": "Some links and frames have no accessible name",
      "evidence": "Lighthouse failed link-name and frame-title. The DOM probe counted 143 links with no visible or fallback text and 184 controls without a detected name; the image primitive found 32 images without alt attributes.",
      "suggestedFix": "Give every interactive element and iframe a programmatic name, and provide meaningful alt text or explicit empty alt for decorative images.",
      "effort": "medium",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/platform-probe.json",
        "evidence/images.json"
      ],
      "pathId": "home",
      "url": "https://m.bild.de"
    },
    {
      "id": "F09",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "summary": "Homepage document structure and compact controls weaken keyboard/AT navigation",
      "evidence": "The homepage has no H1 and begins its sampled hierarchy at H3. The probe also found many carousel buttons rendered only 4 CSS px high.",
      "suggestedFix": "Restore a logical H1-to-H2/H3 hierarchy, verify keyboard order and focus-visible styles, and make carousel controls operable at a practical target size.",
      "effort": "medium",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/home-dom.json"
      ],
      "pathId": "home",
      "url": "https://m.bild.de"
    },
    {
      "id": "F10",
      "severity": "medium",
      "confidence": "high",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "html",
      "summary": "The page logs browser errors",
      "evidence": "Lighthouse failed errors-in-console; its run also reported an out-of-bounds source-map mapping for html-load.com/loader.min.js.map.",
      "suggestedFix": "Eliminate uncaught/runtime console errors and publish valid source maps for production scripts.",
      "effort": "small",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "pathId": "home",
      "url": "https://m.bild.de"
    },
    {
      "id": "F11",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "summary": "Core browser security headers are absent",
      "evidence": "The headers primitive confirmed HTTPS but found no CSP, HSTS, X-Content-Type-Options, clickjacking policy, Referrer-Policy or Permissions-Policy on the audited document.",
      "suggestedFix": "Add a restrictive CSP, HSTS, nosniff, frame-ancestors (or X-Frame-Options), Referrer-Policy and a least-privilege Permissions-Policy.",
      "effort": "medium",
      "artifacts": [
        "evidence/headers.json"
      ],
      "pathId": "home",
      "url": "https://m.bild.de"
    },
    {
      "id": "F12",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "summary": "The pre-consent page has a large tracking and third-party footprint",
      "evidence": "The tracker probe saw 26 third-party origins and a known AppNexus origin. The HAR attributed 149 of 155 requests and 1.62 MB to origins other than m.bild.de (including related BILD hosts), and cookies were created before consent.",
      "suggestedFix": "Minimise pre-consent network activity, delay optional analytics/advertising until an affirmative choice, batch necessary telemetry, and enforce a strict third-party budget.",
      "effort": "large",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/cookies.json"
      ],
      "pathId": "home",
      "url": "https://m.bild.de"
    },
    {
      "id": "F13",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "summary": "Cookie and defensive policy posture is weak",
      "evidence": "Seven of eight observed cookies were flagged insecure; several analytics identifiers were SameSite=None and two persisted for 400 days. The response also lacked clickjacking, referrer and permissions policies.",
      "suggestedFix": "Set Secure on all HTTPS cookies, use Lax/Strict unless cross-site use is essential, shorten analytics lifetimes, and configure browser-enforced policies.",
      "effort": "medium",
      "artifacts": [
        "evidence/cookies.json",
        "evidence/headers.json"
      ],
      "pathId": "home",
      "url": "https://m.bild.de"
    },
    {
      "id": "F14",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-resilient",
      "principleCheckId": "offline-and-installable",
      "guidanceId": "html",
      "summary": "The installable news experience has no active offline controller",
      "evidence": "A valid manifest is linked and includes icons, theme and language metadata, but the runtime probe found no controlling service worker.",
      "suggestedFix": "If installability is intended, register a service worker and provide an offline article/shell fallback; otherwise remove misleading app-install signals.",
      "effort": "medium",
      "artifacts": [
        "evidence/manifest-404.json",
        "evidence/platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://m.bild.de"
    },
    {
      "id": "F15",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "privacy",
      "summary": "Consent choice architecture is coercive",
      "evidence": "The first-run modal gives a prominent free “Alle akzeptieren” action while the no-tracking route costs €3.99/month (€2.99 for subscribers); no equivalent free reject action is presented in the initial view.",
      "suggestedFix": "Offer a comparably prominent reject/non-personalised choice, use neutral button hierarchy, and keep consent revocable without tying privacy to payment.",
      "effort": "large",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-desktop.png"
      ],
      "pathId": "home",
      "url": "https://m.bild.de"
    },
    {
      "id": "F16",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "summary": "Media and code delivery exceed a proportionate first-view budget",
      "evidence": "The image audit found six oversized images and Lighthouse estimated 146 KiB image savings. The load also shipped 2.96 MiB overall despite the first viewport being blocked by consent.",
      "suggestedFix": "Serve correctly sized responsive images, defer offscreen media, compress font/image assets and enforce page-weight budgets per template.",
      "effort": "medium",
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse.json"
      ],
      "pathId": "home",
      "url": "https://m.bild.de"
    },
    {
      "id": "F17",
      "severity": "low",
      "confidence": "high",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "summary": "robots.txt contains a syntax issue reported by Lighthouse",
      "evidence": "Lighthouse failed the robots-txt audit with one error, although manual inspection confirmed public crawling rules and four sitemap declarations.",
      "suggestedFix": "Correct the invalid robots.txt directive while retaining the intended crawler and sitemap policy.",
      "effort": "trivial",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/robots.txt"
      ],
      "pathId": "home",
      "url": "https://m.bild.de"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Replace the blocking consent-or-pay wall with proportionate, symmetric privacy choices",
      "priority": 1,
      "findingIds": [
        "F01",
        "F05",
        "F15"
      ],
      "guidanceId": "light-dismiss-a-dialog",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Harden response headers and pre-consent privacy behavior",
      "priority": 2,
      "findingIds": [
        "F11",
        "F12",
        "F13"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Cut cold-load critical-path JavaScript, CSS, third-party work and media",
      "priority": 3,
      "findingIds": [
        "F06",
        "F07",
        "F16"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Repair accessible names, heading hierarchy and target sizing",
      "priority": 4,
      "findingIds": [
        "F08",
        "F09"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Add preference-driven dark mode",
      "priority": 5,
      "findingIds": [
        "F02"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Clear console/source-map errors and robots.txt syntax",
      "priority": 6,
      "findingIds": [
        "F10",
        "F17"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Add progressive navigation and reading-position cues",
      "priority": 7,
      "findingIds": [
        "F03",
        "F04"
      ],
      "guidanceId": "same-document-transitions",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Align manifest/installability with a real offline fallback",
      "priority": 8,
      "findingIds": [
        "F14"
      ],
      "guidanceId": "html",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 4,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-22T17-39-23-916Z"
}
