{
  "url": "https://www.kleinanzeigen.de",
  "auditedAt": "2026-07-20T09:56:05.115Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete external audit. Authenticated posting, messaging, checkout/payment, and account-management completion were excluded because no test credentials or safe transactional sandbox were provided; guest entry states were inspected.",
  "page": {
    "appType": "hybrid",
    "framework": "Astro/homepage plus server-rendered legacy and separate Auth0-style login templates",
    "notes": "Large German classifieds marketplace. Representative coverage includes home, category results, a live classified detail, login/form validation, and 404 recovery."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "layout-metrics",
    "evaluate-probe",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "lighthouse",
    "axe-core",
    "Modern Web Guidance 0.0.172"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "component-specific-light-dark-theme",
    "accessibility",
    "adapt-scrollbar-to-contrast-preferences",
    "same-document-transitions",
    "cross-document-transitions",
    "group-element-transitions",
    "faster-spa-view-transitions",
    "scrollytelling",
    "parallax-scroll-effects",
    "scroll-entry-exit-effects",
    "carousel-slide-effects",
    "physics-based-easing",
    "individual-transform-properties",
    "animate-element-entry-exit",
    "animate-to-from-top-layer",
    "animate-to-intrinsic-sizes",
    "dynamic-sibling-animations",
    "interactive-content-reveal",
    "pull-to-reveal",
    "swipe-to-remove",
    "shrinking-header-on-scroll",
    "scroll-progress-indicator",
    "scroll-position-aware-elements",
    "scroll-snap-realtime-feedback",
    "scroll-snap-state-sync",
    "scroll-target-on-load",
    "soft-edge-content-fade",
    "scrollability-affordance-hints",
    "anchor-positioning-tab-underline",
    "position-aware-tooltips",
    "interest-triggered-tooltips",
    "interest-triggered-action-previews",
    "directional-navigation-transitions",
    "carousel-snap-highlights",
    "navigation-drawer",
    "stack-drill-down",
    "persistent-app-tours",
    "persistent-toast-notifications",
    "light-dismiss-a-dialog",
    "platform-controls-dismiss-dialog",
    "declarative-dialog-popover-control",
    "animated-select-picker",
    "branded-select-styling",
    "brand-consistent-forms",
    "custom-select-picker-layouts",
    "rich-media-picker",
    "complex-shapes",
    "shaped-cutouts",
    "overflow-clipping-control",
    "visually-texture-content",
    "apply-webgl-shaders",
    "interactive-content-in-3d-scenes",
    "highlight-text-ranges",
    "prevent-text-wrapping",
    "customize-scrollbar-color-and-thickness",
    "export-html-media-from-canvas",
    "fluid-scaling",
    "calculate-with-intrinsic-sizes",
    "css-layout",
    "size-aware-styling",
    "content-based-styling",
    "child-state-based-styling",
    "design-token-reactivity",
    "dynamic-sibling-styling",
    "form-fields-automatically-fit-contents",
    "improve-text-layout-and-legibility",
    "forms",
    "accessible-error-announcement",
    "required-field-feedback",
    "validate-input-after-interaction",
    "identify-inp-causes",
    "schedule-tasks-by-priority",
    "optimize-preload-priority",
    "improve-next-page-load-performance",
    "interactions-in-complex-layouts",
    "performance",
    "visually-stable-font-fallbacks",
    "break-up-long-tasks",
    "identify-heavy-scripts",
    "optimize-script-priority",
    "defer-rendering-heavy-content",
    "defer-work-until-scroll-ends",
    "optimize-image-priority",
    "conditional-async-dependencies",
    "expose-canvas-content-to-browser-features",
    "move-dom-element-without-losing-state",
    "precise-text-alignment",
    "visually-stable-mixed-fonts",
    "css",
    "html",
    "reduce-style-repetition",
    "security",
    "privacy",
    "batch-analytics-events",
    "full-session-analytics",
    "calculate-total-foreground-time",
    "passkeys",
    "passkey-registration",
    "passkey-authentication",
    "passkey-reauthentication",
    "passkey-conditional-create",
    "passkey-management",
    "flicker-free-client-side-ab-testing",
    "consistent-cross-document-transitions",
    "stabilize-reactive-state",
    "resilient-context-menus-and-nested-dropdowns",
    "persistent-top-layer-ui",
    "detect-initial-visibility-state",
    "sequence-distributed-events",
    "translator",
    "language-detection",
    "support-global-calendar-systems",
    "capture-location-agnostic-data",
    "format-human-readable-durations",
    "manage-recurring-intervals",
    "calculate-event-differentials",
    "coordinate-global-events",
    "model-partial-time-concepts",
    "search-hidden-content",
    "select-menu-interaction",
    "style-parent-with-has",
    "autofill-address-form",
    "autofill-payment-form",
    "autofill-sign-in-form",
    "autofill-sign-up-form",
    "autofill-highlight-inputs",
    "deliver-optimized-decorative-images",
    "resolution-optimized-pseudo-elements",
    "deprioritize-background-fetches",
    "efficient-background-processing",
    "webmcp",
    "agentic-forms",
    "agentic-javascript-tools",
    "language-model",
    "summarizer"
  ],
  "artifacts": [
    {
      "type": "other",
      "path": "evidence/axe-detail.json",
      "caption": "axe detail",
      "findingIds": [
        "F9",
        "F10"
      ]
    },
    {
      "type": "other",
      "path": "evidence/axe-home.json",
      "caption": "axe home"
    },
    {
      "type": "other",
      "path": "evidence/axe-listing.json",
      "caption": "axe listing",
      "findingIds": [
        "F9"
      ]
    },
    {
      "type": "other",
      "path": "evidence/axe-login.json",
      "caption": "axe login",
      "findingIds": [
        "F9"
      ]
    },
    {
      "type": "other",
      "path": "evidence/consent-controls.json",
      "caption": "consent controls",
      "findingIds": [
        "F16"
      ]
    },
    {
      "type": "other",
      "path": "evidence/consent-probe.json",
      "caption": "consent probe"
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies",
      "findingIds": [
        "F13"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-desktop.png",
      "caption": "detail desktop",
      "findingIds": [
        "F3"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-discoverability-crawler.png",
      "caption": "detail discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-discoverability-rendered.png",
      "caption": "detail discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/detail-discoverability.json",
      "caption": "detail discoverability"
    },
    {
      "type": "other",
      "path": "evidence/detail-probe.json",
      "caption": "detail probe",
      "findingIds": [
        "F10"
      ]
    },
    {
      "type": "other",
      "path": "evidence/feed-links.json",
      "caption": "feed links"
    },
    {
      "type": "other",
      "path": "evidence/guidance-list.json",
      "caption": "guidance list"
    },
    {
      "type": "other",
      "path": "evidence/guidance-mapped.json",
      "caption": "guidance mapped"
    },
    {
      "type": "other",
      "path": "evidence/guidance-retrieved.md",
      "caption": "guidance retrieved"
    },
    {
      "type": "other",
      "path": "evidence/guidance-search.json",
      "caption": "guidance search"
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers",
      "findingIds": [
        "F13",
        "F15"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-contrast.png",
      "caption": "home contrast"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark",
      "findingIds": [
        "F1"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": [
        "F4",
        "F14",
        "F16"
      ]
    },
    {
      "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",
      "findingIds": [
        "F3",
        "F5"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images",
      "findingIds": [
        "F11"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-mobile.json",
      "caption": "home layout mobile",
      "findingIds": [
        "F7"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "findingIds": [
        "F4",
        "F5",
        "F16"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-probe.json",
      "caption": "home probe"
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F8",
        "F14"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": [
        "F6"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace"
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": [
        "F8"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "lighthouse home",
      "findingIds": [
        "F6",
        "F7",
        "F8",
        "F12"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-listing.json",
      "caption": "lighthouse listing",
      "findingIds": [
        "F6",
        "F7",
        "F8",
        "F11",
        "F12"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/listing-baseline.heapsnapshot",
      "caption": "listing baseline"
    },
    {
      "type": "screenshot",
      "path": "evidence/listing-desktop.png",
      "caption": "listing desktop",
      "findingIds": [
        "F3"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/listing-discoverability-crawler.png",
      "caption": "listing discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/listing-discoverability-rendered.png",
      "caption": "listing discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/listing-discoverability.json",
      "caption": "listing discoverability"
    },
    {
      "type": "other",
      "path": "evidence/listing-images.json",
      "caption": "listing images",
      "findingIds": [
        "F11"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/listing-layout-mobile.json",
      "caption": "listing layout mobile"
    },
    {
      "type": "screenshot",
      "path": "evidence/listing-mobile.png",
      "caption": "listing mobile",
      "findingIds": [
        "F4",
        "F5"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/listing-post.heapsnapshot",
      "caption": "listing post"
    },
    {
      "type": "other",
      "path": "evidence/listing-probe.json",
      "caption": "listing probe",
      "findingIds": [
        "F10"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/login-invalid.png",
      "caption": "login invalid"
    },
    {
      "type": "other",
      "path": "evidence/login-probe.json",
      "caption": "login probe"
    },
    {
      "type": "other",
      "path": "evidence/login-validation.json",
      "caption": "login validation"
    },
    {
      "type": "screenshot",
      "path": "evidence/login.png",
      "caption": "login"
    },
    {
      "type": "other",
      "path": "evidence/memory-metrics.json",
      "caption": "memory metrics"
    },
    {
      "type": "other",
      "path": "evidence/motion-normal.json",
      "caption": "motion normal",
      "findingIds": [
        "F2"
      ]
    },
    {
      "type": "other",
      "path": "evidence/motion-reduce.json",
      "caption": "motion reduce",
      "findingIds": [
        "F2"
      ]
    },
    {
      "type": "other",
      "path": "evidence/not-found-probe.json",
      "caption": "not found probe"
    },
    {
      "type": "screenshot",
      "path": "evidence/not-found.png",
      "caption": "not found"
    },
    {
      "type": "screenshot",
      "path": "evidence/posting.png",
      "caption": "posting"
    },
    {
      "type": "other",
      "path": "evidence/pwa-probe.json",
      "caption": "pwa probe"
    },
    {
      "type": "other",
      "path": "evidence/recon-links.json",
      "caption": "recon links"
    },
    {
      "type": "other",
      "path": "evidence/robots.json",
      "caption": "robots"
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets"
    },
    {
      "type": "other",
      "path": "evidence/theme-dark.json",
      "caption": "theme dark",
      "findingIds": [
        "F1"
      ]
    },
    {
      "type": "other",
      "path": "evidence/theme-light.json",
      "caption": "theme light",
      "findingIds": [
        "F1"
      ]
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers",
      "findingIds": [
        "F14"
      ]
    }
  ],
  "config": {
    "loaded": false
  },
  "coverage": {
    "catalogVersion": "modern-web-guidance@0.0.172",
    "catalogChecksum": "sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7",
    "expected": 58,
    "recorded": 58,
    "judged": 58,
    "blocked": 0,
    "notRun": 0,
    "missing": 0,
    "unknown": 0,
    "duplicates": 0,
    "complete": true
  },
  "checkOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-color-scheme",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "Computed-style probes under light and dark both returned color-scheme: normal, body background rgb(255,255,255), and dialog background rgb(247,247,247); the dark-condition screenshot remains light.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/theme-light.json",
        "evidence/theme-dark.json"
      ],
      "findingIds": [
        "F1"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "The normal and prefers-reduced-motion: reduce probes each found a finished animation with duration 3000ms; the reduced condition did not shorten or remove it.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/motion-normal.json",
        "evidence/motion-reduce.json"
      ],
      "findingIds": [
        "F2"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "screenshot+axe under forced colors",
      "evidence": "Forced-colors/prefers-contrast screenshot preserves visible text, controls, focus outline, and boundaries.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-contrast.png"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "Rendered DOM/CSS inspection found no view-transition declarations while the tested primary journey crosses full documents between three distinct templates.",
      "pathIds": [
        "browse-flow"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/listing-desktop.png",
        "evidence/detail-desktop.png"
      ],
      "findingIds": [
        "F3"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "pass",
      "confidence": "high",
      "method": "rendered CSS inspection",
      "evidence": "DOM/CSS inspection found scroll-snap and overscroll behavior but no custom scroll-linked animation or main-thread scroll-animation anti-pattern on the tested templates.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "mobile screenshot + Lighthouse",
      "evidence": "Mobile screenshots and CSS inspection show native scrolling/overscroll and usable touch-sized controls; Lighthouse target-size passed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "cross-template screenshot review",
      "evidence": "Home, listing, and detail screenshots keep search/navigation context and the listing exposes persistent filter/result orientation without obscuring content during the sampled states.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/listing-mobile.png",
        "evidence/detail-desktop.png"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "pass",
      "confidence": "high",
      "method": "DOM primitive + edge-state screenshot review",
      "evidence": "The tested first-load overlay uses native dialog; no drifting tooltip/menu near an edge or manual-positioning failure appeared in representative states.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-contrast.png"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "task walkthrough + headings probe",
      "evidence": "Descriptive breadcrumbs, a single marketplace search path, result headings, and detail CTAs clearly preserve location across the browse journey.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/listing-probe.json",
        "evidence/detail-probe.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "Desktop and 360px screenshots show an open modal covering most or all of the initial viewport before interaction; on mobile the long consent copy occupies the whole left panel and dims the marketplace.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/listing-mobile.png"
      ],
      "findingIds": [
        "F4"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate semantic probe",
      "evidence": "The consent modal is a native dialog with aria-modal and an associated title; home also uses native details disclosures.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/consent-probe.json",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "Desktop and 360px screenshots show an open modal covering most or all of the initial viewport before interaction; on mobile the long consent copy occupies the whole left panel and dims the marketplace.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/listing-mobile.png"
      ],
      "findingIds": [
        "F4"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "layout primitive at 360x800",
      "evidence": "360px layout captures reported zero horizontal overflow on home and listing, with a viewport meta tag present.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/listing-layout-mobile.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "DOM/CSS inspection found responsive mobile layouts but no @container or container-type declarations, while listing cards are reused across home, results, and recommendations at different widths.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-mobile.png",
        "evidence/listing-mobile.png"
      ],
      "findingIds": [
        "F5"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse + focus + forced-colors probe",
      "evidence": "Lighthouse target-size passed, forced-colors retained outlines, and the home focus probe measured a 2px solid outline.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-probe.json",
        "evidence/home-contrast.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "first-viewport and heading review",
      "evidence": "The home H1 says “Kleinanzeigen entdecken”, search is prominent, and listing/detail titles and prices communicate the next action directly.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/listing-desktop.png",
        "evidence/detail-desktop.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "multi-page task walkthrough",
      "evidence": "The representative guest browse flow reached home, category results, and a live detail page with price and message action; posting routes predictably to a clearly labelled login step.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/listing-desktop.png",
        "evidence/detail-desktop.png",
        "evidence/posting.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "404 and invalid-form probes",
      "evidence": "The deliberate bad route produced a specific 404 explanation, home link, and category recovery links; invalid email produced a field-specific format error and aria-invalid=true.",
      "pathIds": [
        "login"
      ],
      "artifacts": [
        "evidence/not-found.png",
        "evidence/not-found-probe.json",
        "evidence/login-validation.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "Lighthouse measured home LCP 12.1s, CLS 1.0, TBT 210ms and performance 37; listing LCP 12.4s, CLS 1.011, TBT 250ms and performance 34. The independent trace measured LCP 5.14s.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-listing.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F6"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "Lighthouse reported CLS 1.0 on home and 1.011 on listing. The isolated layout observer started after page setup and saw zero, so the Lighthouse cold-load result captures shifts missed by the late observer.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-listing.json",
        "evidence/home-layout-mobile.json"
      ],
      "findingIds": [
        "F7"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "Lighthouse measured home LCP 12.1s, CLS 1.0, TBT 210ms and performance 37; listing LCP 12.4s, CLS 1.011, TBT 250ms and performance 34. The independent trace measured LCP 5.14s.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-listing.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F6"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "HAR recorded 148 requests and 1.83MB transferred, including 67 scripts and 1.46MB script bytes. Lighthouse estimated 524–584KiB unused JavaScript and 73–75KiB unused CSS; the HAR identifies GTM/gtag/prebid and experimentation among the largest resources.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-listing.json"
      ],
      "findingIds": [
        "F8"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "HAR recorded 148 requests and 1.83MB transferred, including 67 scripts and 1.46MB script bytes. Lighthouse estimated 524–584KiB unused JavaScript and 73–75KiB unused CSS; the HAR identifies GTM/gtag/prebid and experimentation among the largest resources.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-listing.json"
      ],
      "findingIds": [
        "F8"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "axe found invalid ARIA values on both search fields and an unnamed sorting button on results; detail repeats invalid ARIA; login has one image without alt and two links without discernible names.",
      "pathIds": [
        "browse-flow"
      ],
      "artifacts": [
        "evidence/axe-listing.json",
        "evidence/axe-detail.json",
        "evidence/axe-login.json"
      ],
      "findingIds": [
        "F9"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "axe + Lighthouse + forced-colors",
      "evidence": "axe found no contrast violations on four representative templates; Lighthouse color-contrast passed and forced-colors remained legible.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/lighthouse-home.json",
        "evidence/home-contrast.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "The listing probe found eleven H1 elements, including advertising product names as well as the actual results heading. axe found a detail-page li outside a list and a complementary landmark nested inside another landmark.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/listing-probe.json",
        "evidence/detail-probe.json",
        "evidence/axe-detail.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "visual screenshot review",
      "evidence": "Desktop/mobile screenshots show readable line spacing and unclipped German text outside the separately reported consent obstruction.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/listing-desktop.png",
        "evidence/listing-mobile.png",
        "evidence/login.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "pass",
      "confidence": "high",
      "method": "mobile layout + Lighthouse + media probe",
      "evidence": "Mobile layout showed no horizontal overflow; Lighthouse target-size passed; no video/audio requiring captions was present on tested templates.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/listing-layout-mobile.json",
        "evidence/lighthouse-listing.json",
        "evidence/detail-probe.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse console audit",
      "evidence": "Lighthouse console-error audits passed on both home and listing templates.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-listing.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "The image primitive found 29 of 30 listing images without width/height and 26 below-fold images not lazy; home had 37 of 42 without dimensions, 34 without srcset, and 25 without alt. Lighthouse separately identified unsized advertiser logos on listing.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/listing-images.json",
        "evidence/home-images.json",
        "evidence/lighthouse-listing.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "Lighthouse reported three BFCache failure reasons led by Cache-Control: no-store and multiple missing, forbidden, or malformed source maps for large first-party and analytics scripts.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-listing.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate metadata probes",
      "evidence": "Home, listing, and detail probes each found a unique descriptive title and meta description.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/listing-probe.json",
        "evidence/detail-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse + robots probe",
      "evidence": "Lighthouse passed crawlable anchors, descriptive link text, valid robots, and viewport checks; robots explicitly allows major AI search/user agents on public paths.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/robots.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "discoverability + metadata + robots",
      "evidence": "All three public templates returned 200, index/follow, and canonical URLs; robots references a sitemap index.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/listing-discoverability.json",
        "evidence/detail-discoverability.json",
        "evidence/robots.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "metadata count and visible-content comparison",
      "evidence": "Probes found JSON-LD and Open Graph metadata: home 1/6, listing 27/7, detail 18/11, aligned with visible entities.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/listing-probe.json",
        "evidence/detail-probe.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "Header inspection found no Content-Security-Policy. Cookie inspection found five flagged cookies, including insecure kameleoonVisitorCode and bm_sz cookies with SameSite=None; one duplicate visitor cookie lasts 380 days.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "The consent dialog names 301 partners. The HAR recorded 72 cross-origin requests and 725KB classified cross-origin; tracker inspection saw Google Tag Manager and Google syndication plus Kameleoon, while the modal was still open.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "pass",
      "confidence": "high",
      "method": "load screenshot + login DOM probe",
      "evidence": "No permission prompt appeared on load; the login document probes WebAuthn platform availability and requests email first rather than exposing a password-only initial form.",
      "pathIds": [
        "login"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/login-probe.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "Header inspection found no Referrer-Policy or Permissions-Policy. Clickjacking protection, HSTS, and nosniff were present, so this is a partial policy gap rather than absent transport defense.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "discoverability no-JS comparison",
      "evidence": "Raw HTML retained 68% home, 73% listing, and 70% detail content, with title/H1/description present and no JS shell.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/listing-discoverability.json",
        "evidence/detail-discoverability.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "overlay screenshots + Lighthouse",
      "evidence": "Native dialog/details primitives rendered without clipping in desktop and forced-colors states; no console errors were reported.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-contrast.png",
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon-based applicability judgement",
      "evidence": "The public marketplace has native apps but its live inventory and transactions are intrinsically online; an offline/installable web experience was judged out of scope for this URL. The minimal manifest and zero service-worker registrations were still recorded.",
      "reason": "The public marketplace has native apps but its live inventory and transactions are intrinsically online; an offline/installable web experience was judged out of scope for this URL. The minimal manifest and zero service-worker registrations were still recorded."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "404 screenshot and DOM probe",
      "evidence": "A 404 route returns a clear error title, explanation, home CTA, and category recovery links rather than a blank shell.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/not-found.png",
        "evidence/not-found-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "DOM language probe + mobile screenshots",
      "evidence": "All public templates declare html lang=de; German left-to-right reading order and narrow-layout rendering remain coherent.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/listing-mobile.png"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "rendered text and detail/listing probes",
      "evidence": "Visible prices and counts use German conventions such as “300 € VB” and “360.965”; page language is de.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/listing-probe.json",
        "evidence/detail-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon-based applicability judgement",
      "evidence": "The representative public pages contain no scheduling, event, deadline, or other time-zone-sensitive interaction to assess.",
      "reason": "The representative public pages contain no scheduling, event, deadline, or other time-zone-sensitive interaction to assess."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "The modal presents a large bright “Alle akzeptieren” button while rejection appears only as a small inline “ablehnen, ändern oder widerrufen” link below settings; mobile preserves this unequal hierarchy while blocking content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/consent-controls.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "pass",
      "confidence": "high",
      "method": "invalid form interaction probe",
      "evidence": "Submitting an invalid email sets aria-invalid=true and returns the specific German message asking the user to verify the email format.",
      "pathIds": [
        "login"
      ],
      "artifacts": [
        "evidence/login-validation.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "pass",
      "confidence": "high",
      "method": "form attribute probes",
      "evidence": "The login email field is labelled, required, type=email, and autocomplete=email; search inputs have explicit accessible labels.",
      "pathIds": [
        "login"
      ],
      "artifacts": [
        "evidence/login-probe.json",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "high",
      "method": "detail/login journey review",
      "evidence": "Guest-visible listing price, seller/message affordance, login, registration, password recovery, privacy, and withdrawal links are explicit; no forced continuity was observed outside the separately reported consent design.",
      "pathIds": [
        "detail"
      ],
      "artifacts": [
        "evidence/detail-desktop.png",
        "evidence/login.png",
        "evidence/detail-probe.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "The image primitive found 29 of 30 listing images without width/height and 26 below-fold images not lazy; home had 37 of 42 without dimensions, 34 without srcset, and 25 without alt. Lighthouse separately identified unsized advertiser logos on listing.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/listing-images.json",
        "evidence/home-images.json",
        "evidence/lighthouse-listing.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "HAR recorded 148 requests and 1.83MB transferred, including 67 scripts and 1.46MB script bytes. Lighthouse estimated 524–584KiB unused JavaScript and 73–75KiB unused CSS; the HAR identifies GTM/gtag/prebid and experimentation among the largest resources.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-listing.json"
      ],
      "findingIds": [
        "F8"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Direct evidence from the linked finding(s)",
      "evidence": "The consent dialog names 301 partners. The HAR recorded 72 cross-origin requests and 725KB classified cross-origin; tracker inspection saw Google Tag Manager and Google syndication plus Kameleoon, while the modal was still open. HAR recorded 148 requests and 1.83MB transferred, including 67 scripts and 1.46MB script bytes. Lighthouse estimated 524–584KiB unused JavaScript and 73–75KiB unused CSS; the HAR identifies GTM/gtag/prebid and experimentation among the largest resources.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-summary.json",
        "evidence/trackers.json",
        "evidence/home.har",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-listing.json"
      ],
      "findingIds": [
        "F14",
        "F8"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon-based applicability judgement",
      "evidence": "No declared agent-facing product surface or WebMCP intent was found; this emerging capability is contextual and its absence is not a failure.",
      "reason": "No declared agent-facing product surface or WebMCP intent was found; this emerging capability is contextual and its absence is not a failure."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon-based applicability judgement",
      "evidence": "No summarisation, translation, or generation task was presented where on-device inference is part of the intended experience.",
      "reason": "No summarisation, translation, or generation task was presented where on-device inference is part of the intended experience."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "heap baseline -> 10 scroll cycles -> post comparison",
      "evidence": "A baseline heap was 637,415 nodes/40.69MB; after ten real top-to-bottom listing scroll cycles a fresh snapshot was lower at 620,208 nodes/39.30MB, showing no retained-growth signal in this test.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/listing-baseline.heapsnapshot",
        "evidence/listing-post.heapsnapshot"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "heap summary + in-page memory metrics",
      "evidence": "The listing used about 33.1MB JS heap with 1,867 live DOM elements; heap snapshot self-size was about 40.7MB, proportionate to a media-rich result page.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/listing-baseline.heapsnapshot",
        "evidence/memory-metrics.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "DOM connectivity probe + heap comparison",
      "evidence": "The live-DOM probe found zero disconnected elements in its sampled document set, and post-interaction heap totals decreased rather than accumulating.",
      "pathIds": [
        "listing"
      ],
      "artifacts": [
        "evidence/memory-metrics.json",
        "evidence/listing-baseline.heapsnapshot",
        "evidence/listing-post.heapsnapshot"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F1",
        "F2"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F3"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F4"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F5"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F6",
        "F7",
        "F8"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F9",
        "F10"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F11",
        "F12"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F13",
        "F14",
        "F15"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F11",
        "F8",
        "F14"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "No declared agent-facing product surface or WebMCP intent was found; this emerging capability is contextual and its absence is not a failure. No summarisation, translation, or generation task was presented where on-device inference is part of the intended experience."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and first-load consent state; represents entry, search, category discovery, preferences, privacy, performance, and mobile adaptation.",
      "url": "https://www.kleinanzeigen.de/",
      "conditions": [
        "desktop 1440x1000",
        "mobile 360x800",
        "prefers-color-scheme: dark",
        "forced-colors: active",
        "prefers-contrast: more"
      ],
      "result": "issues"
    },
    {
      "id": "listing",
      "description": "Handy & Telefon category results; represents search/listing cards, filters, result semantics, repeated scrolling, mobile adaptation, and memory behaviour.",
      "url": "https://www.kleinanzeigen.de/s-handy-telekom/c173",
      "conditions": [
        "desktop 1440x1000",
        "mobile 360x800",
        "prefers-reduced-motion: reduce",
        "10 repeated scroll cycles"
      ],
      "result": "issues"
    },
    {
      "id": "detail",
      "description": "Live classified detail; represents product metadata, price, seller/message CTA, recommendations, and rich-entity discoverability.",
      "url": "https://www.kleinanzeigen.de/s-anzeige/anhaengerkupplung-fuer-mercedesgasse-ab-baujahr-1989/3463692469-223-4539",
      "conditions": [
        "desktop 1440x1000",
        "JavaScript on/off comparison"
      ],
      "result": "issues"
    },
    {
      "id": "browse-flow",
      "description": "Guest primary journey from discovery through category results to a live classified detail.",
      "url": "https://www.kleinanzeigen.de/s-handy-telekom/c173",
      "conditions": [
        "multi-page guest flow"
      ],
      "result": "issues"
    },
    {
      "id": "login",
      "description": "Authentication entry and invalid-email recovery; also represents the account wall reached from posting.",
      "url": "https://www.kleinanzeigen.de/m-einloggen.html",
      "conditions": [
        "desktop 1440x1000",
        "invalid email submission"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Deliberate invalid route; represents HTTP failure and recovery.",
      "url": "https://www.kleinanzeigen.de/this-route-should-not-exist-web-uplift",
      "conditions": [
        "404"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F1",
      "pathId": "home",
      "url": "https://www.kleinanzeigen.de/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "css",
      "severity": "medium",
      "confidence": "high",
      "summary": "The public marketplace is fixed to a light palette even when the user requests dark mode.",
      "evidence": "Computed-style probes under light and dark both returned color-scheme: normal, body background rgb(255,255,255), and dialog background rgb(247,247,247); the dark-condition screenshot remains light.",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/theme-light.json",
        "evidence/theme-dark.json"
      ],
      "suggestedFix": "Declare color-scheme: light dark and map surface, text, border, focus, and overlay tokens through prefers-color-scheme or light-dark(), including the consent dialog.",
      "effort": "medium"
    },
    {
      "id": "F2",
      "pathId": "listing",
      "url": "https://www.kleinanzeigen.de/s-handy-telekom/c173",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "The listing keeps the same non-essential three-second animation when reduced motion is requested.",
      "evidence": "The normal and prefers-reduced-motion: reduce probes each found a finished animation with duration 3000ms; the reduced condition did not shorten or remove it.",
      "artifacts": [
        "evidence/motion-normal.json",
        "evidence/motion-reduce.json"
      ],
      "suggestedFix": "Wrap non-essential transitions and animations in a no-preference query and provide an instant or substantially reduced alternative under prefers-reduced-motion: reduce.",
      "effort": "small"
    },
    {
      "id": "F3",
      "pathId": "browse-flow",
      "url": "https://www.kleinanzeigen.de/s-handy-telekom/c173",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "guidanceCategory": "css",
      "severity": "low",
      "confidence": "medium",
      "summary": "Navigation between the home, results, and detail templates swaps abruptly without View Transitions.",
      "evidence": "Rendered DOM/CSS inspection found no view-transition declarations while the tested primary journey crosses full documents between three distinct templates.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/listing-desktop.png",
        "evidence/detail-desktop.png"
      ],
      "suggestedFix": "Add cross-document View Transitions for same-origin browse navigation, with restrained shared-element treatment and a reduced-motion fallback.",
      "effort": "medium"
    },
    {
      "id": "F4",
      "pathId": "home",
      "url": "https://www.kleinanzeigen.de/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "A consent interstitial obscures the primary marketplace content on every fresh visit, especially on mobile.",
      "evidence": "Desktop and 360px screenshots show an open modal covering most or all of the initial viewport before interaction; on mobile the long consent copy occupies the whole left panel and dims the marketplace.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/listing-mobile.png"
      ],
      "suggestedFix": "Replace the full-screen first-load interruption with a compact, content-preserving consent surface that keeps accept and reject actions immediately available and accessible.",
      "effort": "large"
    },
    {
      "id": "F5",
      "pathId": "listing",
      "url": "https://www.kleinanzeigen.de/s-handy-telekom/c173",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "css",
      "severity": "low",
      "confidence": "medium",
      "summary": "The templates adapt at the viewport level but expose no container-query strategy for reusable cards and filters.",
      "evidence": "DOM/CSS inspection found responsive mobile layouts but no @container or container-type declarations, while listing cards are reused across home, results, and recommendations at different widths.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-mobile.png",
        "evidence/listing-mobile.png"
      ],
      "suggestedFix": "Give reusable card/filter shells containment and move component-specific breakpoints to @container rules, retaining viewport queries only for page-level composition.",
      "effort": "medium"
    },
    {
      "id": "F6",
      "pathId": "home",
      "url": "https://www.kleinanzeigen.de/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "identify-inp-causes",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Lab performance is poor on both home and listing templates.",
      "evidence": "Lighthouse measured home LCP 12.1s, CLS 1.0, TBT 210ms and performance 37; listing LCP 12.4s, CLS 1.011, TBT 250ms and performance 34. The independent trace measured LCP 5.14s.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-listing.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Profile the LCP dependency chain, prioritize the actual LCP resource, reserve overlay/content space, and defer non-critical experiments, ads, and analytics until after the primary content is usable.",
      "effort": "large"
    },
    {
      "id": "F7",
      "pathId": "home",
      "url": "https://www.kleinanzeigen.de/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "visual-stability",
      "guidanceId": "visually-stable-font-fallbacks",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Large layout shifts occur during cold load.",
      "evidence": "Lighthouse reported CLS 1.0 on home and 1.011 on listing. The isolated layout observer started after page setup and saw zero, so the Lighthouse cold-load result captures shifts missed by the late observer.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-listing.json",
        "evidence/home-layout-mobile.json"
      ],
      "suggestedFix": "Identify the cold-load shift sources, reserve dimensions for consent/ad/media slots, and avoid replacing initial layout geometry after first paint.",
      "effort": "medium"
    },
    {
      "id": "F8",
      "pathId": "home",
      "url": "https://www.kleinanzeigen.de/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Advertising, analytics, experimentation, and legacy bundles dominate the initial load.",
      "evidence": "HAR recorded 148 requests and 1.83MB transferred, including 67 scripts and 1.46MB script bytes. Lighthouse estimated 524–584KiB unused JavaScript and 73–75KiB unused CSS; the HAR identifies GTM/gtag/prebid and experimentation among the largest resources.",
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-listing.json"
      ],
      "suggestedFix": "Set a first-load script budget, remove duplicate/legacy bundles, gate ads and experiments behind consent and relevance, and lazy-load route-specific code after primary content.",
      "effort": "large"
    },
    {
      "id": "F9",
      "pathId": "browse-flow",
      "url": "https://www.kleinanzeigen.de/s-handy-telekom/c173",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Critical accessible-name and ARIA defects appear on results, detail, and login templates.",
      "evidence": "axe found invalid ARIA values on both search fields and an unnamed sorting button on results; detail repeats invalid ARIA; login has one image without alt and two links without discernible names.",
      "artifacts": [
        "evidence/axe-listing.json",
        "evidence/axe-detail.json",
        "evidence/axe-login.json"
      ],
      "suggestedFix": "Correct the invalid ARIA attribute values, give icon-only sort/back/logo controls explicit names, and provide meaningful logo alt text or mark decorative imagery appropriately.",
      "effort": "small"
    },
    {
      "id": "F10",
      "pathId": "listing",
      "url": "https://www.kleinanzeigen.de/s-handy-telekom/c173",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "The listing template exposes an incoherent heading hierarchy and the detail contains invalid list/landmark structure.",
      "evidence": "The listing probe found eleven H1 elements, including advertising product names as well as the actual results heading. axe found a detail-page li outside a list and a complementary landmark nested inside another landmark.",
      "artifacts": [
        "evidence/listing-probe.json",
        "evidence/detail-probe.json",
        "evidence/axe-detail.json"
      ],
      "suggestedFix": "Keep one page H1, demote card/ad titles to appropriate lower headings, contain every li in a list, and make complementary landmarks top-level where required.",
      "effort": "medium"
    },
    {
      "id": "F11",
      "pathId": "listing",
      "url": "https://www.kleinanzeigen.de/s-handy-telekom/c173",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Listing and home images frequently omit intrinsic dimensions and below-fold loading is too eager.",
      "evidence": "The image primitive found 29 of 30 listing images without width/height and 26 below-fold images not lazy; home had 37 of 42 without dimensions, 34 without srcset, and 25 without alt. Lighthouse separately identified unsized advertiser logos on listing.",
      "artifacts": [
        "evidence/listing-images.json",
        "evidence/home-images.json",
        "evidence/lighthouse-listing.json"
      ],
      "suggestedFix": "Emit width and height or aspect-ratio for every image, lazy-load below-fold results, and provide responsive srcset/sizes and meaningful alt where images convey content.",
      "effort": "medium"
    },
    {
      "id": "F12",
      "pathId": "home",
      "url": "https://www.kleinanzeigen.de/",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "low",
      "confidence": "high",
      "summary": "The site disables BFCache and ships missing or broken source maps for large scripts.",
      "evidence": "Lighthouse reported three BFCache failure reasons led by Cache-Control: no-store and multiple missing, forbidden, or malformed source maps for large first-party and analytics scripts.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-listing.json"
      ],
      "suggestedFix": "Avoid no-store on cache-safe public documents and publish valid production source maps with correct access controls.",
      "effort": "medium"
    },
    {
      "id": "F13",
      "pathId": "home",
      "url": "https://www.kleinanzeigen.de/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Transport is HTTPS, but CSP is absent and several cookies are not Secure.",
      "evidence": "Header inspection found no Content-Security-Policy. Cookie inspection found five flagged cookies, including insecure kameleoonVisitorCode and bm_sz cookies with SameSite=None; one duplicate visitor cookie lasts 380 days.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "suggestedFix": "Deploy a nonce/hash-based CSP, set Secure on all HTTPS cookies, tighten SameSite, deduplicate the visitor cookie, and shorten non-essential retention.",
      "effort": "medium"
    },
    {
      "id": "F14",
      "pathId": "home",
      "url": "https://www.kleinanzeigen.de/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "The first-load privacy footprint is large before the user has made a consent choice.",
      "evidence": "The consent dialog names 301 partners. The HAR recorded 72 cross-origin requests and 725KB classified cross-origin; tracker inspection saw Google Tag Manager and Google syndication plus Kameleoon, while the modal was still open.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "suggestedFix": "Default to a minimal, no-personalization request set before consent; delay tag managers, ad auctions, and experimentation until an informed opt-in and continuously reduce vendor count.",
      "effort": "large"
    },
    {
      "id": "F15",
      "pathId": "home",
      "url": "https://www.kleinanzeigen.de/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "medium",
      "confidence": "high",
      "summary": "Several browser-enforced defensive policies are missing.",
      "evidence": "Header inspection found no Referrer-Policy or Permissions-Policy. Clickjacking protection, HSTS, and nosniff were present, so this is a partial policy gap rather than absent transport defense.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Add a restrictive Referrer-Policy and Permissions-Policy; express frame protection in CSP frame-ancestors when CSP is deployed.",
      "effort": "small"
    },
    {
      "id": "F16",
      "pathId": "home",
      "url": "https://www.kleinanzeigen.de/",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "The consent design strongly privileges acceptance and makes refusal comparatively hard to find.",
      "evidence": "The modal presents a large bright “Alle akzeptieren” button while rejection appears only as a small inline “ablehnen, ändern oder widerrufen” link below settings; mobile preserves this unequal hierarchy while blocking content.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/consent-controls.json"
      ],
      "suggestedFix": "Offer equally prominent Accept and Reject actions in the first layer, use neutral visual weighting, and keep granular settings optional rather than the path to refusal.",
      "effort": "small"
    }
  ],
  "taskList": [
    {
      "id": "T1",
      "title": "Redesign consent to preserve content, offer equal reject, and suppress non-essential vendors before opt-in",
      "priority": 1,
      "findingIds": [
        "F4",
        "F14",
        "F16"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T2",
      "title": "Cut initial script/advertising cost and repair LCP/CLS on home and listing",
      "priority": 2,
      "findingIds": [
        "F6",
        "F7",
        "F8"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    },
    {
      "id": "T3",
      "title": "Fix critical ARIA, control names, heading, list, and landmark semantics",
      "priority": 3,
      "findingIds": [
        "F9",
        "F10"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T4",
      "title": "Deploy CSP and complete cookie and browser-policy hardening",
      "priority": 4,
      "findingIds": [
        "F13",
        "F15"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T5",
      "title": "Add intrinsic image sizing, responsive sources, alt text, and below-fold lazy loading",
      "priority": 5,
      "findingIds": [
        "F11"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T6",
      "title": "Respect dark and reduced-motion preferences",
      "priority": 6,
      "findingIds": [
        "F1",
        "F2"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T7",
      "title": "Adopt component queries and restrained cross-document transitions",
      "priority": 7,
      "findingIds": [
        "F3",
        "F5"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    },
    {
      "id": "T8",
      "title": "Restore BFCache eligibility and valid source maps",
      "priority": 8,
      "findingIds": [
        "F12"
      ],
      "guidanceId": "html",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-20T09-56-05-115Z"
}
