{
  "url": "https://namu.wiki",
  "auditedAt": "2026-07-18T14:04:37.348Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete audit of five representative public templates/journeys. Authenticated edit, account, discussion submission and board.namu.wiki flows were not covered because they require separate permissions and/or represent another host.",
  "page": {
    "appType": "hybrid",
    "framework": "Vue-style scoped client components over server-rendered HTML (framework not explicitly identified)",
    "notes": "Public Korean wiki. Core HTML is server rendered, then enhanced with JavaScript and third-party advertising/consent UI."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "layout-metrics",
    "evaluate-probe",
    "discoverability",
    "har",
    "trace",
    "lighthouse",
    "axe-core",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "curl robots/sitemap"
  ],
  "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-desktop.png",
      "caption": "Fresh desktop load showing consent wall",
      "condition": "desktop",
      "findingIds": [
        "F01",
        "F21",
        "F24",
        "F25"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "Fresh mobile load showing consent wall",
      "condition": "360x800",
      "findingIds": [
        "F01",
        "F14",
        "F25"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-light.png",
      "caption": "Light preference rendering",
      "condition": "prefers-color-scheme: light",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "Dark preference rendering",
      "condition": "prefers-color-scheme: dark",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-high-contrast.png",
      "caption": "Higher-contrast preference rendering",
      "condition": "prefers-contrast: more",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/article-mobile.png",
      "caption": "Long article at mobile width",
      "condition": "360x800",
      "findingIds": [
        "F04"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/recent-mobile.png",
      "caption": "RecentChanges listing at mobile width",
      "condition": "360x800",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/search-mobile.png",
      "caption": "Search results at mobile width",
      "condition": "360x800",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/not-found.png",
      "caption": "Missing-document recovery state",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-rendered.png",
      "caption": "Home browser-rendered view",
      "condition": "JavaScript on",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-crawler.png",
      "caption": "Home crawler view",
      "condition": "JavaScript off",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-rendered.png",
      "caption": "Article browser-rendered view",
      "condition": "JavaScript on",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-crawler.png",
      "caption": "Article crawler view",
      "condition": "JavaScript off",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "Rendered home DOM and computed styles",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-recon.json",
      "caption": "Links, forms, headings, dialogs and metadata probe",
      "condition": "desktop",
      "findingIds": [
        "F02",
        "F14",
        "F17",
        "F23",
        "F24",
        "F29"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "Home narrow-layout metrics",
      "condition": "360x800",
      "findingIds": [
        "F05",
        "F15"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/article-layout.json",
      "caption": "Article narrow-layout metrics",
      "condition": "360x800",
      "findingIds": [
        "F04",
        "F05",
        "F08",
        "F15"
      ]
    },
    {
      "type": "other",
      "path": "evidence/ui-probe.json",
      "caption": "Controls, focus, semantics and service-worker probe",
      "condition": "desktop",
      "findingIds": [
        "F06",
        "F13",
        "F23"
      ]
    },
    {
      "type": "other",
      "path": "evidence/motion-css-probe.json",
      "caption": "Reduced-motion and modern CSS probe",
      "condition": "prefers-reduced-motion: reduce",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/platform-probe.json",
      "caption": "Scripts, metadata and modern CSS feature probe",
      "condition": "desktop",
      "findingIds": [
        "F03",
        "F04",
        "F05",
        "F09",
        "F19"
      ]
    },
    {
      "type": "other",
      "path": "evidence/axe.json",
      "caption": "axe-core accessibility results",
      "condition": "desktop",
      "findingIds": [
        "F02",
        "F06",
        "F11",
        "F12",
        "F13",
        "F14"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "Lighthouse mobile audit",
      "condition": "mobile simulated",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-summary.json",
      "caption": "Compact Lighthouse metrics and failures",
      "condition": "mobile simulated",
      "findingIds": [
        "F07",
        "F09",
        "F10",
        "F16",
        "F17"
      ]
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-details.json",
      "caption": "Console, deprecation and platform audit details",
      "condition": "mobile simulated",
      "findingIds": [
        "F16",
        "F29"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/load-trace.json",
      "caption": "DevTools load trace",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "trace-summary",
      "path": "evidence/load-trace-summary.json",
      "caption": "Compact trace timings and long tasks",
      "condition": "desktop",
      "findingIds": [
        "F07",
        "F08",
        "F27"
      ]
    },
    {
      "type": "har",
      "path": "evidence/network.har",
      "caption": "HAR 1.2 network capture",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "har-summary",
      "path": "evidence/network-summary.json",
      "caption": "Compact network totals and third-party signals",
      "condition": "desktop",
      "findingIds": [
        "F09",
        "F10",
        "F21",
        "F27",
        "F28"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "Security header audit",
      "condition": "desktop",
      "findingIds": [
        "F20",
        "F22"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "Cookie attribute audit",
      "condition": "desktop",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "Third-party tracker audit",
      "condition": "desktop",
      "findingIds": [
        "F21"
      ]
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "Client secret scan",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "Image sizing, alt and delivery audit",
      "condition": "desktop",
      "findingIds": [
        "F11",
        "F15",
        "F26"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability",
      "caption": "Home raw-vs-rendered discoverability data",
      "condition": "JavaScript on/off",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/article-discoverability",
      "caption": "Article raw-vs-rendered discoverability data",
      "condition": "JavaScript on/off",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.heapsnapshot",
      "caption": "Baseline heap snapshot",
      "condition": "fresh profile",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-scroll-post.heapsnapshot",
      "caption": "Heap after repeated scrolling",
      "condition": "10 scroll cycles",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/heap-comparison.json",
      "caption": "Derived heap comparison",
      "condition": "baseline vs post",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/memory-same-session.json",
      "caption": "Same-session memory and DOM growth probe",
      "condition": "10 scroll cycles",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/robots-sitemap.txt",
      "caption": "robots.txt and sitemap responses",
      "condition": "HTTP fetch",
      "findingIds": [
        "F18"
      ]
    },
    {
      "type": "other",
      "path": "evidence/search-probe.json",
      "caption": "Search result and form probe",
      "condition": "query 대한민국",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/recent-probe.json",
      "caption": "RecentChanges content probe",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/not-found-probe.json",
      "caption": "Missing document state probe",
      "condition": "desktop",
      "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": "pass",
      "confidence": "high",
      "method": "Screenshot comparison and computed-style DOM probe under light and dark media.",
      "evidence": "Screenshot comparison and computed-style DOM probe under light and dark media.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-light.png"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "Reduced-motion evaluate probe found zero active animations and a prefers-reduced-motion rule.",
      "evidence": "Reduced-motion evaluate probe found zero active animations and a prefers-reduced-motion rule.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/motion-css-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "High-contrast screenshot showed controls and text remained visible; separate baseline colour failures are recorded under sufficient-contrast.",
      "evidence": "High-contrast screenshot showed controls and text remained visible; separate baseline colour failures are recorded under sufficient-contrast.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-high-contrast.png"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "The platform probe found no view-transition CSS on the home template, despite full-document wiki navigation being the dominant interaction.",
      "evidence": "The platform probe found no view-transition CSS on the home template, despite full-document wiki navigation being the dominant interaction.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "pass",
      "confidence": "high",
      "method": "Platform probe found no scroll-linked animations and observed scrolling had no animation or long-running scroll effect.",
      "evidence": "Platform probe found no scroll-linked animations and observed scrolling had no animation or long-running scroll effect.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "Mobile screenshots and repeated native scrolling showed platform scrolling without custom gesture surfaces or pointer-driven motion.",
      "evidence": "Mobile screenshots and repeated native scrolling showed platform scrolling without custom gesture surfaces or pointer-driven motion.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-mobile.png"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "The article is about 25,101 CSS px tall; platform inspection found no scroll timeline or scroll-state styles, while screenshots show only fixed up/down controls.",
      "evidence": "The article is about 25,101 CSS px tall; platform inspection found no scroll timeline or scroll-state styles, while screenshots show only fixed up/down controls.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/article-layout.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "pass",
      "confidence": "high",
      "method": "No tooltip/popover/menu requiring anchored placement was open on representative paths; native/details disclosure was present and no drifting overlay was observed.",
      "evidence": "No tooltip/popover/menu requiring anchored placement was open on representative paths; native/details disclosure was present and no drifting overlay was observed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/ui-probe.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Article title, section hierarchy, recent-change filters, search result headings and missing-page recovery action directly identify the current state.",
      "evidence": "Article title, section hierarchy, recent-change filters, search result headings and missing-page recovery action directly identify the current state.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-mobile.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Desktop and mobile screenshots show a full modal covering the article before interaction; mobile leaves almost no content visible.",
      "evidence": "Desktop and mobile screenshots show a full modal covering the article before interaction; mobile leaves almost no content visible.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "The DOM recon found four DIV role=dialog surfaces and no native <dialog>; several hidden preference/vendor surfaces also add duplicate headings.",
      "evidence": "The DOM recon found four DIV role=dialog surfaces and no native <dialog>; several hidden preference/vendor surfaces also add duplicate headings.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "Crawler and post-content screenshots show a compact two-row header and content-dominant wiki layout once the separately-reported consent wall is excluded.",
      "evidence": "Crawler and post-content screenshots show a compact two-row header and content-dominant wiki layout once the separately-reported consent wall is excluded.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/discoverability-crawler.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "Layout metrics at 360 px report 0 horizontal overflow on home and a 25k-px article.",
      "evidence": "Layout metrics at 360 px report 0 horizontal overflow on home and a 25k-px article.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-layout.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Both mobile layouts avoid horizontal overflow, but the platform probe found no @container rules on the template.",
      "evidence": "Both mobile layouts avoid horizontal overflow, but the platform probe found no @container rules on the template.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "The focused search input computed to outline:none and box-shadow:none; the UI probe found multiple links only 12–17 px high, and axe reported positive tabindex on search.",
      "evidence": "The focused search input computed to outline:none and box-shadow:none; the UI probe found multiple links only 12–17 px high, and axe reported positive tabindex on search.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/ui-probe.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Home, article, recent and search states have descriptive h1/title text and visible next actions.",
      "evidence": "Home, article, recent and search states have descriptive h1/title text and visible next actions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Direct search journey returned 10,000 results with a visible route to the exact 대한민국 article.",
      "evidence": "Direct search journey returned 10,000 results with a visible route to the exact 대한민국 article.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Missing-document state explicitly says the document cannot be found and offers 새 문서 만들기; search reports result count and timing.",
      "evidence": "Missing-document state explicitly says the document cannot be found and offers 새 문서 만들기; search reports result count and timing.",
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/not-found-probe.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Mobile Lighthouse measured LCP 5.73 s, FCP 4.98 s and performance 65; the independent trace measured LCP 2.29 s, showing substantial condition-dependent delay.",
      "evidence": "Mobile Lighthouse measured LCP 5.73 s, FCP 4.98 s and performance 65; the independent trace measured LCP 2.29 s, showing substantial condition-dependent delay.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Mobile CLS was 0.050 on home and 0.053 on article, within the good threshold despite image sizing risks.",
      "evidence": "Mobile CLS was 0.050 on home and 0.053 on article, within the good threshold despite image sizing risks.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-layout.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "The trace recorded two long tasks, longest 135 ms and TBT 113.7 ms; the long article mobile layout observed a 165 ms task.",
      "evidence": "The trace recorded two long tasks, longest 135 ms and TBT 113.7 ms; the long article mobile layout observed a 165 ms task.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/load-trace-summary.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "HAR recorded two redirects and 1.57 MB transferred; DOM confirmation shows adsbygoogle.js in HEAD with async=false/defer=false. Lighthouse estimates 1.51 s render-blocking savings.",
      "evidence": "HAR recorded two redirects and 1.57 MB transferred; DOM confirmation shows adsbygoogle.js in HEAD with async=false/defer=false. Lighthouse estimates 1.51 s render-blocking savings.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/network-summary.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse estimates 663 KiB unused JavaScript and 108 KiB unused CSS; HAR shows scripts account for 1.21 MB of transfer.",
      "evidence": "Lighthouse estimates 663 KiB unused JavaScript and 108 KiB unused CSS; HAR shows scripts account for 1.21 MB of transfer.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "axe reported critical image-alt failures and serious link-name failures; the images probe counted 14 images without alt text.",
      "evidence": "axe reported critical image-alt failures and serious link-name failures; the images probe counted 14 images without alt text.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/axe.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "axe found green text at 4.46:1 against #1c1d1f and orange links with only 1.66:1 contrast against surrounding text and no non-colour affordance.",
      "evidence": "axe found green text at 4.46:1 against #1c1d1f and orange links with only 1.66:1 contrast against surrounding text and no non-colour affordance.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/axe.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "axe found content outside landmarks, tabindex=1, and unnamed links; the DOM has no main, nav or header elements and the focus probe showed no visible input outline.",
      "evidence": "axe found content outside landmarks, tabindex=1, and unnamed links; the DOM has no main, nav or header elements and the focus probe showed no visible input outline.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/axe.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Desktop/mobile screenshots show readable Korean text, stable wrapping and no horizontal clipping at 360 px.",
      "evidence": "Desktop/mobile screenshots show readable Korean text, stable wrapping and no horizontal clipping at 360 px.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-mobile.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "The rendered meta viewport is user-scalable=no; axe classifies this as critical even though 360 px layouts do not horizontally overflow.",
      "evidence": "The rendered meta viewport is user-scalable=no; axe classifies this as critical even though 360 px layouts do not horizontally overflow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse errors-in-console audit passed with no recorded items.",
      "evidence": "Lighthouse errors-in-console audit passed with no recorded items.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-details.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "The images primitive found 25 of 26 images missing a width or height attribute and 14 oversized; mobile layout recorded CLS around 0.05.",
      "evidence": "The images primitive found 25 of 26 images missing a width or height attribute and 14 oversized; mobile layout recorded CLS around 0.05.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse reported three deprecations from the Cloudflare challenge script and failed valid-source-maps for large first-party JavaScript.",
      "evidence": "Lighthouse reported three deprecations from the Cloudflare challenge script and failed valid-source-maps for large first-party JavaScript.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-details.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "issues",
      "confidence": "high",
      "method": "DOM and discoverability evidence found no meta[name=description], and Lighthouse failed the meta-description audit; og:description exists only as social metadata.",
      "evidence": "DOM and discoverability evidence found no meta[name=description], and Lighthouse failed the meta-description audit; og:description exists only as social metadata.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse passes crawlable links and robots, while the viewport disables scaling with user-scalable=no.",
      "evidence": "Lighthouse passes crawlable links and robots, while the viewport disables scaling with user-scalable=no.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json"
      ],
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "HTTP 200, canonical URL and permissive per-route robots rules were observed; missing sitemap is separately recorded.",
      "evidence": "HTTP 200, canonical URL and permissive per-route robots rules were observed; missing sitemap is separately recorded.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/robots-sitemap.txt"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "The platform probe found complete og:* tags and zero JSON-LD blocks on an article-like page.",
      "evidence": "The platform probe found complete og:* tags and zero JSON-LD blocks on an article-like page.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Headers show HSTS and nosniff, but no CSP. Cookie audit found FCCDCF without Secure or HttpOnly, SameSite=None, expiring in about 390 days.",
      "evidence": "Headers show HSTS and nosniff, but no CSP. Cookie audit found FCCDCF without Secure or HttpOnly, SameSite=None, expiring in about 390 days.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "HAR attributes 26 requests and 805,184 bytes to third parties; trackers found DoubleClick and Google syndication, while the consent copy names 210 partners.",
      "evidence": "HAR attributes 26 requests and 805,184 bytes to third parties; trackers found DoubleClick and Google syndication, while the consent copy names 210 partners.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/network-summary.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "pass",
      "confidence": "high",
      "method": "No notification/geolocation prompt appeared on load and no permission call was observed in representative anonymous paths; authentication was not required for core reading/search.",
      "evidence": "No notification/geolocation prompt appeared on load and no permission call was observed in representative anonymous paths; authentication was not required for core reading/search.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Headers include HSTS and X-Frame-Options SAMEORIGIN, but omit CSP, Referrer-Policy and Permissions-Policy.",
      "evidence": "Headers include HSTS and X-Frame-Options SAMEORIGIN, but omit CSP, Referrer-Policy and Permissions-Policy.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Article raw HTML returned 200 with title/h1 and 69% rendered-word coverage; crawler screenshot contains the article without JavaScript.",
      "evidence": "Article raw HTML returned 200 with title/h1 and 69% rendered-word coverage; crawler screenshot contains the article without JavaScript.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-discoverability-crawler.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "Search, listing, article and missing-document templates rendered usable states with no console errors or clipped horizontal layout.",
      "evidence": "Search, listing, article and missing-document templates rendered usable states with no console errors or clipped horizontal layout.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-probe.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "issues",
      "confidence": "high",
      "method": "DOM recon found no manifest, while the UI probe reports service-worker support but controlled=false and metadata declares mobile-web-app-capable=yes.",
      "evidence": "DOM recon found no manifest, while the UI probe reports service-worker support but controlled=false and metadata declares mobile-web-app-capable=yes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "The intentionally missing document produced a clear message and recovery action rather than a blank shell.",
      "evidence": "The intentionally missing document produced a clear message and recovery action rather than a blank shell.",
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/not-found-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "The root correctly declares lang=ko, but the English consent dialog and Spanish/Portuguese footer are inside the same language context without nested lang attributes.",
      "evidence": "The root correctly declares lang=ko, but the English consent dialog and Spanish/Portuguese footer are inside the same language context without nested lang attributes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "RecentChanges renders Korean relative times and the footer exposes the detected Europe/London zone rather than hard-coding a Korean clock.",
      "evidence": "RecentChanges renders Korean relative times and the footer exposes the detected Europe/London zone rather than hard-coding a Korean clock.",
      "pathIds": [
        "recent"
      ],
      "artifacts": [
        "evidence/recent-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "pass",
      "confidence": "high",
      "method": "Rendered footer explicitly reports Europe/London for the test environment, showing zone-aware presentation.",
      "evidence": "Rendered footer explicitly reports Europe/London for the test environment, showing zone-aware presentation.",
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/not-found-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Screenshots show equally prominent Consent and Manage options buttons but no direct Reject all action, while copy requests personalised ads and sharing with 210 partners.",
      "evidence": "Screenshots show equally prominent Consent and Manage options buttons but no direct Reject all action, while copy requests personalised ads and sharing with 210 partners.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "pass",
      "confidence": "high",
      "method": "Search accepts a query and returns a clear count/results state; missing documents provide a recovery action without blaming the user.",
      "evidence": "Search accepts a query and returns a clear count/results state; missing documents provide a recovery action without blaming the user.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Direct review across the representative DOM, screenshots and objective probes found the stated outcome satisfied.",
      "evidence": "Representative public forms are search/filter controls, not address, payment, sign-in or sign-up fields where autofill tokens apply.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json"
      ],
      "reason": "Representative public forms are search/filter controls, not address, payment, sign-in or sign-up fields where autofill tokens apply."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Direct review across the representative DOM, screenshots and objective probes found the stated outcome satisfied.",
      "evidence": "No checkout, subscription or authenticated account-management flow was entered in the anonymous representative scope.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json"
      ],
      "reason": "No checkout, subscription or authenticated account-management flow was entered in the anonymous representative scope."
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Images probe found 14 oversized assets, 25 missing at least one intrinsic dimension, 12 below-fold images not lazy-loaded and two legacy PNGs.",
      "evidence": "Images probe found 14 oversized assets, 25 missing at least one intrinsic dimension, 12 below-fold images not lazy-loaded and two legacy PNGs.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Scripts account for 1.21 MB; third parties account for 805 KB, and startup includes long tasks while the primary content is simple text.",
      "evidence": "Scripts account for 1.21 MB; third parties account for 805 KB, and startup includes long tasks while the primary content is simple text.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/network-summary.json"
      ],
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "More than half of 1.57 MB transferred is third-party, with ad and consent scripts among the largest resources.",
      "evidence": "More than half of 1.57 MB transferred is third-party, with ad and consent scripts among the largest resources.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/network-summary.json"
      ],
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Direct review across the representative DOM, screenshots and objective probes found the stated outcome satisfied.",
      "evidence": "No developer intent or agent-facing transactional capability was identified; the emerging WebMCP opportunity is outside this public wiki audit.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json"
      ],
      "reason": "No developer intent or agent-facing transactional capability was identified; the emerging WebMCP opportunity is outside this public wiki audit."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Direct review across the representative DOM, screenshots and objective probes found the stated outcome satisfied.",
      "evidence": "No local inference use case is necessary for the core task of reading and searching wiki content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json"
      ],
      "reason": "No local inference use case is necessary for the core task of reading and searching wiki content."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "medium",
      "method": "Same-session probe repeated full-page scroll 10 times: DOM stayed 6023, animations stayed 0 and JS heap changed by only 131,008 bytes.",
      "evidence": "Same-session probe repeated full-page scroll 10 times: DOM stayed 6023, animations stayed 0 and JS heap changed by only 131,008 bytes.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/memory-same-session.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "medium",
      "method": "Heap snapshot totals were about 28.9 MB with 6,023 rendered elements, proportionate to a long wiki page plus consent UI.",
      "evidence": "Heap snapshot totals were about 28.9 MB with 6,023 rendered elements, proportionate to a long wiki page plus consent UI.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-comparison.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "Ten repeated scroll cycles added zero DOM nodes or animations; independent snapshots differed by only 0.093% self size, with no unbounded-growth signal.",
      "evidence": "Ten repeated scroll cycles added zero DOM nodes or animations; independent snapshots differed by only 0.093% self size, with no unbounded-growth signal.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/heap-comparison.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F02"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05",
        "F06"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F07",
        "F08",
        "F09",
        "F10"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F11",
        "F12",
        "F13",
        "F14"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F15",
        "F16"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F17",
        "F29",
        "F18",
        "F19"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F20",
        "F21",
        "F22"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F26",
        "F27",
        "F28"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "No developer intent or agent-facing transactional capability was identified; the emerging WebMCP opportunity is outside this public wiki audit. No local inference use case is necessary for the core task of reading and searching wiki content."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Entry page and wiki landing template; audited for navigation, consent, preferences, metadata, performance, privacy and accessibility.",
      "url": "https://namu.wiki",
      "conditions": [
        "desktop 780x493",
        "mobile 360x800",
        "prefers-color-scheme: light/dark",
        "prefers-contrast: more",
        "prefers-reduced-motion: reduce",
        "keyboard/programmatic focus",
        "JavaScript disabled crawler view"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "Long-form article archetype represented by 대한민국; audited for long content, responsive layout, reading, crawler visibility and memory during repeated scrolling.",
      "url": "https://namu.wiki/w/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD",
      "conditions": [
        "mobile 360x800",
        "JavaScript disabled crawler view",
        "10 repeated full-page scroll cycles"
      ],
      "result": "issues"
    },
    {
      "id": "recent",
      "description": "Live listing archetype represented by RecentChanges; audited for dense navigation and continuously changing content.",
      "url": "https://namu.wiki/RecentChanges",
      "conditions": [
        "mobile 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Primary search journey represented by a 대한민국 query; audited for end-to-end task completion, result state and form semantics.",
      "url": "https://namu.wiki/Search?q=%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD",
      "conditions": [
        "mobile 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Missing-document recovery state; audited for useful error messaging and recovery action.",
      "url": "https://namu.wiki/w/web-uplift-audit-definitely-missing-404",
      "conditions": [
        "desktop"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "high",
      "confidence": "high",
      "summary": "A consent wall obscures the core page on every fresh visit.",
      "evidence": "Desktop and mobile screenshots show a full modal covering the article before interaction; mobile leaves almost no content visible.",
      "suggestedFix": "Do not gate reading behind the consent UI. Use a compact, non-modal notice for optional advertising choices and preserve immediate access to content.",
      "effort": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "id": "F02",
      "severity": "medium",
      "confidence": "high",
      "summary": "Consent overlays use custom role=dialog containers rather than native dialog semantics.",
      "evidence": "The DOM recon found four DIV role=dialog surfaces and no native <dialog>; several hidden preference/vendor surfaces also add duplicate headings.",
      "suggestedFix": "Use a native <dialog> only when modality is essential, with a labelled heading, focus management, Escape/cancel behavior and a clearly exposed decline action.",
      "effort": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/axe.json"
      ]
    },
    {
      "id": "F03",
      "severity": "low",
      "confidence": "high",
      "summary": "Page and route changes do not use View Transitions.",
      "evidence": "The platform probe found no view-transition CSS on the home template, despite full-document wiki navigation being the dominant interaction.",
      "suggestedFix": "Add progressive cross-document View Transitions for same-origin article, search and listing navigation, and disable non-essential motion under reduced motion.",
      "effort": "medium",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/platform-probe.json"
      ]
    },
    {
      "id": "F04",
      "severity": "low",
      "confidence": "high",
      "summary": "Long articles provide jump controls but no scroll-state-aware progress or responsive chrome.",
      "evidence": "The article is about 25,101 CSS px tall; platform inspection found no scroll timeline or scroll-state styles, while screenshots show only fixed up/down controls.",
      "suggestedFix": "Add a lightweight declarative reading-progress indicator or scroll-state-aware header for long documents, respecting reduced motion.",
      "effort": "medium",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "scroll-progress-indicator",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/article-layout.json",
        "evidence/article-mobile.png",
        "evidence/platform-probe.json"
      ]
    },
    {
      "id": "F05",
      "severity": "low",
      "confidence": "high",
      "summary": "The layout adapts to mobile, but reusable components rely on viewport-level behavior rather than container queries.",
      "evidence": "Both mobile layouts avoid horizontal overflow, but the platform probe found no @container rules on the template.",
      "suggestedFix": "Adopt container queries for article cards, tables and navigation modules that can appear in different content widths.",
      "effort": "medium",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/article-layout.json",
        "evidence/platform-probe.json"
      ]
    },
    {
      "id": "F06",
      "severity": "high",
      "confidence": "high",
      "summary": "Keyboard focus and touch-target support are inconsistent.",
      "evidence": "The focused search input computed to outline:none and box-shadow:none; the UI probe found multiple links only 12–17 px high, and axe reported positive tabindex on search.",
      "suggestedFix": "Use :focus-visible with a strong outline, remove tabindex=1, and provide at least 24×24 CSS px targets with spacing, preferably 44×44 for primary mobile controls.",
      "effort": "medium",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/ui-probe.json",
        "evidence/axe.json"
      ]
    },
    {
      "id": "F07",
      "severity": "high",
      "confidence": "high",
      "summary": "Cold-load performance is outside the good LCP range.",
      "evidence": "Mobile Lighthouse measured LCP 5.73 s, FCP 4.98 s and performance 65; the independent trace measured LCP 2.29 s, showing substantial condition-dependent delay.",
      "suggestedFix": "Prioritise the real LCP content, remove the initial redirect, and defer consent/ad code so core wiki content paints independently.",
      "effort": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/load-trace-summary.json"
      ]
    },
    {
      "id": "F08",
      "severity": "medium",
      "confidence": "high",
      "summary": "Startup includes avoidable long main-thread tasks.",
      "evidence": "The trace recorded two long tasks, longest 135 ms and TBT 113.7 ms; the long article mobile layout observed a 165 ms task.",
      "suggestedFix": "Split initialization work, defer advertising and consent scripts, and schedule non-critical tasks after content becomes interactive.",
      "effort": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "guidanceId": "break-up-long-tasks",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/load-trace-summary.json",
        "evidence/article-layout.json"
      ]
    },
    {
      "id": "F09",
      "severity": "high",
      "confidence": "high",
      "summary": "Redirects, blocking styles and an un-deferred ad script delay content delivery.",
      "evidence": "HAR recorded two redirects and 1.57 MB transferred; DOM confirmation shows adsbygoogle.js in HEAD with async=false/defer=false. Lighthouse estimates 1.51 s render-blocking savings.",
      "suggestedFix": "Serve the canonical home document directly, mark non-critical third-party scripts async/defer, and reduce or inline only truly critical CSS.",
      "effort": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-script-priority",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/network-summary.json",
        "evidence/platform-probe.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "id": "F10",
      "severity": "medium",
      "confidence": "high",
      "summary": "The page ships large amounts of unused code.",
      "evidence": "Lighthouse estimates 663 KiB unused JavaScript and 108 KiB unused CSS; HAR shows scripts account for 1.21 MB of transfer.",
      "suggestedFix": "Code-split wiki features by route, remove duplicate ad/consent payloads, and load editor or account code only when requested.",
      "effort": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/network-summary.json"
      ]
    },
    {
      "id": "F11",
      "severity": "high",
      "confidence": "high",
      "summary": "Important links and images lack accessible names or alternatives.",
      "evidence": "axe reported critical image-alt failures and serious link-name failures; the images probe counted 14 images without alt text.",
      "suggestedFix": "Give icon links discernible names and give meaningful images alt text; mark purely decorative placeholders alt=\"\" or role=presentation.",
      "effort": "medium",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/axe.json",
        "evidence/images.json"
      ]
    },
    {
      "id": "F12",
      "severity": "high",
      "confidence": "high",
      "summary": "Text links fail minimum contrast and often rely on colour alone.",
      "evidence": "axe found green text at 4.46:1 against #1c1d1f and orange links with only 1.66:1 contrast against surrounding text and no non-colour affordance.",
      "suggestedFix": "Adjust dark-theme link colours to pass WCAG AA and underline body links or provide another persistent non-colour cue.",
      "effort": "medium",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/axe.json",
        "evidence/home-dark.png"
      ]
    },
    {
      "id": "F13",
      "severity": "high",
      "confidence": "high",
      "summary": "Landmarks and focus order are not robust.",
      "evidence": "axe found content outside landmarks, tabindex=1, and unnamed links; the DOM has no main, nav or header elements and the focus probe showed no visible input outline.",
      "suggestedFix": "Introduce semantic header/nav/main landmarks, preserve DOM reading order, remove positive tabindex and style visible keyboard focus.",
      "effort": "medium",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/axe.json",
        "evidence/ui-probe.json"
      ]
    },
    {
      "id": "F14",
      "severity": "critical",
      "confidence": "high",
      "summary": "The viewport explicitly disables user zoom.",
      "evidence": "The rendered meta viewport is user-scalable=no; axe classifies this as critical even though 360 px layouts do not horizontally overflow.",
      "suggestedFix": "Remove user-scalable=no and avoid restrictive maximum-scale values. Verify article tables and controls at 200% and 400% zoom.",
      "effort": "medium",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/axe.json",
        "evidence/home-mobile.png"
      ]
    },
    {
      "id": "F15",
      "severity": "medium",
      "confidence": "high",
      "summary": "Most images omit intrinsic dimensions and several are oversized.",
      "evidence": "The images primitive found 25 of 26 images missing a width or height attribute and 14 oversized; mobile layout recorded CLS around 0.05.",
      "suggestedFix": "Emit width and height or aspect-ratio for every image and choose source dimensions close to the rendered slot.",
      "effort": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/images.json",
        "evidence/home-mobile-layout.json",
        "evidence/article-layout.json"
      ]
    },
    {
      "id": "F16",
      "severity": "medium",
      "confidence": "high",
      "summary": "Loaded scripts trigger deprecated browser API warnings and large first-party bundles lack source maps.",
      "evidence": "Lighthouse reported three deprecations from the Cloudflare challenge script and failed valid-source-maps for large first-party JavaScript.",
      "suggestedFix": "Update or configure third-party challenge code to avoid deprecated APIs and publish production source maps with controlled access.",
      "effort": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/lighthouse-details.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "id": "F17",
      "severity": "medium",
      "confidence": "high",
      "summary": "Pages have descriptive titles but no standard meta description.",
      "evidence": "DOM and discoverability evidence found no meta[name=description], and Lighthouse failed the meta-description audit; og:description exists only as social metadata.",
      "suggestedFix": "Generate a concise, page-specific meta description for home, article, listing and search templates.",
      "effort": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "title-and-description",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/discoverability",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "id": "F18",
      "severity": "low",
      "confidence": "high",
      "summary": "The site exposes no sitemap at the conventional URL.",
      "evidence": "robots.txt allows public wiki routes, but /sitemap.xml returned HTTP 404. Canonical and successful page status were present.",
      "suggestedFix": "Publish a sitemap index or document the supported sitemap location, and reference it from robots.txt.",
      "effort": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/robots-sitemap.txt"
      ]
    },
    {
      "id": "F19",
      "severity": "low",
      "confidence": "high",
      "summary": "Article pages provide Open Graph metadata but no structured entity data.",
      "evidence": "The platform probe found complete og:* tags and zero JSON-LD blocks on an article-like page.",
      "suggestedFix": "Add accurate schema.org Article/WebPage and BreadcrumbList JSON-LD derived from visible title, revision and canonical URL.",
      "effort": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/platform-probe.json"
      ]
    },
    {
      "id": "F20",
      "severity": "high",
      "confidence": "high",
      "summary": "Transport is HTTPS, but CSP is absent and one long-lived consent cookie is not Secure.",
      "evidence": "Headers show HSTS and nosniff, but no CSP. Cookie audit found FCCDCF without Secure or HttpOnly, SameSite=None, expiring in about 390 days.",
      "suggestedFix": "Deploy an enforcing CSP and ensure every cross-site cookie that requires SameSite=None is Secure; minimise consent-cookie lifetime and scope.",
      "effort": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ]
    },
    {
      "id": "F21",
      "severity": "high",
      "confidence": "high",
      "summary": "The default page has a large advertising and tracking footprint.",
      "evidence": "HAR attributes 26 requests and 805,184 bytes to third parties; trackers found DoubleClick and Google syndication, while the consent copy names 210 partners.",
      "suggestedFix": "Reduce vendors to those necessary, block optional trackers until an affirmative choice, and batch/minimise measurement requests.",
      "effort": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/network-summary.json",
        "evidence/trackers.json",
        "evidence/home-desktop.png"
      ]
    },
    {
      "id": "F22",
      "severity": "medium",
      "confidence": "high",
      "summary": "Several defensive browser policies are missing.",
      "evidence": "Headers include HSTS and X-Frame-Options SAMEORIGIN, but omit CSP, Referrer-Policy and Permissions-Policy.",
      "suggestedFix": "Set a restrictive Referrer-Policy and Permissions-Policy, and migrate clickjacking/XSS protection into a tested CSP with frame-ancestors.",
      "effort": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/headers.json"
      ]
    },
    {
      "id": "F23",
      "severity": "low",
      "confidence": "high",
      "summary": "The app-like wiki advertises mobile capability but has no manifest or active service worker controller.",
      "evidence": "DOM recon found no manifest, while the UI probe reports service-worker support but controlled=false and metadata declares mobile-web-app-capable=yes.",
      "suggestedFix": "If installability is intended, add a web app manifest and a minimal offline document fallback; otherwise remove misleading app-capable metadata.",
      "effort": "medium",
      "principleId": "be-resilient",
      "principleCheckId": "offline-and-installable",
      "guidanceId": "detect-initial-visibility-state",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/ui-probe.json"
      ]
    },
    {
      "id": "F24",
      "severity": "medium",
      "confidence": "high",
      "summary": "Substantial non-Korean interface text is not language-scoped.",
      "evidence": "The root correctly declares lang=ko, but the English consent dialog and Spanish/Portuguese footer are inside the same language context without nested lang attributes.",
      "suggestedFix": "Add lang attributes to foreign-language UI regions and localise consent/footer content consistently for the active locale.",
      "effort": "medium",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/home-desktop.png"
      ]
    },
    {
      "id": "F25",
      "severity": "high",
      "confidence": "high",
      "summary": "The first consent surface emphasises acceptance and hides refusal behind settings.",
      "evidence": "Screenshots show equally prominent Consent and Manage options buttons but no direct Reject all action, while copy requests personalised ads and sharing with 210 partners.",
      "suggestedFix": "Expose Reject all beside Consent with equal prominence and make optional purposes off by default; keep the article usable regardless of choice.",
      "effort": "medium",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "custom-button-actions",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "id": "F26",
      "severity": "medium",
      "confidence": "high",
      "summary": "Image delivery wastes bytes and omits sizing metadata.",
      "evidence": "Images probe found 14 oversized assets, 25 missing at least one intrinsic dimension, 12 below-fold images not lazy-loaded and two legacy PNGs.",
      "suggestedFix": "Serve right-sized AVIF/WebP/SVG assets, preserve intrinsic dimensions and lazy-load below-fold content.",
      "effort": "medium",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/images.json"
      ]
    },
    {
      "id": "F27",
      "severity": "medium",
      "confidence": "high",
      "summary": "Advertising and consent work dominates a text-first page load.",
      "evidence": "Scripts account for 1.21 MB; third parties account for 805 KB, and startup includes long tasks while the primary content is simple text.",
      "suggestedFix": "Do not initialize ad auctions or full vendor preference payloads until needed; schedule and cache background work at low priority.",
      "effort": "medium",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "deprioritize-background-fetches",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/network-summary.json",
        "evidence/load-trace-summary.json"
      ]
    },
    {
      "id": "F28",
      "severity": "medium",
      "confidence": "high",
      "summary": "Third-party transfer is disproportionate to the core wiki experience.",
      "evidence": "More than half of 1.57 MB transferred is third-party, with ad and consent scripts among the largest resources.",
      "suggestedFix": "Set a third-party byte/request budget, remove low-value vendors and defer all remaining non-essential scripts beyond core content.",
      "effort": "medium",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "efficient-background-processing",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/network-summary.json"
      ]
    },
    {
      "id": "F29",
      "severity": "high",
      "confidence": "high",
      "summary": "The page is crawlable and responsive but not mobile-friendly for users who need zoom.",
      "evidence": "Lighthouse passes crawlable links and robots, while the viewport disables scaling with user-scalable=no.",
      "suggestedFix": "Keep width=device-width but remove user-scalable=no so mobile users and accessibility tools can zoom.",
      "effort": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "modern-web-guidance",
      "pathId": "home",
      "url": "https://namu.wiki",
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/lighthouse-details.json"
      ]
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Restore mobile zoom and test 200%/400% reflow.",
      "priority": 1,
      "findingIds": [
        "F14",
        "F29"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Replace the reading-blocking consent wall with equal accept/reject controls and immediate content access.",
      "priority": 2,
      "findingIds": [
        "F01",
        "F25"
      ],
      "guidanceId": "light-dismiss-a-dialog",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Repair names, landmarks, target sizes, tab order and visible keyboard focus.",
      "priority": 3,
      "findingIds": [
        "F06",
        "F11",
        "F13"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Fix dark-theme contrast and add non-colour link affordances.",
      "priority": 4,
      "findingIds": [
        "F12"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Cut ad/consent startup cost, defer third parties, split unused code and prioritise core content.",
      "priority": 5,
      "findingIds": [
        "F07",
        "F08",
        "F09",
        "F10",
        "F21",
        "F27",
        "F28"
      ],
      "guidanceId": "optimize-script-priority",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Deploy CSP, secure cookies, Referrer-Policy and Permissions-Policy.",
      "priority": 6,
      "findingIds": [
        "F20",
        "F22"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Size, right-size and lazily deliver images.",
      "priority": 7,
      "findingIds": [
        "F15",
        "F26"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Use native dialog semantics only where modality is essential.",
      "priority": 8,
      "findingIds": [
        "F02"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Add meta descriptions, structured article data and a sitemap.",
      "priority": 9,
      "findingIds": [
        "F17",
        "F18",
        "F19"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Language-scope or localise English, Spanish and Portuguese interface regions.",
      "priority": 10,
      "findingIds": [
        "F24"
      ],
      "guidanceId": "translator",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Remove deprecated API usage and publish controlled source maps.",
      "priority": 11,
      "findingIds": [
        "F16"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T12",
      "title": "Align mobile-app metadata with a manifest and offline fallback, or remove the claim.",
      "priority": 12,
      "findingIds": [
        "F23"
      ],
      "guidanceId": "detect-initial-visibility-state",
      "status": "open"
    },
    {
      "id": "T13",
      "title": "Adopt container queries for reusable content modules.",
      "priority": 13,
      "findingIds": [
        "F05"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    },
    {
      "id": "T14",
      "title": "Add declarative reading progress to very long articles.",
      "priority": 14,
      "findingIds": [
        "F04"
      ],
      "guidanceId": "scroll-progress-indicator",
      "status": "open"
    },
    {
      "id": "T15",
      "title": "Progressively enhance same-origin navigation with View Transitions.",
      "priority": 15,
      "findingIds": [
        "F03"
      ],
      "guidanceId": "cross-document-transitions",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 5,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-18T14-04-37-348Z"
}
