{
  "url": "https://an1.com",
  "auditedAt": "2026-07-23T04:23:13.420Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete representative audit of seven paths/templates; source code, authenticated/account flows, actual APK installation, Russian route parity, and every pagination/category instance were not covered.",
  "page": {
    "appType": "mpa",
    "framework": "Server-rendered custom/PHP templates with legacy jQuery/Flickity-style scripts",
    "notes": "Public Android game/app catalog plus editorial content. Templates sampled: home, listing, game detail/download, news listing, article, search, and unknown route."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "lighthouse",
    "axe-core",
    "robots/sitemap/manifest fetch"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "adapt-scrollbar-to-contrast-preferences",
    "same-document-transitions",
    "scrollability-affordance-hints",
    "declarative-dialog-popover-control",
    "fluid-scaling",
    "size-aware-styling",
    "forms",
    "performance",
    "optimize-image-priority",
    "identify-heavy-scripts",
    "improve-text-layout-and-legibility",
    "html",
    "security",
    "privacy",
    "conditional-async-dependencies",
    "translator",
    "declarative-button-actions",
    "deliver-optimized-decorative-images",
    "webmcp",
    "manage-recurring-intervals",
    "light-dismiss-a-dialog"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/404-mobile.png",
      "caption": "404 mobile",
      "findingIds": [
        "F11",
        "F26"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/404-probe.json",
      "caption": "404 probe",
      "findingIds": [
        "F11"
      ]
    },
    {
      "type": "other",
      "path": "evidence/404-status.txt",
      "caption": "404 status",
      "findingIds": [
        "F11",
        "F20",
        "F26"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/article-layout.json",
      "caption": "article layout",
      "findingIds": [
        "F05"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/article-mobile.png",
      "caption": "article mobile",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "other",
      "path": "evidence/axe-home.json",
      "caption": "axe home",
      "findingIds": [
        "F02",
        "F04",
        "F14",
        "F15"
      ]
    },
    {
      "type": "other",
      "path": "evidence/controls-metrics.json",
      "caption": "controls metrics",
      "findingIds": [
        "F10",
        "F16",
        "F19"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies",
      "findingIds": [
        "F22"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-after-deny.png",
      "caption": "detail after deny",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/detail-flow-probe.json",
      "caption": "detail flow probe",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/detail-overlay-probe.json",
      "caption": "detail overlay probe",
      "findingIds": [
        "F08",
        "F23"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-crawler.png",
      "caption": "discoverability crawler",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-rendered.png",
      "caption": "discoverability rendered",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability.json",
      "caption": "discoverability",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/game-detail-layout.json",
      "caption": "game detail layout",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/game-detail-mobile.png",
      "caption": "game detail mobile",
      "findingIds": [
        "F07",
        "F23"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/games-layout.json",
      "caption": "games layout",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/games-links.json",
      "caption": "games links",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/games-mobile.png",
      "caption": "games mobile",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance-list.json",
      "caption": "guidance list",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance-retrieved.md",
      "caption": "guidance retrieved",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers",
      "findingIds": [
        "F22",
        "F24"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.heapsnapshot",
      "caption": "heap baseline",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.heapsnapshot",
      "caption": "heap post",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-light.png",
      "caption": "home light",
      "findingIds": [
        "F15"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "findingIds": [
        "F16"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-probe.json",
      "caption": "home probe",
      "findingIds": [
        "F03",
        "F04",
        "F06",
        "F08",
        "F27"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F12",
        "F13",
        "F28"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": []
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace",
      "findingIds": []
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "images",
      "findingIds": [
        "F12",
        "F17",
        "F28"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-details.txt",
      "caption": "lighthouse details",
      "findingIds": [
        "F14",
        "F18"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "lighthouse home",
      "findingIds": [
        "F10",
        "F12",
        "F13",
        "F18",
        "F19"
      ]
    },
    {
      "type": "other",
      "path": "evidence/manifest.json",
      "caption": "manifest",
      "findingIds": [
        "F25"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/meta-article.json",
      "caption": "meta article",
      "findingIds": [
        "F20",
        "F21"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/meta-detail.json",
      "caption": "meta detail",
      "findingIds": [
        "F21"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/meta-games.json",
      "caption": "meta games",
      "findingIds": [
        "F25",
        "F27"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/news-layout.json",
      "caption": "news layout",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/news-links.json",
      "caption": "news links",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/news-mobile.png",
      "caption": "news mobile",
      "findingIds": [
        "F05"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/preferences-focus-probe.json",
      "caption": "preferences focus probe",
      "findingIds": [
        "F01",
        "F02",
        "F09"
      ]
    },
    {
      "type": "other",
      "path": "evidence/robots-headers.txt",
      "caption": "robots headers",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/search-dom.json",
      "caption": "search dom",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/search-mobile.png",
      "caption": "search mobile",
      "findingIds": [
        "F09"
      ]
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "sitemap",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers",
      "findingIds": [
        "F23"
      ]
    }
  ],
  "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": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Explicit light and dark captures re-tint the header, body, cards and text while preserving usability.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "Under prefers-reduced-motion: reduce, the CSS probe found one rule that disables .btn transitions only below 992px, while modal, app-panel and other transitions remain defined.",
      "findingIds": [
        "F01"
      ],
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/preferences-focus-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "The prefers-contrast probe matched the emulated preference but found no prefers-contrast or forced-colors rules; axe also measured CTA contrast as low as 2.04:1.",
      "findingIds": [
        "F02"
      ],
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/preferences-focus-probe.json",
        "evidence/axe-home.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "DOM/CSS inspection found no view-transition CSS and the MPA does not declare cross-document view transitions, so catalog-to-detail navigation swaps instantly.",
      "findingIds": [
        "F03"
      ],
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-path recon.",
      "evidence": "No scroll-linked animation or scrollytelling surface exists on the representative templates.",
      "reason": "No scroll-linked animation or scrollytelling surface exists on the representative templates."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "The homepage ships flickity.pkgd.min.js and absolutely positions carousel slides; no scroll-snap evidence was found. Hidden slides also retain focusable descendants.",
      "findingIds": [
        "F04"
      ],
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/axe-home.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "Mobile screenshots show long 3,000+ px listing/article pages, while CSS inspection found no scroll-state query or progress indicator.",
      "findingIds": [
        "F05"
      ],
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/news-mobile.png",
        "evidence/article-layout.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "DOM/CSS inspection shows custom fixed .modal and manually positioned .submenu rules, with no anchor-name, position-anchor, or position-try usage.",
      "findingIds": [
        "F06"
      ],
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Breadcrumbs on detail pages, active navigation labels, strong category cards and clear search results preserve orientation.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "Mobile captures of the game detail and article show a near-full-viewport consent dialog before any page content can be read; the persistent AN1 Store panel remains behind it.",
      "findingIds": [
        "F07"
      ],
      "pathIds": [
        "game-detail"
      ],
      "artifacts": [
        "evidence/game-detail-mobile.png",
        "evidence/article-mobile.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "The detail probe found .fc-consent-root and .fc-dialog-overlay with no dialog element, role=dialog or aria-modal; site search/menu overlays also use custom .modal divs.",
      "findingIds": [
        "F08"
      ],
      "pathIds": [
        "game-detail"
      ],
      "artifacts": [
        "evidence/detail-overlay-probe.json",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Outside the separately reported consent/app panel, listing and article templates devote the viewport primarily to content with restrained framing.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Layout captures on home, listing, detail, news and article at 360×800 all report scrollWidth=clientWidth=360 and zero horizontal overflow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "CSS inspection found zero @container rules; game cards are reused in carousels, grids and search but are sized through global media queries.",
      "findingIds": [
        "F09"
      ],
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/preferences-focus-probe.json",
        "evidence/search-mobile.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "The controls probe measured each 1–5 rating link at 20×20 CSS px, and Lighthouse target-size failed.",
      "findingIds": [
        "F10"
      ],
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/controls-metrics.json",
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "The first viewport clearly states Games catalog and presents All Games / Mod Games actions; listing/search/detail headings are specific.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "After choosing Do not consent, the detail page exposes a clear DOWNLOAD (320.5MB) link to the next download step.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "The deliberately unknown path returned HTTP 200 and rendered the homepage with no error message, retry, search, or route recovery state.",
      "findingIds": [
        "F11"
      ],
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/404-status.txt",
        "evidence/404-mobile.png",
        "evidence/404-probe.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Lighthouse measured LCP 2.4s, CLS 0 and TBT 0ms (performance 0.98); trace measured LCP 564ms and zero blocking time in the local run.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Layout observers measured CLS 0 on home/listings and 0.019 on detail/article, within the good range.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Trace and layout observers found zero long tasks and 0ms total blocking time.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "Lighthouse estimated 402 KiB image-delivery savings; the image probe found 66/67 legacy-format images, 24 without srcset, 25 oversized, and 66 without explicit dimensions.",
      "findingIds": [
        "F12"
      ],
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse-home.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "Lighthouse estimated 47 KiB unused JavaScript and 16 KiB unused CSS; HAR shows a 62.7 KiB legacy general bundle plus Flickity on the initial path.",
      "findingIds": [
        "F13"
      ],
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "axe found focusable links inside aria-hidden carousel slides and no main landmark; Lighthouse accessibility scored 0.85.",
      "findingIds": [
        "F14"
      ],
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/lighthouse-details.txt"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "axe measured white-on-green CTA contrast at 2.04:1 and white-on-orange at 2.67:1, below 4.5:1 for the rendered text sizes.",
      "findingIds": [
        "F15"
      ],
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/home-light.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Direct DOM, visual, layout, metadata, or workflow evidence across the representative paths showed the expected outcome for structure-and-focus.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Screenshots show readable Montserrat text, comfortable line lengths on content pages, and no clipping at 360px.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "Lighthouse target-size failed and the live controls probe found multiple 20×20 rating targets, despite otherwise successful 360px reflow.",
      "findingIds": [
        "F16"
      ],
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/controls-metrics.json",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Lighthouse errors-in-console audit passed with an empty item list.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "The images primitive reported 66 of 67 img elements without width/height attributes, weakening the document’s intrinsic layout contract even though observed CLS was currently low.",
      "findingIds": [
        "F17"
      ],
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/home-mobile-layout.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "Lighthouse reported one back/forward-cache failure, so returning from a game detail can require a fresh page load.",
      "findingIds": [
        "F18"
      ],
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-details.txt"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Homepage, games, game detail and article probes all expose descriptive, route-specific titles and meta descriptions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/discoverability.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "Lighthouse SEO found 12 links without descriptive text; the card ratings use links labelled only 1–5 and generic MORE links appear in listings.",
      "findingIds": [
        "F19"
      ],
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/controls-metrics.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "A prominently linked news article declares robots=noindex,nofollow, while an unknown URL returns 200 with homepage content. Both send misleading indexing signals.",
      "findingIds": [
        "F20"
      ],
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/meta-article.json",
        "evidence/404-status.txt",
        "evidence/sitemap.xml"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "The detail and article probes found no JSON-LD, despite representing downloadable software and a news article; Open Graph is present but does not replace schema.org entities.",
      "findingIds": [
        "F21"
      ],
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/meta-detail.json",
        "evidence/meta-article.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "Headers evidence found no CSP or X-Content-Type-Options; both language and PHPSESSID cookies were not Secure and used SameSite=None despite HTTPS.",
      "findingIds": [
        "F22"
      ],
      "pathIds": [
        "game-detail"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "The first-visit consent dialog states that identifiers and device data may be processed by 210 partners; denial is possible, but the default third-party surface is disproportionate to a download catalog.",
      "findingIds": [
        "F23"
      ],
      "pathIds": [
        "game-detail"
      ],
      "artifacts": [
        "evidence/game-detail-mobile.png",
        "evidence/detail-overlay-probe.json",
        "evidence/trackers.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-path recon.",
      "evidence": "No authentication flow or browser permission request exists on the audited public catalog paths.",
      "reason": "No authentication flow or browser permission request exists on the audited public catalog paths."
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "The headers primitive found no clickjacking protection, Referrer-Policy, Permissions-Policy, CSP frame-ancestors, or nosniff; only HSTS was present.",
      "findingIds": [
        "F24"
      ],
      "pathIds": [
        "game-detail"
      ],
      "artifacts": [
        "evidence/headers.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Discoverability evidence found 100% rendered-word coverage in raw HTML, title/H1/description present, and no empty JS shell.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Representative menu/search/detail states rendered within 360px without clipping; denying consent restored the underlying detail action.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "A manifest with start_url and standalone display is present, but probes found no controlling service worker, so this app-like catalog has no verified offline fallback.",
      "findingIds": [
        "F25"
      ],
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/manifest.json",
        "evidence/meta-games.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "The unknown route returned 200 and the normal homepage rather than a not-found state, making broken links look successful and offering no recovery context.",
      "findingIds": [
        "F26"
      ],
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/404-status.txt",
        "evidence/404-mobile.png"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "The site links English and Russian variants and sets lang=en, but captured CSS extensively uses left/right, margin-left and border-left with no logical-property strategy evident.",
      "findingIds": [
        "F27"
      ],
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/meta-games.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-path recon.",
      "evidence": "Representative paths expose no user-facing dates, currencies, durations, or locale-sensitive numeric input requiring formatting.",
      "reason": "Representative paths expose no user-facing dates, currencies, durations, or locale-sensitive numeric input requiring formatting."
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-path recon.",
      "evidence": "Representative paths expose no events, appointments, or stored user times for which time-zone/DST handling applies.",
      "reason": "Representative paths expose no events, appointments, or stored user times for which time-zone/DST handling applies."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Consent presents Consent and Do not consent with equal visual weight, plus Manage options; the app panel is dismissible.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "The representative search flow accepts a plain query and returns a clear FOUND 14 APPS state without premature validation or blame.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-path recon.",
      "evidence": "The only input is a search box; address, payment, sign-in and sign-up autofill tokens do not apply.",
      "reason": "The only input is a search box; address, payment, sign-in and sign-up autofill tokens do not apply."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-path recon.",
      "evidence": "No checkout, subscription, account, or authentication flow exists on the audited public paths.",
      "reason": "No checkout, subscription, account, or authentication flow exists on the audited public paths."
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted evidence review using the linked artifacts.",
      "evidence": "The image audit found 66 legacy PNG/JPG assets, 25 oversized renderings and 24 responsive images without srcset; images accounted for 598 KiB of the 786 KiB homepage transfer.",
      "findingIds": [
        "F28"
      ],
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Trace found no long tasks or persistent work and HAR recorded only 60 requests / 786 KiB, proportionate aside from the separately reported image optimization gap.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Homepage HAR found only 4 third-party requests / 6.4 KiB and no autoplay audio/video. Privacy breadth is reported separately.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-path recon.",
      "evidence": "Agent-facing capabilities are emerging and not an expressed surface of this public download/editorial catalog.",
      "reason": "Agent-facing capabilities are emerging and not an expressed surface of this public download/editorial catalog."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-path recon.",
      "evidence": "No user task on the representative paths requires on-device inference; absence is not a failure.",
      "reason": "No user task on the representative paths requires on-device inference; absence is not a failure."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "After ten attempted open/close menu cycles, retained summary growth was modest: +791 nodes and +108,550 bytes (~1.8%), with no evidence of unbounded growth.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Baseline heap summary reported 99,551 nodes and 6.08 MB self size for a 1,504-node media catalog, proportionate to the rendered page.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct evidence review across planned representative paths.",
      "evidence": "Before/after heap summaries showed only modest bounded growth; no Detached* constructor spike or accumulating listener/timer evidence was observed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot"
      ]
    }
  ],
  "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",
        "F08"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F09",
        "F10"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F12",
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F14",
        "F15",
        "F16"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F17",
        "F18"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F19",
        "F20",
        "F21"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F22",
        "F23",
        "F24"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F25",
        "F26"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "Agent-facing capabilities are emerging and not an expressed surface of this public download/editorial catalog. No user task on the representative paths requires on-device inference; absence is not a failure."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and primary catalog entry; represents global navigation, hero, carousels, theme and baseline performance.",
      "url": "https://an1.com/",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "prefers-color-scheme: light/dark",
        "prefers-reduced-motion: reduce",
        "prefers-contrast: more",
        "no JavaScript crawler"
      ],
      "result": "issues"
    },
    {
      "id": "games",
      "description": "Games listing; represents the high-volume category/list template.",
      "url": "https://an1.com/games/",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "game-detail",
      "description": "Game detail and download journey; represents product detail, consent interruption and primary conversion.",
      "url": "https://an1.com/7540-soccer-manager-2026-mod.html",
      "conditions": [
        "viewport: 360x800",
        "first visit consent",
        "deny consent then inspect download action"
      ],
      "result": "issues"
    },
    {
      "id": "news",
      "description": "News listing; represents editorial index cards.",
      "url": "https://an1.com/news/",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "News article; represents long-form content and article indexing metadata.",
      "url": "https://an1.com/7108-epic-games-announced-a-phone-app-for-creating-3d-models.html",
      "conditions": [
        "viewport: 360x800",
        "first visit consent"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Search results for “minecraft”; represents the primary search flow and result state.",
      "url": "https://an1.com/?story=minecraft&do=search&subaction=search",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "pass"
    },
    {
      "id": "not-found",
      "description": "Unknown URL; tests HTTP/error recovery and soft-404 behavior.",
      "url": "https://an1.com/this-path-should-not-exist-web-uplift",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "pathId": "home",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Reduced-motion support is only partial",
      "evidence": "Under prefers-reduced-motion: reduce, the CSS probe found one rule that disables .btn transitions only below 992px, while modal, app-panel and other transitions remain defined.",
      "suggestedFix": "Apply a global reduced-motion override for non-essential transitions and stop auto-advancing/carousel motion when reduction is requested.",
      "effort": "small",
      "artifacts": [
        "evidence/preferences-focus-probe.json"
      ]
    },
    {
      "id": "F02",
      "pathId": "home",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-contrast",
      "guidanceId": "adapt-scrollbar-to-contrast-preferences",
      "severity": "medium",
      "confidence": "high",
      "summary": "No high-contrast or forced-colors adaptation",
      "evidence": "The prefers-contrast probe matched the emulated preference but found no prefers-contrast or forced-colors rules; axe also measured CTA contrast as low as 2.04:1.",
      "suggestedFix": "Add forced-colors and prefers-contrast styles that preserve visible boundaries and use system colors for controls.",
      "effort": "small",
      "artifacts": [
        "evidence/preferences-focus-probe.json",
        "evidence/axe-home.json"
      ]
    },
    {
      "id": "F03",
      "pathId": "home",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "severity": "low",
      "confidence": "high",
      "summary": "Route changes are abrupt",
      "evidence": "DOM/CSS inspection found no view-transition CSS and the MPA does not declare cross-document view transitions, so catalog-to-detail navigation swaps instantly.",
      "suggestedFix": "Add progressive cross-document View Transitions and respect reduced motion.",
      "effort": "small",
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "id": "F04",
      "pathId": "home",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "physical-gestures",
      "guidanceId": "accessibility",
      "severity": "low",
      "confidence": "high",
      "summary": "Carousel interaction relies on custom Flickity positioning",
      "evidence": "The homepage ships flickity.pkgd.min.js and absolutely positions carousel slides; no scroll-snap evidence was found. Hidden slides also retain focusable descendants.",
      "suggestedFix": "Prefer a native overflow carousel with scroll-snap and platform scrolling, retaining a lightweight fallback only where needed.",
      "effort": "small",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/axe-home.json"
      ]
    },
    {
      "id": "F05",
      "pathId": "home",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "scrollability-affordance-hints",
      "severity": "low",
      "confidence": "high",
      "summary": "Long pages have static chrome with no scroll-state feedback",
      "evidence": "Mobile screenshots show long 3,000+ px listing/article pages, while CSS inspection found no scroll-state query or progress indicator.",
      "suggestedFix": "Use a shrinking sticky header or article/list progress affordance driven by CSS scroll-state/scroll progress.",
      "effort": "small",
      "artifacts": [
        "evidence/news-mobile.png",
        "evidence/article-layout.json"
      ]
    },
    {
      "id": "F06",
      "pathId": "home",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "anchored-positioning",
      "guidanceId": "declarative-dialog-popover-control",
      "severity": "low",
      "confidence": "high",
      "summary": "Menus and overlays use legacy manual positioning",
      "evidence": "DOM/CSS inspection shows custom fixed .modal and manually positioned .submenu rules, with no anchor-name, position-anchor, or position-try usage.",
      "suggestedFix": "Use popover plus CSS anchor positioning and fallback positions for attached menus and transient UI.",
      "effort": "small",
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "id": "F07",
      "pathId": "game-detail",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "severity": "high",
      "confidence": "high",
      "summary": "Consent UI blocks the entire detail and article first view",
      "evidence": "Mobile captures of the game detail and article show a near-full-viewport consent dialog before any page content can be read; the persistent AN1 Store panel remains behind it.",
      "suggestedFix": "Use a compact, content-preserving consent surface where legally possible, keep reject as prominent as accept, and avoid stacking it with the app-install panel.",
      "effort": "medium",
      "artifacts": [
        "evidence/game-detail-mobile.png",
        "evidence/article-mobile.png"
      ]
    },
    {
      "id": "F08",
      "pathId": "game-detail",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "severity": "medium",
      "confidence": "high",
      "summary": "Site overlays are custom div-based widgets",
      "evidence": "The detail probe found .fc-consent-root and .fc-dialog-overlay with no dialog element, role=dialog or aria-modal; site search/menu overlays also use custom .modal divs.",
      "suggestedFix": "Use native dialog for modal consent and popover for transient search/menu UI, with declarative dismissal and focus management.",
      "effort": "small",
      "artifacts": [
        "evidence/detail-overlay-probe.json",
        "evidence/home-probe.json"
      ]
    },
    {
      "id": "F09",
      "pathId": "home",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "severity": "low",
      "confidence": "high",
      "summary": "Reusable cards adapt only at viewport breakpoints",
      "evidence": "CSS inspection found zero @container rules; game cards are reused in carousels, grids and search but are sized through global media queries.",
      "suggestedFix": "Give reusable card/list regions containment and use size container queries for local adaptations.",
      "effort": "small",
      "artifacts": [
        "evidence/preferences-focus-probe.json",
        "evidence/search-mobile.png"
      ]
    },
    {
      "id": "F10",
      "pathId": "home",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Rating targets are too small for touch",
      "evidence": "The controls probe measured each 1–5 rating link at 20×20 CSS px, and Lighthouse target-size failed.",
      "suggestedFix": "Make each rating choice at least 44×44 CSS px with adequate spacing and retain a visible focus indicator.",
      "effort": "small",
      "artifacts": [
        "evidence/controls-metrics.json",
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "id": "F11",
      "pathId": "not-found",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-system-state-and-recovery",
      "guidanceId": "html",
      "severity": "high",
      "confidence": "high",
      "summary": "Unknown URLs silently become the homepage",
      "evidence": "The deliberately unknown path returned HTTP 200 and rendered the homepage with no error message, retry, search, or route recovery state.",
      "suggestedFix": "Return a real 404 status and a clear not-found page with search, home, and category recovery actions.",
      "effort": "medium",
      "artifacts": [
        "evidence/404-status.txt",
        "evidence/404-mobile.png",
        "evidence/404-probe.json"
      ]
    },
    {
      "id": "F12",
      "pathId": "home",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-image-priority",
      "severity": "medium",
      "confidence": "high",
      "summary": "Image delivery leaves substantial savings",
      "evidence": "Lighthouse estimated 402 KiB image-delivery savings; the image probe found 66/67 legacy-format images, 24 without srcset, 25 oversized, and 66 without explicit dimensions.",
      "suggestedFix": "Generate AVIF/WebP responsive variants, add srcset/sizes, reserve intrinsic dimensions, and prioritize only the LCP image.",
      "effort": "small",
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse-home.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "id": "F13",
      "pathId": "home",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "severity": "medium",
      "confidence": "high",
      "summary": "Unused CSS and JavaScript ship on the homepage",
      "evidence": "Lighthouse estimated 47 KiB unused JavaScript and 16 KiB unused CSS; HAR shows a 62.7 KiB legacy general bundle plus Flickity on the initial path.",
      "suggestedFix": "Split template-specific CSS/JS, remove unused legacy code, and load carousel code only when the component exists.",
      "effort": "small",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "id": "F14",
      "pathId": "home",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Carousel and landmark semantics exclude keyboard and assistive-tech users",
      "evidence": "axe found focusable links inside aria-hidden carousel slides and no main landmark; Lighthouse accessibility scored 0.85.",
      "suggestedFix": "Remove hidden slides from the tab order, expose coherent carousel controls/status, and wrap primary content in main.",
      "effort": "medium",
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/lighthouse-details.txt"
      ]
    },
    {
      "id": "F15",
      "pathId": "home",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Primary CTA text fails WCAG contrast",
      "evidence": "axe measured white-on-green CTA contrast at 2.04:1 and white-on-orange at 2.67:1, below 4.5:1 for the rendered text sizes.",
      "suggestedFix": "Darken CTA fills or use dark text so every normal-size label reaches at least 4.5:1 in light and dark themes.",
      "effort": "medium",
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/home-light.png"
      ]
    },
    {
      "id": "F16",
      "pathId": "home",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "severity": "medium",
      "confidence": "high",
      "summary": "Small controls undermine mobile accessibility",
      "evidence": "Lighthouse target-size failed and the live controls probe found multiple 20×20 rating targets, despite otherwise successful 360px reflow.",
      "suggestedFix": "Increase compact controls and rating choices to accessible target sizes without breaking narrow-screen reflow.",
      "effort": "small",
      "artifacts": [
        "evidence/controls-metrics.json",
        "evidence/home-mobile.png"
      ]
    },
    {
      "id": "F17",
      "pathId": "home",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Most images omit intrinsic dimensions",
      "evidence": "The images primitive reported 66 of 67 img elements without width/height attributes, weakening the document’s intrinsic layout contract even though observed CLS was currently low.",
      "suggestedFix": "Emit width and height (or equivalent aspect-ratio) for every content image and preserve the correct ratio in responsive CSS.",
      "effort": "small",
      "artifacts": [
        "evidence/images.json",
        "evidence/home-mobile-layout.json"
      ]
    },
    {
      "id": "F18",
      "pathId": "home",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "severity": "low",
      "confidence": "high",
      "summary": "The page is not eligible for BFCache",
      "evidence": "Lighthouse reported one back/forward-cache failure, so returning from a game detail can require a fresh page load.",
      "suggestedFix": "Inspect the Lighthouse BFCache reason and remove unload handlers or other avoidable blockers.",
      "effort": "small",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-details.txt"
      ]
    },
    {
      "id": "F19",
      "pathId": "article",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Many links have non-descriptive text",
      "evidence": "Lighthouse SEO found 12 links without descriptive text; the card ratings use links labelled only 1–5 and generic MORE links appear in listings.",
      "suggestedFix": "Give links purpose-specific accessible text; use buttons for in-page rating actions and descriptive pagination/category labels.",
      "effort": "small",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/controls-metrics.json"
      ]
    },
    {
      "id": "F20",
      "pathId": "article",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "severity": "high",
      "confidence": "high",
      "summary": "Public article indexing and missing-route signals conflict",
      "evidence": "A prominently linked news article declares robots=noindex,nofollow, while an unknown URL returns 200 with homepage content. Both send misleading indexing signals.",
      "suggestedFix": "Remove accidental noindex from public articles and return 404 for unknown URLs; keep sitemap, canonical and robots signals consistent.",
      "effort": "medium",
      "artifacts": [
        "evidence/meta-article.json",
        "evidence/404-status.txt",
        "evidence/sitemap.xml"
      ]
    },
    {
      "id": "F21",
      "pathId": "article",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Product and article pages omit structured data",
      "evidence": "The detail and article probes found no JSON-LD, despite representing downloadable software and a news article; Open Graph is present but does not replace schema.org entities.",
      "suggestedFix": "Add accurate SoftwareApplication and NewsArticle JSON-LD matching visible content and existing canonical/Open Graph metadata.",
      "effort": "small",
      "artifacts": [
        "evidence/meta-detail.json",
        "evidence/meta-article.json"
      ]
    },
    {
      "id": "F22",
      "pathId": "game-detail",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Core XSS defenses and cookie flags are missing",
      "evidence": "Headers evidence found no CSP or X-Content-Type-Options; both language and PHPSESSID cookies were not Secure and used SameSite=None despite HTTPS.",
      "suggestedFix": "Deploy a restrictive CSP, nosniff, and mark first-party cookies Secure with Lax/Strict SameSite unless cross-site use is essential.",
      "effort": "medium",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ]
    },
    {
      "id": "F23",
      "pathId": "game-detail",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "Consent surface proposes data sharing with 210 partners",
      "evidence": "The first-visit consent dialog states that identifiers and device data may be processed by 210 partners; denial is possible, but the default third-party surface is disproportionate to a download catalog.",
      "suggestedFix": "Reduce vendors to those essential for the service, avoid personalized processing by default, and document/batch the minimal analytics retained.",
      "effort": "medium",
      "artifacts": [
        "evidence/game-detail-mobile.png",
        "evidence/detail-overlay-probe.json",
        "evidence/trackers.json"
      ]
    },
    {
      "id": "F24",
      "pathId": "game-detail",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "severity": "medium",
      "confidence": "high",
      "summary": "Defensive response policies are largely absent",
      "evidence": "The headers primitive found no clickjacking protection, Referrer-Policy, Permissions-Policy, CSP frame-ancestors, or nosniff; only HSTS was present.",
      "suggestedFix": "Set frame-ancestors (or X-Frame-Options), strict referrer and permissions policies, nosniff, and a CSP appropriate to the ad/analytics posture.",
      "effort": "small",
      "artifacts": [
        "evidence/headers.json"
      ]
    },
    {
      "id": "F25",
      "pathId": "not-found",
      "principleId": "be-resilient",
      "principleCheckId": "offline-and-installable",
      "guidanceId": "conditional-async-dependencies",
      "severity": "medium",
      "confidence": "high",
      "summary": "Installability metadata exists without an active offline controller",
      "evidence": "A manifest with start_url and standalone display is present, but probes found no controlling service worker, so this app-like catalog has no verified offline fallback.",
      "suggestedFix": "Register a minimal service worker that provides an offline shell/fallback for saved catalog and article routes, or remove app-like install signals if offline is intentionally unsupported.",
      "effort": "small",
      "artifacts": [
        "evidence/manifest.json",
        "evidence/meta-games.json"
      ]
    },
    {
      "id": "F26",
      "pathId": "not-found",
      "principleId": "be-resilient",
      "principleCheckId": "network-and-http-failure-states",
      "guidanceId": "conditional-async-dependencies",
      "severity": "high",
      "confidence": "high",
      "summary": "HTTP failure state is replaced with misleading success content",
      "evidence": "The unknown route returned 200 and the normal homepage rather than a not-found state, making broken links look successful and offering no recovery context.",
      "suggestedFix": "Handle unknown routes and upstream failures explicitly with correct status codes and actionable retry/search/navigation states.",
      "effort": "medium",
      "artifacts": [
        "evidence/404-status.txt",
        "evidence/404-mobile.png"
      ]
    },
    {
      "id": "F27",
      "pathId": "home",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "severity": "low",
      "confidence": "high",
      "summary": "Multilingual layout relies on physical direction properties",
      "evidence": "The site links English and Russian variants and sets lang=en, but captured CSS extensively uses left/right, margin-left and border-left with no logical-property strategy evident.",
      "suggestedFix": "Set dir explicitly where needed and replace layout-critical physical properties with inline/block logical equivalents so future RTL/localized layouts remain robust.",
      "effort": "small",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/meta-games.json"
      ]
    },
    {
      "id": "F28",
      "pathId": "home",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "severity": "medium",
      "confidence": "high",
      "summary": "Legacy and oversized images waste transfer",
      "evidence": "The image audit found 66 legacy PNG/JPG assets, 25 oversized renderings and 24 responsive images without srcset; images accounted for 598 KiB of the 786 KiB homepage transfer.",
      "suggestedFix": "Create modern responsive image variants, right-size thumbnails, and keep lazy loading for below-fold assets.",
      "effort": "small",
      "artifacts": [
        "evidence/images.json",
        "evidence/home-summary.json"
      ]
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Replace the soft-404 homepage fallback with real recovery states",
      "priority": 1,
      "findingIds": [
        "F11",
        "F20",
        "F26"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Reduce and de-intrusify the consent/vendor surface",
      "priority": 2,
      "findingIds": [
        "F07",
        "F23"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Fix carousel, landmark, contrast and touch-target accessibility",
      "priority": 3,
      "findingIds": [
        "F10",
        "F14",
        "F15",
        "F16",
        "F19"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Add CSP, secure cookie flags and defensive headers",
      "priority": 4,
      "findingIds": [
        "F22",
        "F24"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Modernize responsive image delivery and intrinsic sizing",
      "priority": 5,
      "findingIds": [
        "F12",
        "F17",
        "F28"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Add structured metadata and correct article indexing",
      "priority": 6,
      "findingIds": [
        "F20",
        "F21"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Replace custom overlay/carousel plumbing with platform primitives",
      "priority": 7,
      "findingIds": [
        "F04",
        "F06",
        "F08"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Respect reduced-motion and high-contrast preferences completely",
      "priority": 8,
      "findingIds": [
        "F01",
        "F02"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Trim unused template CSS/JavaScript and fix BFCache eligibility",
      "priority": 9,
      "findingIds": [
        "F13",
        "F18"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Add local component queries and internationalization-safe logical CSS",
      "priority": 10,
      "findingIds": [
        "F09",
        "F27"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Provide an offline fallback or remove unsupported install signals",
      "priority": 11,
      "findingIds": [
        "F25"
      ],
      "guidanceId": "conditional-async-dependencies",
      "status": "open"
    },
    {
      "id": "T12",
      "title": "Add progressive route transitions and optional scroll-state guidance",
      "priority": 12,
      "findingIds": [
        "F03",
        "F05"
      ],
      "guidanceId": "same-document-transitions",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 7,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-23T04-23-13-420Z"
}
