{
  "url": "https://poki.com",
  "auditedAt": "2026-07-23T23:48:30.000Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Atomic coverage complete across 58 checks and three representative page archetypes.",
  "page": {
    "appType": "hybrid",
    "framework": "Server-rendered component application with client hydration and sandboxed game iframe",
    "notes": "Public multilingual free-game catalogue. Homepage, category listing and representative game detail/runtime were audited."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "layout-metrics",
    "evaluate-probe",
    "trace",
    "har",
    "lighthouse",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "curl HTTP status"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "adapt-scrollbar-to-contrast-preferences",
    "same-document-transitions",
    "scrollytelling",
    "physics-based-easing",
    "shrinking-header-on-scroll",
    "position-aware-tooltips",
    "directional-navigation-transitions",
    "light-dismiss-a-dialog",
    "declarative-dialog-popover-control",
    "complex-shapes",
    "fluid-scaling",
    "size-aware-styling",
    "forms",
    "accessible-error-announcement",
    "performance",
    "visually-stable-font-fallbacks",
    "break-up-long-tasks",
    "optimize-image-priority",
    "identify-heavy-scripts",
    "move-dom-element-without-losing-state",
    "html",
    "css",
    "security",
    "privacy",
    "passkeys",
    "flicker-free-client-side-ab-testing",
    "resilient-context-menus-and-nested-dropdowns",
    "translator",
    "support-global-calendar-systems",
    "coordinate-global-events",
    "custom-button-actions",
    "validate-input-after-interaction",
    "autofill-address-form",
    "autofill-payment-form",
    "deliver-optimized-decorative-images",
    "deprioritize-background-fetches",
    "webmcp",
    "language-model",
    "manage-recurring-intervals"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/home.png",
      "caption": "Homepage first viewport with cookie consent overlay",
      "condition": "desktop first load",
      "findingIds": [
        "F004",
        "F005"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile-dismissed.png",
      "caption": "Mobile first viewport: the 644px-wide consent UI is clipped in a 360px viewport",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F006"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-dismissed-layout.json",
      "caption": "Mobile layout metrics: 284px horizontal overflow and 644px layout width",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F006"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark-reduced-dismissed.png",
      "caption": "Homepage under dark and reduced-motion preferences remains the same bright palette",
      "condition": "prefers-color-scheme: dark; prefers-reduced-motion: reduce",
      "findingIds": [
        "F001",
        "F002"
      ]
    },
    {
      "type": "other",
      "path": "evidence/preferences-probe.json",
      "caption": "Preference probe: bright rgb(131,255,231) body and two running 6000ms animations under reduce",
      "condition": [
        "F001",
        "F002"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-forced-contrast.png",
      "caption": "Forced-colors/high-contrast rendering check",
      "condition": "forced-colors: active; prefers-contrast: more",
      "findingIds": [
        "F003"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "Rendered homepage DOM and CSS used to inspect modern CSS interaction features",
      "condition": "default",
      "findingIds": [
        "F007",
        "F008",
        "F009"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/category-dom.json",
      "caption": "Action category template DOM and CSS",
      "condition": "default"
    },
    {
      "type": "dom",
      "path": "evidence/game-dom.json",
      "caption": "Subway Surfers game template DOM and CSS",
      "condition": "default",
      "findingIds": [
        "F015"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/category.png",
      "caption": "Representative category/listing first viewport",
      "condition": "desktop first load"
    },
    {
      "type": "screenshot",
      "path": "evidence/game.png",
      "caption": "Representative game/detail first viewport",
      "condition": "desktop first load"
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "Homepage trace: LCP 1498ms and no long tasks in this unthrottled run",
      "condition": "default",
      "findingIds": [
        "F008",
        "F009"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/game-trace-summary.json",
      "caption": "Game trace: LCP 4158ms, 8 long tasks and 827ms TBT",
      "condition": "default",
      "findingIds": [
        "F008",
        "F010"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/game-trace.json",
      "caption": "DevTools-loadable game performance trace",
      "condition": "default",
      "findingIds": [
        "F008",
        "F010"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "Homepage network summary: 190 requests and 748KB transferred",
      "condition": "default",
      "findingIds": [
        "F011"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "Homepage HAR",
      "condition": "default",
      "findingIds": [
        "F011"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/game-summary.json",
      "caption": "Game network summary: 427 requests and 9.73MB transferred",
      "condition": "default",
      "findingIds": [
        "F011",
        "F020"
      ]
    },
    {
      "type": "har",
      "path": "evidence/game.har",
      "caption": "Game-page HAR",
      "condition": "default",
      "findingIds": [
        "F011",
        "F020"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/home-lighthouse.json",
      "caption": "Lighthouse: performance 66, accessibility 96, best practices 96, SEO 92",
      "condition": "mobile simulated",
      "findingIds": [
        "F008",
        "F009",
        "F012",
        "F013",
        "F014",
        "F016",
        "F017"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "Homepage image audit",
      "condition": "default",
      "findingIds": [
        "F015"
      ]
    },
    {
      "type": "other",
      "path": "evidence/game-images.json",
      "caption": "Game image audit: 15 missing dimensions and 2 missing alt values",
      "condition": "default",
      "findingIds": [
        "F012",
        "F015"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "Security header audit",
      "condition": "default",
      "findingIds": [
        "F018"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "Cookie security audit",
      "condition": "default"
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "Tracker-origin audit found no known trackers",
      "condition": "default"
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "Secret scan found no exposed credentials",
      "condition": "default"
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "Homepage raw HTML coverage 94%, not a JS shell",
      "condition": "crawler without JavaScript"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "Homepage crawler screenshot with JavaScript disabled",
      "condition": "crawler without JavaScript"
    },
    {
      "type": "discoverability",
      "path": "evidence/game-discoverability.json",
      "caption": "Game page raw HTML coverage 95%, not a JS shell",
      "condition": "crawler without JavaScript"
    },
    {
      "type": "screenshot",
      "path": "evidence/game-discoverability-crawler.png",
      "caption": "Game crawler screenshot with JavaScript disabled",
      "condition": "crawler without JavaScript"
    },
    {
      "type": "heap",
      "path": "evidence/game-heap-baseline.heapsnapshot",
      "caption": "Baseline readable heap summary: 88.78MB self size",
      "condition": "game loaded"
    },
    {
      "type": "heap",
      "path": "evidence/game-heap-post.heapsnapshot",
      "caption": "Post-scroll heap summary: 88.93MB, +0.16% after ten scroll cycles",
      "condition": "after 10 scroll cycles"
    },
    {
      "type": "other",
      "path": "evidence/pwa-probe.json",
      "caption": "PWA probe found no service-worker registrations or Cache Storage entries",
      "condition": "default",
      "findingIds": [
        "F019"
      ]
    },
    {
      "type": "other",
      "path": "evidence/404-probe.json",
      "caption": "Helpful 404 state with surprise-game recovery link",
      "condition": "invalid route"
    },
    {
      "type": "other",
      "path": "evidence/404-headers.txt",
      "caption": "Invalid route correctly returns HTTP 404",
      "condition": "invalid route"
    },
    {
      "type": "other",
      "path": "evidence/home-technical-probe.json",
      "caption": "Document, metadata, links, landmarks and animation probe",
      "condition": "default"
    },
    {
      "type": "other",
      "path": "evidence/game-technical-probe.json",
      "caption": "Game metadata, hreflang, iframe and media probe",
      "condition": "default"
    },
    {
      "type": "other",
      "path": "evidence/focus-probe.json",
      "caption": "Keyboard focus probe shows native visible outline",
      "condition": "keyboard focus"
    }
  ],
  "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": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "With prefers-color-scheme: dark emulated, the body remains rgb(131, 255, 231), and DOM/CSS inspection found no prefers-color-scheme rule.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F001"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "The reduced-motion probe reports two running animations with 6000ms duration under prefers-reduced-motion: reduce; CSS inspection found no reduced-motion query.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F002"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "Lighthouse measured a 2.91:1 ratio for the blue consent link and all three blue/white consent buttons, below the required 4.5:1 for their text size.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F003"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "DOM/CSS captures across homepage, category and game templates contain no view-transition-name or @view-transition usage; navigation remains conventional but usable.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "DOM/CSS captures contain no scroll()/view() animation timeline or scroll event-driven parallax/reveal surface; there is no scroll-linked motion to offload.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-path applicability judgement",
      "evidence": "No swipe, drag, carousel, pull-to-refresh or other gesture-driven control was present on the representative catalogue and game templates.",
      "reason": "No swipe, drag, carousel, pull-to-refresh or other gesture-driven control was present on the representative catalogue and game templates.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "Screenshots and DOM show a stable compact navigation rail; no shrinking/progress chrome is needed to keep the catalogue location understandable.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-path applicability judgement",
      "evidence": "No tooltip, popover or edge-positioned menu surface was exposed in the representative paths.",
      "reason": "No tooltip, popover or edge-positioned menu surface was exposed in the representative paths.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "Category headings, named game tiles, game-page breadcrumbs and a single prominent game viewport provide a clear attention path.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "Desktop and mobile screenshots show a modal-like consent panel plus blurred backdrop covering the primary content before any user action.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F004"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "DOM inspection found no dialog, role=dialog, or popover for the full-screen consent experience; the Lighthouse DOM path identifies nested div/button custom chrome.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F005"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "Outside the consent interruption, screenshots show content-dense game tiles with minimal borders and compact navigation.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "At 360x800, the layout primitive reports scrollWidth/innerWidth 644px versus a 360px visual viewport, producing 284px horizontal overflow; the screenshot clips copy and controls.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F006"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "Across the homepage, category and game DOM/CSS captures, no @container rule was found; the consent component consequently overflows its narrow containing viewport.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F007"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "The focus probe successfully focused the first link and measured a native 1px auto outline; primary controls are at least 38–48px high in Lighthouse geometry.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "The title, H1 and first viewport clearly present free games as named clickable tiles.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "Direct navigation to the Subway Surfers detail route loaded the game iframe and runtime, showing that the representative browse-to-play destination completes.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "A deliberately invalid route returned HTTP 404, displayed an ERROR heading and offered a “Play a surprise game” recovery action.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "Lighthouse measured LCP 6.9s, CLS 0.149 and performance 66 on the homepage; the game trace independently measured LCP 4.16s.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F008"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "Lighthouse measured CLS 0.149 and failed its layout-shift-culprits insight; the independent mobile layout observer also saw a shift of 0.068 before dismissal.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F009"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "The game trace recorded 8 long tasks, a 338.91ms longest task and 827.28ms total blocking time over an 11.4s trace.",
      "pathIds": [
        "home",
        "game"
      ],
      "findingIds": [
        "F010"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "The homepage requests 17 stylesheets and 81 scripts; the game route requests 427 resources including 134 scripts. HAR summaries identify 10 parser-inserted very-high-priority stylesheets on each template.",
      "pathIds": [
        "home",
        "game"
      ],
      "findingIds": [
        "F011"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "Lighthouse’s unused-javascript and unused-css audits both scored 1 with zero estimated savings on the homepage.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "Lighthouse found three label/content-name mismatches (Search, company page, language), while the game image audit found two images without alt text.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F012"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "Lighthouse measured 2.91:1 for “here”, “More Options”, “Accept” and “Reject” in the consent panel, below 4.5:1.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F013"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "The page has one H1, nav/header/footer landmarks, and the keyboard focus probe found a visible browser outline.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "Desktop and mobile screenshots show comfortably sized, consistently aligned catalogue and consent text without text clipping outside the known horizontal consent overflow.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "The viewport allows scaling, key actions are 38–48px high, and the primary game is an interactive canvas/iframe rather than prerecorded speech-dependent media.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "Lighthouse reports a failed 401 request to https://poki-auth.poki.com/sessions/whoami as a browser console error.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F014"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "The game image audit found 15 images without width/height, including 960px game backgrounds, plus 7 oversized images; this weakens asset structure and shift prevention.",
      "pathIds": [
        "home",
        "game"
      ],
      "findingIds": [
        "F015"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "Lighthouse reports three BFCache failure reasons, led by Cache-Control: no-store on the main resource and a no-store JavaScript request.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F016"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "Homepage and game probes found unique descriptive titles and meta descriptions.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "Lighthouse SEO reports one link whose entire text is “here”, pointing to /en/privacy.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F017"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "Both pages returned 200 with canonicals; game page exposes 34 hreflang links, robots allows clean paths, and the English sitemap index exists.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "Homepage has JSON-LD and 11 Open Graph tags; game page has FAQPage JSON-LD, 15 Open Graph tags and metadata matching Subway Surfers.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "HTTPS, preload HSTS, nosniff, strict-origin referrer policy, frame-ancestors CSP, Secure/Lax cookie posture and no mixed-content signal were observed.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "Tracker scan found no known trackers, cookie scan found one first-party Secure/Lax experiment cookie, and the secret scan found no exposed credentials; CDN/game origins are product delivery.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-path applicability judgement",
      "evidence": "The audited public catalogue and game path requested no browser permission and exposed no authentication flow; permission timing and auth choice therefore do not apply to these paths.",
      "reason": "The audited public catalogue and game path requested no browser permission and exposed no authentication flow; permission timing and auth choice therefore do not apply to these paths.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "Headers include HSTS, nosniff and frame-ancestors, but Permissions-Policy is absent; the CSP only declares frame-ancestors and provides no script/style/object restriction.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F018"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "Discoverability captures show 94% homepage and 95% game content coverage in raw server HTML with title, H1 and description present; neither route is a JS shell.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "At 360x800, the layout primitive reports scrollWidth/innerWidth 644px versus a 360px visual viewport, producing 284px horizontal overflow; the screenshot clips copy and controls.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F006"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "The manifest has a start_url and app icons, but the live PWA probe found zero service-worker registrations and zero Cache Storage entries.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F019"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "The invalid-route test returned a real HTTP 404 with a clear error message and actionable recovery link instead of a blank shell.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "Homepage uses lang=en and dir=ltr; game page exposes 34 hreflang alternatives and robots lists 34 locale sitemap indexes.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-path applicability judgement",
      "evidence": "The representative templates display no dates, prices, currencies or locale-sensitive numeric data to format.",
      "reason": "The representative templates display no dates, prices, currencies or locale-sensitive numeric data to format.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-path applicability judgement",
      "evidence": "The representative catalogue and game templates expose no events, schedules or time-zone-sensitive data.",
      "reason": "The representative catalogue and game templates expose no events, schedules or time-zone-sensitive data.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "The consent surface gives Accept and Reject equal visual weight and explicitly describes non-personalized advertising and optional cookies.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-path applicability judgement",
      "evidence": "No form with validation or required fields exists in the representative public catalogue/game journey.",
      "reason": "No form with validation or required fields exists in the representative public catalogue/game journey.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-path applicability judgement",
      "evidence": "No address, payment, sign-in or sign-up form exists in the representative public journey; the lone search input needs no personal-data autofill token.",
      "reason": "No address, payment, sign-in or sign-up form exists in the representative public journey; the lone search input needs no personal-data autofill token.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-path applicability judgement",
      "evidence": "Poki’s audited core journey is free game discovery/play and exposed no checkout, subscription or account-management flow.",
      "reason": "Poki’s audited core journey is free game discovery/play and exposed no checkout, subscription or account-management flow.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "Catalogue images use CDN width/height transforms, f=auto and srcset; the game’s larger media is purpose-related rather than decorative.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "Homepage transfer is 748KB with no idle long tasks in the unthrottled trace, and tracker scanning found no unrelated analytics workload.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted screenshot/DOM/evaluate plus specialist primitive evidence on representative paths",
      "evidence": "The game HAR recorded 427 requests and 9.73MB transferred in seven seconds, including 8.05MB of fetch/XHR and a 1.95MB environment bundle.",
      "pathIds": [
        "home",
        "game"
      ],
      "findingIds": [
        "F020"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-path applicability judgement",
      "evidence": "No declared intent indicates that this public game catalogue currently wants to expose transactional agent capabilities; the emerging check is contextual.",
      "reason": "No declared intent indicates that this public game catalogue currently wants to expose transactional agent capabilities; the emerging check is contextual.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-path applicability judgement",
      "evidence": "No summarisation, language-model or inference task is part of the audited game-discovery journey; the emerging check is contextual.",
      "reason": "No summarisation, language-model or inference task is part of the audited game-discovery journey; the emerging check is contextual.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "After ten full-page scroll cycles, heap self size rose from 88,780,277 to 88,926,670 bytes (+0.16%) and key game constructor counts stayed stable.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "The loaded 3D game heap is 88.8MB; large allocations are dominated by native data, Float32Array and ArrayBuffer objects expected for a 3D game.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "Direct rendered-page, network, metadata, accessibility, resilience, performance or memory evidence as appropriate",
      "evidence": "Across the before/after heap summaries, closures rose only 7, objects 4 and arrays 2; no Detached* constructor entered the top retained constructors.",
      "pathIds": [
        "home",
        "category",
        "game"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F001",
        "F002",
        "F003"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F004",
        "F005"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F006",
        "F007"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F008",
        "F009",
        "F010",
        "F011"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F012",
        "F013"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F014",
        "F015",
        "F016"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F017"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F018"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F006",
        "F019"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F020"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "No declared intent indicates that this public game catalogue currently wants to expose transactional agent capabilities; the emerging check is contextual. No summarisation, language-model or inference task is part of the audited game-discovery journey; the emerging check is contextual."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and primary game-discovery entry; covers global navigation, consent, preferences, accessibility, performance, security and discovery.",
      "url": "https://poki.com",
      "conditions": [
        "desktop first load",
        "viewport: 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "forced-colors: active",
        "keyboard focus",
        "crawler without JavaScript"
      ],
      "result": "issues"
    },
    {
      "id": "category",
      "description": "Action category listing representing category/index templates and dense game-tile navigation.",
      "url": "https://poki.com/en/action",
      "conditions": [
        "desktop first load"
      ],
      "result": "issues"
    },
    {
      "id": "game",
      "description": "Subway Surfers detail and embedded runtime representing the core browse-to-play journey, rich media, game startup and memory footprint.",
      "url": "https://poki.com/en/g/subway-surfers",
      "conditions": [
        "desktop first load",
        "crawler without JavaScript",
        "10 repeated scroll cycles"
      ],
      "result": "issues"
    },
    {
      "id": "error",
      "description": "Deliberately invalid route used to verify HTTP and user-facing recovery state.",
      "url": "https://poki.com/does-not-exist-audit",
      "conditions": [
        "invalid route"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F001",
      "severity": "medium",
      "confidence": "high",
      "summary": "The site does not adapt its bright palette to the user’s dark-mode preference.",
      "evidence": "With prefers-color-scheme: dark emulated, the body remains rgb(131, 255, 231), and DOM/CSS inspection found no prefers-color-scheme rule.",
      "suggestedFix": "Declare color-scheme and provide preference-driven dark surface and text tokens using prefers-color-scheme or light-dark().",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-dark-reduced-dismissed.png",
        "evidence/preferences-probe.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://poki.com"
    },
    {
      "id": "F002",
      "severity": "medium",
      "confidence": "high",
      "summary": "Continuous homepage animation remains active when reduced motion is requested.",
      "evidence": "The reduced-motion probe reports two running animations with 6000ms duration under prefers-reduced-motion: reduce; CSS inspection found no reduced-motion query.",
      "suggestedFix": "Add a prefers-reduced-motion: reduce override that stops continuous decorative motion and removes non-essential transitions.",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/preferences-probe.json",
        "evidence/home-dark-reduced-dismissed.png"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://poki.com"
    },
    {
      "id": "F003",
      "severity": "medium",
      "confidence": "high",
      "summary": "The consent UI does not provide sufficient contrast in a critical preference/control surface.",
      "evidence": "Lighthouse measured a 2.91:1 ratio for the blue consent link and all three blue/white consent buttons, below the required 4.5:1 for their text size.",
      "suggestedFix": "Use contrast-safe consent colors and verify them in forced-colors and prefers-contrast modes; avoid overriding system colors where they improve visibility.",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-contrast",
      "guidanceId": "adapt-scrollbar-to-contrast-preferences",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-forced-contrast.png"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://poki.com"
    },
    {
      "id": "F004",
      "severity": "high",
      "confidence": "high",
      "summary": "A consent interstitial obscures the complete game catalogue on every clean first load.",
      "evidence": "Desktop and mobile screenshots show a modal-like consent panel plus blurred backdrop covering the primary content before any user action.",
      "suggestedFix": "Use a compact, non-obscuring consent surface where legally possible, preserve equally prominent choices, and avoid blocking browsing before optional processing begins.",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home.png",
        "evidence/home-mobile-dismissed.png"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://poki.com"
    },
    {
      "id": "F005",
      "severity": "medium",
      "confidence": "high",
      "summary": "The consent overlay is custom notification-stack markup rather than a semantic dialog.",
      "evidence": "DOM inspection found no dialog, role=dialog, or popover for the full-screen consent experience; the Lighthouse DOM path identifies nested div/button custom chrome.",
      "suggestedFix": "Implement modal consent with <dialog> and correct focus management, or a non-modal semantic region if the content need not be blocked.",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-lighthouse.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://poki.com"
    },
    {
      "id": "F006",
      "severity": "high",
      "confidence": "high",
      "summary": "The consent surface breaks narrow-screen reflow.",
      "evidence": "At 360x800, the layout primitive reports scrollWidth/innerWidth 644px versus a 360px visual viewport, producing 284px horizontal overflow; the screenshot clips copy and controls.",
      "suggestedFix": "Remove the dialog minimum width, constrain it with max-inline-size: calc(100vi - 2rem), use logical padding, and stack actions at narrow container sizes.",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-mobile-dismissed-layout.json",
        "evidence/home-mobile-dismissed.png"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://poki.com"
    },
    {
      "id": "F007",
      "severity": "low",
      "confidence": "high",
      "summary": "Reusable grid, navigation and consent components rely on viewport styles rather than container-aware adaptation.",
      "evidence": "Across the homepage, category and game DOM/CSS captures, no @container rule was found; the consent component consequently overflows its narrow containing viewport.",
      "suggestedFix": "Give reusable components containment and use @container rules for action stacking and tile/grid changes, retaining viewport fallbacks where needed.",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/category-dom.json",
        "evidence/game-dom.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://poki.com"
    },
    {
      "id": "F008",
      "severity": "high",
      "confidence": "high",
      "summary": "Cold-load performance misses the Core Web Vitals loading bar, especially on the main landing experience.",
      "evidence": "Lighthouse measured LCP 6.9s, CLS 0.149 and performance 66 on the homepage; the game trace independently measured LCP 4.16s.",
      "suggestedFix": "Prioritize the actual LCP asset, reduce critical dependency depth, reserve all late UI space, and defer game/runtime work until it is needed.",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/game-trace-summary.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://poki.com"
    },
    {
      "id": "F009",
      "severity": "medium",
      "confidence": "high",
      "summary": "The homepage shifts visibly during load.",
      "evidence": "Lighthouse measured CLS 0.149 and failed its layout-shift-culprits insight; the independent mobile layout observer also saw a shift of 0.068 before dismissal.",
      "suggestedFix": "Reserve dimensions for notification and image regions, stabilize font fallbacks, and avoid inserting consent chrome after the initial layout.",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "visual-stability",
      "guidanceId": "visually-stable-font-fallbacks",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-mobile-layout.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://poki.com"
    },
    {
      "id": "F010",
      "severity": "high",
      "confidence": "high",
      "summary": "The representative game route blocks the main thread during startup.",
      "evidence": "The game trace recorded 8 long tasks, a 338.91ms longest task and 827.28ms total blocking time over an 11.4s trace.",
      "suggestedFix": "Split game startup into prioritized chunks, yield between initialization phases, and move suitable parsing/asset work off the main thread.",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "guidanceId": "break-up-long-tasks",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/game-trace-summary.json",
        "evidence/game-trace.json"
      ],
      "effort": "large",
      "pathId": "game",
      "url": "https://poki.com/en/g/subway-surfers"
    },
    {
      "id": "F011",
      "severity": "medium",
      "confidence": "high",
      "summary": "The loading dependency surface is broad and delays readiness.",
      "evidence": "The homepage requests 17 stylesheets and 81 scripts; the game route requests 427 resources including 134 scripts. HAR summaries identify 10 parser-inserted very-high-priority stylesheets on each template.",
      "suggestedFix": "Consolidate critical CSS, defer route-specific styles and scripts, and audit priority hints so only resources needed for the current viewport compete early.",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-script-priority",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/game-summary.json"
      ],
      "effort": "large",
      "pathId": "game",
      "url": "https://poki.com/en/g/subway-surfers"
    },
    {
      "id": "F012",
      "severity": "medium",
      "confidence": "high",
      "summary": "Several controls and game images expose inconsistent or missing accessible names.",
      "evidence": "Lighthouse found three label/content-name mismatches (Search, company page, language), while the game image audit found two images without alt text.",
      "suggestedFix": "Make each visible label part of its accessible name, label the search input directly, and use meaningful alt text or empty alt for decorative game backgrounds.",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/game-images.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://poki.com"
    },
    {
      "id": "F013",
      "severity": "medium",
      "confidence": "high",
      "summary": "Consent links and actions fail WCAG text contrast.",
      "evidence": "Lighthouse measured 2.91:1 for “here”, “More Options”, “Accept” and “Reject” in the consent panel, below 4.5:1.",
      "suggestedFix": "Darken the action blue or adjust foreground/background tokens to at least 4.5:1, then retest all consent states.",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-lighthouse.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://poki.com"
    },
    {
      "id": "F014",
      "severity": "low",
      "confidence": "high",
      "summary": "The homepage emits an avoidable console/network error on load.",
      "evidence": "Lighthouse reports a failed 401 request to https://poki-auth.poki.com/sessions/whoami as a browser console error.",
      "suggestedFix": "Treat unauthenticated state as an expected response without a failing request, or avoid calling whoami until authentication state requires it.",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-summary.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://poki.com"
    },
    {
      "id": "F015",
      "severity": "medium",
      "confidence": "high",
      "summary": "The game template includes unsized and inaccessible image assets.",
      "evidence": "The game image audit found 15 images without width/height, including 960px game backgrounds, plus 7 oversized images; this weakens asset structure and shift prevention.",
      "suggestedFix": "Add intrinsic width/height or aspect-ratio to all content and background image elements and retain CDN responsive transforms.",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/game-images.json",
        "evidence/game-dom.json"
      ],
      "effort": "medium",
      "pathId": "game",
      "url": "https://poki.com/en/g/subway-surfers"
    },
    {
      "id": "F016",
      "severity": "medium",
      "confidence": "high",
      "summary": "The main document cannot use the back/forward cache.",
      "evidence": "Lighthouse reports three BFCache failure reasons, led by Cache-Control: no-store on the main resource and a no-store JavaScript request.",
      "suggestedFix": "Remove no-store from public catalogue documents where safe and isolate truly sensitive responses so back navigation can restore instantly.",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-lighthouse.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://poki.com"
    },
    {
      "id": "F017",
      "severity": "low",
      "confidence": "high",
      "summary": "The consent privacy link uses non-descriptive link text.",
      "evidence": "Lighthouse SEO reports one link whose entire text is “here”, pointing to /en/privacy.",
      "suggestedFix": "Replace “here” with a self-contained label such as “Read Poki’s cookie and privacy details”.",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/home-lighthouse.json"
      ],
      "effort": "trivial",
      "pathId": "home",
      "url": "https://poki.com"
    },
    {
      "id": "F018",
      "severity": "medium",
      "confidence": "high",
      "summary": "Browser-enforced defenses are incomplete.",
      "evidence": "Headers include HSTS, nosniff and frame-ancestors, but Permissions-Policy is absent; the CSP only declares frame-ancestors and provides no script/style/object restriction.",
      "suggestedFix": "Deploy a tested CSP beyond frame-ancestors and add a least-privilege Permissions-Policy for sensors, camera, microphone and other capabilities.",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/headers.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://poki.com"
    },
    {
      "id": "F019",
      "severity": "medium",
      "confidence": "high",
      "summary": "The manifest advertises an app-like experience without a registered service worker or offline cache.",
      "evidence": "The manifest has a start_url and app icons, but the live PWA probe found zero service-worker registrations and zero Cache Storage entries.",
      "suggestedFix": "Register a service worker with a small offline shell/fallback and cache only proportionate catalogue assets; verify flaky-network recovery.",
      "principleId": "be-resilient",
      "principleCheckId": "offline-and-installable",
      "guidanceId": "detect-initial-visibility-state",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/pwa-probe.json",
        "evidence/manifest.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://poki.com"
    },
    {
      "id": "F020",
      "severity": "medium",
      "confidence": "high",
      "summary": "The game route eagerly transfers a large runtime before the user starts playing.",
      "evidence": "The game HAR recorded 427 requests and 9.73MB transferred in seven seconds, including 8.05MB of fetch/XHR and a 1.95MB environment bundle.",
      "suggestedFix": "Gate full game bundles behind explicit play intent, load an idle/minimal bundle first, and stage audio, characters and environment assets by gameplay need.",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "deprioritize-background-fetches",
      "guidanceCategory": "modern-web-guidance",
      "artifacts": [
        "evidence/game-summary.json",
        "evidence/game.har"
      ],
      "effort": "large",
      "pathId": "game",
      "url": "https://poki.com/en/g/subway-surfers"
    }
  ],
  "taskList": [
    {
      "id": "T001",
      "title": "Fix consent dialog mobile reflow, semantics and contrast while reducing content obstruction",
      "priority": 1,
      "findingIds": [
        "F004",
        "F005",
        "F006",
        "F003",
        "F013"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T002",
      "title": "Bring homepage and game startup into Core Web Vitals range",
      "priority": 2,
      "findingIds": [
        "F008",
        "F009",
        "F010",
        "F011"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T003",
      "title": "Gate full game downloads behind explicit play intent",
      "priority": 3,
      "findingIds": [
        "F020"
      ],
      "guidanceId": "deprioritize-background-fetches",
      "status": "open"
    },
    {
      "id": "T004",
      "title": "Correct accessible names and image alternatives",
      "priority": 4,
      "findingIds": [
        "F012",
        "F015"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T005",
      "title": "Respect dark mode, reduced motion and high contrast",
      "priority": 5,
      "findingIds": [
        "F001",
        "F002",
        "F003"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T006",
      "title": "Strengthen CSP and add Permissions-Policy",
      "priority": 6,
      "findingIds": [
        "F018"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T007",
      "title": "Add service-worker-backed offline fallback",
      "priority": 7,
      "findingIds": [
        "F019"
      ],
      "guidanceId": "detect-initial-visibility-state",
      "status": "open"
    },
    {
      "id": "T008",
      "title": "Restore BFCache and remove expected unauthenticated console noise",
      "priority": 8,
      "findingIds": [
        "F014",
        "F016"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T009",
      "title": "Make reusable components container-responsive",
      "priority": 9,
      "findingIds": [
        "F007"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    },
    {
      "id": "T010",
      "title": "Replace generic privacy link text",
      "priority": 10,
      "findingIds": [
        "F017"
      ],
      "guidanceId": "html",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 4,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-23T23-43-24-048Z"
}
