{
  "url": "https://asurascans.com",
  "auditedAt": "2026-07-21T00:16:45.693Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete audit of six representative paths; account-only post-login, payment completion, authenticated bookmarking, and real network-offline mutation were not covered because they require credentials/payment or destructive external conditions.",
  "page": {
    "appType": "hybrid",
    "framework": "Astro 5.16.8 with hydrated client islands",
    "notes": "SSR content/catalog site with interactive React/Astro islands, installable manifest, public chapter reader, and account/subscription surfaces."
  },
  "evidenceUsed": [
    "screenshot",
    "dom+computed-css",
    "layout-metrics",
    "evaluate-probes",
    "discoverability/no-JS",
    "trace",
    "HAR",
    "Lighthouse",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary before/after",
    "Modern Web Guidance 0.0.172"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "adapt-scrollbar-to-contrast-preferences",
    "same-document-transitions",
    "scrollytelling",
    "physics-based-easing",
    "shrinking-header-on-scroll",
    "anchor-positioning-tab-underline",
    "directional-navigation-transitions",
    "light-dismiss-a-dialog",
    "declarative-dialog-popover-control",
    "complex-shapes",
    "fluid-scaling",
    "size-aware-styling",
    "css",
    "improve-text-layout-and-legibility",
    "forms",
    "accessible-error-announcement",
    "identify-inp-causes",
    "visually-stable-font-fallbacks",
    "break-up-long-tasks",
    "optimize-image-priority",
    "identify-heavy-scripts",
    "highlight-text-ranges",
    "move-dom-element-without-losing-state",
    "security",
    "html",
    "search-hidden-content",
    "language-model",
    "privacy",
    "passkeys",
    "flicker-free-client-side-ab-testing",
    "resilient-context-menus-and-nested-dropdowns",
    "passkey-management",
    "persistent-toast-notifications",
    "translator",
    "support-global-calendar-systems",
    "coordinate-global-events",
    "autofill-address-form",
    "autofill-payment-form",
    "deliver-optimized-decorative-images",
    "deprioritize-background-fetches",
    "webmcp",
    "faster-spa-view-transitions",
    "calculate-with-intrinsic-sizes",
    "manage-recurring-intervals"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/404-desktop.png",
      "caption": "404 desktop.png"
    },
    {
      "type": "other",
      "path": "evidence/404-probe.json",
      "caption": "404 probe.json"
    },
    {
      "type": "screenshot",
      "path": "evidence/browse-desktop.png",
      "caption": "browse desktop.png"
    },
    {
      "type": "layout",
      "path": "evidence/browse-mobile-layout.json",
      "caption": "browse mobile layout.json",
      "findingIds": [
        "F08"
      ],
      "condition": "viewport: 360x800"
    },
    {
      "type": "other",
      "path": "evidence/bundle-signal-probe.json",
      "caption": "bundle signal probe.json",
      "findingIds": [
        "F03",
        "F05",
        "F08",
        "F16",
        "F18"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/chapter-desktop.png",
      "caption": "chapter desktop.png"
    },
    {
      "type": "layout",
      "path": "evidence/chapter-mobile-layout.json",
      "caption": "chapter mobile layout.json",
      "findingIds": [
        "F04"
      ],
      "condition": "viewport: 360x800"
    },
    {
      "type": "other",
      "path": "evidence/chapter-probe.json",
      "caption": "chapter probe.json",
      "findingIds": [
        "F09",
        "F20"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies.json"
    },
    {
      "type": "other",
      "path": "evidence/coverage-manifest.json",
      "caption": "coverage manifest.json"
    },
    {
      "type": "other",
      "path": "evidence/css-signal-grep.txt",
      "caption": "css signal grep.txt",
      "findingIds": [
        "F03",
        "F04"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-desktop.png",
      "caption": "detail desktop.png",
      "findingIds": [
        "F11"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/detail-heap-baseline.json",
      "caption": "detail heap baseline.json"
    },
    {
      "type": "heap",
      "path": "evidence/detail-heap-post.json",
      "caption": "detail heap post.json"
    },
    {
      "type": "layout",
      "path": "evidence/detail-mobile-layout.json",
      "caption": "detail mobile layout.json",
      "condition": "viewport: 360x800"
    },
    {
      "type": "other",
      "path": "evidence/detail-probe.json",
      "caption": "detail probe.json",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "other",
      "path": "evidence/guidance/00-retrieve.txt",
      "caption": "00 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/01-retrieve.txt",
      "caption": "01 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/02-retrieve.txt",
      "caption": "02 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/03-retrieve.txt",
      "caption": "03 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/04-retrieve.txt",
      "caption": "04 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/05-retrieve.txt",
      "caption": "05 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/06-retrieve.txt",
      "caption": "06 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/07-retrieve.txt",
      "caption": "07 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/08-retrieve.txt",
      "caption": "08 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/09-retrieve.txt",
      "caption": "09 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/10-retrieve.txt",
      "caption": "10 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/11-retrieve.txt",
      "caption": "11 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/12-retrieve.txt",
      "caption": "12 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/13-retrieve.txt",
      "caption": "13 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/14-search.txt",
      "caption": "14 search.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/15-retrieve.txt",
      "caption": "15 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/16-retrieve.txt",
      "caption": "16 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/17-retrieve.txt",
      "caption": "17 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/18-retrieve.txt",
      "caption": "18 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/19-retrieve.txt",
      "caption": "19 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/20-retrieve.txt",
      "caption": "20 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/21-retrieve.txt",
      "caption": "21 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/22-retrieve.txt",
      "caption": "22 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/23-search.txt",
      "caption": "23 search.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/24-retrieve.txt",
      "caption": "24 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/25-search.txt",
      "caption": "25 search.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/26-retrieve.txt",
      "caption": "26 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/27-retrieve.txt",
      "caption": "27 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/28-search.txt",
      "caption": "28 search.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/29-search.txt",
      "caption": "29 search.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/30-search.txt",
      "caption": "30 search.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/31-search.txt",
      "caption": "31 search.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/32-retrieve.txt",
      "caption": "32 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/33-retrieve.txt",
      "caption": "33 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/34-retrieve.txt",
      "caption": "34 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/35-retrieve.txt",
      "caption": "35 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/36-retrieve.txt",
      "caption": "36 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/37-search.txt",
      "caption": "37 search.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/38-retrieve.txt",
      "caption": "38 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/39-retrieve.txt",
      "caption": "39 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/40-retrieve.txt",
      "caption": "40 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/41-retrieve.txt",
      "caption": "41 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/42-retrieve.txt",
      "caption": "42 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/43-retrieve.txt",
      "caption": "43 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/44-retrieve.txt",
      "caption": "44 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/45-retrieve.txt",
      "caption": "45 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/46-retrieve.txt",
      "caption": "46 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/47-retrieve.txt",
      "caption": "47 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/48-retrieve.txt",
      "caption": "48 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/49-search.txt",
      "caption": "49 search.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/50-search.txt",
      "caption": "50 search.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance/51-retrieve.txt",
      "caption": "51 retrieve.txt"
    },
    {
      "type": "other",
      "path": "evidence/guidance-consulted.json",
      "caption": "guidance consulted.json"
    },
    {
      "type": "other",
      "path": "evidence/guidance-list.json",
      "caption": "guidance list.json"
    },
    {
      "type": "other",
      "path": "evidence/guidance-plan.json",
      "caption": "guidance plan.json"
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers.json",
      "findingIds": [
        "F15"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark.png",
      "findingIds": [
        "F01"
      ],
      "condition": "prefers-color-scheme: dark"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop.png",
      "findingIds": [
        "F05"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "home discoverability crawler.png"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "home discoverability rendered.png"
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "home discoverability.json"
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom.json"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-high-contrast.png",
      "caption": "home high contrast.png",
      "condition": "prefers-contrast: more"
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images.json",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-light.png",
      "caption": "home light.png",
      "findingIds": [
        "F01"
      ],
      "condition": "prefers-color-scheme: light"
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout.json",
      "findingIds": [
        "F04",
        "F10"
      ],
      "condition": "viewport: 360x800"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile.png",
      "findingIds": [
        "F06"
      ],
      "condition": "viewport: 360x800"
    },
    {
      "type": "other",
      "path": "evidence/home-platform-probe.json",
      "caption": "home platform probe.json",
      "findingIds": [
        "F01",
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-recon.json",
      "caption": "home recon.json",
      "findingIds": [
        "F18"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary.json",
      "findingIds": [
        "F12",
        "F13"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary.json",
      "findingIds": [
        "F10"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace.json"
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home.har",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-chapter.json",
      "caption": "lighthouse chapter.json",
      "condition": "prefers-color-scheme: light"
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-detail.json",
      "caption": "lighthouse detail.json",
      "condition": "prefers-color-scheme: light"
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "lighthouse home.json",
      "condition": "prefers-color-scheme: light"
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-login.json",
      "caption": "lighthouse login.json",
      "condition": "prefers-color-scheme: light"
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-summary.json",
      "caption": "lighthouse summary.json",
      "findingIds": [
        "F10",
        "F11",
        "F12",
        "F13",
        "F14",
        "F20"
      ],
      "condition": "prefers-color-scheme: light"
    },
    {
      "type": "screenshot",
      "path": "evidence/login-desktop.png",
      "caption": "login desktop.png",
      "findingIds": [
        "F11"
      ]
    },
    {
      "type": "other",
      "path": "evidence/login-form-probe.json",
      "caption": "login form probe.json",
      "findingIds": [
        "F16",
        "F19"
      ]
    },
    {
      "type": "other",
      "path": "evidence/login-invalid-focus-probe.json",
      "caption": "login invalid focus probe.json",
      "findingIds": [
        "F09",
        "F19"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/login-mobile-layout.json",
      "caption": "login mobile layout.json",
      "condition": "viewport: 360x800"
    },
    {
      "type": "other",
      "path": "evidence/motion-css-probe.json",
      "caption": "motion css probe.json",
      "findingIds": [
        "F02"
      ]
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets.json"
    },
    {
      "type": "other",
      "path": "evidence/service-worker-probe.json",
      "caption": "service worker probe.json",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "other",
      "path": "evidence/site-files.json",
      "caption": "site files.json",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers.json"
    }
  ],
  "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": "Objective browser evidence",
      "evidence": "Light/dark captures are visually equivalent and computed color-scheme is normal.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-light.png",
        "evidence/home-dark.png"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Ten animations remain running under prefers-reduced-motion: reduce.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/motion-css-probe.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "No contrast-preference rule was found and Lighthouse confirms low-contrast text/control tokens.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-high-contrast.png",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "No View Transition CSS or startViewTransition use was found in DOM/CSS or 42 bundles.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/bundle-signal-probe.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM/CSS inspection",
      "evidence": "No parallax, scrollytelling, or scroll-linked reveal interaction was present on the representative paths.",
      "reason": "The site has scrolling but no scroll-linked animation use case to implement."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Homepage carousels use CSS scroll-snap/overscroll behavior, preserving native scrolling mechanics.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/motion-css-probe.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Very long homepage/reader surfaces have no scroll-state signal or progress affordance.",
      "pathIds": [
        "home",
        "chapter"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/chapter-mobile-layout.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Menus exist, but no CSS anchor positioning signal is shipped.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/bundle-signal-probe.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Clear cards, section headings, chapter links, and visible 404 recovery actions preserve navigation context.",
      "pathIds": [
        "home",
        "detail",
        "not-found"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/detail-desktop.png",
        "evidence/404-desktop.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "The mobile subscription promotion consumes most of the initial viewport before core content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Detail disclosure uses custom buttons; no details/dialog primitives are present.",
      "pathIds": [
        "detail"
      ],
      "artifacts": [
        "evidence/detail-probe.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Content cards dominate the desktop layout and the chapter reader removes global chrome to prioritize the comic.",
      "pathIds": [
        "home",
        "chapter"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/chapter-desktop.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "All five mobile archetypes report 360px content/viewport widths and zero horizontal overflow; viewport scaling remains enabled.",
      "pathIds": [
        "home",
        "browse",
        "detail",
        "chapter",
        "login"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/browse-mobile-layout.json",
        "evidence/detail-mobile-layout.json",
        "evidence/chapter-mobile-layout.json",
        "evidence/login-mobile-layout.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Reusable content components adapt globally, but no @container/container-type implementation is present.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/bundle-signal-probe.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Focused login input has no visible focus style, and reader controls are as small as 24x24/28.7x16.",
      "pathIds": [
        "login",
        "chapter"
      ],
      "artifacts": [
        "evidence/login-invalid-focus-probe.json",
        "evidence/chapter-probe.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Homepage H1 states the reading offer; comic cards and detail “First Chapter” action expose the next step.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/detail-desktop.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "A user can navigate from home to detail to a full current chapter without authentication; the audited chapter rendered all 30 comic images.",
      "pathIds": [
        "home",
        "detail",
        "chapter"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/detail-desktop.png",
        "evidence/chapter-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Invalid URLs produce a purposeful 404 with Return Home and Browse Comics; empty login submission gets native required-field recovery.",
      "pathIds": [
        "not-found",
        "login"
      ],
      "artifacts": [
        "evidence/404-desktop.png",
        "evidence/login-invalid-focus-probe.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Lighthouse LCP is 14.2–15.8s on content paths and CLS is 0.498–1.666.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Homepage and reader shifts exceed good CLS limits; unsized images are named as culprits.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F10",
        "F12"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Trace reports no long tasks and 0ms TBT on home; Lighthouse TBT is 0ms home/detail and 12ms chapter.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Home transfers 4.36MB, includes a 2.21MB hero image, weak CDN caching, and pervasive missing dimensions/srcset.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Lighthouse identifies about 24KiB unused client JS and home requests 42 scripts.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Lighthouse finds accessible-name mismatches and prohibited ARIA on a roleless detail div.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Lighthouse finds contrast ratios from 2.13:1 to 4.05:1 on detail, reader, and login.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Homepage heading order skips levels and keyboard-focused login input has no visible outline/shadow.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/login-invalid-focus-probe.json"
      ],
      "findingIds": [
        "F09",
        "F14"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Screenshots show readable line lengths and unclipped body text across desktop and mobile content templates.",
      "pathIds": [
        "home",
        "detail",
        "login"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/detail-desktop.png",
        "evidence/login-desktop.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Viewport permits scaling and layouts reflow, but several reader controls are materially below comfortable target size.",
      "pathIds": [
        "chapter",
        "home"
      ],
      "artifacts": [
        "evidence/chapter-probe.json",
        "evidence/home-recon.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Lighthouse best-practices scores 1.0 on all four audited templates and reports no console-error audit failure.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Doctype/charset are valid, but 79/80 homepage images and all sampled chapter panels omit explicit dimensions.",
      "pathIds": [
        "home",
        "chapter"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/home-images.json",
        "evidence/chapter-probe.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Lighthouse best-practices is 1.0 on home, detail, chapter, and login; no prompt-on-load or deprecated-platform failure appeared.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Public home/detail/chapter pages have descriptive titles and descriptions; login is intentionally private/noindex.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/detail-probe.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Links use real hrefs, viewport meta allows scaling, robots allows public routes, and Lighthouse SEO is 1.0 on public samples.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/site-files.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Public pages return successfully with canonicals; robots references a valid sitemap index and only private areas are disallowed.",
      "pathIds": [
        "detail",
        "home"
      ],
      "artifacts": [
        "evidence/detail-probe.json",
        "evidence/site-files.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Home exposes Organization/WebSite JSON-LD and detail exposes Breadcrumb, Article, ComicSeries, Open Graph, and image metadata.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/detail-probe.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "HTTPS/HSTS/nosniff pass, but CSP and other key policies are missing.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "No known trackers, third-party cookies, or exposed secrets were found; cross-origin hosts are owned CDN/API surfaces.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/cookies.json",
        "evidence/secrets.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "No on-load permission prompt was observed, but an applicable authentication flow has no passkey/WebAuthn implementation signal.",
      "pathIds": [
        "login",
        "home"
      ],
      "artifacts": [
        "evidence/login-form-probe.json",
        "evidence/bundle-signal-probe.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "HSTS/nosniff are present, but clickjacking, CSP, Referrer-Policy, and Permissions-Policy defenses are absent.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Raw HTML contains 93% of rendered content words with title, H1, and description intact; it is not a JS shell.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/home-discoverability-crawler.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Representative menus/cards remain within responsive layouts, disclosure toggling completes repeatedly, and no runtime error failure appeared.",
      "pathIds": [
        "detail",
        "home"
      ],
      "artifacts": [
        "evidence/detail-heap-post.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "The site declares a standalone installable manifest but registers no service worker or offline fallback.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/site-files.json",
        "evidence/service-worker-probe.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "A deliberately invalid URL returns a useful branded recovery state with two clear routes back to content.",
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/404-desktop.png",
        "evidence/404-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "html lang=en is present and CSS inspection finds extensive inline logical properties rather than only left/right layout.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Relative date strings are rendered, but no Intl.RelativeTimeFormat/DateTimeFormat signal exists in 42 loaded bundles.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/bundle-signal-probe.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Content and form inspection",
      "evidence": "The audited public reading, catalog, and login flows do not schedule events or ask users to enter/coordinate wall-clock times.",
      "reason": "No time-zone-sensitive event or scheduling use case exists on the representative paths."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Subscription pricing and monthly commitment are stated plainly; promotion is dismissible and public reading does not require subscription.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Required inputs validate after attempted submission with native, field-specific “Please fill in this field” recovery.",
      "pathIds": [
        "login"
      ],
      "artifacts": [
        "evidence/login-invalid-focus-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Email/password/sign-up inputs omit autocomplete tokens.",
      "pathIds": [
        "login"
      ],
      "artifacts": [
        "evidence/login-form-probe.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Audited surfaces show explicit $2.99/month pricing, no yearly commitment, a forgot-password route, and separate sign-up/log-in choices.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/login-desktop.png"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "47 homepage images are oversized, 62 lack responsive sources, and Lighthouse estimates multi-megabyte image savings.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Home requests 42 scripts and ships avoidable unused client code even though main-thread blocking remains low.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "A single chapter load reaches 27.4MB and eagerly loads all 30 chapter panels plus comment/profile media.",
      "pathIds": [
        "home",
        "chapter"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/chapter-probe.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon, metadata, and bundle inspection",
      "evidence": "No declared agent-facing intent or transactional agent capability was found; public content remains machine-readable via SSR and metadata.",
      "reason": "Agent capabilities are emerging/contextual and this public reader does not signal an agent-tool surface."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Feature and bundle inspection",
      "evidence": "No summarisation, generation, or other inference feature exists in the representative user journeys.",
      "reason": "There is no inference use case for which on-device AI could be evaluated."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "After 20 description toggles, heap self size fell from 10,271,788 to 10,032,105 bytes; node count rose only 1.8%, without a Detached constructor signal.",
      "pathIds": [
        "detail"
      ],
      "artifacts": [
        "evidence/detail-heap-baseline.json",
        "evidence/detail-heap-post.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Detail heap is about 10.3MB self size and 152k nodes, proportionate to a media-rich hydrated detail page.",
      "pathIds": [
        "detail"
      ],
      "artifacts": [
        "evidence/detail-heap-baseline.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence",
      "evidence": "Baseline/post summaries contain no Detached constructor among retained populations and total heap does not grow after repeated disclosure.",
      "pathIds": [
        "detail"
      ],
      "artifacts": [
        "evidence/detail-heap-baseline.json",
        "evidence/detail-heap-post.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F02",
        "F11"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04",
        "F05"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06",
        "F07"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08",
        "F09"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F10",
        "F12",
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F14",
        "F11",
        "F09"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F15",
        "F16"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F12",
        "F13",
        "F20"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "Derived from all check outcomes."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and discovery surface: navigation, subscription banner, hero carousel, trending and latest content.",
      "url": "https://asurascans.com/",
      "conditions": [
        "desktop 1440x1000",
        "mobile 360x800",
        "prefers-color-scheme light/dark",
        "prefers-contrast more",
        "prefers-reduced-motion reduce",
        "JavaScript disabled crawler view"
      ],
      "result": "issues"
    },
    {
      "id": "browse",
      "description": "Browse/listing archetype representing catalog filtering and repeated comic cards.",
      "url": "https://asurascans.com/browse",
      "conditions": [
        "desktop 1440x1000",
        "mobile 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "detail",
      "description": "Comic detail archetype representing description disclosure, bookmarking, chapter discovery, and offline-download entry.",
      "url": "https://asurascans.com/comics/goblin-inc-f886a8af",
      "conditions": [
        "desktop 1440x1000",
        "mobile 360x800",
        "repeated description toggle"
      ],
      "result": "issues"
    },
    {
      "id": "chapter",
      "description": "Primary reading journey: a current chapter with long-form image content, navigation, reactions, and comments.",
      "url": "https://asurascans.com/comics/goblin-inc-f886a8af/chapter/5",
      "conditions": [
        "desktop 1440x1000",
        "mobile 360x800",
        "Lighthouse simulated mobile load"
      ],
      "result": "issues"
    },
    {
      "id": "login",
      "description": "Authentication form archetype: labels, validation, focus, autofill, recovery, and modern-auth support.",
      "url": "https://asurascans.com/login",
      "conditions": [
        "desktop 1440x1000",
        "mobile 360x800",
        "empty-form validation",
        "keyboard focus"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Recovery path for an invalid URL, representing intentional HTTP error handling.",
      "url": "https://asurascans.com/not-a-real-page-web-uplift",
      "conditions": [
        "desktop 1440x1000"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "low",
      "confidence": "high",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "summary": "The fixed dark palette does not respond to the user’s color-scheme preference.",
      "evidence": "Light and dark emulation produce the same dark surface, while the platform probe reports computed color-scheme: normal.",
      "suggestedFix": "Declare color-scheme and provide preference-driven light/dark tokens with prefers-color-scheme or light-dark().",
      "artifacts": [
        "evidence/home-light.png",
        "evidence/home-dark.png",
        "evidence/home-platform-probe.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://asurascans.com/"
    },
    {
      "id": "F02",
      "severity": "medium",
      "confidence": "high",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Animations continue when reduced motion is requested.",
      "evidence": "Under prefers-reduced-motion: reduce, getAnimations() still reports ten running animations, including repeated 2-second effects and an 8-second effect; no reduced-motion rule was found.",
      "suggestedFix": "Add a prefers-reduced-motion: reduce override that removes non-essential animation and stops auto-advance.",
      "artifacts": [
        "evidence/motion-css-probe.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://asurascans.com/"
    },
    {
      "id": "F03",
      "severity": "low",
      "confidence": "high",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "guidanceCategory": "user-experience",
      "summary": "Route and state changes do not use View Transitions.",
      "evidence": "The CSS/DOM and 42 loaded script bundles contain no view-transition signal or startViewTransition call.",
      "suggestedFix": "Use same-document and cross-document View Transitions for route changes and substantial state swaps, with reduced-motion fallbacks.",
      "artifacts": [
        "evidence/bundle-signal-probe.json",
        "evidence/css-signal-grep.txt"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://asurascans.com/"
    },
    {
      "id": "F04",
      "severity": "low",
      "confidence": "high",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "shrinking-header-on-scroll",
      "guidanceCategory": "css",
      "summary": "Long listing and reader surfaces provide no scroll-state-aware navigation chrome.",
      "evidence": "The homepage is 6,419px tall on mobile and the reader is 130,011px, but CSS inspection found no scroll-state query, progress indicator, or scroll-position signal.",
      "suggestedFix": "Add lightweight scroll progress or scroll-state-aware controls to preserve orientation on long surfaces.",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/chapter-mobile-layout.json",
        "evidence/css-signal-grep.txt"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://asurascans.com/"
    },
    {
      "id": "F05",
      "severity": "low",
      "confidence": "high",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "anchored-positioning",
      "guidanceId": "anchor-positioning-tab-underline",
      "guidanceCategory": "css",
      "summary": "Menus and transient UI are not anchored with modern positioning primitives.",
      "evidence": "The Resources/menu surface is present, but CSS and loaded bundles contain no anchor-name or position-anchor signal.",
      "suggestedFix": "Use CSS anchor positioning and position-try fallbacks for menus/tooltips near viewport edges.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/bundle-signal-probe.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://asurascans.com/"
    },
    {
      "id": "F06",
      "severity": "medium",
      "confidence": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "summary": "The subscription promotion dominates the first mobile viewport.",
      "evidence": "At 360x800, the on-load Asura+ panel occupies roughly 440px before the primary comic content begins, despite being dismissible.",
      "suggestedFix": "Collapse the promotion to a compact, persistent but non-blocking banner on mobile and remember dismissal.",
      "artifacts": [
        "evidence/home-mobile.png"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://asurascans.com/"
    },
    {
      "id": "F07",
      "severity": "low",
      "confidence": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "html",
      "summary": "Disclosure and overlay interactions use custom controls rather than semantic primitives.",
      "evidence": "The detail page has two custom “Show more” buttons but zero details and zero dialog elements; no popover/dialog was found.",
      "suggestedFix": "Use details/summary for description disclosure and popover/dialog for transient or modal UI with declarative dismissal.",
      "artifacts": [
        "evidence/detail-probe.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://asurascans.com/"
    },
    {
      "id": "F08",
      "severity": "low",
      "confidence": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "css",
      "summary": "Responsive components rely on viewport rules rather than container-level adaptation.",
      "evidence": "The site reflows without horizontal overflow, but CSS and loaded bundles contain no @container/container-type signal across reusable card/list components.",
      "suggestedFix": "Introduce container queries for reused cards, ranking panels, and detail controls while retaining a media-query fallback where needed.",
      "artifacts": [
        "evidence/bundle-signal-probe.json",
        "evidence/browse-mobile-layout.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://asurascans.com/"
    },
    {
      "id": "F09",
      "severity": "high",
      "confidence": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Keyboard focus is not visibly styled and several reader controls are undersized.",
      "evidence": "Focusing the login email field reports outline-style none and no box shadow. Reader controls include 24x24 and 28.7x16 buttons, below comfortable touch-target sizing.",
      "suggestedFix": "Add a strong :focus-visible ring and increase compact reader/comment controls to at least 44 CSS px or equivalent spacing.",
      "artifacts": [
        "evidence/login-invalid-focus-probe.json",
        "evidence/chapter-probe.json"
      ],
      "effort": "small",
      "pathId": "login",
      "url": "https://asurascans.com/login"
    },
    {
      "id": "F10",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "summary": "Primary content pages have severe LCP and CLS failures.",
      "evidence": "Lighthouse measured homepage LCP 15.85s/CLS 0.498, detail LCP 14.23s/CLS 0.505, and chapter LCP 15.81s/CLS 1.666. The mobile layout observer independently measured homepage CLS 0.5115.",
      "suggestedFix": "Reserve image geometry, remove the oversized hero dependency, prioritize only the true LCP image, and lazy-load below-fold reader/media assets.",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-mobile-layout.json",
        "evidence/home-trace-summary.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://asurascans.com/"
    },
    {
      "id": "F11",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Text and controls fail WCAG contrast on detail, reader, and login paths.",
      "evidence": "Lighthouse reports ratios as low as 2.13:1 for reader Next, 3.3:1 for purple text, and 2.27:1 for the login OR separator against dark surfaces.",
      "suggestedFix": "Raise muted and purple token contrast to at least 4.5:1 for normal text and 3:1 for essential large/UI graphics; verify all states.",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/login-desktop.png",
        "evidence/detail-desktop.png"
      ],
      "effort": "small",
      "pathId": "chapter",
      "url": "https://asurascans.com/comics/goblin-inc-f886a8af/chapter/5"
    },
    {
      "id": "F12",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "summary": "Image delivery is oversized, unsized, and poorly cached.",
      "evidence": "HAR totals 4.36MB on home, including a 2.21MB hero cover. The image audit finds 79/80 images without dimensions, 47 oversized, and 62 without srcset; Lighthouse estimates 3.8MB savings and HAR finds many CDN images without useful cache headers.",
      "suggestedFix": "Serve responsive srcset/sizes variants, use the 400px cover instead of the full source for blurred/thumbnail uses, add width/height or aspect-ratio, and set immutable caching on versioned CDN assets.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-images.json",
        "evidence/lighthouse-summary.json",
        "evidence/home.har"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://asurascans.com/"
    },
    {
      "id": "F13",
      "severity": "low",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "summary": "The page hydrates code that is not needed for first use.",
      "evidence": "Lighthouse estimates about 24KiB unused in client.D_Es0amM.js; the homepage requests 42 scripts even though trace TBT is currently 0ms.",
      "suggestedFix": "Delay optional islands and load account, modal, comment, and download code only when the associated interaction is requested.",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-summary.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://asurascans.com/"
    },
    {
      "id": "F14",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Accessible names, roles, and heading order are inconsistent.",
      "evidence": "Lighthouse flags footer links whose visible labels do not match accessible names, an aria-label prohibited on a roleless div on detail, and a homepage heading-order skip.",
      "suggestedFix": "Align accessible names with visible labels, replace the roleless labelled div with a semantic control, and make heading levels sequential.",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-platform-probe.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://asurascans.com/"
    },
    {
      "id": "F15",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "summary": "Key browser-enforced security policies are missing.",
      "evidence": "The headers primitive confirms HTTPS, HSTS, and nosniff, but finds no Content-Security-Policy, frame-ancestors/X-Frame-Options, Referrer-Policy, or Permissions-Policy.",
      "suggestedFix": "Deploy a nonce/hash-based CSP with frame-ancestors, plus explicit Referrer-Policy and a least-privilege Permissions-Policy.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://asurascans.com/"
    },
    {
      "id": "F16",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "passkeys",
      "guidanceCategory": "security",
      "summary": "Authentication has no passkey/WebAuthn path.",
      "evidence": "The login flow offers password and Google sign-in, while both the page and all 42 loaded bundles contain no PublicKeyCredential or navigator.credentials signal.",
      "suggestedFix": "Offer passkey registration and authentication as a phishing-resistant option while retaining an account-recovery path.",
      "artifacts": [
        "evidence/login-form-probe.json",
        "evidence/bundle-signal-probe.json"
      ],
      "effort": "large",
      "pathId": "login",
      "url": "https://asurascans.com/login"
    },
    {
      "id": "F17",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-resilient",
      "principleCheckId": "offline-and-installable",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "The installable manifest has no service worker or offline fallback.",
      "evidence": "manifest.json declares standalone display and app icons, but navigator.serviceWorker.getRegistrations() returns an empty list.",
      "suggestedFix": "Add a service worker with a small app-shell/error fallback and deliberate caching for bookmarked/downloaded chapters.",
      "artifacts": [
        "evidence/site-files.json",
        "evidence/service-worker-probe.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://asurascans.com/"
    },
    {
      "id": "F18",
      "severity": "low",
      "confidence": "high",
      "principleId": "be-internationalised",
      "principleCheckId": "locale-aware-data",
      "guidanceId": "support-global-calendar-systems",
      "guidanceCategory": "javascript",
      "summary": "Relative dates appear fixed to English with no locale-formatting implementation signal.",
      "evidence": "The UI renders strings such as “1 day ago” and “last week”; inspection of all 42 loaded bundles finds no Intl.RelativeTimeFormat or Intl.DateTimeFormat.",
      "suggestedFix": "Format dates with Intl.RelativeTimeFormat/DateTimeFormat using the active locale and expose absolute timestamps in semantic time elements.",
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/bundle-signal-probe.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://asurascans.com/"
    },
    {
      "id": "F19",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "autofill-sign-in-form",
      "guidanceCategory": "forms",
      "summary": "Sign-in and sign-up fields omit autocomplete tokens.",
      "evidence": "Both login and registration forms return empty autocomplete values for email, password, and confirm-password fields.",
      "suggestedFix": "Use email, current-password, new-password, and username tokens as appropriate; keep labels and native input types.",
      "artifacts": [
        "evidence/login-form-probe.json",
        "evidence/login-invalid-focus-probe.json"
      ],
      "effort": "trivial",
      "pathId": "login",
      "url": "https://asurascans.com/login"
    },
    {
      "id": "F20",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "performance",
      "summary": "The chapter reader eagerly transfers a disproportionate media payload.",
      "evidence": "Lighthouse reports a 27,423KiB chapter load, including many 900x16,000 images and large profile/comment media; all 30 chapter images report loading=auto.",
      "suggestedFix": "Virtualize or lazy-load chapter panels and comments near the viewport, generate display-sized variants, and defer avatars/GIF media until comments approach view.",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/chapter-probe.json"
      ],
      "effort": "large",
      "pathId": "chapter",
      "url": "https://asurascans.com/comics/goblin-inc-f886a8af/chapter/5"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Fix image sizing, responsive delivery, lazy loading, and cache policy",
      "priority": 1,
      "findingIds": [
        "F10",
        "F12",
        "F20"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Restore visible keyboard focus and adequate target sizes",
      "priority": 2,
      "findingIds": [
        "F09"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Deploy CSP and defensive response policies",
      "priority": 3,
      "findingIds": [
        "F15"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Correct contrast and semantic accessibility defects",
      "priority": 4,
      "findingIds": [
        "F11",
        "F14"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Respect reduced-motion and color-scheme preferences",
      "priority": 5,
      "findingIds": [
        "F01",
        "F02"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Reduce and conditionally load client JavaScript",
      "priority": 6,
      "findingIds": [
        "F13"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Make the installable experience resilient offline",
      "priority": 7,
      "findingIds": [
        "F17"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Add sign-in autofill and passkey support",
      "priority": 8,
      "findingIds": [
        "F16",
        "F19"
      ],
      "guidanceId": "passkeys",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Reduce mobile promotion dominance and use semantic disclosure",
      "priority": 9,
      "findingIds": [
        "F06",
        "F07"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Add container and guided-navigation enhancements",
      "priority": 10,
      "findingIds": [
        "F03",
        "F04",
        "F05",
        "F08"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Localise relative dates with Intl",
      "priority": 11,
      "findingIds": [
        "F18"
      ],
      "guidanceId": "support-global-calendar-systems",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-21T00-16-45-693Z"
}
