{
  "url": "https://funpay.com",
  "auditedAt": "2026-07-27T04:20:55.394Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete multi-template audit of public, unauthenticated paths. Authenticated purchasing, seller dashboards, chat, payment execution, and post-login account management were not covered because they require an account and real transaction; representative public entry points were covered instead.",
  "page": {
    "appType": "mpa",
    "framework": "Server-rendered MPA with a bundled client script",
    "notes": "Public gaming marketplace with a very large homepage catalog, localized listing pages, account forms, and policy content."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "images",
    "secrets",
    "heap-snapshot",
    "lighthouse",
    "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": "screenshot",
      "path": "evidence/home-contrast.png",
      "caption": "home contrast",
      "condition": "forced-colors: active / prefers-contrast: more",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-cookies.json",
      "caption": "home cookies",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark",
      "condition": "prefers-color-scheme: dark",
      "findingIds": [
        "F001"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "condition": "default",
      "findingIds": [
        "F005",
        "F010",
        "F016",
        "F026"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "home discoverability crawler",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "home discoverability rendered",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "home discoverability",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom",
      "condition": "default",
      "findingIds": [
        "F007"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-headers.json",
      "caption": "home headers",
      "condition": "default",
      "findingIds": [
        "F023",
        "F025"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/home-heap-baseline.heapsnapshot",
      "caption": "home heap baseline",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/home-heap-post.heapsnapshot",
      "caption": "home heap post",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images",
      "condition": "default",
      "findingIds": [
        "F015",
        "F019",
        "F029"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/home-lighthouse.json",
      "caption": "home lighthouse",
      "condition": "default",
      "findingIds": [
        "F009",
        "F012",
        "F013",
        "F014",
        "F015",
        "F016",
        "F017",
        "F018",
        "F019",
        "F020",
        "F029"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F004",
        "F010"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F004",
        "F006",
        "F026"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-probe.json",
      "caption": "home probe",
      "condition": "default",
      "findingIds": [
        "F001",
        "F003",
        "F007",
        "F008",
        "F009",
        "F010",
        "F017",
        "F018",
        "F020",
        "F022"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-recon.json",
      "caption": "home recon",
      "condition": "default",
      "findingIds": [
        "F005"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-secrets.json",
      "caption": "home secrets",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "condition": "default",
      "findingIds": [
        "F013",
        "F029"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "condition": "default",
      "findingIds": [
        "F012"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-trackers.json",
      "caption": "home trackers",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "condition": "default",
      "findingIds": [
        "F014"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/listing-desktop.png",
      "caption": "listing desktop",
      "condition": "default",
      "findingIds": [
        "F006"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/listing-discoverability-crawler.png",
      "caption": "listing discoverability crawler",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/listing-discoverability-rendered.png",
      "caption": "listing discoverability rendered",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/listing-discoverability.json",
      "caption": "listing discoverability",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/listing-dom.json",
      "caption": "listing dom",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/listing-mobile-layout.json",
      "caption": "listing mobile layout",
      "condition": "viewport: 360x800",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/listing-mobile.png",
      "caption": "listing mobile",
      "condition": "viewport: 360x800",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/listing-probe.json",
      "caption": "listing probe",
      "condition": "default",
      "findingIds": [
        "F003",
        "F008",
        "F022"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/login-desktop.png",
      "caption": "login desktop",
      "condition": "default",
      "findingIds": [
        "F024"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/login-dom.json",
      "caption": "login dom",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/login-mobile.png",
      "caption": "login mobile",
      "condition": "viewport: 360x800",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/login-probe.json",
      "caption": "login probe",
      "condition": "default",
      "findingIds": [
        "F015",
        "F024",
        "F028"
      ]
    },
    {
      "type": "other",
      "path": "evidence/login-reduced-motion.json",
      "caption": "login reduced motion",
      "condition": "prefers-reduced-motion: reduce",
      "findingIds": [
        "F002"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/not-found-dom.json",
      "caption": "not found dom",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/not-found.png",
      "caption": "not found",
      "condition": "default",
      "findingIds": [
        "F021"
      ]
    },
    {
      "type": "other",
      "path": "evidence/platform-probe.json",
      "caption": "platform probe",
      "condition": "default",
      "findingIds": [
        "F013"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/register-desktop.png",
      "caption": "register desktop",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/register-dom.json",
      "caption": "register dom",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/register-invalid-mobile.png",
      "caption": "register invalid mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F011"
      ]
    },
    {
      "type": "other",
      "path": "evidence/register-invalid.json",
      "caption": "register invalid",
      "condition": "default",
      "findingIds": [
        "F011",
        "F027"
      ]
    },
    {
      "type": "other",
      "path": "evidence/register-probe.json",
      "caption": "register probe",
      "condition": "default",
      "findingIds": [
        "F027",
        "F028"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/rules-desktop.png",
      "caption": "rules desktop",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/rules-dom.json",
      "caption": "rules dom",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/rules-probe.json",
      "caption": "rules probe",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/runtime-metrics.json",
      "caption": "runtime metrics",
      "condition": "default",
      "findingIds": []
    }
  ],
  "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": "Active visual/objective review using evidence/home-dark.png, evidence/home-contrast.png, evidence/login-reduced-motion.json",
      "evidence": "The dark-mode capture is visually identical to the light capture; the computed body remains white and the CSS probe found no color-scheme, prefers-color-scheme, or light-dark() support.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-contrast.png",
        "evidence/login-reduced-motion.json"
      ],
      "findingIds": [
        "F001"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-dark.png, evidence/home-contrast.png, evidence/login-reduced-motion.json",
      "evidence": "Under prefers-reduced-motion: reduce, login controls and the cookie modal retain 150–300 ms transitions; the CSS probe found no reduced-motion query.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-contrast.png",
        "evidence/login-reduced-motion.json"
      ],
      "findingIds": [
        "F002"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-dark.png, evidence/home-contrast.png, evidence/login-reduced-motion.json",
      "evidence": "Forced-colors/high-contrast screenshot retained readable text and recognizable controls without clipping.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-contrast.png",
        "evidence/login-reduced-motion.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-probe.json, evidence/login-reduced-motion.json",
      "evidence": "The CSS probe across all five templates found no view-transition declarations, while the marketplace uses cross-document navigation between index, listing, and account pages.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/login-reduced-motion.json"
      ],
      "findingIds": [
        "F003"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "No scroll-linked animation is present on the representative templates, so implementation technique is not applicable.",
      "reason": "No scroll-linked animation is present on the representative templates, so implementation technique is not applicable."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "No swipe, drag, pull-to-refresh, carousel, or other gesture-driven control is exposed on the representative public paths.",
      "reason": "No swipe, drag, pull-to-refresh, carousel, or other gesture-driven control is exposed on the representative public paths."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-mobile-layout.json, evidence/home-recon.json",
      "evidence": "Mobile layout measured a 47,777 px document; CSS inspection found no scroll-state query, scroll timeline, or progress treatment.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-recon.json"
      ],
      "findingIds": [
        "F004"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "No tooltip or edge-sensitive anchored overlay was present to test on the representative public paths.",
      "reason": "No tooltip or edge-sensitive anchored overlay was present to test on the representative public paths."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-mobile-layout.json, evidence/home-recon.json",
      "evidence": "The homepage exposes A–Z hash links, but the probe found no target highlight or transition and screenshots show only a static index.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-recon.json"
      ],
      "findingIds": [
        "F005"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-mobile.png, evidence/home-probe.json",
      "evidence": "Desktop captures show a fixed banner covering listing rows and page footer; on 360 px mobile it occupies roughly the bottom 29% of the viewport and blocks catalog content.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F006"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-mobile.png, evidence/home-probe.json",
      "evidence": "The DOM reports a DIV with role=dialog, but zero dialog, popover, or details elements across templates.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F007"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-mobile.png, evidence/home-probe.json",
      "evidence": "Desktop and mobile screenshots show a restrained header and content-dominant listing/rules templates aside from the separately reported consent banner.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-mobile-layout.json, evidence/listing-mobile-layout.json, evidence/home-probe.json",
      "evidence": "Layout probes at 360×800 report 0 px horizontal overflow on homepage and listing.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/listing-mobile-layout.json",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-mobile-layout.json, evidence/listing-mobile-layout.json, evidence/home-probe.json",
      "evidence": "The same marketplace controls are reused across index, listing, and forms, but CSS inspection found no @container or container-type declarations.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/listing-mobile-layout.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F008"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-mobile-layout.json, evidence/listing-mobile-layout.json, evidence/home-probe.json",
      "evidence": "The active focus probe found outline:none on the navigation toggle, search field, and icon-only submit button; Lighthouse also failed target-size, and the toggle measured only 26×34 px.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/listing-mobile-layout.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F009"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-desktop.png, evidence/listing-desktop.png, evidence/register-invalid.json, evidence/not-found.png",
      "evidence": "The first template has no H1 or main landmark and contains 4,953 links in a 47,777 px alphabetical catalog; the first viewport competes with a large promotion and consent banner.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/listing-desktop.png",
        "evidence/register-invalid.json",
        "evidence/not-found.png"
      ],
      "findingIds": [
        "F010"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "medium",
      "method": "Check-specific review using evidence/home-desktop.png, evidence/listing-desktop.png, evidence/register-invalid.json, evidence/not-found.png",
      "evidence": "The public browse journey proceeds from game index to category listing with prices, sellers, filters, and a clear Sell action; authenticated transaction completion was not attempted.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/listing-desktop.png",
        "evidence/register-invalid.json",
        "evidence/not-found.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-desktop.png, evidence/listing-desktop.png, evidence/register-invalid.json, evidence/not-found.png",
      "evidence": "An empty registration submit reported form.checkValidity() true, no :invalid controls, and no role=alert/error output; name, email, and password inputs omit required constraints.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/listing-desktop.png",
        "evidence/register-invalid.json",
        "evidence/not-found.png"
      ],
      "findingIds": [
        "F011"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-lighthouse.json, evidence/home-trace-summary.json, evidence/home-summary.json",
      "evidence": "Lighthouse measured LCP 4.9 s, FCP 2.6 s, and Speed Index 4.8 s (performance 0.75), although the desktop trace was faster at LCP 1.02 s.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F012"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-lighthouse.json, evidence/home-trace-summary.json, evidence/home-summary.json",
      "evidence": "Mobile layout observer measured CLS 0 with no recorded shifts on homepage and listing; Lighthouse also reports CLS 0.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-lighthouse.json, evidence/home-trace-summary.json, evidence/home-summary.json",
      "evidence": "Trace recorded one 85.7 ms long task and only 35.7 ms total blocking time; Lighthouse TBT was 100 ms.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-lighthouse.json, evidence/home-trace-summary.json, evidence/home-summary.json",
      "evidence": "HAR identified main.css and app.bundle.js as render-blocking candidates; DOM confirmation shows app.bundle.js is in <head> with neither async nor defer. Lighthouse estimates 1,450 ms render-blocking savings.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F013"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-lighthouse.json, evidence/home-trace-summary.json, evidence/home-summary.json",
      "evidence": "Lighthouse estimates 49 KiB unused CSS and 44 KiB unused JavaScript on the homepage.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F014"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-lighthouse.json, evidence/home-probe.json, evidence/login-probe.json",
      "evidence": "Lighthouse failed button-name and link-name; probes show zero labels on search, login, email, and password inputs, plus two homepage images without alt text.",
      "pathIds": [
        "home",
        "login",
        "register"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-probe.json",
        "evidence/login-probe.json"
      ],
      "findingIds": [
        "F015"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-lighthouse.json, evidence/home-probe.json, evidence/login-probe.json",
      "evidence": "Lighthouse’s color-contrast audit failed on the representative homepage.",
      "pathIds": [
        "home",
        "login",
        "register"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-probe.json",
        "evidence/login-probe.json"
      ],
      "findingIds": [
        "F016"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-lighthouse.json, evidence/home-probe.json, evidence/login-probe.json",
      "evidence": "Lighthouse found no main landmark; the homepage has no H1, and focus probes show outline:none on several primary controls.",
      "pathIds": [
        "home",
        "login",
        "register"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-probe.json",
        "evidence/login-probe.json"
      ],
      "findingIds": [
        "F017"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-lighthouse.json, evidence/home-probe.json, evidence/login-probe.json",
      "evidence": "Rules and listing screenshots show comfortable line lengths, hierarchy, and no visible clipping at audited desktop/mobile sizes.",
      "pathIds": [
        "home",
        "login",
        "register"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-probe.json",
        "evidence/login-probe.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-lighthouse.json, evidence/home-probe.json, evidence/login-probe.json",
      "evidence": "Lighthouse failed target-size; the focus probe measured the menu toggle at 26×34 px and the search submit at 24×38 px.",
      "pathIds": [
        "home",
        "login",
        "register"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-probe.json",
        "evidence/login-probe.json"
      ],
      "findingIds": [
        "F018"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-lighthouse.json, evidence/home-images.json, evidence/home-probe.json",
      "evidence": "Lighthouse best-practices scored 1.0 with no console-error audit failure.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-images.json",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-lighthouse.json, evidence/home-images.json, evidence/home-probe.json",
      "evidence": "The image audit found all three images missing explicit dimensions; the 1600 px JPEG lacks srcset, and Lighthouse failed unsized-images.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-images.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F019"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-lighthouse.json, evidence/home-images.json, evidence/home-probe.json",
      "evidence": "Lighthouse best-practices scored 1.0 and no permission prompt appeared during load; no paste prevention was observed.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-images.json",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-discoverability.json, evidence/listing-discoverability.json, evidence/home-probe.json",
      "evidence": "Homepage and representative listing have descriptive, unique titles and meta descriptions.",
      "pathIds": [
        "home",
        "listing"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/listing-discoverability.json",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-discoverability.json, evidence/listing-discoverability.json, evidence/home-probe.json",
      "evidence": "The DOM probe found three javascript: links and Lighthouse failed crawlable-anchors.",
      "pathIds": [
        "home",
        "listing"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/listing-discoverability.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F020"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-discoverability.json, evidence/listing-discoverability.json, evidence/home-probe.json",
      "evidence": "A direct request to /sitemap.xml returned the site’s “page not found” HTML; canonical and hreflang are otherwise present on core pages.",
      "pathIds": [
        "home",
        "listing"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/listing-discoverability.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F021"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-discoverability.json, evidence/listing-discoverability.json, evidence/home-probe.json",
      "evidence": "Probes found valid JSON-LD on homepage/listing but no Open Graph metadata on any representative template.",
      "pathIds": [
        "home",
        "listing"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/listing-discoverability.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F022"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-headers.json, evidence/home-cookies.json, evidence/home-trackers.json, evidence/home-secrets.json",
      "evidence": "The headers primitive found no Content-Security-Policy, X-Content-Type-Options, Referrer-Policy, or Permissions-Policy. HTTPS, HSTS, and X-Frame-Options are present.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json",
        "evidence/home-trackers.json",
        "evidence/home-secrets.json"
      ],
      "findingIds": [
        "F023"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-headers.json, evidence/home-cookies.json, evidence/home-trackers.json, evidence/home-secrets.json",
      "evidence": "Tracker probe found zero known trackers and no third-party tracker origins; HAR’s only third-party host served the static hero image.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json",
        "evidence/home-trackers.json",
        "evidence/home-secrets.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-headers.json, evidence/home-cookies.json, evidence/home-trackers.json, evidence/home-secrets.json",
      "evidence": "The login UI exposes Google, VK, username/email, password, and CAPTCHA; probes found no WebAuthn/passkey affordance. No permission prompt appeared on load.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json",
        "evidence/home-trackers.json",
        "evidence/home-secrets.json"
      ],
      "findingIds": [
        "F024"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-headers.json, evidence/home-cookies.json, evidence/home-trackers.json, evidence/home-secrets.json",
      "evidence": "CSP, Referrer-Policy, Permissions-Policy, and nosniff are absent, even though clickjacking protection and HSTS are configured.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json",
        "evidence/home-trackers.json",
        "evidence/home-secrets.json"
      ],
      "findingIds": [
        "F025"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-discoverability.json, evidence/platform-probe.json, evidence/not-found.png",
      "evidence": "Discoverability probes found 100% content visibility without JavaScript on homepage and listing; neither is a JS shell.",
      "pathIds": [
        "home",
        "listing",
        "not-found"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/platform-probe.json",
        "evidence/not-found.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-discoverability.json, evidence/platform-probe.json, evidence/not-found.png",
      "evidence": "Representative menus, forms, listing controls, and long content rendered without clipped overlays or runtime breakage in desktop/mobile captures.",
      "pathIds": [
        "home",
        "listing",
        "not-found"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/platform-probe.json",
        "evidence/not-found.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "The marketplace’s live listings, authentication, payment, and messaging are intrinsically online; a manifest exists but offline transaction behavior is not a meaningful expectation.",
      "reason": "The marketplace’s live listings, authentication, payment, and messaging are intrinsically online; a manifest exists but offline transaction behavior is not a meaningful expectation."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-discoverability.json, evidence/platform-probe.json, evidence/not-found.png",
      "evidence": "The deliberately invalid route returned a branded page-not-found state rather than a blank shell.",
      "pathIds": [
        "home",
        "listing",
        "not-found"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/platform-probe.json",
        "evidence/not-found.png"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-probe.json, evidence/listing-probe.json",
      "evidence": "All audited English templates declare lang=en and expose ru/uk/en/x-default hreflang plus visible language selection; responsive captures remained coherent.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/listing-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-probe.json, evidence/listing-probe.json",
      "evidence": "The public UI exposes language and currency selectors and renders localized EUR prices consistently on listing pages.",
      "pathIds": [
        "home",
        "listing",
        "login",
        "register",
        "rules"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/listing-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "The audited public templates do not display event times, schedules, or recurring time-zone-sensitive data.",
      "reason": "The audited public templates do not display event times, schedules, or recurring time-zone-sensitive data."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-mobile.png, evidence/register-invalid.json, evidence/login-probe.json",
      "evidence": "The banner presents a prominent blue “Agree to all” action while the neutral “Options” path is secondary and no equally visible reject action appears; it blocks content on load.",
      "pathIds": [
        "home",
        "login",
        "register",
        "listing"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/register-invalid.json",
        "evidence/login-probe.json"
      ],
      "findingIds": [
        "F026"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-mobile.png, evidence/register-invalid.json, evidence/login-probe.json",
      "evidence": "The empty registration form is considered valid by the browser, exposes no required constraints, aria-invalid state, or live error summary, and is gated by CAPTCHA.",
      "pathIds": [
        "home",
        "login",
        "register",
        "listing"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/register-invalid.json",
        "evidence/login-probe.json"
      ],
      "findingIds": [
        "F027"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-mobile.png, evidence/register-invalid.json, evidence/login-probe.json",
      "evidence": "Login username/password autocomplete values are empty; signup email is empty and signup password explicitly uses autocomplete=off.",
      "pathIds": [
        "home",
        "login",
        "register",
        "listing"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/register-invalid.json",
        "evidence/login-probe.json"
      ],
      "findingIds": [
        "F028"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-mobile.png, evidence/register-invalid.json, evidence/login-probe.json",
      "evidence": "Listing prices, seller identity, and the secure-payment explanation are visible before account entry; login, signup, recovery, rules, and agreement links are findable.",
      "pathIds": [
        "home",
        "login",
        "register",
        "listing"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/register-invalid.json",
        "evidence/login-probe.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual/objective review using evidence/home-summary.json, evidence/home-images.json, evidence/home-trace-summary.json",
      "evidence": "The image audit found a 1600 px, 247.8 KiB JPEG without srcset or dimensions; Lighthouse estimates 227 KiB image-delivery savings.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-images.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F029"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-summary.json, evidence/home-images.json, evidence/home-trace-summary.json",
      "evidence": "Trace and HAR show a small 13-request load, low blocking time, no active trackers, and no media/background processing.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-images.json",
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-summary.json, evidence/home-images.json, evidence/home-trace-summary.json",
      "evidence": "The 682.6 KiB homepage uses 13 requests, no autoplay media, and only one static third-party image; this is proportionate despite the separately reported image optimization gap.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-images.json",
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "This public marketplace does not declare an agent-facing product intent; emerging WebMCP capability is treated as an opportunity, not a requirement.",
      "reason": "This public marketplace does not declare an agent-facing product intent; emerging WebMCP capability is treated as an opportunity, not a requirement."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "No summarization or language-model task is part of the audited public journeys, so on-device inference is not applicable.",
      "reason": "No summarization or language-model task is part of the audited public journeys, so on-device inference is not applicable."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-heap-baseline.heapsnapshot, evidence/home-heap-post.heapsnapshot, evidence/runtime-metrics.json",
      "evidence": "After ten scroll/consent interaction cycles, heap node count changed only +40 and retained self size decreased by 780 bytes versus baseline.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-heap-baseline.heapsnapshot",
        "evidence/home-heap-post.heapsnapshot",
        "evidence/runtime-metrics.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-heap-baseline.heapsnapshot, evidence/home-heap-post.heapsnapshot, evidence/runtime-metrics.json",
      "evidence": "Runtime metrics report ~2.29 MB used JS heap and 12,588 DOM elements; heap snapshot retained self size was ~23.95 MB, proportionate to the very large server-rendered catalog.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-heap-baseline.heapsnapshot",
        "evidence/home-heap-post.heapsnapshot",
        "evidence/runtime-metrics.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "Check-specific review using evidence/home-heap-baseline.heapsnapshot, evidence/home-heap-post.heapsnapshot, evidence/runtime-metrics.json",
      "evidence": "Before/after heap totals remained essentially flat after repeated interaction, providing no signal of detached-node or listener/timer accumulation.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-heap-baseline.heapsnapshot",
        "evidence/home-heap-post.heapsnapshot",
        "evidence/runtime-metrics.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F001",
        "F002"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F003"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F004",
        "F005"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F006",
        "F007"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F008",
        "F009"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F010",
        "F011"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F012",
        "F013",
        "F014"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F015",
        "F016",
        "F017",
        "F018"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F019"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F020",
        "F021",
        "F022"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F023",
        "F024",
        "F025"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F026",
        "F027",
        "F028"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F029"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "This public marketplace does not declare an agent-facing product intent; emerging WebMCP capability is treated as an opportunity, not a requirement. No summarization or language-model task is part of the audited public journeys, so on-device inference is not applicable."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Marketplace entry and game-discovery index; represents global navigation, search, consent, localization, and the unusually long catalog page.",
      "url": "https://funpay.com/en/",
      "conditions": [
        "desktop 1440x1000",
        "mobile 360x800",
        "prefers-color-scheme: dark",
        "forced-colors/high contrast",
        "no JavaScript crawler view"
      ],
      "result": "issues"
    },
    {
      "id": "listing",
      "description": "Representative marketplace category/listing and the start of the purchase journey, including filters, seller rows, prices, and sale action.",
      "url": "https://funpay.com/en/lots/3486/",
      "conditions": [
        "desktop 1440x1000",
        "mobile 360x800",
        "no JavaScript crawler view"
      ],
      "result": "issues"
    },
    {
      "id": "login",
      "description": "Authentication path, including third-party identity, password entry, CAPTCHA, mobile reflow, focus, and motion preference.",
      "url": "https://funpay.com/en/account/login",
      "conditions": [
        "desktop 1440x1000",
        "mobile 360x800",
        "prefers-reduced-motion: reduce",
        "keyboard focus probe"
      ],
      "result": "issues"
    },
    {
      "id": "register",
      "description": "Account creation form used to inspect labels, autofill, validation, consent, CAPTCHA, and recovery behavior.",
      "url": "https://funpay.com/en/account/register",
      "conditions": [
        "desktop 1440x1000",
        "mobile 360x800",
        "invalid submission probe"
      ],
      "result": "issues"
    },
    {
      "id": "rules",
      "description": "Long-form policy/content archetype used to inspect headings, legibility, localization, and responsive document layout.",
      "url": "https://funpay.com/en/trade/info",
      "conditions": [
        "desktop 1440x1000"
      ],
      "result": "pass"
    },
    {
      "id": "not-found",
      "description": "Representative HTTP failure route used to inspect error-state recovery.",
      "url": "https://funpay.com/en/this-route-does-not-exist-atomic-audit",
      "conditions": [
        "desktop 1440x1000"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F001",
      "severity": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "confidence": "high",
      "summary": "The interface ignores the user’s dark-color preference.",
      "evidence": "The dark-mode capture is visually identical to the light capture; the computed body remains white and the CSS probe found no color-scheme, prefers-color-scheme, or light-dark() support.",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Declare color-scheme and provide preference-driven light/dark design tokens using prefers-color-scheme or light-dark().",
      "effort": "medium",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F002",
      "severity": "low",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "confidence": "high",
      "summary": "Reduced-motion is not explicitly respected.",
      "evidence": "Under prefers-reduced-motion: reduce, login controls and the cookie modal retain 150–300 ms transitions; the CSS probe found no reduced-motion query.",
      "artifacts": [
        "evidence/login-reduced-motion.json"
      ],
      "suggestedFix": "Add a prefers-reduced-motion: reduce rule that removes non-essential modal and control transitions.",
      "effort": "small",
      "pathId": "login",
      "url": "https://funpay.com/en/account/login"
    },
    {
      "id": "F003",
      "severity": "low",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "confidence": "high",
      "summary": "Page and state changes are abrupt rather than continuity-preserving.",
      "evidence": "The CSS probe across all five templates found no view-transition declarations, while the marketplace uses cross-document navigation between index, listing, and account pages.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/listing-probe.json"
      ],
      "suggestedFix": "Use cross-document View Transitions for same-origin navigation, with a no-motion path for reduced-motion users.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F004",
      "severity": "low",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "scroll-progress-indicator",
      "confidence": "high",
      "summary": "The 47,777 px catalog provides no scroll-reactive orientation aid.",
      "evidence": "Mobile layout measured a 47,777 px document; CSS inspection found no scroll-state query, scroll timeline, or progress treatment.",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Add a compact sticky catalog index or progress/orientation aid that responds to scroll state.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F005",
      "severity": "low",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "directs-attention",
      "guidanceId": "scroll-target-on-load",
      "confidence": "high",
      "summary": "Alphabet jumps do not visibly cue the destination.",
      "evidence": "The homepage exposes A–Z hash links, but the probe found no target highlight or transition and screenshots show only a static index.",
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Apply a brief, reduced-motion-safe :target highlight and preserve focus when jumping to a catalog section.",
      "effort": "small",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F006",
      "severity": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "confidence": "high",
      "summary": "The cookie banner obscures core content on every first load.",
      "evidence": "Desktop captures show a fixed banner covering listing rows and page footer; on 360 px mobile it occupies roughly the bottom 29% of the viewport and blocks catalog content.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/listing-desktop.png"
      ],
      "suggestedFix": "Replace the persistent blocking banner with a compact, immediately actionable consent surface that includes equally visible accept/reject controls.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F007",
      "severity": "low",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "confidence": "high",
      "summary": "Consent preferences use custom dialog semantics instead of the native dialog primitive.",
      "evidence": "The DOM reports a DIV with role=dialog, but zero dialog, popover, or details elements across templates.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Use <dialog> for modal consent preferences and native close/cancel behavior, with focus containment and restoration.",
      "effort": "small",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F008",
      "severity": "low",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "confidence": "high",
      "summary": "Responsive behavior is viewport-only rather than component-aware.",
      "evidence": "The same marketplace controls are reused across index, listing, and forms, but CSS inspection found no @container or container-type declarations.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/listing-probe.json"
      ],
      "suggestedFix": "Introduce container queries for reusable search, filter, and account-card components where their available inline size changes.",
      "effort": "medium",
      "pathId": "listing",
      "url": "https://funpay.com/en/lots/3486/"
    },
    {
      "id": "F009",
      "severity": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "confidence": "high",
      "summary": "Keyboard focus and target sizing are unreliable.",
      "evidence": "The active focus probe found outline:none on the navigation toggle, search field, and icon-only submit button; Lighthouse also failed target-size, and the toggle measured only 26×34 px.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-lighthouse.json"
      ],
      "suggestedFix": "Add clear :focus-visible styling and ensure interactive targets are at least 44×44 CSS px or have equivalent spacing.",
      "effort": "small",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F010",
      "severity": "medium",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-purpose-and-primary-action",
      "guidanceId": "improve-text-layout-and-legibility",
      "confidence": "high",
      "summary": "The homepage lacks a clear page-level purpose and overwhelms discovery.",
      "evidence": "The first template has no H1 or main landmark and contains 4,953 links in a 47,777 px alphabetical catalog; the first viewport competes with a large promotion and consent banner.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-probe.json",
        "evidence/home-mobile-layout.json"
      ],
      "suggestedFix": "Add a clear H1 and concise marketplace purpose, prioritize search and popular categories, and progressively reveal the full alphabetic catalog.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F011",
      "severity": "medium",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-system-state-and-recovery",
      "guidanceId": "accessible-error-announcement",
      "confidence": "high",
      "summary": "Registration validation provides no inspectable invalid state before CAPTCHA submission.",
      "evidence": "An empty registration submit reported form.checkValidity() true, no :invalid controls, and no role=alert/error output; name, email, and password inputs omit required constraints.",
      "artifacts": [
        "evidence/register-invalid.json",
        "evidence/register-invalid-mobile.png"
      ],
      "suggestedFix": "Add client-side semantic constraints and accessible, field-linked error summaries while retaining server validation and CAPTCHA.",
      "effort": "small",
      "pathId": "register",
      "url": "https://funpay.com/en/account/register"
    },
    {
      "id": "F012",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "confidence": "high",
      "summary": "Mobile lab LCP is outside the good range.",
      "evidence": "Lighthouse measured LCP 4.9 s, FCP 2.6 s, and Speed Index 4.8 s (performance 0.75), although the desktop trace was faster at LCP 1.02 s.",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Prioritize the actual LCP resource and remove critical-path blocking so mobile LCP is consistently below 2.5 s.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F013",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-script-priority",
      "confidence": "high",
      "summary": "A synchronous head script and stylesheet delay rendering.",
      "evidence": "HAR identified main.css and app.bundle.js as render-blocking candidates; DOM confirmation shows app.bundle.js is in <head> with neither async nor defer. Lighthouse estimates 1,450 ms render-blocking savings.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/platform-probe.json",
        "evidence/home-lighthouse.json"
      ],
      "suggestedFix": "Defer the application bundle, inline only critical CSS, and load remaining styles without blocking first render.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F014",
      "severity": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "confidence": "high",
      "summary": "The initial payload contains substantial unused CSS and JavaScript.",
      "evidence": "Lighthouse estimates 49 KiB unused CSS and 44 KiB unused JavaScript on the homepage.",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home.har"
      ],
      "suggestedFix": "Split template-specific code and remove unused framework/icon styles from the critical bundle.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F015",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "confidence": "high",
      "summary": "Core controls and fields lack accessible names or persistent labels.",
      "evidence": "Lighthouse failed button-name and link-name; probes show zero labels on search, login, email, and password inputs, plus two homepage images without alt text.",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/login-probe.json",
        "evidence/home-images.json"
      ],
      "suggestedFix": "Add visible <label> elements, accessible names for icon-only controls, and appropriate alt text or empty alt for decorative images.",
      "effort": "small",
      "pathId": "login",
      "url": "https://funpay.com/en/account/login"
    },
    {
      "id": "F016",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "confidence": "high",
      "summary": "Text and controls fail minimum color contrast.",
      "evidence": "Lighthouse’s color-contrast audit failed on the representative homepage.",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Adjust muted text and control colors to meet WCAG AA contrast in every theme and state.",
      "effort": "small",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F017",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "confidence": "high",
      "summary": "Landmark and focus structure is incomplete.",
      "evidence": "Lighthouse found no main landmark; the homepage has no H1, and focus probes show outline:none on several primary controls.",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Wrap primary content in <main>, restore a logical H1 hierarchy, and provide consistent :focus-visible indicators.",
      "effort": "small",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F018",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "confidence": "high",
      "summary": "Small interactive targets reduce touch and zoom usability.",
      "evidence": "Lighthouse failed target-size; the focus probe measured the menu toggle at 26×34 px and the search submit at 24×38 px.",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Increase target boxes and spacing to at least 44×44 CSS px while preserving the successful narrow-viewport reflow.",
      "effort": "small",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F019",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "confidence": "high",
      "summary": "Images are not dimensioned and one key raster asset is not responsive.",
      "evidence": "The image audit found all three images missing explicit dimensions; the 1600 px JPEG lacks srcset, and Lighthouse failed unsized-images.",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/home-lighthouse.json"
      ],
      "suggestedFix": "Add width/height or aspect-ratio and responsive srcset/sizes; preserve intrinsic aspect ratios.",
      "effort": "small",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F020",
      "severity": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "confidence": "high",
      "summary": "Some controls masquerade as links and are not crawlable.",
      "evidence": "The DOM probe found three javascript: links and Lighthouse failed crawlable-anchors.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-lighthouse.json"
      ],
      "suggestedFix": "Use buttons for in-page actions and real href URLs for navigable destinations.",
      "effort": "small",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F021",
      "severity": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "confidence": "high",
      "summary": "The advertised sitemap endpoint returns an HTML 404.",
      "evidence": "A direct request to /sitemap.xml returned the site’s “page not found” HTML; canonical and hreflang are otherwise present on core pages.",
      "artifacts": [
        "evidence/not-found.png"
      ],
      "suggestedFix": "Publish a valid XML sitemap and reference it from robots.txt; keep localized canonicals and hreflang consistent.",
      "effort": "small",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F022",
      "severity": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "confidence": "high",
      "summary": "Public pages lack social preview metadata.",
      "evidence": "Probes found valid JSON-LD on homepage/listing but no Open Graph metadata on any representative template.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/listing-probe.json"
      ],
      "suggestedFix": "Add accurate Open Graph and Twitter Card metadata for marketplace and listing pages.",
      "effort": "small",
      "pathId": "listing",
      "url": "https://funpay.com/en/lots/3486/"
    },
    {
      "id": "F023",
      "severity": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "confidence": "high",
      "summary": "Key browser security headers are missing.",
      "evidence": "The headers primitive found no Content-Security-Policy, X-Content-Type-Options, Referrer-Policy, or Permissions-Policy. HTTPS, HSTS, and X-Frame-Options are present.",
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "suggestedFix": "Deploy a restrictive CSP, nosniff, Referrer-Policy, and a least-privilege Permissions-Policy; retain HSTS and frame protection.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F024",
      "severity": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "passkeys",
      "confidence": "high",
      "summary": "Authentication offers passwords and federated providers but no phishing-resistant passkey path.",
      "evidence": "The login UI exposes Google, VK, username/email, password, and CAPTCHA; probes found no WebAuthn/passkey affordance. No permission prompt appeared on load.",
      "artifacts": [
        "evidence/login-desktop.png",
        "evidence/login-probe.json"
      ],
      "suggestedFix": "Offer passkey registration, authentication, recovery, and reauthentication alongside existing methods.",
      "effort": "large",
      "pathId": "login",
      "url": "https://funpay.com/en/account/login"
    },
    {
      "id": "F025",
      "severity": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "confidence": "high",
      "summary": "Defense-in-depth policies are incomplete.",
      "evidence": "CSP, Referrer-Policy, Permissions-Policy, and nosniff are absent, even though clickjacking protection and HSTS are configured.",
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "suggestedFix": "Add CSP with frame-ancestors, nosniff, strict referrer controls, and a minimal Permissions-Policy; evaluate Trusted Types for account surfaces.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F026",
      "severity": "high",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "privacy",
      "confidence": "high",
      "summary": "Consent choices are visually asymmetric.",
      "evidence": "The banner presents a prominent blue “Agree to all” action while the neutral “Options” path is secondary and no equally visible reject action appears; it blocks content on load.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Provide equally prominent accept, reject, and customize actions with neutral copy and preserve service without non-essential consent.",
      "effort": "small",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    },
    {
      "id": "F027",
      "severity": "medium",
      "principleId": "be-trustworthy",
      "principleCheckId": "humane-error-handling",
      "guidanceId": "accessible-error-announcement",
      "confidence": "high",
      "summary": "Registration lacks semantic, accessible pre-submit validation.",
      "evidence": "The empty registration form is considered valid by the browser, exposes no required constraints, aria-invalid state, or live error summary, and is gated by CAPTCHA.",
      "artifacts": [
        "evidence/register-invalid.json",
        "evidence/register-probe.json"
      ],
      "suggestedFix": "Use required/type/autocomplete attributes, validate after interaction, and announce a concise linked error summary.",
      "effort": "small",
      "pathId": "register",
      "url": "https://funpay.com/en/account/register"
    },
    {
      "id": "F028",
      "severity": "medium",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "autofill-sign-in-form",
      "confidence": "high",
      "summary": "Authentication and signup fields omit standard autocomplete tokens.",
      "evidence": "Login username/password autocomplete values are empty; signup email is empty and signup password explicitly uses autocomplete=off.",
      "artifacts": [
        "evidence/login-probe.json",
        "evidence/register-probe.json"
      ],
      "suggestedFix": "Use username, current-password, email, new-password, and name autocomplete tokens as appropriate.",
      "effort": "trivial",
      "pathId": "login",
      "url": "https://funpay.com/en/account/login"
    },
    {
      "id": "F029",
      "severity": "medium",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "confidence": "high",
      "summary": "The hero artwork is not responsively or format optimized.",
      "evidence": "The image audit found a 1600 px, 247.8 KiB JPEG without srcset or dimensions; Lighthouse estimates 227 KiB image-delivery savings.",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/home-summary.json",
        "evidence/home-lighthouse.json"
      ],
      "suggestedFix": "Serve AVIF/WebP variants with srcset/sizes, explicit dimensions, and a size matched to the rendered slot.",
      "effort": "small",
      "pathId": "home",
      "url": "https://funpay.com/en/"
    }
  ],
  "taskList": [
    {
      "id": "T001",
      "title": "Replace the persistent blocking banner with a compact, immediately actionable consent surface that includes equally visible accept/reject controls.",
      "priority": 1,
      "findingIds": [
        "F006"
      ],
      "guidanceId": "light-dismiss-a-dialog",
      "status": "open"
    },
    {
      "id": "T002",
      "title": "Defer the application bundle, inline only critical CSS, and load remaining styles without blocking first render.",
      "priority": 2,
      "findingIds": [
        "F013"
      ],
      "guidanceId": "optimize-script-priority",
      "status": "open"
    },
    {
      "id": "T003",
      "title": "Add visible <label> elements, accessible names for icon-only controls, and appropriate alt text or empty alt for decorative images.",
      "priority": 3,
      "findingIds": [
        "F015"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T004",
      "title": "Deploy a restrictive CSP, nosniff, Referrer-Policy, and a least-privilege Permissions-Policy; retain HSTS and frame protection.",
      "priority": 4,
      "findingIds": [
        "F023"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T005",
      "title": "Provide equally prominent accept, reject, and customize actions with neutral copy and preserve service without non-essential consent.",
      "priority": 5,
      "findingIds": [
        "F026"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T006",
      "title": "Prioritize the actual LCP resource and remove critical-path blocking so mobile LCP is consistently below 2.5 s.",
      "priority": 6,
      "findingIds": [
        "F012"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T007",
      "title": "Add clear :focus-visible styling and ensure interactive targets are at least 44×44 CSS px or have equivalent spacing.",
      "priority": 7,
      "findingIds": [
        "F009"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T008",
      "title": "Adjust muted text and control colors to meet WCAG AA contrast in every theme and state.",
      "priority": 8,
      "findingIds": [
        "F016"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T009",
      "title": "Wrap primary content in <main>, restore a logical H1 hierarchy, and provide consistent :focus-visible indicators.",
      "priority": 9,
      "findingIds": [
        "F017"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T010",
      "title": "Increase target boxes and spacing to at least 44×44 CSS px while preserving the successful narrow-viewport reflow.",
      "priority": 10,
      "findingIds": [
        "F018"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T011",
      "title": "Add CSP with frame-ancestors, nosniff, strict referrer controls, and a minimal Permissions-Policy; evaluate Trusted Types for account surfaces.",
      "priority": 11,
      "findingIds": [
        "F025"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T012",
      "title": "Add a clear H1 and concise marketplace purpose, prioritize search and popular categories, and progressively reveal the full alphabetic catalog.",
      "priority": 12,
      "findingIds": [
        "F010"
      ],
      "guidanceId": "improve-text-layout-and-legibility",
      "status": "open"
    },
    {
      "id": "T013",
      "title": "Add client-side semantic constraints and accessible, field-linked error summaries while retaining server validation and CAPTCHA.",
      "priority": 13,
      "findingIds": [
        "F011"
      ],
      "guidanceId": "accessible-error-announcement",
      "status": "open"
    },
    {
      "id": "T014",
      "title": "Split template-specific code and remove unused framework/icon styles from the critical bundle.",
      "priority": 14,
      "findingIds": [
        "F014"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    },
    {
      "id": "T015",
      "title": "Add width/height or aspect-ratio and responsive srcset/sizes; preserve intrinsic aspect ratios.",
      "priority": 15,
      "findingIds": [
        "F019"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T016",
      "title": "Use buttons for in-page actions and real href URLs for navigable destinations.",
      "priority": 16,
      "findingIds": [
        "F020"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T017",
      "title": "Publish a valid XML sitemap and reference it from robots.txt; keep localized canonicals and hreflang consistent.",
      "priority": 17,
      "findingIds": [
        "F021"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T018",
      "title": "Add accurate Open Graph and Twitter Card metadata for marketplace and listing pages.",
      "priority": 18,
      "findingIds": [
        "F022"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T019",
      "title": "Offer passkey registration, authentication, recovery, and reauthentication alongside existing methods.",
      "priority": 19,
      "findingIds": [
        "F024"
      ],
      "guidanceId": "passkeys",
      "status": "open"
    },
    {
      "id": "T020",
      "title": "Use required/type/autocomplete attributes, validate after interaction, and announce a concise linked error summary.",
      "priority": 20,
      "findingIds": [
        "F027"
      ],
      "guidanceId": "accessible-error-announcement",
      "status": "open"
    },
    {
      "id": "T021",
      "title": "Use username, current-password, email, new-password, and name autocomplete tokens as appropriate.",
      "priority": 21,
      "findingIds": [
        "F028"
      ],
      "guidanceId": "autofill-sign-in-form",
      "status": "open"
    },
    {
      "id": "T022",
      "title": "Serve AVIF/WebP variants with srcset/sizes, explicit dimensions, and a size matched to the rendered slot.",
      "priority": 22,
      "findingIds": [
        "F029"
      ],
      "guidanceId": "deliver-optimized-decorative-images",
      "status": "open"
    },
    {
      "id": "T023",
      "title": "Declare color-scheme and provide preference-driven light/dark design tokens using prefers-color-scheme or light-dark().",
      "priority": 23,
      "findingIds": [
        "F001"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T024",
      "title": "Add a prefers-reduced-motion: reduce rule that removes non-essential modal and control transitions.",
      "priority": 24,
      "findingIds": [
        "F002"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T025",
      "title": "Use cross-document View Transitions for same-origin navigation, with a no-motion path for reduced-motion users.",
      "priority": 25,
      "findingIds": [
        "F003"
      ],
      "guidanceId": "cross-document-transitions",
      "status": "open"
    },
    {
      "id": "T026",
      "title": "Add a compact sticky catalog index or progress/orientation aid that responds to scroll state.",
      "priority": 26,
      "findingIds": [
        "F004"
      ],
      "guidanceId": "scroll-progress-indicator",
      "status": "open"
    },
    {
      "id": "T027",
      "title": "Apply a brief, reduced-motion-safe :target highlight and preserve focus when jumping to a catalog section.",
      "priority": 27,
      "findingIds": [
        "F005"
      ],
      "guidanceId": "scroll-target-on-load",
      "status": "open"
    },
    {
      "id": "T028",
      "title": "Use <dialog> for modal consent preferences and native close/cancel behavior, with focus containment and restoration.",
      "priority": 28,
      "findingIds": [
        "F007"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T029",
      "title": "Introduce container queries for reusable search, filter, and account-card components where their available inline size changes.",
      "priority": 29,
      "findingIds": [
        "F008"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-27T04-20-55-394Z"
}
