{
  "url": "https://boardgamearena.com",
  "auditedAt": "2026-07-17T22:21:08.514Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Complete atomic coverage of all 58 catalog checks across six representative public paths. Authenticated gameplay, payment, account management, and destructive account actions were intentionally not covered because they require credentials or side effects.",
  "page": {
    "appType": "hybrid",
    "framework": "Legacy Dojo plus Svelte components",
    "notes": "Public multilingual board-game platform. Coverage includes landing, catalogue, detail, editorial, signup, and error templates. Authenticated live gameplay, premium checkout, account settings, and full game sessions were not covered because they require an account and would create side effects."
  },
  "evidenceUsed": [
    "Modern Web Guidance 0.0.172 live feed",
    "screenshot",
    "DOM/CSS capture",
    "evaluate probes",
    "layout metrics",
    "trace",
    "HAR",
    "discoverability crawler comparison",
    "image audit",
    "headers",
    "cookies",
    "trackers",
    "secrets scan",
    "Lighthouse",
    "heap summaries"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "component-specific-light-dark-theme",
    "accessibility",
    "adapt-scrollbar-to-contrast-preferences",
    "same-document-transitions",
    "cross-document-transitions",
    "group-element-transitions",
    "faster-spa-view-transitions",
    "scrollytelling",
    "parallax-scroll-effects",
    "scroll-entry-exit-effects",
    "carousel-slide-effects",
    "physics-based-easing",
    "individual-transform-properties",
    "animate-element-entry-exit",
    "animate-to-from-top-layer",
    "animate-to-intrinsic-sizes",
    "dynamic-sibling-animations",
    "interactive-content-reveal",
    "pull-to-reveal",
    "swipe-to-remove",
    "shrinking-header-on-scroll",
    "scroll-progress-indicator",
    "scroll-position-aware-elements",
    "scroll-snap-realtime-feedback",
    "scroll-snap-state-sync",
    "scroll-target-on-load",
    "soft-edge-content-fade",
    "scrollability-affordance-hints",
    "anchor-positioning-tab-underline",
    "position-aware-tooltips",
    "interest-triggered-tooltips",
    "interest-triggered-action-previews",
    "directional-navigation-transitions",
    "carousel-snap-highlights",
    "navigation-drawer",
    "stack-drill-down",
    "persistent-app-tours",
    "persistent-toast-notifications",
    "light-dismiss-a-dialog",
    "platform-controls-dismiss-dialog",
    "declarative-dialog-popover-control",
    "animated-select-picker",
    "branded-select-styling",
    "brand-consistent-forms",
    "custom-select-picker-layouts",
    "rich-media-picker",
    "complex-shapes",
    "shaped-cutouts",
    "overflow-clipping-control",
    "visually-texture-content",
    "apply-webgl-shaders",
    "interactive-content-in-3d-scenes",
    "highlight-text-ranges",
    "prevent-text-wrapping",
    "customize-scrollbar-color-and-thickness",
    "export-html-media-from-canvas",
    "fluid-scaling",
    "calculate-with-intrinsic-sizes",
    "css-layout",
    "size-aware-styling",
    "content-based-styling",
    "child-state-based-styling",
    "design-token-reactivity",
    "dynamic-sibling-styling",
    "form-fields-automatically-fit-contents",
    "improve-text-layout-and-legibility",
    "forms",
    "accessible-error-announcement",
    "required-field-feedback",
    "validate-input-after-interaction",
    "identify-inp-causes",
    "schedule-tasks-by-priority",
    "optimize-preload-priority",
    "improve-next-page-load-performance",
    "interactions-in-complex-layouts",
    "performance",
    "visually-stable-font-fallbacks",
    "break-up-long-tasks",
    "identify-heavy-scripts",
    "optimize-script-priority",
    "defer-rendering-heavy-content",
    "defer-work-until-scroll-ends",
    "optimize-image-priority",
    "conditional-async-dependencies",
    "expose-canvas-content-to-browser-features",
    "move-dom-element-without-losing-state",
    "precise-text-alignment",
    "visually-stable-mixed-fonts",
    "css",
    "html",
    "reduce-style-repetition",
    "security",
    "privacy",
    "batch-analytics-events",
    "full-session-analytics",
    "calculate-total-foreground-time",
    "passkeys",
    "passkey-registration",
    "passkey-authentication",
    "passkey-reauthentication",
    "passkey-conditional-create",
    "passkey-management",
    "flicker-free-client-side-ab-testing",
    "consistent-cross-document-transitions",
    "stabilize-reactive-state",
    "resilient-context-menus-and-nested-dropdowns",
    "persistent-top-layer-ui",
    "detect-initial-visibility-state",
    "sequence-distributed-events",
    "translator",
    "language-detection",
    "support-global-calendar-systems",
    "capture-location-agnostic-data",
    "format-human-readable-durations",
    "manage-recurring-intervals",
    "calculate-event-differentials",
    "coordinate-global-events",
    "model-partial-time-concepts",
    "search-hidden-content",
    "select-menu-interaction",
    "style-parent-with-has",
    "autofill-address-form",
    "autofill-payment-form",
    "autofill-sign-in-form",
    "autofill-sign-up-form",
    "autofill-highlight-inputs",
    "deliver-optimized-decorative-images",
    "resolution-optimized-pseudo-elements",
    "deprioritize-background-fetches",
    "efficient-background-processing",
    "webmcp",
    "agentic-forms",
    "agentic-javascript-tools",
    "language-model",
    "summarizer"
  ],
  "artifacts": [
    {
      "type": "other",
      "path": "evidence/a11y-probe.json",
      "caption": "a11y probe",
      "findingIds": [
        "F09",
        "F15",
        "F18"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies",
      "findingIds": [
        "F25"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability",
      "caption": "discoverability",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-crawler.png",
      "caption": "discoverability crawler",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-rendered.png",
      "caption": "discoverability rendered",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/discovery-files.json",
      "caption": "discovery files",
      "findingIds": [
        "F22",
        "F23"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/game-heat-desktop.png",
      "caption": "game heat desktop",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/game-heat-metadata.json",
      "caption": "game heat metadata",
      "findingIds": [
        "F21",
        "F24"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/gamelist-desktop.png",
      "caption": "gamelist desktop",
      "findingIds": [
        "F04"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/gamelist-mobile-layout.json",
      "caption": "gamelist mobile layout",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F05",
        "F11"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/gamelist-mobile.png",
      "caption": "gamelist mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F05",
        "F08",
        "F18"
      ]
    },
    {
      "type": "other",
      "path": "evidence/gamelist-probe.json",
      "caption": "gamelist probe",
      "findingIds": [
        "F17",
        "F21",
        "F23"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers",
      "findingIds": [
        "F25",
        "F28"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/headlines-desktop.png",
      "caption": "headlines desktop",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-gamelist-baseline.json",
      "caption": "heap gamelist baseline",
      "findingIds": [
        "F34"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-gamelist-post.json",
      "caption": "heap gamelist post",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark",
      "condition": "prefers-color-scheme: dark",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom",
      "findingIds": [
        "F04",
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-forced-colors.png",
      "caption": "home forced colors",
      "condition": "forced-colors: active, prefers-contrast: more",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images",
      "findingIds": [
        "F11",
        "F19",
        "F31"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F11"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "condition": "viewport: 360x800",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-probe.json",
      "caption": "home probe",
      "findingIds": [
        "F03",
        "F07",
        "F08",
        "F13",
        "F17",
        "F21",
        "F22"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F13",
        "F14",
        "F26",
        "F32",
        "F33",
        "F34"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace",
      "findingIds": []
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": [
        "F13"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-gamelist.json",
      "caption": "lighthouse gamelist",
      "findingIds": [
        "F09",
        "F10",
        "F15",
        "F16",
        "F20",
        "F22"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "lighthouse home",
      "findingIds": [
        "F10",
        "F12",
        "F14",
        "F15",
        "F16",
        "F17",
        "F20"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-signup.json",
      "caption": "lighthouse signup",
      "findingIds": [
        "F10",
        "F12",
        "F15",
        "F16",
        "F20",
        "F30"
      ]
    },
    {
      "type": "other",
      "path": "evidence/metadata-i18n-probe.json",
      "caption": "metadata i18n probe",
      "findingIds": [
        "F24",
        "F29"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/not-found.png",
      "caption": "not found",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/reduced-motion-probe.json",
      "caption": "reduced motion probe",
      "condition": "prefers-reduced-motion: reduce",
      "findingIds": [
        "F02"
      ]
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets",
      "findingIds": [
        "F27"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/signup-desktop.png",
      "caption": "signup desktop",
      "findingIds": [
        "F07",
        "F27"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/signup-invalid.png",
      "caption": "signup invalid",
      "findingIds": [
        "F30"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/signup-mobile.png",
      "caption": "signup mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F18"
      ]
    },
    {
      "type": "other",
      "path": "evidence/signup-probe.json",
      "caption": "signup probe",
      "findingIds": [
        "F17",
        "F19",
        "F27",
        "F30"
      ]
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers",
      "findingIds": [
        "F26",
        "F32",
        "F33"
      ]
    }
  ],
  "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": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Screenshot comparison under emulated dark preference shows the same light #f7f7f7 landing surface; CSS only switches when an html.dark class is set, so the system preference does not select dark mode.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dark.png"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "The reduced-motion probe matched prefers-reduced-motion: reduce but still found infinite 1.75s fa-blink animations and many non-zero transitions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/reduced-motion-probe.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Forced-colors plus prefers-contrast screenshot preserves visible text, links, primary action, and focusable chrome.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-forced-colors.png"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "CSS/DOM probe found no view-transition rules and route changes use full, abrupt document swaps across the representative navigation.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement against the audited public paths.",
      "evidence": "None of the representative public templates uses parallax, scrollytelling, or scroll-linked reveal motion, so there is no scroll-driven effect to implement.",
      "reason": "None of the representative public templates uses parallax, scrollytelling, or scroll-linked reveal motion, so there is no scroll-driven effect to implement."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "issues",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "The game listing exposes horizontally paged carousels, but CSS inspection found no scroll-snap or overscroll declarations; movement is handled by custom arrow controls.",
      "pathIds": [
        "home",
        "gamelist"
      ],
      "artifacts": [
        "evidence/gamelist-desktop.png",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Screenshots and CSS show static fixed navigation without a scroll-progress or scroll-state response despite long pages of 5,877 to 9,259 CSS px.",
      "pathIds": [
        "gamelist"
      ],
      "artifacts": [
        "evidence/gamelist-mobile.png",
        "evidence/gamelist-mobile-layout.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "issues",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Menus and panels are implemented with fixed/absolute positioning in the captured CSS; no anchor-name, position-anchor, or position-try declarations were found.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Active top-level sections are highlighted, listing headings are prominent, and game-detail Learn/Play actions provide clear directional cues.",
      "pathIds": [
        "gamelist",
        "game-heat"
      ],
      "artifacts": [
        "evidence/gamelist-desktop.png",
        "evidence/game-heat-desktop.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "pass",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "No load-time interstitial or consent wall obscured content on any of the five representative public templates.",
      "pathIds": [
        "home",
        "gamelist",
        "headlines"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/gamelist-desktop.png",
        "evidence/headlines-desktop.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "DOM probe found zero dialog, popover, or details elements while signup and menu overlays are custom containers, so modal/disclosure semantics and platform light-dismiss are absent.",
      "pathIds": [
        "home",
        "signup"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/signup-desktop.png"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "The landing, news, listing, and game-detail templates devote their main regions to games and editorial content with compact global navigation.",
      "pathIds": [
        "home",
        "game-heat",
        "headlines"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/headlines-desktop.png",
        "evidence/game-heat-desktop.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "At 360x800, both landing and listing layout metrics report scrollWidth=clientWidth=360 with viewport meta present and zero horizontal overflow.",
      "pathIds": [
        "home",
        "gamelist"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/gamelist-mobile-layout.json",
        "evidence/home-mobile.png",
        "evidence/gamelist-mobile.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "The layout adapts at viewport breakpoints, but live CSS inspection found no @container/container-type rules for reused game cards and controls.",
      "pathIds": [
        "home",
        "gamelist"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/gamelist-mobile.png"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Focus probes retain a native outline, but Lighthouse target-size audits fail and the live probe found many links only 14 to 15px tall.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/a11y-probe.json",
        "evidence/lighthouse-gamelist.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "The first viewport states the offer, its free/browser-based nature, and a single prominent Start playing now action.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "The public primary journey from landing to game discovery, a specific game, and account creation is reachable through real links with clear Learn, Play, and Create an account actions; account submission itself was not performed to avoid creating test data.",
      "pathIds": [
        "home",
        "gamelist",
        "game-heat",
        "signup"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/gamelist-desktop.png",
        "evidence/game-heat-desktop.png",
        "evidence/signup-desktop.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "An invalid URL renders a clear not-found state with a homepage recovery link, and the signup surface includes support and login alternatives.",
      "pathIds": [
        "signup",
        "not-found"
      ],
      "artifacts": [
        "evidence/not-found.png",
        "evidence/signup-desktop.png"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Lighthouse measured homepage LCP 28.5s/TBT 600ms, gamelist LCP 28.4s/CLS 0.159, and signup LCP 23.2s/CLS 0.158.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-gamelist.json",
        "evidence/lighthouse-signup.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Mobile layout observers measured CLS 0.287 on home and 0.299 on gamelist; all 17 inspected images lacked width/height attributes.",
      "pathIds": [
        "home",
        "gamelist"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/gamelist-mobile-layout.json",
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Trace recorded three long tasks and 59.66ms TBT under a fast local run; throttled Lighthouse measured 600 to 710ms TBT.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-signup.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "HAR recorded 4.99MB transferred, including three parser-blocking stylesheets and three classic parser-inserted scripts without async/defer/module confirmed by DOM.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-probe.json",
        "evidence/home.har"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "The landing page ships 3.88MB of JavaScript; sveltec alone is 2.12MB and legacy Dojo plus analytics bundles load before interaction.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Lighthouse fails image-alt, link-name, label-content-name-mismatch, and signup form-label audits; the listing probe shows numerous image-only game links with no accessible name.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-gamelist.json",
        "evidence/lighthouse-signup.json",
        "evidence/a11y-probe.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Lighthouse color-contrast audit fails on all three tested templates.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-gamelist.json",
        "evidence/lighthouse-signup.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "All tested templates have zero main/navigation landmarks and no h1; Lighthouse fails landmark-one-main. Keyboard focus remains visible, but page structure is not logical for assistive technology.",
      "pathIds": [
        "home",
        "gamelist",
        "signup"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/gamelist-probe.json",
        "evidence/signup-probe.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Desktop and mobile screenshots show readable line lengths, unclipped primary copy, and responsive wrapping across the representative templates.",
      "pathIds": [
        "home",
        "headlines",
        "signup"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/signup-mobile.png",
        "evidence/headlines-desktop.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Narrow screenshots reflow without horizontal overflow, but Lighthouse target-size fails and many interactive links measure only 14 to 15px high. No essential media requiring captions appears in the audited paths.",
      "pathIds": [
        "gamelist",
        "signup"
      ],
      "artifacts": [
        "evidence/gamelist-mobile.png",
        "evidence/signup-mobile.png",
        "evidence/a11y-probe.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Lighthouse did not report a console-errors or runtime exception failure on the three tested templates.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-gamelist.json",
        "evidence/lighthouse-signup.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Direct probes confirm standards mode and an HTML doctype, but image audit reports 17/17 missing dimensions, 16 legacy formats, and one oversized asset.",
      "pathIds": [
        "home",
        "signup"
      ],
      "artifacts": [
        "evidence/home-images.json",
        "evidence/signup-probe.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Lighthouse reports five BFCache failure reasons and missing source maps for large first-party JavaScript on all tested templates.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-gamelist.json",
        "evidence/lighthouse-signup.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Homepage and game detail have descriptive metadata, but /gamelist has an empty meta description.",
      "pathIds": [
        "home",
        "gamelist",
        "game-heat"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/gamelist-probe.json",
        "evidence/game-heat-metadata.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Viewport meta and robots.txt are present, but Lighthouse finds non-crawlable anchors on /gamelist and the DOM contains many href=\"#\" pseudo-links with generic or empty text.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/lighthouse-gamelist.json",
        "evidence/discovery-files.json"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "The public /gamelist page canonically points to the homepage and /sitemap.xml returns a 404, weakening indexing consistency.",
      "pathIds": [
        "home",
        "gamelist"
      ],
      "artifacts": [
        "evidence/gamelist-probe.json",
        "evidence/discovery-files.json"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Game detail has accurate Open Graph metadata but no JSON-LD for the visible game entity; homepage also has no structured data.",
      "pathIds": [
        "game-heat"
      ],
      "artifacts": [
        "evidence/game-heat-metadata.json",
        "evidence/metadata-i18n-probe.json"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "HTTPS, HSTS and nosniff are present, but CSP permits unsafe-inline and unsafe-eval; analytics cookies use SameSite=None and two are not Secure.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Tracker capture found nine third-party origins and active Google Tag Manager/DoubleClick; HAR records analytics and consent SDK traffic on first load.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "No permission prompt fired on load, but the public signup offers email/social identity only and no passkey/WebAuthn path was exposed. The scanned Google API key is treated as a likely public client key, not a secret.",
      "pathIds": [
        "home",
        "signup"
      ],
      "artifacts": [
        "evidence/signup-desktop.png",
        "evidence/signup-probe.json",
        "evidence/secrets.json"
      ],
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "HSTS, X-Frame-Options and frame-ancestors are set, but Referrer-Policy and Permissions-Policy are missing and CSP retains unsafe-inline/unsafe-eval.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Discoverability comparison reports 94% rendered-word coverage in raw server HTML, isJsShell=false, and visible crawler rendering.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/discoverability",
        "evidence/discoverability-rendered.png",
        "evidence/discoverability-crawler.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Five public templates loaded to coherent states at desktop/mobile widths; menus and content were not visibly clipped, and no runtime exceptions were reported.",
      "pathIds": [
        "home",
        "gamelist",
        "signup"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/gamelist-mobile.png",
        "evidence/signup-mobile.png",
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "pass",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "A manifest with standalone display, start_url and complete icon set is linked, and navigator.serviceWorker is available on the loaded page. Offline gameplay is intrinsically networked and was not treated as required.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/discovery-files.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "A representative unknown route renders a clear, branded error state and a direct homepage recovery action rather than a blank shell.",
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/not-found.png"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "The page has lang=en, dir=ltr and hreflang links for many locales, but loaded CSS inspection found 22 physical left/right rules and zero logical-property rules.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/metadata-i18n-probe.json"
      ],
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "The site exposes many locale-specific hosts via hreflang and a language switcher; representative English content and locale metadata agree.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/metadata-i18n-probe.json",
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement against the audited public paths.",
      "evidence": "The representative unauthenticated landing, listing, game detail, signup, and news first-view states expose no user-scheduled or timezone-sensitive event data to judge.",
      "reason": "The representative unauthenticated landing, listing, game detail, signup, and news first-view states expose no user-scheduled or timezone-sensitive event data to judge."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Signup plainly states that it is free, presents equivalent identity choices without preselection, links the privacy policy, and provides a visible existing-account route.",
      "pathIds": [
        "signup"
      ],
      "artifacts": [
        "evidence/signup-desktop.png",
        "evidence/signup-mobile.png"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Signup email fields have no associated labels or required semantics; clicking Create an account with an empty field produced no visible, accessible inline recovery message in the captured state.",
      "pathIds": [
        "signup"
      ],
      "artifacts": [
        "evidence/signup-probe.json",
        "evidence/signup-invalid.png",
        "evidence/lighthouse-signup.json"
      ],
      "findingIds": [
        "F30"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "pass",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Public account inputs expose autocomplete=email and autocomplete=username tokens.",
      "pathIds": [
        "signup"
      ],
      "artifacts": [
        "evidence/signup-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "The public account entry clearly identifies free registration, privacy handling, social alternatives, and the route back to login; no subscription continuity or hidden pricing appeared.",
      "pathIds": [
        "signup"
      ],
      "artifacts": [
        "evidence/signup-desktop.png"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "Image audit reports 16 legacy-format images, 8 without responsive sources, 16 below-fold images without lazy loading, and one oversized logo.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F31"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "The landing page transfers 4.99MB and opens analytics, consent, Sentry and realtime/legacy runtime scripts before the user interacts; script transfer alone is 3.88MB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F32"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "HAR attributes nearly all 4.99MB to non-main origins and tracker evidence finds nine third-party origins; Google tag scripts alone transfer about 324KB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F33"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement against the audited public paths.",
      "evidence": "No declared agent-facing surface or WebMCP intent exists for the public entertainment pages; absence is treated as an emerging opportunity, not a failure.",
      "reason": "No declared agent-facing surface or WebMCP intent exists for the public entertainment pages; absence is treated as an emerging opportunity, not a failure."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement against the audited public paths.",
      "evidence": "The audited public discovery and signup tasks do not require summarisation or language-model inference, so built-in AI is not applicable.",
      "reason": "The audited public discovery and signup tasks do not require summarisation or language-model inference, so built-in AI is not applicable."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "After ten filter open/Escape cycles, heap self-size fell from 64.0MB to 58.5MB; node count rose only 0.56%, which is within cross-navigation snapshot variance and does not show unbounded retained growth.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-gamelist-baseline.json",
        "evidence/heap-gamelist-post.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "The gamelist baseline heap contains about 950,016 nodes and 64.0MB self-size before interaction, disproportionate for a public catalogue view and consistent with its multi-megabyte runtime.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-gamelist-baseline.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F34"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "Agent judgement using the cited visual/objective artifacts across the representative public paths.",
      "evidence": "No Detached* constructor appears among leading heap constructors; after repetition closures changed by only 7 (37,472 to 37,479) and arrays by 84, with no monotonic leak signal.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-gamelist-baseline.json",
        "evidence/heap-gamelist-post.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F02"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03",
        "F04"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05",
        "F06"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08",
        "F09"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F10",
        "F11",
        "F12",
        "F13",
        "F14"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F15",
        "F16",
        "F17",
        "F18"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F19",
        "F20"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F21",
        "F22",
        "F23",
        "F24"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F25",
        "F26",
        "F27",
        "F28"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F30"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F31",
        "F32",
        "F33"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "No declared agent-facing surface or WebMCP intent exists for the public entertainment pages; absence is treated as an emerging opportunity, not a failure. The audited public discovery and signup tasks do not require summarisation or language-model inference, so built-in AI is not applicable."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F34"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Public landing and primary call-to-action; represents marketing entry, preference handling, discovery, metadata, and initial load.",
      "url": "https://boardgamearena.com",
      "conditions": [
        "desktop 1440x1000",
        "mobile 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "forced-colors: active"
      ],
      "result": "issues"
    },
    {
      "id": "gamelist",
      "description": "Public game catalogue/listing; represents dense reusable cards, filtering, carousels, mobile layout, performance, and repeated interaction.",
      "url": "https://en.boardgamearena.com/gamelist",
      "conditions": [
        "desktop 1440x1000",
        "mobile 360x800",
        "keyboard focus",
        "filter open/close repeated 10x"
      ],
      "result": "issues"
    },
    {
      "id": "game-heat",
      "description": "Representative game detail/entity and the Learn/Play decision point.",
      "url": "https://en.boardgamearena.com/gamepanel?game=heat",
      "conditions": [
        "desktop 1440x1000"
      ],
      "result": "issues"
    },
    {
      "id": "headlines",
      "description": "Representative editorial/news template.",
      "url": "https://en.boardgamearena.com/headlines",
      "conditions": [
        "desktop 1440x1000"
      ],
      "result": "issues"
    },
    {
      "id": "signup",
      "description": "Primary public account-creation flow and input-assistance/error-handling surface.",
      "url": "https://en.boardgamearena.com/account?page=newuser",
      "conditions": [
        "desktop 1440x1000",
        "mobile 360x800",
        "empty submission"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Representative HTTP/navigation failure and recovery state.",
      "url": "https://en.boardgamearena.com/definitely-not-a-real-page-web-uplift",
      "conditions": [
        "desktop 1440x1000"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Honours prefers-color-scheme: a usable dark mode exists and is driven by the user's preference (color-scheme / prefers-color-scheme / light-dark()), not hard-coded light only.",
      "evidence": "Screenshot comparison under emulated dark preference shows the same light #f7f7f7 landing surface; CSS only switches when an html.dark class is set, so the system preference does not select dark mode.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dark.png"
      ],
      "suggestedFix": "Apply Modern Web Guidance dark-mode: address the measured divergence for respects color scheme and verify under the same captured conditions.",
      "effort": "small"
    },
    {
      "id": "F02",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Honours prefers-reduced-motion: non-essential animations and auto-advance are reduced or removed when the user asks for less motion.",
      "evidence": "The reduced-motion probe matched prefers-reduced-motion: reduce but still found infinite 1.75s fa-blink animations and many non-zero transitions.",
      "artifacts": [
        "evidence/reduced-motion-probe.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance accessibility: address the measured divergence for respects reduced motion and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F03",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "medium",
      "summary": "State and route changes use View Transitions (including same-document, cross-document and scroll-driven/staggered) rather than instant, jarring swaps.",
      "evidence": "CSS/DOM probe found no view-transition rules and route changes use full, abrupt document swaps across the representative navigation.",
      "artifacts": [
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance cross-document-transitions: address the measured divergence for view transitions and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F04",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "physical-gestures",
      "guidanceId": "carousel-slide-effects",
      "guidanceCategory": "css",
      "severity": "low",
      "confidence": "medium",
      "summary": "Gesture-driven interactions and entry/exit motion feel native (declarative overscroll/scroll-snap, physics-based easing, animating to intrinsic sizes, pull/swipe gestures) rather than fighting the platform with custom pointer handlers.",
      "evidence": "The game listing exposes horizontally paged carousels, but CSS inspection found no scroll-snap or overscroll declarations; movement is handled by custom arrow controls.",
      "artifacts": [
        "evidence/gamelist-desktop.png",
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance carousel-slide-effects: address the measured divergence for physical gestures and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F05",
      "pathId": "gamelist",
      "url": "https://en.boardgamearena.com/gamelist",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "scroll-progress-indicator",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "medium",
      "summary": "Sticky/affixed UI reacts to scroll state and position (e.g. the new scroll-state(scrolled) query, shrinking headers, progress indicators) so chrome responds to position instead of static or JS-driven toggling.",
      "evidence": "Screenshots and CSS show static fixed navigation without a scroll-progress or scroll-state response despite long pages of 5,877 to 9,259 CSS px.",
      "artifacts": [
        "evidence/gamelist-mobile.png",
        "evidence/gamelist-mobile-layout.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance scroll-progress-indicator: address the measured divergence for scroll state aware chrome and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F06",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "anchored-positioning",
      "guidanceId": "position-aware-tooltips",
      "guidanceCategory": "css",
      "severity": "low",
      "confidence": "medium",
      "summary": "Tooltips, popovers and menus use CSS anchor positioning (with fallback positions) so they stay attached and reposition correctly rather than being manually positioned.",
      "evidence": "Menus and panels are implemented with fixed/absolute positioning in the captured CSS; no anchor-name, position-anchor, or position-try declarations were found.",
      "artifacts": [
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance position-aware-tooltips: address the measured divergence for anchored positioning and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F07",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Overlays and rich controls use the right primitive: popover (with declarative light-dismiss) for transient UI, dialog for modal flows, details for disclosure, native-but-branded selects and pickers, rather than ad-hoc divs.",
      "evidence": "DOM probe found zero dialog, popover, or details elements while signup and menu overlays are custom containers, so modal/disclosure semantics and platform light-dismiss are absent.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/signup-desktop.png"
      ],
      "suggestedFix": "Apply Modern Web Guidance declarative-dialog-popover-control: address the measured divergence for semantic dismissible primitives and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F08",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "css",
      "severity": "low",
      "confidence": "medium",
      "summary": "Components adapt to their container with container queries (incl. anchored container queries) and content/state-based styling where reused at different sizes, not only global viewport breakpoints.",
      "evidence": "The layout adapts at viewport breakpoints, but live CSS inspection found no @container/container-type rules for reused game cards and controls.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/gamelist-mobile.png"
      ],
      "suggestedFix": "Apply Modern Web Guidance size-aware-styling: address the measured divergence for component level responsiveness and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F09",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Touch targets are adequately sized and hover-only affordances have a non-hover fallback, and keyboard focus is visible, so the UI works for touch, pointer and keyboard alike.",
      "evidence": "Focus probes retain a native outline, but Lighthouse target-size audits fail and the live probe found many links only 14 to 15px tall.",
      "artifacts": [
        "evidence/a11y-probe.json",
        "evidence/lighthouse-gamelist.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance accessibility: address the measured divergence for input modality aware and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F10",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Core Web Vitals are in the good range: LCP is fast, interaction latency (INP) is low, and CLS is minimal; work is prioritised and deferred sensibly.",
      "evidence": "Lighthouse measured homepage LCP 28.5s/TBT 600ms, gamelist LCP 28.4s/CLS 0.159, and signup LCP 23.2s/CLS 0.158.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-gamelist.json",
        "evidence/lighthouse-signup.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance performance: address the measured divergence for good core web vitals and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F11",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "visual-stability",
      "guidanceId": "visually-stable-font-fallbacks",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "No cumulative layout shift from late content (images, banners, fonts) that arrives without reserved space.",
      "evidence": "Mobile layout observers measured CLS 0.287 on home and 0.299 on gamelist; all 17 inspected images lacked width/height attributes.",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/gamelist-mobile-layout.json",
        "evidence/home-images.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance visually-stable-font-fallbacks: address the measured divergence for visual stability and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F12",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "guidanceId": "break-up-long-tasks",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "The main thread is not blocked by long tasks or heavy scripting; work is deferred, chunked, prioritised, or moved off-thread.",
      "evidence": "Trace recorded three long tasks and 59.66ms TBT under a fast local run; throttled Lighthouse measured 600 to 710ms TBT.",
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-signup.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance break-up-long-tasks: address the measured divergence for efficient main thread and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F13",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-script-priority",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Critical resources are delivered efficiently: cache headers are useful, render-blocking chains are short, fonts do not block or shift text, HTTP delivery is modern, and network dependency trees do not delay the main content.",
      "evidence": "HAR recorded 4.99MB transferred, including three parser-blocking stylesheets and three classic parser-inserted scripts without async/defer/module confirmed by DOM.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-probe.json",
        "evidence/home.har"
      ],
      "suggestedFix": "Apply Modern Web Guidance optimize-script-priority: address the measured divergence for efficient resource delivery and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F14",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "The page does not ship large unused or duplicated JavaScript/CSS, avoidable legacy bundles, or third-party code that dominates the load without user value.",
      "evidence": "The landing page ships 3.88MB of JavaScript; sveltec alone is 2.12MB and legacy Dojo plus analytics bundles load before interaction.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance identify-heavy-scripts: address the measured divergence for trim unused and duplicate code and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F15",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Interactive elements have accessible names, correct roles, and form fields have labels; images have alt text where meaningful; canvas/expressive content is exposed to assistive technology.",
      "evidence": "Lighthouse fails image-alt, link-name, label-content-name-mismatch, and signup form-label audits; the listing probe shows numerous image-only game links with no accessible name.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-gamelist.json",
        "evidence/lighthouse-signup.json",
        "evidence/a11y-probe.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance accessibility: address the measured divergence for names roles labels and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F16",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Text and essential UI meet WCAG colour-contrast minimums against their background.",
      "evidence": "Lighthouse color-contrast audit fails on all three tested templates.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-gamelist.json",
        "evidence/lighthouse-signup.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance accessibility: address the measured divergence for sufficient contrast and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F17",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Heading and landmark structure is logical, focus order follows reading order, keyboard focus is always visible, and interactive state survives DOM moves.",
      "evidence": "All tested templates have zero main/navigation landmarks and no h1; Lighthouse fails landmark-one-main. Keyboard focus remains visible, but page structure is not logical for assistive technology.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/gamelist-probe.json",
        "evidence/signup-probe.json",
        "evidence/lighthouse-home.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance accessibility: address the measured divergence for structure and focus and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F18",
      "pathId": "gamelist",
      "url": "https://en.boardgamearena.com/gamelist",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "The experience remains usable when zoomed or reflowed, touch targets are large enough, media has captions or equivalents where needed, and the viewport does not prevent user scaling.",
      "evidence": "Narrow screenshots reflow without horizontal overflow, but Lighthouse target-size fails and many interactive links measure only 14 to 15px high. No essential media requiring captions appears in the audited paths.",
      "artifacts": [
        "evidence/gamelist-mobile.png",
        "evidence/signup-mobile.png",
        "evidence/a11y-probe.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance accessibility: address the measured divergence for zoom reflow targets and media and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F19",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Valid doctype and charset, images sized with correct aspect ratio, no deprecated APIs misused, and CSS/HTML are well structured and not needlessly repetitive. (HTTPS, CSP and permission hygiene are judged under be-private-and-secure, not here.)",
      "evidence": "Direct probes confirm standards mode and an HTML doctype, but image audit reports 17/17 missing dimensions, 16 legacy formats, and one oversized asset.",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/signup-probe.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance html: address the measured divergence for sound document and assets and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F20",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "The page uses the platform cleanly: no deprecated APIs, no avoidable BFCache blockers, no broken source maps or inspector issues, no stale vulnerable libraries, no paste-prevention on inputs, and no notification/geolocation prompts on load.",
      "evidence": "Lighthouse reports five BFCache failure reasons and missing source maps for large first-party JavaScript on all tested templates.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-gamelist.json",
        "evidence/lighthouse-signup.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance html: address the measured divergence for browser platform hygiene and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F21",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-discoverable",
      "principleCheckId": "title-and-description",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "The page has a unique, descriptive <title> and a meta description.",
      "evidence": "Homepage and game detail have descriptive metadata, but /gamelist has an empty meta description.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/gamelist-probe.json",
        "evidence/game-heat-metadata.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance html: address the measured divergence for title and description and verify under the same captured conditions.",
      "effort": "small"
    },
    {
      "id": "F22",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Links are crawlable (real href), there is a viewport meta tag, robots does not block indexing, and link text is descriptive.",
      "evidence": "Viewport meta and robots.txt are present, but Lighthouse finds non-crawlable anchors on /gamelist and the DOM contains many href=\"#\" pseudo-links with generic or empty text.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/lighthouse-gamelist.json",
        "evidence/discovery-files.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance html: address the measured divergence for crawlable and mobile friendly and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F23",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Public pages expose the indexing signals search engines need: successful HTTP status, canonical URL when appropriate, hreflang for localized variants, robots/sitemap consistency, and no accidental noindex/noarchive policy.",
      "evidence": "The public /gamelist page canonically points to the homepage and /sitemap.xml returns a 404, weakening indexing consistency.",
      "artifacts": [
        "evidence/gamelist-probe.json",
        "evidence/discovery-files.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance html: address the measured divergence for canonical and indexing signals and verify under the same captured conditions.",
      "effort": "small"
    },
    {
      "id": "F24",
      "pathId": "game-heat",
      "url": "https://en.boardgamearena.com/gamepanel?game=heat",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "low",
      "confidence": "medium",
      "summary": "Where the page represents an article, product, organization, event, place or other rich entity, structured data and share-preview metadata accurately describe the visible content.",
      "evidence": "Game detail has accurate Open Graph metadata but no JSON-LD for the visible game entity; homepage also has no structured data.",
      "artifacts": [
        "evidence/game-heat-metadata.json",
        "evidence/metadata-i18n-probe.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance html: address the measured divergence for structured and shareable metadata and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F25",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Served over HTTPS with a sensible Content-Security-Policy and secure, SameSite cookies; no mixed content or obvious transport/header smells.",
      "evidence": "HTTPS, HSTS and nosniff are present, but CSP permits unsafe-inline and unsafe-eval; analytics cookies use SameSite=None and two are not Secure.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance security: address the measured divergence for secure transport and headers and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F26",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "severity": "medium",
      "confidence": "high",
      "summary": "No over-collection of user data, no leaky third parties, and analytics/background data collection is minimised and batched rather than chatty or session-wide by default.",
      "evidence": "Tracker capture found nine third-party origins and active Google Tag Manager/DoubleClick; HAR records analytics and consent SDK traffic on first load.",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance privacy: address the measured divergence for data minimisation and third parties and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F27",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "passkeys",
      "guidanceCategory": "security",
      "severity": "low",
      "confidence": "medium",
      "summary": "Permission prompts are requested in context (not on load), and authentication uses modern, phishing-resistant methods (passkeys / WebAuthn) where relevant rather than passwords alone.",
      "evidence": "No permission prompt fired on load, but the public signup offers email/social identity only and no passkey/WebAuthn path was exposed. The scanned Google API key is treated as a likely public client key, not a secret.",
      "artifacts": [
        "evidence/signup-desktop.png",
        "evidence/signup-probe.json",
        "evidence/secrets.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance passkeys: address the measured divergence for in context permissions and modern auth and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F28",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "medium",
      "confidence": "high",
      "summary": "Browser-enforced defenses are configured where appropriate: HSTS, clickjacking protection (frame-ancestors / X-Frame-Options), Trusted Types for XSS-sensitive apps, origin isolation, privacy-preserving third-party cookie posture, and sensible Referrer-Policy / Permissions-Policy.",
      "evidence": "HSTS, X-Frame-Options and frame-ancestors are set, but Referrer-Policy and Permissions-Policy are missing and CSP retains unsafe-inline/unsafe-eval.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance security: address the measured divergence for defensive browser policies and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F29",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "guidanceCategory": "internationalization",
      "severity": "medium",
      "confidence": "high",
      "summary": "Correct lang and dir attributes, logical CSS properties (inline/block) rather than physical left/right, and translation-ready markup so the layout and reading order survive other languages and writing modes.",
      "evidence": "The page has lang=en, dir=ltr and hreflang links for many locales, but loaded CSS inspection found 22 physical left/right rules and zero logical-property rules.",
      "artifacts": [
        "evidence/metadata-i18n-probe.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance translator: address the measured divergence for lang dir and logical properties and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F30",
      "pathId": "signup",
      "url": "https://en.boardgamearena.com/account?page=newuser",
      "principleId": "be-trustworthy",
      "principleCheckId": "humane-error-handling",
      "guidanceId": "accessible-error-announcement",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Forms prevent and recover from mistakes humanely: validate after interaction (not prematurely), give clear required-field feedback, announce errors accessibly, and signal invalid fields visibly rather than blaming the user.",
      "evidence": "Signup email fields have no associated labels or required semantics; clicking Create an account with an empty field produced no visible, accessible inline recovery message in the captured state.",
      "artifacts": [
        "evidence/signup-probe.json",
        "evidence/signup-invalid.png",
        "evidence/lighthouse-signup.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance accessible-error-announcement: address the measured divergence for humane error handling and verify under the same captured conditions.",
      "effort": "small"
    },
    {
      "id": "F31",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Images and decorative assets are optimised and served at appropriate resolutions; decorative pseudo-element imagery and heavy decorative images are resolution-optimised rather than oversized.",
      "evidence": "Image audit reports 16 legacy-format images, 8 without responsive sources, 16 below-fold images without lazy loading, and one oversized logo.",
      "artifacts": [
        "evidence/home-images.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance deliver-optimized-decorative-images: address the measured divergence for optimised assets and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F32",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "deprioritize-background-fetches",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Background work and fetching are not wasteful: background processing is efficient and de-prioritised, and the lightest technique that achieves the result is preferred over heavy or redundant work.",
      "evidence": "The landing page transfers 4.99MB and opens analytics, consent, Sentry and realtime/legacy runtime scripts before the user interacts; script transfer alone is 3.88MB.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance deprioritize-background-fetches: address the measured divergence for no wasteful work and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F33",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "efficient-background-processing",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Third-party scripts, fonts, video, audio, animation and heavy media are proportionate to the user value they provide; autoplay or background media is avoided unless essential and resource use is cached or deferred where possible.",
      "evidence": "HAR attributes nearly all 4.99MB to non-main origins and tracker evidence finds nine third-party origins; Google tag scripts alone transfer about 324KB.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance efficient-background-processing: address the measured divergence for third party and media budget and verify under the same captured conditions.",
      "effort": "medium"
    },
    {
      "id": "F34",
      "pathId": "home",
      "url": "https://boardgamearena.com",
      "principleId": "be-memory-efficient",
      "principleCheckId": "bounded-footprint",
      "guidanceId": "defer-rendering-heavy-content",
      "guidanceCategory": "performance",
      "severity": "low",
      "confidence": "medium",
      "summary": "Heap size and DOM node count are reasonable for what the page is; the footprint is proportionate rather than bloated.",
      "evidence": "The gamelist baseline heap contains about 950,016 nodes and 64.0MB self-size before interaction, disproportionate for a public catalogue view and consistent with its multi-megabyte runtime.",
      "artifacts": [
        "evidence/heap-gamelist-baseline.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Apply Modern Web Guidance defer-rendering-heavy-content: address the measured divergence for bounded footprint and verify under the same captured conditions.",
      "effort": "medium"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Fix accessibility semantics, labels, contrast, landmarks, and target sizes",
      "priority": 1,
      "findingIds": [
        "F15",
        "F09",
        "F16",
        "F17",
        "F18",
        "F08"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Cut initial JavaScript and eliminate critical resource chains",
      "priority": 2,
      "findingIds": [
        "F10",
        "F11",
        "F12",
        "F13",
        "F14",
        "F34"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Reserve image space and modernise responsive image delivery",
      "priority": 3,
      "findingIds": [
        "F10",
        "F11",
        "F12",
        "F13",
        "F14",
        "F19",
        "F20",
        "F31",
        "F32",
        "F33"
      ],
      "guidanceId": "deliver-optimized-decorative-images",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Harden CSP, cookie attributes, and browser policies",
      "priority": 4,
      "findingIds": [
        "F25",
        "F26",
        "F28",
        "F27"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Respect system theme and reduced-motion preferences",
      "priority": 5,
      "findingIds": [
        "F01",
        "F02"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Repair canonical, sitemap, crawlable links, and entity metadata",
      "priority": 6,
      "findingIds": [
        "F21",
        "F22",
        "F23",
        "F24"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Adopt semantic overlays and declarative positioning/navigation",
      "priority": 7,
      "findingIds": [
        "F07",
        "F05",
        "F06"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Use modern responsive and natural-interaction primitives",
      "priority": 8,
      "findingIds": [
        "F09",
        "F03",
        "F04",
        "F08"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Minimise tracking and idle/background work",
      "priority": 9,
      "findingIds": [
        "F25",
        "F26",
        "F28",
        "F31",
        "F32",
        "F33",
        "F27"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Use logical CSS properties and humane form errors",
      "priority": 10,
      "findingIds": [
        "F29",
        "F30"
      ],
      "guidanceId": "translator",
      "status": "open"
    }
  ],
  "budget": {
    "wallClockSeconds": 2100,
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-17T22-21-08-514Z"
}
