{
  "url": "https://www.t-online.de",
  "auditedAt": "2026-07-24T07:44:44.407Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Atomic audit completed across home, section, article, and search journey. Search returned a directly observed 403 failure state.",
  "page": {
    "appType": "hybrid",
    "framework": "Next.js",
    "notes": "Server-rendered German news portal with large MPA-style route surface, consent wall, third-party widgets, and external search endpoint. Coverage excludes authenticated email/account management, paid PUR checkout, video playback, games, and regional subdomains because they are separate products or gated flows; one representative page per core editorial archetype was selected."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "discoverability",
    "lighthouse",
    "heap-summary",
    "robots/sitemap HTTP fetch",
    "modern-web-guidance search"
  ],
  "guidanceConsulted": [
    "accessibility",
    "accessible-error-announcement",
    "adapt-scrollbar-to-contrast-preferences",
    "agentic-forms",
    "agentic-javascript-tools",
    "anchor-positioning-tab-underline",
    "animate-to-from-top-layer",
    "animate-to-intrinsic-sizes",
    "animated-select-picker",
    "apply-webgl-shaders",
    "autofill-address-form",
    "autofill-highlight-inputs",
    "autofill-payment-form",
    "autofill-sign-in-form",
    "autofill-sign-up-form",
    "batch-analytics-events",
    "brand-consistent-forms",
    "branded-select-styling",
    "break-up-long-tasks",
    "calculate-event-differentials",
    "calculate-total-foreground-time",
    "calculate-with-intrinsic-sizes",
    "capture-location-agnostic-data",
    "carousel-slide-effects",
    "carousel-snap-highlights",
    "child-state-based-styling",
    "complex-shapes",
    "component-specific-light-dark-theme",
    "conditional-async-dependencies",
    "consistent-cross-document-transitions",
    "coordinate-global-events",
    "cross-document-transitions",
    "css",
    "css-layout",
    "customize-scrollbar-color-and-thickness",
    "dark-mode",
    "declarative-button-actions",
    "declarative-dialog-popover-control",
    "defer-rendering-heavy-content",
    "defer-work-until-scroll-ends",
    "deliver-optimized-decorative-images",
    "deprioritize-background-fetches",
    "design-token-reactivity",
    "detect-initial-visibility-state",
    "directional-navigation-transitions",
    "efficient-background-processing",
    "expose-canvas-content-to-browser-features",
    "faster-spa-view-transitions",
    "flicker-free-client-side-ab-testing",
    "fluid-scaling",
    "form-fields-automatically-fit-contents",
    "forms",
    "full-session-analytics",
    "group-element-transitions",
    "highlight-text-ranges",
    "html",
    "identify-heavy-scripts",
    "identify-inp-causes",
    "improve-next-page-load-performance",
    "improve-text-layout-and-legibility",
    "interactions-in-complex-layouts",
    "interactive-content-in-3d-scenes",
    "interactive-content-reveal",
    "interest-triggered-tooltips",
    "language-detection",
    "language-model",
    "light-dismiss-a-dialog",
    "manage-recurring-intervals",
    "model-partial-time-concepts",
    "move-dom-element-without-losing-state",
    "navigation-drawer",
    "optimize-image-priority",
    "optimize-preload-priority",
    "optimize-script-priority",
    "parallax-scroll-effects",
    "passkey-authentication",
    "passkey-conditional-create",
    "passkey-management",
    "passkey-reauthentication",
    "passkey-registration",
    "passkeys",
    "performance",
    "persistent-app-tours",
    "persistent-toast-notifications",
    "persistent-top-layer-ui",
    "physics-based-easing",
    "platform-controls-dismiss-dialog",
    "position-aware-tooltips",
    "precise-text-alignment",
    "privacy",
    "pull-to-reveal",
    "reduce-style-repetition",
    "required-field-feedback",
    "resilient-context-menus-and-nested-dropdowns",
    "resolution-optimized-pseudo-elements",
    "rich-media-picker",
    "same-document-transitions",
    "schedule-tasks-by-priority",
    "scroll-entry-exit-effects",
    "scroll-position-aware-elements",
    "scroll-progress-indicator",
    "scroll-snap-realtime-feedback",
    "scroll-snap-state-sync",
    "scroll-target-on-load",
    "scrollability-affordance-hints",
    "scrollytelling",
    "search-hidden-content",
    "security",
    "select-menu-interaction",
    "sequence-distributed-events",
    "shaped-cutouts",
    "shrinking-header-on-scroll",
    "size-aware-styling",
    "stabilize-reactive-state",
    "stack-drill-down",
    "style-parent-with-has",
    "summarizer",
    "support-global-calendar-systems",
    "swipe-to-remove",
    "translator",
    "validate-input-after-interaction",
    "visually-stable-font-fallbacks",
    "visually-stable-mixed-fonts",
    "visually-texture-content",
    "webmcp"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-crawler.png",
      "caption": "article discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-rendered.png",
      "caption": "article discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/article-discoverability.json",
      "caption": "article discoverability"
    },
    {
      "type": "layout",
      "path": "evidence/article-layout-mobile.json",
      "caption": "article layout mobile"
    },
    {
      "type": "dom",
      "path": "evidence/article-recon.json",
      "caption": "article recon"
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies"
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers"
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "heap baseline"
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.json",
      "caption": "heap post"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-accepted-desktop.png",
      "caption": "home accepted desktop"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-contrast.png",
      "caption": "home contrast"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "home discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "home discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "home discoverability"
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom"
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-mobile.json",
      "caption": "home layout mobile"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile"
    },
    {
      "type": "dom",
      "path": "evidence/home-recon.json",
      "caption": "home recon"
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary"
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary"
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace"
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home"
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "images"
    },
    {
      "type": "other",
      "path": "evidence/interaction-probe.json",
      "caption": "interaction probe"
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "lighthouse home"
    },
    {
      "type": "other",
      "path": "evidence/memory-metrics.json",
      "caption": "memory metrics"
    },
    {
      "type": "other",
      "path": "evidence/pwa-probe.json",
      "caption": "pwa probe"
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots"
    },
    {
      "type": "screenshot",
      "path": "evidence/search-403.png",
      "caption": "search 403"
    },
    {
      "type": "dom",
      "path": "evidence/search-recon.json",
      "caption": "search recon"
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets"
    },
    {
      "type": "layout",
      "path": "evidence/section-layout-mobile.json",
      "caption": "section layout mobile"
    },
    {
      "type": "screenshot",
      "path": "evidence/section-mobile.png",
      "caption": "section mobile"
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "sitemap"
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers"
    }
  ],
  "config": {
    "loaded": false
  },
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04",
        "F05",
        "F06"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08",
        "F09"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F10",
        "F11",
        "F12",
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F14",
        "F15",
        "F16",
        "F17"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F20",
        "F21",
        "F22"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F23",
        "F24"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F25",
        "F26",
        "F27"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F28",
        "F29",
        "F30"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "All checks were judged contextually out of scope for the sampled editorial experience."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and consent entry state; represents the primary news index, global navigation, search entry, privacy choice, responsive layout, performance, and security.",
      "url": "https://www.t-online.de/",
      "conditions": [
        "desktop",
        "viewport 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "forced-colors: active",
        "no JavaScript",
        "keyboard focus",
        "repeated scrolling"
      ],
      "result": "issues"
    },
    {
      "id": "section",
      "description": "Politics/news section; represents section/listing templates. Audited for mobile reflow and template consistency.",
      "url": "https://www.t-online.de/nachrichten/",
      "conditions": [
        "viewport 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "Tour de France article; represents editorial detail pages, content hierarchy, metadata, no-JS resilience, and mobile reflow.",
      "url": "https://www.t-online.de/sport/mehr-sport/radsport/tour-de-france/id_101217772/tour-de-france-2026-startet-heute-alle-etappen-favoriten-und-liveticker.html",
      "conditions": [
        "viewport 360x800",
        "no JavaScript"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Search for “Bundestag”; represents the primary form journey and failure/recovery state. The endpoint returned a bare 403 in the audit browser.",
      "url": "https://suche.t-online.de/web?sr=1&q=Bundestag",
      "conditions": [
        "desktop browser navigation",
        "viewport 360x800"
      ],
      "result": "failed"
    }
  ],
  "findings": [
    {
      "id": "F04",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "modern-web-guidance",
      "severity": "high",
      "confidence": "high",
      "summary": "A full-viewport consent/paywall choice obscures all content on first load.",
      "evidence": "Desktop and 360px screenshots show the consent layer occupying the entire viewport before interaction, with the underlying news content dimmed and inaccessible.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Keep essential content visible and move consent choices into a compact, dismissible, equally weighted interface that does not block reading.",
      "effort": "large"
    },
    {
      "id": "F08",
      "pathId": "search",
      "url": "https://suche.t-online.de/web?sr=1&q=Bundestag",
      "principleId": "support-core-task-success",
      "principleCheckId": "primary-flow-completion",
      "guidanceId": "forms",
      "guidanceCategory": "modern-web-guidance",
      "severity": "high",
      "confidence": "high",
      "summary": "The primary site search journey returns a bare 403 page in the audited browser.",
      "evidence": "Submitting the site’s documented search target with q=Bundestag loaded https://suche.t-online.de/web?sr=1&q=Bundestag and returned only “403 Forbidden”.",
      "artifacts": [
        "evidence/search-recon.json",
        "evidence/search-403.png"
      ],
      "suggestedFix": "Remove the false-positive bot block for normal browser search traffic and provide an in-domain, progressively enhanced search results route.",
      "effort": "large"
    },
    {
      "id": "F09",
      "pathId": "search",
      "url": "https://suche.t-online.de/web?sr=1&q=Bundestag",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-system-state-and-recovery",
      "guidanceId": "persistent-toast-notifications",
      "guidanceCategory": "modern-web-guidance",
      "severity": "high",
      "confidence": "high",
      "summary": "The failed search state offers no explanation, retry, or route back to content.",
      "evidence": "The search screenshot and DOM contain only “403 Forbidden”, with no navigation, recovery control, or retained query.",
      "artifacts": [
        "evidence/search-recon.json",
        "evidence/search-403.png"
      ],
      "suggestedFix": "Render an actionable error state that preserves the query and offers retry, home, and support options.",
      "effort": "large"
    },
    {
      "id": "F10",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "modern-web-guidance",
      "severity": "high",
      "confidence": "high",
      "summary": "Largest Contentful Paint is far outside the good range.",
      "evidence": "Lighthouse measured LCP 7.8s, interactive 12.9s, and performance 0.65; the independent trace measured LCP 5.42s.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Prioritize the LCP element, reduce consent and script competition, and defer below-fold/third-party work.",
      "effort": "large"
    },
    {
      "id": "F12",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-preload-priority",
      "guidanceCategory": "modern-web-guidance",
      "severity": "high",
      "confidence": "high",
      "summary": "The home load is heavy and critical delivery competes with consent and widget resources.",
      "evidence": "HAR recorded 124 requests, 2.02MB transferred, 50 scripts, and parser-inserted high-priority consent resources; LCP was 5.42–7.8s.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Shorten the critical chain, defer consent/widget bundles, set explicit resource priorities, and keep below-fold styles off the critical path.",
      "effort": "large"
    },
    {
      "id": "F14",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "severity": "high",
      "confidence": "high",
      "summary": "Several links have no accessible name and search fields lack associated labels.",
      "evidence": "Lighthouse accessibility scored 0.87 and link-name failed for video and game links; DOM probes show search input labels are empty.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/article-recon.json"
      ],
      "suggestedFix": "Give every interactive link an accessible name and associate visible or screen-reader labels with each search input.",
      "effort": "large"
    },
    {
      "id": "F21",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "batch-analytics-events",
      "guidanceCategory": "modern-web-guidance",
      "severity": "high",
      "confidence": "high",
      "summary": "The page loads a large third-party and tracking footprint.",
      "evidence": "HAR recorded 62 third-party requests and 1.12MB third-party transfer (56% of bytes); tracker evidence found 10 third-party origins and Google Tag Manager.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json",
        "evidence/home.har"
      ],
      "suggestedFix": "Gate optional third parties behind consent, remove low-value vendors, batch analytics, and self-host essential resources where feasible.",
      "effort": "large"
    },
    {
      "id": "F24",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-resilient",
      "principleCheckId": "network-and-http-failure-states",
      "guidanceId": "persistent-toast-notifications",
      "guidanceCategory": "modern-web-guidance",
      "severity": "high",
      "confidence": "high",
      "summary": "HTTP failure handling collapses to an unbranded blank error.",
      "evidence": "The representative search request returned only a bare 403 page, with no retry, navigation, or explanation.",
      "artifacts": [
        "evidence/search-recon.json",
        "evidence/search-403.png"
      ],
      "suggestedFix": "Handle 4xx/5xx and bot-challenge outcomes in the application shell with clear recovery actions.",
      "effort": "large"
    },
    {
      "id": "F25",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "custom-button-actions",
      "guidanceCategory": "modern-web-guidance",
      "severity": "high",
      "confidence": "high",
      "summary": "The consent wall presents acceptance and a paid subscription as the prominent choices, without an equal reject option.",
      "evidence": "Both desktop and mobile first-load screenshots show “ZUSTIMMEN” and “JETZT SICHERN” as the only primary actions; rejection requires entering the privacy manager.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Offer Accept and Reject All with equal prominence and keep the paid PUR offer separate from consent.",
      "effort": "large"
    },
    {
      "id": "F30",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "deprioritize-background-fetches",
      "guidanceCategory": "modern-web-guidance",
      "severity": "high",
      "confidence": "high",
      "summary": "Third parties consume more than half of the initial transfer budget.",
      "evidence": "HAR attributes 1,123,471 of 2,017,478 transferred bytes to third parties, led by consent and engagement widgets.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "suggestedFix": "Set and enforce a third-party byte/request budget; defer or remove non-core widgets until explicit interaction.",
      "effort": "large"
    },
    {
      "id": "F01",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "component-specific-light-dark-theme",
      "guidanceCategory": "modern-web-guidance",
      "severity": "medium",
      "confidence": "high",
      "summary": "The site imposes one dark palette instead of following the user’s light/dark preference.",
      "evidence": "Desktop screenshots under default and prefers-color-scheme: dark are byte-identical; computed html color-scheme is normal, so the preference does not change the experience.",
      "artifacts": [
        "evidence/home-accepted-desktop.png",
        "evidence/home-dark.png",
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Declare color-scheme: light dark and use prefers-color-scheme or light-dark() tokens so browser chrome and surfaces follow the user.",
      "effort": "medium"
    },
    {
      "id": "F05",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "modern-web-guidance",
      "severity": "medium",
      "confidence": "high",
      "summary": "The blocking consent overlay is custom rather than a native dialog and has no clear light-dismiss path.",
      "evidence": "The DOM reports one role=dialog but zero <dialog>, popover, or details elements; the first viewport has no visible close or reject action.",
      "artifacts": [
        "evidence/interaction-probe.json",
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Use a native <dialog> for the modal consent decision, provide explicit reject/close controls, restore focus, and use platform dismissal behavior where appropriate.",
      "effort": "medium"
    },
    {
      "id": "F06",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "improve-text-layout-and-legibility",
      "guidanceCategory": "modern-web-guidance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Navigation and consent chrome dominate the first viewport.",
      "evidence": "The initial desktop screenshot is almost entirely consent UI, while the no-JS article screenshot devotes roughly 210px of a 493px viewport to two navigation rows and breadcrumbs before content.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/article-discoverability-crawler.png"
      ],
      "suggestedFix": "Reduce persistent header height, collapse secondary navigation, and remove the blocking consent wall so editorial content leads.",
      "effort": "medium"
    },
    {
      "id": "F07",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Many controls are too small and the search input lacks a visible focus indicator.",
      "evidence": "The keyboard probe found 23 of the first 40 focusable elements under 24px in one dimension; the search input computed outline is none when focused.",
      "artifacts": [
        "evidence/interaction-probe.json"
      ],
      "suggestedFix": "Provide at least 24x24 CSS pixel targets (prefer 44x44 for primary touch controls) and a high-contrast :focus-visible ring for all controls.",
      "effort": "medium"
    },
    {
      "id": "F11",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "guidanceId": "break-up-long-tasks",
      "guidanceCategory": "modern-web-guidance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Main-thread scripting adds noticeable blocking work.",
      "evidence": "Lighthouse measured 280ms TBT; the trace captured two long tasks up to 88.53ms with 64.64ms trace TBT.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Break long tasks, schedule non-critical work by priority, and defer third-party widgets until needed.",
      "effort": "medium"
    },
    {
      "id": "F13",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "optimize-script-priority",
      "guidanceCategory": "modern-web-guidance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Substantial unused JavaScript and CSS ships on the home page.",
      "evidence": "Lighthouse estimates 314KiB unused JavaScript and 49KiB unused CSS, including consent, GTM, game-widget, and core advertising code.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Code-split non-editorial widgets, load third parties conditionally, and remove or scope unused CSS.",
      "effort": "medium"
    },
    {
      "id": "F15",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Breaking-news text does not meet WCAG minimum contrast.",
      "evidence": "Lighthouse measured 3.59:1 for magenta #e20074 text on #f5e198, below the required 4.5:1 for the sampled 18px bold label.",
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "suggestedFix": "Use a darker text token or lighter background so normal text reaches at least 4.5:1.",
      "effort": "medium"
    },
    {
      "id": "F16",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "move-dom-element-without-losing-state",
      "guidanceCategory": "modern-web-guidance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Heading order is invalid and one key input has no visible focus ring.",
      "evidence": "Lighthouse heading-order failed on an H3 teaser that skips hierarchy; the focus probe computed outline:none for the search input.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/interaction-probe.json"
      ],
      "suggestedFix": "Use headings in a logical hierarchy and add consistent :focus-visible styles without removing the browser outline unless replaced.",
      "effort": "medium"
    },
    {
      "id": "F17",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "modern-web-guidance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Reflow works, but many targets remain undersized for touch and zoomed use.",
      "evidence": "All three 360px layout probes had zero overflow, but the keyboard/geometry probe counted 23 of the first 40 focusable elements under 24px in one dimension.",
      "artifacts": [
        "evidence/interaction-probe.json",
        "evidence/home-layout-mobile.json",
        "evidence/section-layout-mobile.json",
        "evidence/article-layout-mobile.json"
      ],
      "suggestedFix": "Increase target hit areas while preserving the successful fluid reflow.",
      "effort": "medium"
    },
    {
      "id": "F18",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "css",
      "guidanceCategory": "modern-web-guidance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Images are not consistently dimensioned or efficiently described.",
      "evidence": "The image primitive found 48/100 sampled images without width/height, 17 without srcset, and 52 legacy-format assets; Lighthouse also failed unsized-images.",
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse-home.json"
      ],
      "suggestedFix": "Emit width and height (or aspect-ratio), responsive srcset/sizes, and modern formats where appropriate.",
      "effort": "medium"
    },
    {
      "id": "F20",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "modern-web-guidance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Transport is strong, but the CSP only controls framing and does not constrain scripts or other content.",
      "evidence": "HTTPS, HSTS, nosniff, and CSP are present, but CSP is only “frame-ancestors self https://*.t-online.de” and Permissions-Policy is absent.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Deploy a nonce/hash-based CSP covering script-src and other resource types, and add a least-privilege Permissions-Policy.",
      "effort": "medium"
    },
    {
      "id": "F22",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "modern-web-guidance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Browser-enforced policy coverage is incomplete.",
      "evidence": "HSTS and CSP frame-ancestors protect transport/clickjacking, but Permissions-Policy is absent and CSP provides no script-src/Trusted Types defense.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Add a restrictive Permissions-Policy and expand CSP with script controls and require-trusted-types-for where compatible.",
      "effort": "medium"
    },
    {
      "id": "F23",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-resilient",
      "principleCheckId": "offline-and-installable",
      "guidanceId": "flicker-free-client-side-ab-testing",
      "guidanceCategory": "modern-web-guidance",
      "severity": "medium",
      "confidence": "high",
      "summary": "The public news experience is neither installable nor prepared for offline use.",
      "evidence": "A manifest link exists, but the fetched manifest parsed as an empty object; the browser found zero service-worker registrations and zero caches.",
      "artifacts": [
        "evidence/pwa-probe.json",
        "evidence/home-recon.json"
      ],
      "suggestedFix": "Provide a valid manifest and a service worker with an offline reading/fallback experience for recently viewed and shell content.",
      "effort": "medium"
    },
    {
      "id": "F27",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-trustworthy",
      "principleCheckId": "safe-commercial-and-account-flows",
      "guidanceId": "autofill-payment-form",
      "guidanceCategory": "modern-web-guidance",
      "severity": "medium",
      "confidence": "high",
      "summary": "The first-load commercial/consent choice conflates privacy consent with a PUR subscription offer.",
      "evidence": "The blocking dialog places “Kostenfrei mit Werbung” beside a €2.99/month PUR subscription while omitting an equally prominent reject path.",
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Separate privacy consent from subscription sales, state commitments clearly, and expose reversible consent controls at equal prominence.",
      "effort": "medium"
    },
    {
      "id": "F28",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "modern-web-guidance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Asset delivery leaves avoidable image waste.",
      "evidence": "The image audit found 52/100 legacy-format images, 17 missing responsive srcset, 12 below-fold images not lazy-loaded, and 48 missing dimensions.",
      "artifacts": [
        "evidence/images.json"
      ],
      "suggestedFix": "Serve AVIF/WebP where suitable, complete srcset/sizes coverage, lazy-load below-fold imagery, and reserve dimensions.",
      "effort": "medium"
    },
    {
      "id": "F29",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "deprioritize-background-fetches",
      "guidanceCategory": "modern-web-guidance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Unused and third-party work consumes substantial transfer and execution.",
      "evidence": "Lighthouse estimates 314KiB unused JavaScript and HAR shows 50 script requests; 62 third-party requests account for 1.12MB.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Conditionally load widgets and analytics, remove unused code, and deprioritize background fetches.",
      "effort": "medium"
    },
    {
      "id": "F02",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "faster-spa-view-transitions",
      "guidanceCategory": "modern-web-guidance",
      "severity": "low",
      "confidence": "high",
      "summary": "Navigation changes are abrupt despite the site being a multi-page reading experience.",
      "evidence": "The rendered probe found no view-transition CSS or view-transition meta declaration on the home template, while navigation is through full document links.",
      "artifacts": [
        "evidence/interaction-probe.json",
        "evidence/home-recon.json"
      ],
      "suggestedFix": "Add @view-transition { navigation: auto } for cross-document article and section navigation, with reduced-motion handling.",
      "effort": "small"
    },
    {
      "id": "F03",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "scrollability-affordance-hints",
      "guidanceCategory": "modern-web-guidance",
      "severity": "low",
      "confidence": "high",
      "summary": "Long pages provide no visible reading progress or scroll-responsive chrome.",
      "evidence": "The 18,000px home document and article template show fixed navigation/breadcrumbs, but the CSS probe found no scroll timeline and the sampled first viewport exposes no progress cue.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/article-discoverability-crawler.png"
      ],
      "suggestedFix": "Add a lightweight CSS scroll progress indicator or scroll-state-aware header on long article and index pages.",
      "effort": "small"
    },
    {
      "id": "F19",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "severity": "low",
      "confidence": "high",
      "summary": "The conventional sitemap endpoint does not return a sitemap and robots.txt declares none.",
      "evidence": "GET /sitemap.xml returned a normal HTML page rather than XML sitemap data, while robots.txt contains no Sitemap directive; canonical URLs and HTTP 200 otherwise pass.",
      "artifacts": [
        "evidence/robots.txt",
        "evidence/sitemap.xml",
        "evidence/home-recon.json"
      ],
      "suggestedFix": "Publish an XML sitemap index and reference it from robots.txt.",
      "effort": "small"
    },
    {
      "id": "F26",
      "pathId": "home",
      "url": "https://www.t-online.de/",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "autofill-address-form",
      "guidanceCategory": "modern-web-guidance",
      "severity": "low",
      "confidence": "high",
      "summary": "The email sign-in field omits autocomplete metadata.",
      "evidence": "The home form probe reports name=email with autocomplete empty; search explicitly uses autocomplete=off.",
      "artifacts": [
        "evidence/home-recon.json"
      ],
      "suggestedFix": "Use autocomplete=email and the appropriate username/current-password or passkey tokens in the full authentication flow.",
      "effort": "small"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Keep essential content visible and move consent choices into a compact, dismissible, equally weighted interface that does not block reading.",
      "priority": 1,
      "findingIds": [
        "F04"
      ],
      "guidanceId": "light-dismiss-a-dialog",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Remove the false-positive bot block for normal browser search traffic and provide an in-domain, progressively enhanced search results route.",
      "priority": 2,
      "findingIds": [
        "F08"
      ],
      "guidanceId": "forms",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Render an actionable error state that preserves the query and offers retry, home, and support options.",
      "priority": 3,
      "findingIds": [
        "F09"
      ],
      "guidanceId": "persistent-toast-notifications",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Prioritize the LCP element, reduce consent and script competition, and defer below-fold/third-party work.",
      "priority": 4,
      "findingIds": [
        "F10"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Shorten the critical chain, defer consent/widget bundles, set explicit resource priorities, and keep below-fold styles off the critical path.",
      "priority": 5,
      "findingIds": [
        "F12"
      ],
      "guidanceId": "optimize-preload-priority",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Give every interactive link an accessible name and associate visible or screen-reader labels with each search input.",
      "priority": 6,
      "findingIds": [
        "F14"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Gate optional third parties behind consent, remove low-value vendors, batch analytics, and self-host essential resources where feasible.",
      "priority": 7,
      "findingIds": [
        "F21"
      ],
      "guidanceId": "batch-analytics-events",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Handle 4xx/5xx and bot-challenge outcomes in the application shell with clear recovery actions.",
      "priority": 8,
      "findingIds": [
        "F24"
      ],
      "guidanceId": "persistent-toast-notifications",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Offer Accept and Reject All with equal prominence and keep the paid PUR offer separate from consent.",
      "priority": 9,
      "findingIds": [
        "F25"
      ],
      "guidanceId": "custom-button-actions",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Set and enforce a third-party byte/request budget; defer or remove non-core widgets until explicit interaction.",
      "priority": 10,
      "findingIds": [
        "F30"
      ],
      "guidanceId": "deprioritize-background-fetches",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Declare color-scheme: light dark and use prefers-color-scheme or light-dark() tokens so browser chrome and surfaces follow the user.",
      "priority": 11,
      "findingIds": [
        "F01"
      ],
      "guidanceId": "component-specific-light-dark-theme",
      "status": "open"
    },
    {
      "id": "T12",
      "title": "Use a native <dialog> for the modal consent decision, provide explicit reject/close controls, restore focus, and use platform dismissal behavior where appropriate.",
      "priority": 12,
      "findingIds": [
        "F05"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T13",
      "title": "Reduce persistent header height, collapse secondary navigation, and remove the blocking consent wall so editorial content leads.",
      "priority": 13,
      "findingIds": [
        "F06"
      ],
      "guidanceId": "improve-text-layout-and-legibility",
      "status": "open"
    },
    {
      "id": "T14",
      "title": "Provide at least 24x24 CSS pixel targets (prefer 44x44 for primary touch controls) and a high-contrast :focus-visible ring for all controls.",
      "priority": 14,
      "findingIds": [
        "F07"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T15",
      "title": "Break long tasks, schedule non-critical work by priority, and defer third-party widgets until needed.",
      "priority": 15,
      "findingIds": [
        "F11"
      ],
      "guidanceId": "break-up-long-tasks",
      "status": "open"
    },
    {
      "id": "T16",
      "title": "Code-split non-editorial widgets, load third parties conditionally, and remove or scope unused CSS.",
      "priority": 16,
      "findingIds": [
        "F13"
      ],
      "guidanceId": "optimize-script-priority",
      "status": "open"
    },
    {
      "id": "T17",
      "title": "Use a darker text token or lighter background so normal text reaches at least 4.5:1.",
      "priority": 17,
      "findingIds": [
        "F15"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T18",
      "title": "Use headings in a logical hierarchy and add consistent :focus-visible styles without removing the browser outline unless replaced.",
      "priority": 18,
      "findingIds": [
        "F16"
      ],
      "guidanceId": "move-dom-element-without-losing-state",
      "status": "open"
    },
    {
      "id": "T19",
      "title": "Increase target hit areas while preserving the successful fluid reflow.",
      "priority": 19,
      "findingIds": [
        "F17"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T20",
      "title": "Emit width and height (or aspect-ratio), responsive srcset/sizes, and modern formats where appropriate.",
      "priority": 20,
      "findingIds": [
        "F18"
      ],
      "guidanceId": "css",
      "status": "open"
    },
    {
      "id": "T21",
      "title": "Deploy a nonce/hash-based CSP covering script-src and other resource types, and add a least-privilege Permissions-Policy.",
      "priority": 21,
      "findingIds": [
        "F20"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T22",
      "title": "Add a restrictive Permissions-Policy and expand CSP with script controls and require-trusted-types-for where compatible.",
      "priority": 22,
      "findingIds": [
        "F22"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T23",
      "title": "Provide a valid manifest and a service worker with an offline reading/fallback experience for recently viewed and shell content.",
      "priority": 23,
      "findingIds": [
        "F23"
      ],
      "guidanceId": "flicker-free-client-side-ab-testing",
      "status": "open"
    },
    {
      "id": "T24",
      "title": "Separate privacy consent from subscription sales, state commitments clearly, and expose reversible consent controls at equal prominence.",
      "priority": 24,
      "findingIds": [
        "F27"
      ],
      "guidanceId": "autofill-payment-form",
      "status": "open"
    },
    {
      "id": "T25",
      "title": "Serve AVIF/WebP where suitable, complete srcset/sizes coverage, lazy-load below-fold imagery, and reserve dimensions.",
      "priority": 25,
      "findingIds": [
        "F28"
      ],
      "guidanceId": "deliver-optimized-decorative-images",
      "status": "open"
    },
    {
      "id": "T26",
      "title": "Conditionally load widgets and analytics, remove unused code, and deprioritize background fetches.",
      "priority": 26,
      "findingIds": [
        "F29"
      ],
      "guidanceId": "deprioritize-background-fetches",
      "status": "open"
    },
    {
      "id": "T27",
      "title": "Add @view-transition { navigation: auto } for cross-document article and section navigation, with reduced-motion handling.",
      "priority": 27,
      "findingIds": [
        "F02"
      ],
      "guidanceId": "faster-spa-view-transitions",
      "status": "open"
    },
    {
      "id": "T28",
      "title": "Add a lightweight CSS scroll progress indicator or scroll-state-aware header on long article and index pages.",
      "priority": 28,
      "findingIds": [
        "F03"
      ],
      "guidanceId": "scrollability-affordance-hints",
      "status": "open"
    },
    {
      "id": "T29",
      "title": "Publish an XML sitemap index and reference it from robots.txt.",
      "priority": 29,
      "findingIds": [
        "F19"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T30",
      "title": "Use autocomplete=email and the appropriate username/current-password or passkey tokens in the full authentication flow.",
      "priority": 30,
      "findingIds": [
        "F26"
      ],
      "guidanceId": "autofill-address-form",
      "status": "open"
    }
  ],
  "budget": {
    "wallClockSeconds": 2700,
    "pathCount": 4,
    "auditPasses": 1
  },
  "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 evidence review for respects-color-scheme",
      "evidence": "Desktop screenshots under default and prefers-color-scheme: dark are byte-identical; computed html color-scheme is normal, so the preference does not change the experience.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-accepted-desktop.png",
        "evidence/home-dark.png",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "evaluate under prefers-reduced-motion: reduce",
      "evidence": "The reduced-motion probe matched the preference and found only three 0.01ms animations, effectively suppressing non-essential motion.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/interaction-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "forced-colors visual inspection",
      "evidence": "The forced-colors/prefers-contrast screenshot preserves visible text, borders, controls, and link differentiation throughout the consent state.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-contrast.png"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for view-transitions",
      "evidence": "The rendered probe found no view-transition CSS or view-transition meta declaration on the home template, while navigation is through full document links.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/interaction-probe.json",
        "evidence/home-recon.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement for scroll-driven-animations",
      "evidence": "No scroll-linked decorative animation was observed on the sampled news templates, so there is no scroll-event implementation to assess.",
      "reason": "No scroll-linked decorative animation was observed on the sampled news templates, so there is no scroll-event implementation to assess."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "DOM and interaction probe",
      "evidence": "Sampled navigation uses native links, buttons, and browser scrolling; no custom pointermove gesture layer or platform-fighting interaction was observed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/interaction-probe.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for scroll-state-aware-chrome",
      "evidence": "The 18,000px home document and article template show fixed navigation/breadcrumbs, but the CSS probe found no scroll timeline and the sampled first viewport exposes no progress cue.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/article-discoverability-crawler.png"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement for anchored-positioning",
      "evidence": "No tooltip or edge-positioned transient overlay requiring anchored positioning appeared on the sampled primary paths.",
      "reason": "No tooltip or edge-positioned transient overlay requiring anchored positioning appeared on the sampled primary paths."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "article DOM and crawler screenshot inspection",
      "evidence": "Article breadcrumbs, descriptive navigation labels, skip links, and a single visible H1 give clear location and focus cues.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/article-recon.json",
        "evidence/article-discoverability-crawler.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for no-intrusive-interruptions",
      "evidence": "Desktop and 360px screenshots show the consent layer occupying the entire viewport before interaction, with the underlying news content dimmed and inaccessible.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for semantic-dismissible-primitives",
      "evidence": "The DOM reports one role=dialog but zero <dialog>, popover, or details elements; the first viewport has no visible close or reject action.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/interaction-probe.json",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for reduced-chrome",
      "evidence": "The initial desktop screenshot is almost entirely consent UI, while the no-JS article screenshot devotes roughly 210px of a 493px viewport to two navigation rows and breadcrumbs before content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/article-discoverability-crawler.png"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "layout at 360x800 across three templates",
      "evidence": "Home, section, and article layouts all report scrollWidth=clientWidth=360 with viewport meta present and zero horizontal overflow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/section-layout-mobile.json",
        "evidence/article-layout-mobile.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "pass",
      "confidence": "high",
      "method": "cross-template desktop/mobile visual and layout comparison",
      "evidence": "The same navigation and content-card templates reflow from desktop to 360px without overflow, while article and section layouts remain usable.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/article-layout-mobile.json",
        "evidence/section-layout-mobile.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for input-modality-aware",
      "evidence": "The keyboard probe found 23 of the first 40 focusable elements under 24px in one dimension; the search input computed outline is none when focused.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/interaction-probe.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "home and article DOM/metadata inspection",
      "evidence": "The home page has descriptive metadata and “t-online - Anständig. Informiert.” H1; article title, section breadcrumbs, and content hierarchy clearly communicate purpose.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/article-recon.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for primary-flow-completion",
      "evidence": "Submitting the site’s documented search target with q=Bundestag loaded https://suche.t-online.de/web?sr=1&q=Bundestag and returned only “403 Forbidden”.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-recon.json",
        "evidence/search-403.png"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for clear-system-state-and-recovery",
      "evidence": "The search screenshot and DOM contain only “403 Forbidden”, with no navigation, recovery control, or retained query.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-recon.json",
        "evidence/search-403.png"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for good-core-web-vitals",
      "evidence": "Lighthouse measured LCP 7.8s, interactive 12.9s, and performance 0.65; the independent trace measured LCP 5.42s.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "layout observers and Lighthouse",
      "evidence": "Layout probes measured CLS 0 on home/article and 0.000035 on section; Lighthouse measured CLS 0.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/section-layout-mobile.json",
        "evidence/article-layout-mobile.json",
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for efficient-main-thread",
      "evidence": "Lighthouse measured 280ms TBT; the trace captured two long tasks up to 88.53ms with 64.64ms trace TBT.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for efficient-resource-delivery",
      "evidence": "HAR recorded 124 requests, 2.02MB transferred, 50 scripts, and parser-inserted high-priority consent resources; LCP was 5.42–7.8s.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for trim-unused-and-duplicate-code",
      "evidence": "Lighthouse estimates 314KiB unused JavaScript and 49KiB unused CSS, including consent, GTM, game-widget, and core advertising code.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for names-roles-labels",
      "evidence": "Lighthouse accessibility scored 0.87 and link-name failed for video and game links; DOM probes show search input labels are empty.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/article-recon.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for sufficient-contrast",
      "evidence": "Lighthouse measured 3.59:1 for magenta #e20074 text on #f5e198, below the required 4.5:1 for the sampled 18px bold label.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for structure-and-focus",
      "evidence": "Lighthouse heading-order failed on an H3 teaser that skips hierarchy; the focus probe computed outline:none for the search input.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/interaction-probe.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "multi-condition visual inspection",
      "evidence": "Desktop, mobile, forced-color, and no-JS screenshots show readable type sizes, line wrapping, and unclipped editorial headings.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-contrast.png",
        "evidence/article-discoverability-crawler.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for zoom-reflow-targets-and-media",
      "evidence": "All three 360px layout probes had zero overflow, but the keyboard/geometry probe counted 23 of the first 40 focusable elements under 24px in one dimension.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/interaction-probe.json",
        "evidence/home-layout-mobile.json",
        "evidence/section-layout-mobile.json",
        "evidence/article-layout-mobile.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse console audit",
      "evidence": "Lighthouse errors-in-console passed with no logged items.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for sound-document-and-assets",
      "evidence": "The image primitive found 48/100 sampled images without width/height, 17 without srcset, and 52 legacy-format assets; Lighthouse also failed unsized-images.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse and permission probe",
      "evidence": "Lighthouse best-practices scored 1.0; notification permission remained default and no prompt appeared on load.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/interaction-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "DOM plus discoverability comparison",
      "evidence": "Home and article both expose unique descriptive titles and meta descriptions in raw and rendered HTML.",
      "pathIds": [
        "home",
        "article"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/article-recon.json",
        "evidence/home-discoverability.json",
        "evidence/article-discoverability.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse, DOM, and robots inspection",
      "evidence": "Lighthouse SEO scored 1.0, crawlable anchors passed, viewport meta is present, and robots allows normal public crawling.",
      "pathIds": [
        "home",
        "article"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-recon.json",
        "evidence/robots.txt"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for canonical-and-indexing-signals",
      "evidence": "GET /sitemap.xml returned a normal HTML page rather than XML sitemap data, while robots.txt contains no Sitemap directive; canonical URLs and HTTP 200 otherwise pass.",
      "pathIds": [
        "home",
        "article"
      ],
      "artifacts": [
        "evidence/robots.txt",
        "evidence/sitemap.xml",
        "evidence/home-recon.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "JSON-LD and Open Graph DOM inspection",
      "evidence": "Home exposes WebPage/SearchAction JSON-LD and Open Graph; the article exposes article JSON-LD aligned with its visible H1 and canonical URL.",
      "pathIds": [
        "home",
        "article"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/article-recon.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for secure-transport-and-headers",
      "evidence": "HTTPS, HSTS, nosniff, and CSP are present, but CSP is only “frame-ancestors self https://*.t-online.de” and Permissions-Policy is absent.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for data-minimisation-and-third-parties",
      "evidence": "HAR recorded 62 third-party requests and 1.12MB third-party transfer (56% of bytes); tracker evidence found 10 third-party origins and Google Tag Manager.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json",
        "evidence/home.har"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "pass",
      "confidence": "high",
      "method": "permission and flow inspection",
      "evidence": "No notification prompt was fired on load and notification permission remained default; the sampled public reading paths do not require authentication.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/interaction-probe.json",
        "evidence/home-recon.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for defensive-browser-policies",
      "evidence": "HSTS and CSP frame-ancestors protect transport/clickjacking, but Permissions-Policy is absent and CSP provides no script-src/Trusted Types defense.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "raw HTML versus rendered DOM and crawler screenshots",
      "evidence": "Discoverability measured 99% raw-HTML content coverage on home and 100% on article, with title, H1, and descriptions available without JavaScript.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/article-discoverability.json",
        "evidence/home-discoverability-crawler.png",
        "evidence/article-discoverability-crawler.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "mobile/contrast visual inspection and layout probes",
      "evidence": "The consent interface fits at 360px and forced colors, native navigation remains available, and sampled layouts have no clipping or horizontal overflow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-contrast.png",
        "evidence/home-layout-mobile.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for offline-and-installable",
      "evidence": "A manifest link exists, but the fetched manifest parsed as an empty object; the browser found zero service-worker registrations and zero caches.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/pwa-probe.json",
        "evidence/home-recon.json"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for network-and-http-failure-states",
      "evidence": "The representative search request returned only a bare 403 page, with no retry, navigation, or explanation.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/search-recon.json",
        "evidence/search-403.png"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "DOM language and responsive rendering inspection",
      "evidence": "All sampled public content declares html lang=de; German reading order, umlauts, and layout render correctly at desktop and narrow widths.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/article-recon.json",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "rendered content and metadata inspection",
      "evidence": "Rendered German financial data uses locale-appropriate decimal commas (for example DAX +0,61%) and German text/date conventions across templates.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/home-desktop.png",
        "evidence/article-recon.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement for time-zone-correctness",
      "evidence": "The sampled news, section, and search surfaces exposed no scheduling or cross-time-zone workflow to test.",
      "reason": "The sampled news, section, and search surfaces exposed no scheduling or cross-time-zone workflow to test."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for no-dark-patterns",
      "evidence": "Both desktop and mobile first-load screenshots show “ZUSTIMMEN” and “JETZT SICHERN” as the only primary actions; rejection requires entering the privacy manager.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement for humane-error-handling",
      "evidence": "The sampled forms have no required-field validation flow; search submission navigates directly and the resulting HTTP failure is judged under task success and resilience.",
      "reason": "The sampled forms have no required-field validation flow; search submission navigates directly and the resulting HTTP failure is judged under task success and resilience."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for trustworthy-input-assistance",
      "evidence": "The home form probe reports name=email with autocomplete empty; search explicitly uses autocomplete=off.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for safe-commercial-and-account-flows",
      "evidence": "The blocking dialog places “Kostenfrei mit Werbung” beside a €2.99/month PUR subscription while omitting an equally prominent reject path.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for optimised-assets",
      "evidence": "The image audit found 52/100 legacy-format images, 17 missing responsive srcset, 12 below-fold images not lazy-loaded, and 48 missing dimensions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json"
      ],
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for no-wasteful-work",
      "evidence": "Lighthouse estimates 314KiB unused JavaScript and HAR shows 50 script requests; 62 third-party requests account for 1.12MB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence review for third-party-and-media-budget",
      "evidence": "HAR attributes 1,123,471 of 2,017,478 transferred bytes to third parties, led by consent and engagement widgets.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F30"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement for structured-agent-capabilities",
      "evidence": "This public editorial site exposes content rather than an agent-invocable transaction surface; emerging WebMCP capability is not required for the sampled scope.",
      "reason": "This public editorial site exposes content rather than an agent-invocable transaction surface; emerging WebMCP capability is not required for the sampled scope."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement for on-device-inference",
      "evidence": "No user task in the sampled editorial and search surfaces requires on-device inference; absence is not a quality failure.",
      "reason": "No user task in the sampled editorial and search surfaces requires on-device inference; absence is not a quality failure."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "baseline/post heap summaries plus in-session metrics",
      "evidence": "After ten full-page scroll cycles, heap snapshot self-size rose only 86,323 bytes (0.22%); DOM nodes and animation counts were unchanged.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post.json",
        "evidence/memory-metrics.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "heap summary and Performance memory metrics",
      "evidence": "The hydrated page used about 28–29MB JS heap with 5,592 DOM elements; the 39.4MB snapshot footprint is proportionate to a large news index.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/memory-metrics.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "before/after heap constructor and DOM metric comparison",
      "evidence": "Repeated scrolling left DOM nodes fixed at 5,592 and animations fixed at 11; constructor populations and closures were effectively stable between summaries.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post.json",
        "evidence/memory-metrics.json"
      ]
    }
  ],
  "agent": "pi",
  "runId": "2026-07-24T07-44-44-407Z"
}
