{
  "url": "https://m.comic.naver.com",
  "auditedAt": "2026-07-23T10:15:26.132Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete audit of five representative public templates plus error handling; authentication, purchasing and personalized MY surfaces were not covered because they require account state and were not part of the unauthenticated core flow.",
  "page": {
    "appType": "hybrid",
    "framework": "server-rendered HTML with client-side GraphQL enhancement",
    "notes": "Dedicated Korean mobile webtoon catalogue and long-form reader."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "Lighthouse",
    "HTTP probes",
    "Modern Web Guidance 0.0.172"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "performance",
    "optimize-image-priority",
    "optimize-script-priority",
    "visually-stable-font-fallbacks",
    "identify-heavy-scripts",
    "security",
    "privacy",
    "batch-analytics-events",
    "full-session-analytics",
    "fluid-scaling",
    "css-layout",
    "improve-text-layout-and-legibility",
    "size-aware-styling",
    "same-document-transitions",
    "light-dismiss-a-dialog",
    "html",
    "translator",
    "passkeys"
  ],
  "artifacts": [
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies",
      "findingIds": [
        "F10"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-crawler.png",
      "caption": "discoverability crawler",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-rendered.png",
      "caption": "discoverability rendered",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability.json",
      "caption": "discoverability",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/episode-layout.json",
      "caption": "episode layout",
      "findingIds": [
        "F04"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/episode.png",
      "caption": "episode",
      "findingIds": [
        "F04"
      ]
    },
    {
      "type": "other",
      "path": "evidence/guidance-list.json",
      "caption": "guidance list",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance-map-consulted.json",
      "caption": "guidance map consulted",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance-retrieved.md",
      "caption": "guidance retrieved",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers",
      "findingIds": [
        "F10",
        "F11"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "heap baseline",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.json",
      "caption": "heap post",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom",
      "findingIds": [
        "F02"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-forced-colors.png",
      "caption": "home forced colors",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/home-layout.json",
      "caption": "home layout",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "findingIds": [
        "F06",
        "F08"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F05",
        "F13",
        "F14"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace",
      "findingIds": []
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/http-recon.txt",
      "caption": "http recon",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "images",
      "findingIds": [
        "F13"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "lighthouse",
      "findingIds": [
        "F03",
        "F05",
        "F06",
        "F07",
        "F08",
        "F09"
      ]
    },
    {
      "type": "other",
      "path": "evidence/preferences-probe.json",
      "caption": "preferences probe",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/probe.json",
      "caption": "probe",
      "findingIds": [
        "F01",
        "F02",
        "F07",
        "F09"
      ]
    },
    {
      "type": "other",
      "path": "evidence/recon.json",
      "caption": "recon",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/search-dom.json",
      "caption": "search dom",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/search.png",
      "caption": "search",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/series-dom.json",
      "caption": "series dom",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/series.png",
      "caption": "series",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers",
      "findingIds": [
        "F14"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/weekday-layout.json",
      "caption": "weekday layout",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/weekday.png",
      "caption": "weekday",
      "findingIds": []
    }
  ],
  "config": {
    "loaded": false
  },
  "coverage": {
    "catalogVersion": "modern-web-guidance@0.0.172",
    "catalogChecksum": "sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7",
    "expected": 58,
    "recorded": 58,
    "judged": 58,
    "blocked": 0,
    "notRun": 0,
    "missing": 0,
    "unknown": 0,
    "duplicates": 0,
    "complete": true
  },
  "checkOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-color-scheme",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review and objective probe",
      "evidence": "The dark-mode screenshot is visually identical to the light capture and the probe reports computed colorScheme \"normal\".",
      "findingIds": [
        "F01"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "evaluate under prefers-reduced-motion: reduce",
      "evidence": "Reduced-motion emulation reported zero active animations; the page has no auto-advancing motion on the tested surfaces.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "medium",
      "method": "forced-colors screenshot review",
      "evidence": "Forced-colors/high-contrast screenshot retained readable text, controls and current-state indicators.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct artifact review and objective probe",
      "evidence": "DOM and interaction inspection found conventional links and no authored view-transition CSS or startViewTransition calls on the representative navigation surfaces.",
      "findingIds": [
        "F02"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM/CSS and visual inspection",
      "evidence": "No parallax, scrollytelling, or scroll-linked animation exists on the representative pages.",
      "reason": "No parallax, scrollytelling, or scroll-linked animation exists on the representative pages."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "not-applicable",
      "confidence": "high",
      "method": "visual interaction review",
      "evidence": "The tested catalogue, search and reader surfaces expose ordinary links/scrolling and no custom gesture-driven control.",
      "reason": "The tested catalogue, search and reader surfaces expose ordinary links/scrolling and no custom gesture-driven control."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "pass",
      "confidence": "medium",
      "method": "long-page screenshot and DOM review",
      "evidence": "Fixed mobile navigation remains compact and orientation is preserved on the long listing/reader pages without obscuring content.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM inspection across representative paths",
      "evidence": "No tooltip, floating menu, or anchored popover was present on the audited public paths.",
      "reason": "No tooltip, floating menu, or anchored popover was present on the audited public paths."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "medium",
      "method": "screenshots and primary-flow walkthrough",
      "evidence": "Active tabs use the green underline, series rows are explicit links, and catalogue-to-reader navigation preserves clear hierarchy.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "pass",
      "confidence": "high",
      "method": "initial viewport screenshots",
      "evidence": "No load-time modal or interstitial obscured content on any of the five visual captures.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM and screenshot review",
      "evidence": "No modal, disclosure, picker, or transient overlay appeared on the audited paths.",
      "reason": "No modal, disclosure, picker, or transient overlay appeared on the audited paths."
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "mobile screenshots",
      "evidence": "Content starts directly below compact navigation; catalogue and reader dedicate the great majority of the viewport to content.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "layout primitives at 390x844",
      "evidence": "Home, weekday and episode layout metrics all report scrollWidth 390, clientWidth 390 and 0 px overflow.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "pass",
      "confidence": "low",
      "method": "representative narrow-layout inspection",
      "evidence": "The dedicated mobile templates reflow lists and artwork to the narrow form factor; no reused multi-container component needing container-query behavior was observed.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse target-size plus focus probe",
      "evidence": "Lighthouse found multiple touch targets only 9–15 px high; keyboard focus itself had a visible browser outline.",
      "findingIds": [
        "F08"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "first-viewport screenshots",
      "evidence": "Home immediately exposes webtoon discovery/rankings; series exposes First episode and episode rows; search exposes a labelled search field.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "multi-route walkthrough and reader screenshot",
      "evidence": "The unauthenticated home → series → episode journey completed to a 36,242 px-long reader without an account wall.",
      "pathIds": [
        "home",
        "series",
        "episode"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "medium",
      "method": "HTTP recon and route walkthrough",
      "evidence": "Unknown routes return HTTP 404 rather than false success; navigation and back paths remain available on tested content routes.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review and objective probe",
      "evidence": "Mobile Lighthouse scored performance 0.50 with LCP 19.1 s, FCP 2.7 s, TBT 540 ms and Speed Index 7.5 s; the independent trace measured LCP 3.27 s and TBT 80.8 ms.",
      "findingIds": [
        "F03"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review and objective probe",
      "evidence": "The layout observer measured CLS 0.328 on the episode route from one large shift at about 1.33 s, well above the 0.1 good threshold.",
      "findingIds": [
        "F04"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, layout and trace",
      "evidence": "Lighthouse measured 540 ms TBT; layout observed a 240 ms long task and trace observed two long tasks.",
      "findingIds": [
        "F03"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "HAR summary confirmed against script attributes and Lighthouse",
      "evidence": "HAR found parser-inserted classic bundles, a 1.44 MB script offender, a redirect and slow GraphQL requests; Lighthouse failed LCP discovery/dependency insights.",
      "findingIds": [
        "F03"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review and objective probe",
      "evidence": "Lighthouse estimated 1,021 KiB unused JavaScript in the 1.43 MB vendor-common bundle (72.95% wasted); HAR records 1.58 MB of script transfer.",
      "findingIds": [
        "F05"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "pass",
      "confidence": "high",
      "method": "images primitive, DOM and Lighthouse",
      "evidence": "All 38 audited images had alt text; search uses a labelled fieldset/legend and role=search; Lighthouse found no names/labels failures.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review and objective probe",
      "evidence": "Lighthouse found #ccc on white at 1.6:1 and #999 on white at 2.84:1, below the required 4.5:1 for the observed text sizes.",
      "findingIds": [
        "F06"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review and objective probe",
      "evidence": "Lighthouse landmark-one-main failed, and the DOM probe found HEADER and FOOTER but no MAIN landmark.",
      "findingIds": [
        "F07"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "medium",
      "method": "screenshots across five templates",
      "evidence": "Mobile screenshots show unclipped Korean headings/body labels and consistent reading order at 390 px; contrast failures are recorded separately.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review and objective probe",
      "evidence": "The viewport contains user-scalable=no and maximum-scale=1; Lighthouse also found 9–15 px-high footer links below the 24 px target floor.",
      "findingIds": [
        "F08"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse runtime audit",
      "evidence": "Lighthouse errors-in-console audit scored 1 with no items.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "pass",
      "confidence": "high",
      "method": "DOM and Lighthouse",
      "evidence": "Document has HTML doctype, UTF-8 charset and valid image aspect ratios; Lighthouse image-aspect-ratio passed.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse best-practices diagnostics",
      "evidence": "Lighthouse found three BFCache blockers caused by Cache-Control: no-store; deprecations and inspector issues passed.",
      "findingIds": [
        "F05"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review and objective probe",
      "evidence": "Both the DOM probe and Lighthouse meta-description audit found no meta[name=description], although an Open Graph description exists.",
      "findingIds": [
        "F09"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "DOM links plus robots.txt",
      "evidence": "Representative links have real href values, viewport metadata exists, robots allows crawling and link labels are descriptive.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "DOM metadata and HTTP recon",
      "evidence": "Home returned 200, declares canonical /index, robots.txt points to a successful sitemap.xml, and no accidental noindex was found.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "medium",
      "method": "metadata probe",
      "evidence": "Home exposes Open Graph title, image, description and type consistent with visible Naver Webtoon content.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review and objective probe",
      "evidence": "Headers inspection found no CSP or HSTS. XSRF-TOKEN and NACT lacked Secure, all four cookies used SameSite=None, and two identifiers last 400 days.",
      "findingIds": [
        "F10"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "HAR, tracker and cookie inspection",
      "evidence": "HAR found 62 third-party requests and 1.97 MB, including advertising/measurement origins; identifiers persist for 400 days.",
      "findingIds": [
        "F14"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "pass",
      "confidence": "low",
      "method": "load observation and unauthenticated journey",
      "evidence": "No notification/geolocation prompt appeared on load; authentication was not required for the public primary content journey.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review and objective probe",
      "evidence": "Headers inspection found no Permissions-Policy and Referrer-Policy: unsafe-url; clickjacking and nosniff defenses were present.",
      "findingIds": [
        "F11"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "issues",
      "confidence": "high",
      "method": "discoverability raw/rendered comparison",
      "evidence": "Raw HTML retained only 36% of rendered content and omitted the H1/dynamic ranking content, reducing no-JS access to core discovery.",
      "findingIds": [
        "F12"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "medium",
      "method": "multi-route screenshots and walkthrough",
      "evidence": "Long catalogue and reader routes loaded without clipped overlays or broken initial states; navigation remained operational.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "site archetype judgement",
      "evidence": "This media catalogue/reader is intrinsically network-dependent; offline/installable behavior was judged outside the public mobile-site intent.",
      "reason": "This media catalogue/reader is intrinsically network-dependent; offline/installable behavior was judged outside the public mobile-site intent."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "medium",
      "method": "HTTP failure probe",
      "evidence": "An unknown route returned a deliberate 404 response rather than a blank shell or misleading 200.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "not-applicable",
      "confidence": "medium",
      "method": "locale and site-scope judgement",
      "evidence": "The service is deliberately Korean-only and declares lang=ko; cross-language/bidirectional layout was outside this run’s public-site intent.",
      "reason": "The service is deliberately Korean-only and declares lang=ko; cross-language/bidirectional layout was outside this run’s public-site intent."
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "medium",
      "method": "content inspection",
      "evidence": "The audited Korean-only catalogue showed no currency or user-entered locale-sensitive data requiring multi-locale formatting.",
      "reason": "The audited Korean-only catalogue showed no currency or user-entered locale-sensitive data requiring multi-locale formatting."
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "medium",
      "method": "content inspection",
      "evidence": "No appointments, absolute times, recurring events or cross-zone scheduling occur in the audited catalogue/reader flow.",
      "reason": "No appointments, absolute times, recurring events or cross-zone scheduling occur in the audited catalogue/reader flow."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "screenshots and journey review",
      "evidence": "No forced continuity, disguised advertisement, obstructive consent, nagging modal or preselected purchase appeared. Ads were marked AD.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "pass",
      "confidence": "medium",
      "method": "form DOM and HTTP failure probe",
      "evidence": "The search form is optional and unknown routes return a deliberate error response; no destructive form validation was present.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "pass",
      "confidence": "high",
      "method": "search DOM inspection",
      "evidence": "Search uses type=text, a Korean purpose placeholder, form/fieldset/legend, role=search and explicit submit/clear buttons.",
      "pathIds": [
        "search"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "representative-flow applicability judgement",
      "evidence": "No purchase, subscription, cancellation or account change was required or presented in the audited unauthenticated content flow.",
      "reason": "No purchase, subscription, cancellation or account change was required or presented in the audited unauthenticated content flow."
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review and objective probe",
      "evidence": "Images inspection found 38/38 legacy-format images, 31 oversized, 20 below-fold images without lazy loading and 8 without responsive sources; HAR transferred 1.84 MB of images.",
      "findingIds": [
        "F13"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse unused-code and performance diagnostics",
      "evidence": "The page ships 1.02 MiB estimated unused JavaScript and records long main-thread work for a mostly static catalogue.",
      "findingIds": [
        "F05"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review and objective probe",
      "evidence": "HAR captured 75 requests and 3.53 MB transferred; 62 requests and 1.97 MB were classified third-party, including advertising and measurement origins.",
      "findingIds": [
        "F14"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct artifact review and objective probe",
      "evidence": "Discoverability measured only 36% raw-to-rendered content coverage; the raw HTML had no H1, although it was not an empty JS shell.",
      "findingIds": [
        "F12"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "feature applicability judgement",
      "evidence": "No user-facing summarization, translation, classification or generation feature exists for which on-device inference would be appropriate.",
      "reason": "No user-facing summarization, translation, classification or generation feature exists for which on-device inference would be appropriate."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "low",
      "method": "baseline/post heap summaries",
      "evidence": "After ten full-page scroll cycles, a fresh-session heap was 37.56 MB versus 37.08 MB baseline (+1.3%); no runaway growth signal was observed.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "medium",
      "method": "heap summary comparison",
      "evidence": "Heap remained about 37 MB after exercising the long home feed and growth was bounded to 0.48 MB.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "low",
      "method": "heap constructor comparison",
      "evidence": "Neither heap summary listed Detached constructors among retained top constructors, and repeated scrolling did not produce disproportionate closure growth.",
      "pathIds": [
        "home"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03",
        "F04",
        "F05"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06",
        "F07",
        "F08"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F10",
        "F14",
        "F11"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "The service is deliberately Korean-only and declares lang=ko; cross-language/bidirectional layout was outside this run’s public-site intent. The audited Korean-only catalogue showed no currency or user-entered locale-sensitive data requiring multi-locale formatting. No appointments, absolute times, recurring events or cross-zone scheduling occur in the audited catalogue/reader flow."
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F13",
        "F05",
        "F14"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Mobile landing page: discovery, ranking, navigation, global performance and security.",
      "url": "https://m.comic.naver.com/index",
      "conditions": [
        "viewport 390x844",
        "prefers-color-scheme: dark",
        "forced-colors: active",
        "prefers-reduced-motion: reduce",
        "keyboard focus"
      ],
      "result": "issues"
    },
    {
      "id": "weekday",
      "description": "Weekday catalogue listing, representative of long browse/list templates.",
      "url": "https://m.comic.naver.com/webtoon/weekday",
      "conditions": [
        "viewport 390x844"
      ],
      "result": "pass"
    },
    {
      "id": "series",
      "description": "Series landing and episode-list template; primary content selection journey.",
      "url": "https://m.comic.naver.com/webtoon/list?titleId=747271",
      "conditions": [
        "viewport 390x844"
      ],
      "result": "issues"
    },
    {
      "id": "episode",
      "description": "Long-form comic reader, the primary content-consumption flow and highest layout-risk surface.",
      "url": "https://m.comic.naver.com/webtoon/detail?titleId=747271&no=315",
      "conditions": [
        "viewport 390x844"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Search entry and genre navigation, representative form and discovery surface.",
      "url": "https://m.comic.naver.com/search/main",
      "conditions": [
        "viewport 390x844",
        "keyboard-readable form semantics"
      ],
      "result": "issues"
    },
    {
      "id": "error",
      "description": "Unknown URL used to inspect HTTP/error handling.",
      "url": "https://m.comic.naver.com/nonexistent-web-uplift-audit",
      "conditions": [
        "HTTP request"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "pathId": "home",
      "url": "https://m.comic.naver.com/index",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "visual-design",
      "severity": "medium",
      "confidence": "high",
      "summary": "The site ignores the user’s dark color-scheme preference.",
      "evidence": "The dark-mode screenshot is visually identical to the light capture and the probe reports computed colorScheme \"normal\".",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/probe.json"
      ],
      "suggestedFix": "Declare color-scheme and provide preference-driven light/dark surface and text tokens, with light-dark() or a prefers-color-scheme fallback.",
      "effort": "medium"
    },
    {
      "id": "F02",
      "pathId": "home",
      "url": "https://m.comic.naver.com/index",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "guidanceCategory": "view-transitions",
      "severity": "low",
      "confidence": "medium",
      "summary": "Primary route/state changes use abrupt full navigations with no authored View Transitions.",
      "evidence": "DOM and interaction inspection found conventional links and no authored view-transition CSS or startViewTransition calls on the representative navigation surfaces.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/probe.json"
      ],
      "suggestedFix": "Use same-document or cross-document View Transitions for catalogue-to-series and series-to-reader navigation, while respecting reduced motion.",
      "effort": "medium"
    },
    {
      "id": "F03",
      "pathId": "home",
      "url": "https://m.comic.naver.com/index",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "The landing page misses the modern loading-performance bar.",
      "evidence": "Mobile Lighthouse scored performance 0.50 with LCP 19.1 s, FCP 2.7 s, TBT 540 ms and Speed Index 7.5 s; the independent trace measured LCP 3.27 s and TBT 80.8 ms.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Profile the LCP request chain, prioritize the hero/ranking imagery, and reduce/defer JavaScript before re-testing under mobile throttling.",
      "effort": "large"
    },
    {
      "id": "F04",
      "pathId": "episode",
      "url": "https://m.comic.naver.com/webtoon/detail?titleId=747271&no=315",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "visual-stability",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "The episode reader shifts dramatically during load.",
      "evidence": "The layout observer measured CLS 0.328 on the episode route from one large shift at about 1.33 s, well above the 0.1 good threshold.",
      "artifacts": [
        "evidence/episode-layout.json",
        "evidence/episode.png"
      ],
      "suggestedFix": "Reserve intrinsic space for reader images and other late content using width/height or aspect-ratio, and keep insertion above existing content stable.",
      "effort": "medium"
    },
    {
      "id": "F05",
      "pathId": "home",
      "url": "https://m.comic.naver.com/index",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "A large mostly-unused vendor bundle dominates the page load.",
      "evidence": "Lighthouse estimated 1,021 KiB unused JavaScript in the 1.43 MB vendor-common bundle (72.95% wasted); HAR records 1.58 MB of script transfer.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Split vendor code by route and feature, remove unused dependencies, and load optional advertising/analytics code conditionally after core content.",
      "effort": "large"
    },
    {
      "id": "F06",
      "pathId": "home",
      "url": "https://m.comic.naver.com/index",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Secondary navigation and author text fail minimum contrast.",
      "evidence": "Lighthouse found #ccc on white at 1.6:1 and #999 on white at 2.84:1, below the required 4.5:1 for the observed text sizes.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Replace low-contrast gray tokens with colors meeting WCAG AA in every theme and verify all text states with automated and visual tests.",
      "effort": "small"
    },
    {
      "id": "F07",
      "pathId": "home",
      "url": "https://m.comic.naver.com/index",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "The document has no main landmark.",
      "evidence": "Lighthouse landmark-one-main failed, and the DOM probe found HEADER and FOOTER but no MAIN landmark.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/probe.json"
      ],
      "suggestedFix": "Wrap the unique page content in a main element and retain the existing skip link target on or within it.",
      "effort": "trivial"
    },
    {
      "id": "F08",
      "pathId": "home",
      "url": "https://m.comic.naver.com/index",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "css-layout",
      "severity": "high",
      "confidence": "high",
      "summary": "The viewport disables pinch zoom and several footer targets are too small.",
      "evidence": "The viewport contains user-scalable=no and maximum-scale=1; Lighthouse also found 9–15 px-high footer links below the 24 px target floor.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Remove user-scalable=no/maximum-scale restrictions and expand small link hit areas to at least 24×24 CSS px, preferably 44×44 for primary touch controls.",
      "effort": "small"
    },
    {
      "id": "F09",
      "pathId": "home",
      "url": "https://m.comic.naver.com/index",
      "principleId": "be-discoverable",
      "principleCheckId": "title-and-description",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "The home page has no standard meta description.",
      "evidence": "Both the DOM probe and Lighthouse meta-description audit found no meta[name=description], although an Open Graph description exists.",
      "artifacts": [
        "evidence/probe.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Add a concise, page-specific meta name=\"description\" and retain accurate Open Graph metadata.",
      "effort": "trivial"
    },
    {
      "id": "F10",
      "pathId": "home",
      "url": "https://m.comic.naver.com/index",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Security headers and cookie attributes leave avoidable exposure.",
      "evidence": "Headers inspection found no CSP or HSTS. XSRF-TOKEN and NACT lacked Secure, all four cookies used SameSite=None, and two identifiers last 400 days.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "suggestedFix": "Deploy an enforced CSP and HSTS, mark HTTPS cookies Secure, use the strictest workable SameSite policy, and shorten identifier retention.",
      "effort": "medium"
    },
    {
      "id": "F11",
      "pathId": "home",
      "url": "https://m.comic.naver.com/index",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "severity": "medium",
      "confidence": "high",
      "summary": "Defensive browser policy coverage is incomplete and referrers are over-shared.",
      "evidence": "Headers inspection found no Permissions-Policy and Referrer-Policy: unsafe-url; clickjacking and nosniff defenses were present.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Set a restrictive Permissions-Policy and a privacy-preserving Referrer-Policy such as strict-origin-when-cross-origin; add frame-ancestors in CSP.",
      "effort": "small"
    },
    {
      "id": "F12",
      "pathId": "home",
      "url": "https://m.comic.naver.com/index",
      "principleId": "be-agent-ready",
      "principleCheckId": "structured-agent-capabilities",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "medium",
      "summary": "Most dynamic catalogue content is absent from the non-JavaScript representation.",
      "evidence": "Discoverability measured only 36% raw-to-rendered content coverage; the raw HTML had no H1, although it was not an empty JS shell.",
      "artifacts": [
        "evidence/discoverability.json",
        "evidence/discoverability-rendered.png",
        "evidence/discoverability-crawler.png"
      ],
      "suggestedFix": "Server-render meaningful rankings/catalogue links and expose accurate structured metadata so non-JS agents can discover the same core content.",
      "effort": "large"
    },
    {
      "id": "F13",
      "pathId": "home",
      "url": "https://m.comic.naver.com/index",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Image delivery is oversized, eager and legacy-format heavy.",
      "evidence": "Images inspection found 38/38 legacy-format images, 31 oversized, 20 below-fold images without lazy loading and 8 without responsive sources; HAR transferred 1.84 MB of images.",
      "artifacts": [
        "evidence/images.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Serve AVIF/WebP variants with srcset/sizes, right-size thumbnails, add dimensions, and lazy-load below-fold images while keeping the LCP image eager/high priority.",
      "effort": "medium"
    },
    {
      "id": "F14",
      "pathId": "home",
      "url": "https://m.comic.naver.com/index",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "batch-analytics-events",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "The landing page carries a large third-party/resource footprint.",
      "evidence": "HAR captured 75 requests and 3.53 MB transferred; 62 requests and 1.97 MB were classified third-party, including advertising and measurement origins.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "suggestedFix": "Set route budgets, remove non-essential third-party requests, defer ads/measurement until after core content, and batch analytics events.",
      "effort": "medium"
    }
  ],
  "taskList": [
    {
      "id": "T1",
      "title": "Cut LCP, unused JavaScript and request weight on catalogue routes",
      "priority": 1,
      "findingIds": [
        "F03",
        "F05",
        "F13",
        "F14"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T2",
      "title": "Restore zoom, target sizing, contrast and main landmark accessibility",
      "priority": 2,
      "findingIds": [
        "F06",
        "F07",
        "F08"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T3",
      "title": "Eliminate the episode reader’s large layout shift",
      "priority": 3,
      "findingIds": [
        "F04"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T4",
      "title": "Harden headers, cookie policy and referrer/privacy controls",
      "priority": 4,
      "findingIds": [
        "F10",
        "F11"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T5",
      "title": "Server-render core catalogue content and complete metadata",
      "priority": 5,
      "findingIds": [
        "F09",
        "F12"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T6",
      "title": "Add preference-driven dark theme and optional route transitions",
      "priority": 6,
      "findingIds": [
        "F01",
        "F02"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    }
  ],
  "budget": {
    "wallClockSeconds": 900,
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-23T10-15-26-132Z"
}
