{
  "url": "https://v.daum.net",
  "auditedAt": "2026-07-20T23:08:00.000Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete audit of the requested bare host recovery route and one current representative article template. Channel, search-results, account, comment-posting, and publisher-specific variants were not covered because they are distinct hosts or require broader multi-journey scope.",
  "page": {
    "appType": "hybrid",
    "framework": "Server-rendered article with React-like/widget enhancements",
    "notes": "The bare target URL returns HTTP 404. Article candidates were discovered from news.daum.net and one current v.daum.net article represented the article template."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "lighthouse"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "component-specific-light-dark-theme",
    "accessibility",
    "adapt-scrollbar-to-contrast-preferences",
    "same-document-transitions",
    "cross-document-transitions",
    "group-element-transitions",
    "faster-spa-view-transitions",
    "scrollytelling",
    "parallax-scroll-effects",
    "scroll-entry-exit-effects",
    "carousel-slide-effects",
    "physics-based-easing",
    "individual-transform-properties",
    "animate-element-entry-exit",
    "animate-to-from-top-layer",
    "animate-to-intrinsic-sizes",
    "dynamic-sibling-animations",
    "interactive-content-reveal",
    "pull-to-reveal",
    "swipe-to-remove",
    "shrinking-header-on-scroll",
    "scroll-progress-indicator",
    "scroll-position-aware-elements",
    "scroll-snap-realtime-feedback",
    "scroll-snap-state-sync",
    "scroll-target-on-load",
    "soft-edge-content-fade",
    "scrollability-affordance-hints",
    "anchor-positioning-tab-underline",
    "position-aware-tooltips",
    "interest-triggered-tooltips",
    "interest-triggered-action-previews",
    "directional-navigation-transitions",
    "carousel-snap-highlights",
    "navigation-drawer",
    "stack-drill-down",
    "persistent-app-tours",
    "persistent-toast-notifications",
    "light-dismiss-a-dialog",
    "platform-controls-dismiss-dialog",
    "declarative-dialog-popover-control",
    "animated-select-picker",
    "branded-select-styling",
    "brand-consistent-forms",
    "custom-select-picker-layouts",
    "rich-media-picker",
    "complex-shapes",
    "shaped-cutouts",
    "overflow-clipping-control",
    "visually-texture-content",
    "apply-webgl-shaders",
    "interactive-content-in-3d-scenes",
    "highlight-text-ranges",
    "prevent-text-wrapping",
    "customize-scrollbar-color-and-thickness",
    "export-html-media-from-canvas",
    "fluid-scaling",
    "calculate-with-intrinsic-sizes",
    "css-layout",
    "size-aware-styling",
    "content-based-styling",
    "child-state-based-styling",
    "design-token-reactivity",
    "dynamic-sibling-styling",
    "form-fields-automatically-fit-contents",
    "improve-text-layout-and-legibility",
    "forms",
    "accessible-error-announcement",
    "required-field-feedback",
    "validate-input-after-interaction",
    "identify-inp-causes",
    "schedule-tasks-by-priority",
    "optimize-preload-priority",
    "improve-next-page-load-performance",
    "interactions-in-complex-layouts",
    "performance",
    "visually-stable-font-fallbacks",
    "break-up-long-tasks",
    "identify-heavy-scripts",
    "optimize-script-priority",
    "defer-rendering-heavy-content",
    "defer-work-until-scroll-ends",
    "optimize-image-priority",
    "conditional-async-dependencies",
    "expose-canvas-content-to-browser-features",
    "move-dom-element-without-losing-state",
    "precise-text-alignment",
    "visually-stable-mixed-fonts",
    "css",
    "html",
    "reduce-style-repetition",
    "security",
    "privacy",
    "batch-analytics-events",
    "full-session-analytics",
    "calculate-total-foreground-time",
    "passkeys",
    "passkey-registration",
    "passkey-authentication",
    "passkey-reauthentication",
    "passkey-conditional-create",
    "passkey-management",
    "flicker-free-client-side-ab-testing",
    "consistent-cross-document-transitions",
    "stabilize-reactive-state",
    "resilient-context-menus-and-nested-dropdowns",
    "persistent-top-layer-ui",
    "detect-initial-visibility-state",
    "sequence-distributed-events",
    "translator",
    "language-detection",
    "support-global-calendar-systems",
    "capture-location-agnostic-data",
    "format-human-readable-durations",
    "manage-recurring-intervals",
    "calculate-event-differentials",
    "coordinate-global-events",
    "model-partial-time-concepts",
    "search-hidden-content",
    "select-menu-interaction",
    "style-parent-with-has",
    "autofill-address-form",
    "autofill-payment-form",
    "autofill-sign-in-form",
    "autofill-sign-up-form",
    "autofill-highlight-inputs",
    "deliver-optimized-decorative-images",
    "resolution-optimized-pseudo-elements",
    "deprioritize-background-fetches",
    "efficient-background-processing",
    "webmcp",
    "agentic-forms",
    "agentic-javascript-tools",
    "language-model",
    "summarizer"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/home.png",
      "caption": "Root recovery page at default desktop condition",
      "condition": "default",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "Rendered root recovery DOM and CSS",
      "condition": "default",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "other",
      "path": "evidence/recon.json",
      "caption": "Root navigation and body-text recon",
      "condition": "default",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-light.png",
      "caption": "Root recovery page in light mode",
      "condition": "prefers-color-scheme: light",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "Root recovery page in dark mode",
      "condition": "prefers-color-scheme: dark",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "Root at 360x800 is blank because fixed desktop layout sits off-canvas",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F01",
        "F02"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/article-desktop.png",
      "caption": "Representative article desktop first viewport",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/article-mobile.png",
      "caption": "Representative article clipped on mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F02",
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/article-dark.png",
      "caption": "Article remains light under dark preference",
      "condition": "prefers-color-scheme: dark",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/article-layout-mobile.json",
      "caption": "Mobile overflow and long-task metrics",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F02",
        "F06"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/article-layout-desktop.json",
      "caption": "Desktop layout and long-task metrics",
      "condition": "default",
      "findingIds": [
        "F02"
      ]
    },
    {
      "type": "other",
      "path": "evidence/article-recon.json",
      "caption": "Article links, headings, metadata, and body-text recon",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/controls.json",
      "caption": "Interactive control inventory",
      "condition": "default",
      "findingIds": [
        "F05"
      ]
    },
    {
      "type": "other",
      "path": "evidence/article-secrets.json",
      "caption": "Client-side secret scan: no findings",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "trace",
      "path": "evidence/article-trace.json",
      "caption": "DevTools performance trace",
      "condition": "default",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/article-trace-summary.json",
      "caption": "Compact trace timings",
      "condition": "default",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "har",
      "path": "evidence/article.har",
      "caption": "Network archive",
      "condition": "default",
      "findingIds": [
        "F08",
        "F16",
        "F21"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/article-summary.json",
      "caption": "Network totals, third parties, and dependency signals",
      "condition": "default",
      "findingIds": [
        "F08",
        "F16",
        "F17",
        "F20",
        "F21"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "Full Lighthouse JSON",
      "condition": "mobile",
      "findingIds": [
        "F07",
        "F09",
        "F10",
        "F11",
        "F12",
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-summary.json",
      "caption": "Compact Lighthouse summary",
      "condition": "mobile",
      "findingIds": [
        "F07",
        "F09",
        "F10",
        "F11",
        "F12",
        "F14"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/article-dom.json",
      "caption": "Rendered article DOM and CSS",
      "condition": "default",
      "findingIds": [
        "F04",
        "F05"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/article-discoverability.json",
      "caption": "Raw versus rendered article coverage",
      "condition": "no-JS crawler",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-crawler.png",
      "caption": "Crawler view without JavaScript",
      "condition": "JavaScript disabled",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-rendered.png",
      "caption": "Rendered browser view",
      "condition": "JavaScript enabled",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/article-headers.json",
      "caption": "Security response headers",
      "condition": "default",
      "findingIds": [
        "F15"
      ]
    },
    {
      "type": "other",
      "path": "evidence/article-cookies.json",
      "caption": "Cookie security attributes",
      "condition": "default",
      "findingIds": [
        "F15"
      ]
    },
    {
      "type": "other",
      "path": "evidence/article-trackers.json",
      "caption": "Tracker and third-party origin inventory",
      "condition": "default",
      "findingIds": [
        "F16"
      ]
    },
    {
      "type": "other",
      "path": "evidence/article-images.json",
      "caption": "Image dimensions, lazy loading, formats, and alt",
      "condition": "default",
      "findingIds": [
        "F09",
        "F20"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.heapsnapshot",
      "caption": "Baseline heap snapshot summary: 548,204 nodes, 35.69 MB",
      "condition": "baseline",
      "findingIds": [
        "F22"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.heapsnapshot",
      "caption": "Heap after ten translation toggles: 550,704 nodes, 35.91 MB",
      "condition": "10 repeated toggles",
      "findingIds": [
        "F22"
      ]
    },
    {
      "type": "other",
      "path": "evidence/memory-metrics.json",
      "caption": "Before/after JS heap and DOM node metrics",
      "condition": "10 repeated toggles",
      "findingIds": [
        "F22"
      ]
    },
    {
      "type": "other",
      "path": "evidence/response-headers.txt",
      "caption": "HTTP response headers for bare target URL",
      "condition": "default",
      "findingIds": [
        "F01",
        "F13"
      ]
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots.txt request returned branded 404 HTML",
      "condition": "default",
      "findingIds": [
        "F13"
      ]
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "sitemap.xml request returned branded 404 HTML",
      "condition": "default",
      "findingIds": [
        "F13"
      ]
    },
    {
      "type": "other",
      "path": "evidence/document-probe.json",
      "caption": "Metadata, document, and runtime probe",
      "condition": "default",
      "findingIds": [
        "F11",
        "F13",
        "F14",
        "F18"
      ]
    },
    {
      "type": "other",
      "path": "evidence/a11y-probe.json",
      "caption": "Names, labels, target sizes, and landmarks probe",
      "condition": "default",
      "findingIds": [
        "F09",
        "F11",
        "F19"
      ]
    },
    {
      "type": "other",
      "path": "evidence/preferences-focus.json",
      "caption": "Reduced-motion, contrast, focus, and modern CSS probe",
      "condition": "preferences",
      "findingIds": [
        "F03",
        "F04"
      ]
    },
    {
      "type": "other",
      "path": "evidence/script-delivery.json",
      "caption": "Live script async/defer/module attributes",
      "condition": "default",
      "findingIds": [
        "F08"
      ]
    }
  ],
  "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": "a screenshot or computed background under an emulated prefers-color-scheme: dark condition will reveal whether surfaces re-tint; the page CSS / a color-scheme declaration is corrob",
      "evidence": "Under prefers-color-scheme: dark, the article screenshot remains a white surface; the root error page does switch to dark.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-dark.png",
        "evidence/home-dark.png"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "a transition video, or an in-page probe of getAnimations()/computed animation under an emulated prefers-reduced-motion: reduce condition, can show whether motion stops. The model c",
      "evidence": "The reduced-motion probe matched the preference and found zero running animations on the loaded article.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/preferences-focus.json",
        "evidence/article-dark.png"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "a screenshot under emulated prefers-contrast: more / forced-colors, or an axe/contrast probe, can show whether controls and text survive. The model chooses.",
      "evidence": "The forced contrast preference matched; core text and controls remained rendered, while specific measured contrast failures are separately recorded under be-inclusive.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/preferences-focus.json",
        "evidence/article-dark.png"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "a transition video of a route/state change shows whether it animates; the page source / ::view-transition usage corroborates. The model chooses.",
      "evidence": "The DOM/CSS probe found no active view-transition usage on the article’s search, translation, and related-news state changes.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-dom.json",
        "evidence/preferences-focus.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement",
      "evidence": "No scroll-linked animation exists on the representative article, so there is no applicable implementation to judge.",
      "reason": "No scroll-linked animation exists on the representative article, so there is no applicable implementation to judge."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement",
      "evidence": "The article exposes no gesture-driven removal, pull, swipe, carousel, or snap interaction.",
      "reason": "The article exposes no gesture-driven removal, pull, swipe, carousel, or snap interaction."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement",
      "evidence": "No sticky or affixed scroll-reactive chrome exists on this article template.",
      "reason": "No sticky or affixed scroll-reactive chrome exists on this article template."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "issues",
      "confidence": "high",
      "method": "CSS inspection for anchor-name / position-anchor / position-try on overlays; a screenshot of an open overlay near a viewport edge can show drift. The model chooses.",
      "evidence": "The DOM has interactive search/translation panels but zero dialog, popover, details, CSS container rules, or CSS anchor positioning evidence.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-dom.json",
        "evidence/document-probe.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "CSS inspection for ::highlight / scroll-marker; a transition video can show whether attention is cued after navigation. The model chooses.",
      "evidence": "Rendered headings, clearly grouped article utilities, related-news labels, and descriptive news links provide orientation and next steps.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-dom.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "pass",
      "confidence": "high",
      "method": "a screenshot on load, or a DOM probe for full-viewport overlays present before interaction. The model chooses.",
      "evidence": "Load screenshots show article content immediately with no full-viewport modal or consent wall obscuring it.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-dom.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/source inspection for popover / <dialog> / <details> vs custom overlay divs with manual dismiss handling. The model chooses.",
      "evidence": "The DOM has interactive search/translation panels but zero dialog, popover, details, CSS container rules, or CSS anchor positioning evidence.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-dom.json",
        "evidence/document-probe.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "a screenshot plus layout metrics can show the proportion of the viewport given to chrome vs content. The model chooses.",
      "evidence": "Desktop screenshot gives the primary card to the headline and article; utilities are compact and secondary.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-dom.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "layout metrics (scrollWidth vs innerWidth) and a screenshot at an emulated narrow mobile viewport reveal overflow. The model chooses.",
      "evidence": "The layout primitive measured scrollWidth 1168 against clientWidth 360 (808 px overflow), while the screenshot shows the headline and body clipped off-screen.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-layout-mobile.json",
        "evidence/article-mobile.png"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "CSS inspection for @container / container-type; a computed-style probe of the same component in a wide vs narrow container shows whether it adapts. The model chooses.",
      "evidence": "The layout primitive measured scrollWidth 1168 against clientWidth 360 (808 px overflow), while the screenshot shows the headline and body clipped off-screen.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-layout-mobile.json",
        "evidence/article-mobile.png"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "a focus probe (focus an element, read the computed outline) or an axe target-size check; a screenshot of a focused control corroborates. The model chooses.",
      "evidence": "The viewport contains maximum-scale=1,user-scalable=no; Lighthouse found 14x14 ad-info targets and the probe found a 16x18 tooltip button.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/a11y-probe.json",
        "evidence/document-probe.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "issues",
      "confidence": "high",
      "method": "screenshot the first viewport and key scrolled states; inspect heading structure, nav labels, button text, and visual hierarchy; a task walkthrough can show whether the next action",
      "evidence": "curl recorded HTTP/2 404 for https://v.daum.net/; the screenshot shows only a recovery page.",
      "pathIds": [
        "root"
      ],
      "artifacts": [
        "evidence/response-headers.txt",
        "evidence/home-light.png"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "issues",
      "confidence": "high",
      "method": "run the flow manually with screenshots/DOM snapshots at each step; compare expected vs actual path length; inspect form requirements, navigation continuity, and blockers. The model",
      "evidence": "At 360x800 the headline, summary, and article table extend far beyond the right edge; the measured overflow is 808 px.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-mobile.png",
        "evidence/article-layout-mobile.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "exercise network delay/failure, invalid input, empty data and success states; screenshot the state messaging and recovery controls; inspect whether browser history and focus remain",
      "evidence": "The root 404 explicitly explains the missing page and offers Back, Daum home, and customer-support recovery actions.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-dom.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse reports LCP/CLS/TBT directly and the model may run it; layout metrics + a layout-shift observer + a long-task observer (the evidence primitives) give the same signal fir",
      "evidence": "Lighthouse measured FCP 8.9 s, LCP 11.3 s, Speed Index 11.9 s, TTI 36.5 s, and performance 0.49. The independent trace measured LCP 3.52 s.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/article-trace-summary.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "the layout primitive's CLS observer captures shifts; a transition video of the first seconds shows content jumping. The model chooses.",
      "evidence": "Layout observer measured CLS 0 on both captured sessions; Lighthouse CLS was 0.075, within the good threshold.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-dom.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "the layout primitive records long tasks; a heap summary shows the object population; Lighthouse reports TBT. The model chooses.",
      "evidence": "HAR captured 128 requests and 3,861,531 transferred bytes; 21 scripts cost 2.24 MB and 124 requests were classified third-party. A page JS and CSS file each exceeded 1.16 MB.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article.har",
        "evidence/article-summary.json",
        "evidence/script-delivery.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "a HAR summary can reveal cache headers, redirects, render-blocking candidates, weight offenders and dependency shape; a trace/Lighthouse insight report can corroborate LCP discover",
      "evidence": "Lighthouse measured FCP 8.9 s, LCP 11.3 s, Speed Index 11.9 s, TTI 36.5 s, and performance 0.49. The independent trace measured LCP 3.52 s. HAR captured 128 requests and 3,861,531 transferred bytes; 21 scripts cost 2.24 MB and 124 requests were classified third-party. A page JS and CSS file each exceeded 1.16 MB.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/article-trace-summary.json",
        "evidence/article.har",
        "evidence/article-summary.json",
        "evidence/script-delivery.json"
      ],
      "findingIds": [
        "F07",
        "F08"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse/trace/code-coverage style evidence can flag unused JS/CSS, duplicated JavaScript and legacy code; a HAR summary shows third-party byte cost and request count. The model ",
      "evidence": "HAR captured 128 requests and 3,861,531 transferred bytes; 21 scripts cost 2.24 MB and 124 requests were classified third-party. A page JS and CSS file each exceeded 1.16 MB.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article.har",
        "evidence/article-summary.json",
        "evidence/script-delivery.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "axe-core (injectable via the evaluate primitive) or Lighthouse's a11y audits enumerate these; a DOM probe of the accessibility-relevant attributes is a first-party alternative. The",
      "evidence": "Lighthouse accessibility scored 0.80 and found an unnamed Daum logo link, five untitled ad iframes, and no html lang; the probe also found 22 images without alt attributes.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/a11y-probe.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "axe contrast rules, a Lighthouse contrast audit, or an in-page probe computing contrast ratios from computed colours. The model chooses.",
      "evidence": "Lighthouse found 2.9:1 to 3:1 contrast for AD labels and selected tabs against their backgrounds, below 4.5:1.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "axe/Lighthouse structural audits; a focus-walk probe (tab through, read activeElement + computed outline) is a first-party alternative. The model chooses.",
      "evidence": "Lighthouse accessibility scored 0.80 and found an unnamed Daum logo link, five untitled ad iframes, and no html lang; the probe also found 22 images without alt attributes.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/a11y-probe.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "issues",
      "confidence": "high",
      "method": "a screenshot of body and heading text, plus CSS inspection for text-wrap / text alignment / font fallback handling. The model chooses.",
      "evidence": "The layout primitive measured scrollWidth 1168 against clientWidth 360 (808 px overflow), while the screenshot shows the headline and body clipped off-screen.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-layout-mobile.json",
        "evidence/article-mobile.png"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse/axe target-size, meta-viewport and media-caption audits are useful signals; screenshots at narrow and zoomed conditions plus DOM/media inspection can corroborate. The mo",
      "evidence": "The viewport contains maximum-scale=1,user-scalable=no; Lighthouse found 14x14 ad-info targets and the probe found a 16x18 tooltip button.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/a11y-probe.json",
        "evidence/document-probe.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "capture Runtime/Log CDP events, or a probe that reads collected errors; Lighthouse reports this too. The model chooses.",
      "evidence": "Lighthouse found multiple font CORS failures, a deprecated Topics API use, missing/failed source maps, inspector issues, and a BFCache failure.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/article-summary.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "a DOM/source probe for doctype/charset/img dimensions; CSS inspection for repetition; Lighthouse best-practices audits cover the rest. The model chooses.",
      "evidence": "Lighthouse found multiple font CORS failures, a deprecated Topics API use, missing/failed source maps, inspector issues, and a BFCache failure.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/article-summary.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse best-practices audits and DevTools inspector/deprecation signals can surface these; DOM/source probes can verify paste handlers and prompt timing. The model chooses.",
      "evidence": "Lighthouse found multiple font CORS failures, a deprecated Topics API use, missing/failed source maps, inspector issues, and a BFCache failure.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/article-summary.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "issues",
      "confidence": "high",
      "method": "a DOM probe reads <title> and meta[name=description]; Lighthouse SEO audits cover the same ground. The model chooses.",
      "evidence": "The document probe and Lighthouse meta-description audit found no meta[name=description], although Open Graph description is present.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/document-probe.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "a DOM probe for anchor hrefs, viewport meta, and robots; Lighthouse SEO audits corroborate. The model chooses.",
      "evidence": "The rendered article has a viewport meta and 95 href anchors, overwhelmingly real crawlable URLs with descriptive Korean news titles.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-discoverability.json",
        "evidence/document-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "inspect response status and headers, <link rel=canonical>, hreflang links, robots meta, robots.txt and sitemap.xml; Lighthouse SEO audits cover several of these. The model chooses.",
      "evidence": "The article is HTTP 200 but has no canonical link in the document probe; /robots.txt and /sitemap.xml both return the branded 404 document, and the bare target URL is also HTTP 404.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/response-headers.txt",
        "evidence/robots.txt",
        "evidence/sitemap.xml",
        "evidence/document-probe.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "inspect JSON-LD/microdata and social preview tags against visible content; Lighthouse has a manual structured-data audit, and ad-hoc probes can parse schema.org blocks. The model c",
      "evidence": "Probe found JSON-LD plus Open Graph title, description, and image matching visible article content.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-discoverability.json",
        "evidence/document-probe.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "inspect response headers / page protocol via an evaluate probe or the network layer; Lighthouse best-practices flags HTTPS and CSP issues. The model chooses.",
      "evidence": "The headers primitive found no CSP, HSTS, nosniff, clickjacking defense, Referrer-Policy, or Permissions-Policy. One first-party cookie is not Secure and all four use SameSite=None.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-headers.json",
        "evidence/article-cookies.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "inspect network requests and third-party origins; a probe of analytics/beacon calls. The model chooses.",
      "evidence": "The tracker primitive observed 28 origins, 26 third-party origins, and DoubleClick/Google ad trackers; Lighthouse reported 11 third-party cookies.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-trackers.json",
        "evidence/lighthouse-summary.json",
        "evidence/article-summary.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement",
      "evidence": "No permission request or authentication flow exists on the public article surface.",
      "reason": "No permission request or authentication flow exists on the public article surface."
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "inspect response headers and browser security state; Lighthouse/DevTools security audits can corroborate HSTS, clickjacking, Trusted Types, origin isolation and third-party cookie ",
      "evidence": "The headers primitive found no CSP, HSTS, nosniff, clickjacking defense, Referrer-Policy, or Permissions-Policy. One first-party cookie is not Secure and all four use SameSite=None.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-headers.json",
        "evidence/article-cookies.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "load with scripting disabled or compare a no-JS fetch of the HTML against the rendered page; check for Baseline-aware fallbacks in source. The model chooses.",
      "evidence": "Discoverability fetch returned HTTP 200, isJsShell false, and 64% raw/rendered content coverage with title and h1 in raw HTML.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-discoverability.json",
        "evidence/document-probe.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "issues",
      "confidence": "high",
      "method": "exercise menus near viewport edges with a screenshot; a probe of async/visibility behaviour. The model chooses.",
      "evidence": "HAR recorded failed CORS font loads, blocked action/comment loaders, and aborted feedback calls; Lighthouse logged console errors.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-summary.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement",
      "evidence": "This public news article is content, not an installable app; offline installability was judged out of scope.",
      "reason": "This public news article is content, not an installable app; offline installability was judged out of scope."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "simulate failed fetches/offline mode or inspect representative 404/500 routes; screenshots and DOM snapshots of error/loading/empty states show whether recovery is possible. The mo",
      "evidence": "The HTTP 404 route provides an explanatory recovery page with back, home, and support actions instead of a blank shell.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-dom.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "a DOM probe for <html lang>/dir and CSS inspection for logical vs physical properties. The model chooses.",
      "evidence": "The article html lang and dir are empty. A publication time is rendered without an explicit zone while the product exposes translation across many languages.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/document-probe.json",
        "evidence/article-dom.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "source inspection for Intl.* usage vs hand-rolled formatting; a probe of rendered dates/numbers under a different locale. The model chooses.",
      "evidence": "The Korean article date and duration are rendered in local conventions, and translation controls offer multiple target languages.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-dom.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "issues",
      "confidence": "high",
      "method": "source inspection for time-zone-aware date handling vs naive local Date math. The model chooses.",
      "evidence": "The article html lang and dir are empty. A publication time is rendered without an explicit zone while the product exposes translation across many languages.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/document-probe.json",
        "evidence/article-dom.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "a screenshot of consent/upsell/cancel flows; source inspection for declarative button actions vs misleading controls. The model chooses.",
      "evidence": "Screenshots and DOM review found no consent wall, confirmshaming, forced continuity, hidden pricing, or disguised primary action.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-dom.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement",
      "evidence": "The representative article and recovery page contain no user-submitted validation flow.",
      "reason": "The representative article and recovery page contain no user-submitted validation flow."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "source/DOM inspection for autocomplete attributes on form fields; a probe of autofill affordances. The model chooses.",
      "evidence": "The search text input has no associated label or aria-label and uses autocomplete=\"off\".",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/a11y-probe.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement",
      "evidence": "No checkout, subscription commitment, authentication, or account-management flow is present on the audited surfaces.",
      "reason": "No checkout, subscription commitment, authentication, or account-management flow is present on the audited surfaces."
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "inspect transferred image bytes vs displayed size; source inspection for modern formats and resolution handling. The model chooses.",
      "evidence": "The images primitive found 27 missing dimensions, 28 below-fold images without lazy loading, 27 missing alt values, and no responsive srcset for the two article images.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-images.json",
        "evidence/article-summary.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "a long-task / network probe for background fetches and processing while idle or backgrounded. The model chooses.",
      "evidence": "The HAR transferred 3.86 MB for a text article, with 3.83 MB and 124 requests classified third-party; scripts alone transferred 2.24 MB.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-summary.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "a HAR summary shows third-party bytes, font/media weight and caching; screenshots/video reveal autoplay and decorative media; trace/layout evidence shows whether media/animation ke",
      "evidence": "The HAR transferred 3.86 MB for a text article, with 3.83 MB and 124 requests classified third-party; scripts alone transferred 2.24 MB.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-summary.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "pass",
      "confidence": "high",
      "method": "source inspection for WebMCP / agentic-tool registration and agent-readable affordances. The model chooses.",
      "evidence": "The public article is server-visible (64% raw coverage), carries JSON-LD and Open Graph entity metadata, and exposes descriptive links, providing a structured read-only agent surface.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-discoverability.json",
        "evidence/document-probe.json"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement",
      "evidence": "No user-facing inference task exists on this article that would justify built-in on-device AI.",
      "reason": "No user-facing inference task exists on this article that would justify built-in on-device AI."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "compare heap snapshots for retained growth - a baseline, then one taken after repeating the interaction with `--interact` about 10x (the memory-tracer methodology: baseline -> repe",
      "evidence": "After ten translation-panel open/close cycles, DOM nodes changed 939 to 938 and used JS heap rose only about 0.49 MB; heap self-size rose about 0.22 MB across independent baseline/post snapshots.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post.heapsnapshot",
        "evidence/memory-metrics.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "high",
      "method": "a single `heap` summary's totals (nodeCount, totalSelfSizeBytes, constructor population) plus Performance.getMetrics (Nodes, JSHeapUsedSize) give the current footprint to judge aga",
      "evidence": "Baseline heap summary reported 548,204 nodes and 35.69 MB self size. Ten translation-panel toggles added only 0.49 MB JS heap and DOM nodes stayed 939 to 938, so no repeated-interaction leak was observed.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post.heapsnapshot",
        "evidence/memory-metrics.json"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "the `heap` summary by constructor (Detached* nodes) compared across a before/after pair shows a growing detached-DOM population; an `evaluate` probe can sample listener/timer count",
      "evidence": "The repeated interaction left DOM node count stable (939 to 938) and did not produce unbounded retained growth in the post heap totals.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post.heapsnapshot",
        "evidence/memory-metrics.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F02",
        "F11"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F06"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F07",
        "F08"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F09",
        "F10",
        "F02",
        "F11"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F14",
        "F13"
      ]
    },
    {
      "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": [
        "F20",
        "F21"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F22"
      ]
    }
  ],
  "paths": [
    {
      "id": "root",
      "description": "Requested bare host and its missing-page recovery state. Included because it is the exact supplied URL; it returns HTTP 404 and represents error recovery, not the news product.",
      "url": "https://v.daum.net/",
      "conditions": [
        "default",
        "prefers-color-scheme: light",
        "prefers-color-scheme: dark",
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "Current news article template discovered from news.daum.net. Represents the host’s primary reading journey, metadata, related content, utilities, advertising, and network/runtime behavior.",
      "url": "https://v.daum.net/v/20260721075151567",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "prefers-contrast: more",
        "no JavaScript",
        "ten translation-panel toggles"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "critical",
      "summary": "The requested entry URL is an HTTP 404 rather than a usable news surface.",
      "evidence": "curl recorded HTTP/2 404 for https://v.daum.net/; the screenshot shows only a recovery page.",
      "suggestedFix": "Route the host root to a useful news landing page, or redirect it with a permanent HTTP redirect.",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-purpose-and-primary-action",
      "guidanceId": "persistent-toast-notifications",
      "confidence": "high",
      "effort": "large",
      "pathId": "root",
      "url": "https://v.daum.net/",
      "artifacts": [
        "evidence/response-headers.txt",
        "evidence/home-light.png"
      ]
    },
    {
      "id": "F02",
      "severity": "critical",
      "summary": "The article template is unusable at a 360 px viewport.",
      "evidence": "The layout primitive measured scrollWidth 1168 against clientWidth 360 (808 px overflow), while the screenshot shows the headline and body clipped off-screen.",
      "suggestedFix": "Remove fixed desktop minimum widths, use intrinsic/fluid sizing, and verify article reflow at narrow viewports.",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "confidence": "high",
      "effort": "large",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/article-layout-mobile.json",
        "evidence/article-mobile.png"
      ]
    },
    {
      "id": "F03",
      "severity": "medium",
      "summary": "The article ignores the user’s dark color preference.",
      "evidence": "Under prefers-color-scheme: dark, the article screenshot remains a white surface; the root error page does switch to dark.",
      "suggestedFix": "Apply color-scheme and preference-driven surface/text tokens consistently to the article template.",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "confidence": "high",
      "effort": "medium",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/article-dark.png",
        "evidence/home-dark.png"
      ]
    },
    {
      "id": "F04",
      "severity": "low",
      "summary": "State changes do not use view transitions.",
      "evidence": "The DOM/CSS probe found no active view-transition usage on the article’s search, translation, and related-news state changes.",
      "suggestedFix": "Use same-document View Transitions for meaningful panel and navigation state changes, with reduced-motion handling.",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "confidence": "high",
      "effort": "medium",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/article-dom.json",
        "evidence/preferences-focus.json"
      ]
    },
    {
      "id": "F05",
      "severity": "low",
      "summary": "Interactive overlays use legacy custom positioning and controls.",
      "evidence": "The DOM has interactive search/translation panels but zero dialog, popover, details, CSS container rules, or CSS anchor positioning evidence.",
      "suggestedFix": "Use popover/dialog semantics and CSS anchor positioning with fallback positions for transient panels.",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "confidence": "high",
      "effort": "medium",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/article-dom.json",
        "evidence/document-probe.json"
      ]
    },
    {
      "id": "F06",
      "severity": "high",
      "summary": "Article reading cannot complete on mobile because content is clipped.",
      "evidence": "At 360x800 the headline, summary, and article table extend far beyond the right edge; the measured overflow is 808 px.",
      "suggestedFix": "Treat the reading journey as a responsive acceptance test and remove desktop-only layout constraints.",
      "principleId": "support-core-task-success",
      "principleCheckId": "primary-flow-completion",
      "guidanceId": "fluid-scaling",
      "confidence": "high",
      "effort": "large",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/article-mobile.png",
        "evidence/article-layout-mobile.json"
      ]
    },
    {
      "id": "F07",
      "severity": "high",
      "summary": "Loading is far outside Core Web Vitals targets.",
      "evidence": "Lighthouse measured FCP 8.9 s, LCP 11.3 s, Speed Index 11.9 s, TTI 36.5 s, and performance 0.49. The independent trace measured LCP 3.52 s.",
      "suggestedFix": "Prioritize article content, shorten dependency chains, and defer nonessential ads, analytics, recommendations, and scripts.",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "confidence": "high",
      "effort": "large",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/article-trace-summary.json"
      ]
    },
    {
      "id": "F08",
      "severity": "high",
      "summary": "The article ships a very heavy dependency and third-party payload.",
      "evidence": "HAR captured 128 requests and 3,861,531 transferred bytes; 21 scripts cost 2.24 MB and 124 requests were classified third-party. A page JS and CSS file each exceeded 1.16 MB.",
      "suggestedFix": "Split and conditionally load article features, trim unused code, defer below-fold modules, and reduce third-party dependencies.",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "confidence": "high",
      "effort": "large",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/article.har",
        "evidence/article-summary.json",
        "evidence/script-delivery.json"
      ]
    },
    {
      "id": "F09",
      "severity": "high",
      "summary": "Accessible names and document semantics are incomplete.",
      "evidence": "Lighthouse accessibility scored 0.80 and found an unnamed Daum logo link, five untitled ad iframes, and no html lang; the probe also found 22 images without alt attributes.",
      "suggestedFix": "Set html lang, name the logo link and frames, and provide meaningful or empty alt text as appropriate.",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "confidence": "high",
      "effort": "large",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/a11y-probe.json"
      ]
    },
    {
      "id": "F10",
      "severity": "medium",
      "summary": "Several controls and ad labels fail contrast minimums.",
      "evidence": "Lighthouse found 2.9:1 to 3:1 contrast for AD labels and selected tabs against their backgrounds, below 4.5:1.",
      "suggestedFix": "Adjust foreground/background tokens and verify normal, dark, and high-contrast states.",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "confidence": "high",
      "effort": "medium",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "id": "F11",
      "severity": "high",
      "summary": "Zoom is disabled and important targets are undersized.",
      "evidence": "The viewport contains maximum-scale=1,user-scalable=no; Lighthouse found 14x14 ad-info targets and the probe found a 16x18 tooltip button.",
      "suggestedFix": "Allow user zoom and increase interactive hit areas to at least the guidance target size with adequate spacing.",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "accessibility",
      "confidence": "high",
      "effort": "large",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/a11y-probe.json",
        "evidence/document-probe.json"
      ]
    },
    {
      "id": "F12",
      "severity": "medium",
      "summary": "The page logs asset errors and uses deprecated or poorly inspectable code.",
      "evidence": "Lighthouse found multiple font CORS failures, a deprecated Topics API use, missing/failed source maps, inspector issues, and a BFCache failure.",
      "suggestedFix": "Fix font CORS, remove deprecated API usage, publish valid source maps, and resolve BFCache/DevTools issues.",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "confidence": "high",
      "effort": "medium",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/article-summary.json"
      ]
    },
    {
      "id": "F13",
      "severity": "medium",
      "summary": "Public indexing signals are incomplete.",
      "evidence": "The article is HTTP 200 but has no canonical link in the document probe; /robots.txt and /sitemap.xml both return the branded 404 document, and the bare target URL is also HTTP 404.",
      "suggestedFix": "Serve valid robots.txt and sitemap.xml, keep canonical/status signals consistent, and redirect the bare host to a crawlable landing page.",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "confidence": "high",
      "effort": "medium",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/response-headers.txt",
        "evidence/robots.txt",
        "evidence/sitemap.xml",
        "evidence/document-probe.json"
      ]
    },
    {
      "id": "F14",
      "severity": "medium",
      "summary": "The article has no meta description.",
      "evidence": "The document probe and Lighthouse meta-description audit found no meta[name=description], although Open Graph description is present.",
      "suggestedFix": "Add a concise page-specific meta description aligned with the visible article summary.",
      "principleId": "be-discoverable",
      "principleCheckId": "title-and-description",
      "guidanceId": "html",
      "confidence": "high",
      "effort": "medium",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/document-probe.json"
      ]
    },
    {
      "id": "F15",
      "severity": "high",
      "summary": "Browser-enforced security defenses are absent.",
      "evidence": "The headers primitive found no CSP, HSTS, nosniff, clickjacking defense, Referrer-Policy, or Permissions-Policy. One first-party cookie is not Secure and all four use SameSite=None.",
      "suggestedFix": "Deploy a restrictive CSP and defensive headers; make cookies Secure with the least-permissive SameSite and lifetime needed.",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "confidence": "high",
      "effort": "large",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/article-headers.json",
        "evidence/article-cookies.json"
      ]
    },
    {
      "id": "F16",
      "severity": "high",
      "summary": "The article loads a broad tracking and advertising footprint.",
      "evidence": "The tracker primitive observed 28 origins, 26 third-party origins, and DoubleClick/Google ad trackers; Lighthouse reported 11 third-party cookies.",
      "suggestedFix": "Minimize trackers, gate nonessential collection behind informed consent, and batch/defer analytics.",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "confidence": "high",
      "effort": "large",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/article-trackers.json",
        "evidence/lighthouse-summary.json",
        "evidence/article-summary.json"
      ]
    },
    {
      "id": "F17",
      "severity": "medium",
      "summary": "Runtime dependencies fail even on the main article path.",
      "evidence": "HAR recorded failed CORS font loads, blocked action/comment loaders, and aborted feedback calls; Lighthouse logged console errors.",
      "suggestedFix": "Make optional dependencies conditional and failure-tolerant, and ensure core assets load with correct CORS and MIME behavior.",
      "principleId": "be-resilient",
      "principleCheckId": "resilient-runtime-behaviour",
      "guidanceId": "conditional-async-dependencies",
      "confidence": "high",
      "effort": "medium",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/article-summary.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "id": "F18",
      "severity": "medium",
      "summary": "The document does not declare its Korean language or time-zone context.",
      "evidence": "The article html lang and dir are empty. A publication time is rendered without an explicit zone while the product exposes translation across many languages.",
      "suggestedFix": "Set lang=\"ko\", use logical properties, and emit machine-readable zoned publication dates.",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "confidence": "high",
      "effort": "medium",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/document-probe.json",
        "evidence/article-dom.json"
      ]
    },
    {
      "id": "F19",
      "severity": "low",
      "summary": "Search input assistance is disabled or unnamed.",
      "evidence": "The search text input has no associated label or aria-label and uses autocomplete=\"off\".",
      "suggestedFix": "Give search a programmatic label and retain useful browser input assistance unless there is a documented reason not to.",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "forms",
      "confidence": "high",
      "effort": "medium",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/a11y-probe.json"
      ]
    },
    {
      "id": "F20",
      "severity": "medium",
      "summary": "Images are not delivered or scheduled efficiently.",
      "evidence": "The images primitive found 27 missing dimensions, 28 below-fold images without lazy loading, 27 missing alt values, and no responsive srcset for the two article images.",
      "suggestedFix": "Reserve dimensions, lazy-load below-fold recommendations, and serve responsive modern image variants.",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "optimize-image-priority",
      "confidence": "high",
      "effort": "medium",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/article-images.json",
        "evidence/article-summary.json"
      ]
    },
    {
      "id": "F21",
      "severity": "medium",
      "summary": "Third-party media and scripts exceed a proportionate article budget.",
      "evidence": "The HAR transferred 3.86 MB for a text article, with 3.83 MB and 124 requests classified third-party; scripts alone transferred 2.24 MB.",
      "suggestedFix": "Set an article page-weight/third-party budget and load ads, comments, live media, and recommendation modules only when needed.",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "deprioritize-background-fetches",
      "confidence": "high",
      "effort": "medium",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/article-summary.json"
      ]
    },
    {
      "id": "F22",
      "severity": "medium",
      "summary": "The current memory footprint is large for a text article.",
      "evidence": "Baseline heap summary reported 548,204 nodes and 35.69 MB self size. Ten translation-panel toggles added only 0.49 MB JS heap and DOM nodes stayed 939 to 938, so no repeated-interaction leak was observed.",
      "suggestedFix": "Reduce the initial widget/advertising object graph and keep regression tests for bounded heap and DOM size.",
      "principleId": "be-memory-efficient",
      "principleCheckId": "bounded-footprint",
      "guidanceId": "manage-recurring-intervals",
      "confidence": "high",
      "effort": "medium",
      "pathId": "article",
      "url": "https://v.daum.net/v/20260721075151567",
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post.heapsnapshot",
        "evidence/memory-metrics.json"
      ]
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Restore responsive article/root rendering and mobile reading completion",
      "priority": 1,
      "findingIds": [
        "F01",
        "F02",
        "F06"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Cut the critical path, script bundle, and third-party payload",
      "priority": 2,
      "findingIds": [
        "F07",
        "F08",
        "F21"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Add security headers and minimize tracking/cookies",
      "priority": 3,
      "findingIds": [
        "F15",
        "F16"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Repair language, names, frame titles, zoom, target sizes, and contrast",
      "priority": 4,
      "findingIds": [
        "F09",
        "F10",
        "F11",
        "F18"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Fix console/runtime dependency failures and platform hygiene",
      "priority": 5,
      "findingIds": [
        "F12",
        "F17"
      ],
      "guidanceId": "conditional-async-dependencies",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Complete public metadata, root routing, robots, and sitemap signals",
      "priority": 6,
      "findingIds": [
        "F13",
        "F14"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Optimize and defer article/recommendation images",
      "priority": 7,
      "findingIds": [
        "F20"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Apply preference-driven article theming",
      "priority": 8,
      "findingIds": [
        "F03"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Modernize panels with semantic popovers and anchored positioning",
      "priority": 9,
      "findingIds": [
        "F04",
        "F05"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Label and assist search input",
      "priority": 10,
      "findingIds": [
        "F19"
      ],
      "guidanceId": "forms",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Reduce the initial memory footprint",
      "priority": 11,
      "findingIds": [
        "F22"
      ],
      "guidanceId": "manage-recurring-intervals",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 2,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-20T23-02-09-545Z"
}
