{
  "url": "https://gall.dcinside.com",
  "auditedAt": "2026-07-20T09:42:23.247Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete report-mode audit of four representative public templates. Authentication on sign.dcinside.com, posting real content, restricted galleries, and other dcinside subdomains were not covered.",
  "page": {
    "appType": "mpa",
    "framework": "server-rendered legacy MPA with jQuery",
    "notes": "Public Korean community directory. Representative coverage: home, gallery listing, article detail, public composer. Site redirects Lighthouse mobile navigation to m.dcinside.com; this corroboration is identified rather than treated as exact gall.dcinside.com template evidence."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "layout-metrics",
    "evaluate-probe",
    "axe-core",
    "trace",
    "har",
    "lighthouse",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "Modern Web Guidance 0.0.172"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "same-document-transitions",
    "shrinking-header-on-scroll",
    "improve-text-layout-and-legibility",
    "fluid-scaling",
    "accessible-error-announcement",
    "performance",
    "optimize-script-priority",
    "identify-heavy-scripts",
    "html",
    "security",
    "privacy",
    "translator",
    "validate-input-after-interaction",
    "forms",
    "deliver-optimized-decorative-images",
    "deprioritize-background-fetches"
  ],
  "artifacts": [
    {
      "type": "other",
      "path": "coverage-manifest.json",
      "caption": "Atomic 58-check coverage and evidence plan.",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "Home at 1440x1000.",
      "findingIds": [
        "F05"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "Home at requested 360x800.",
      "findingIds": [
        "F05",
        "F06",
        "F15"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "Home narrow-viewport layout metrics.",
      "findingIds": [
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "Home under prefers-color-scheme: dark.",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-high-contrast.png",
      "caption": "Home under forced colors/high contrast.",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/preferences-probe.json",
      "caption": "Reduced-motion and dark preference computed probe.",
      "findingIds": [
        "F01",
        "F02"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "Rendered home DOM and CSS.",
      "findingIds": [
        "F03",
        "F16",
        "F22",
        "F23"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-quality-probe.json",
      "caption": "Home semantics, focus, target and feature probe.",
      "findingIds": [
        "F05",
        "F07",
        "F14",
        "F17",
        "F23",
        "F29"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/list-desktop.png",
      "caption": "Gallery listing desktop.",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/list-mobile.png",
      "caption": "Gallery listing at requested 360x800.",
      "findingIds": [
        "F04",
        "F06",
        "F15"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/list-mobile-layout.json",
      "caption": "Gallery listing narrow layout metrics.",
      "findingIds": [
        "F06"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/list-dom.json",
      "caption": "Gallery listing DOM/CSS.",
      "findingIds": [
        "F03",
        "F04",
        "F23"
      ]
    },
    {
      "type": "other",
      "path": "evidence/list-quality-probe.json",
      "caption": "Gallery listing form and target probe.",
      "findingIds": [
        "F07",
        "F17"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-desktop.png",
      "caption": "Article detail desktop.",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-mobile.png",
      "caption": "Article detail at requested 360x800.",
      "findingIds": [
        "F04",
        "F15"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/detail-mobile-layout.json",
      "caption": "Article detail narrow layout metrics.",
      "findingIds": [
        "F06"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/detail-dom.json",
      "caption": "Article detail DOM/CSS.",
      "findingIds": [
        "F03",
        "F29"
      ]
    },
    {
      "type": "other",
      "path": "evidence/detail-quality-probe.json",
      "caption": "Article detail semantics/target probe.",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/write-desktop.png",
      "caption": "Public composer.",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/write-invalid.png",
      "caption": "Composer after attempted empty submit.",
      "findingIds": [
        "F08",
        "F24"
      ]
    },
    {
      "type": "other",
      "path": "evidence/write-probe.json",
      "caption": "Composer field/label/autocomplete probe.",
      "findingIds": [
        "F12",
        "F25"
      ]
    },
    {
      "type": "other",
      "path": "evidence/write-invalid-probe.json",
      "caption": "Empty-submit error, invalid state, alert, and focus probe.",
      "findingIds": [
        "F08",
        "F24"
      ]
    },
    {
      "type": "other",
      "path": "evidence/axe-home.json",
      "caption": "axe-core violations on home.",
      "findingIds": [
        "F12",
        "F13",
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/axe-write.json",
      "caption": "axe-core violations on composer.",
      "findingIds": [
        "F12",
        "F13",
        "F14",
        "F25"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "Raw CDP load trace.",
      "findingIds": [
        "F09"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "Compact load trace metrics.",
      "findingIds": [
        "F09"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "Page-load HAR.",
      "findingIds": [
        "F10"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "Compact HAR network signals.",
      "findingIds": [
        "F10",
        "F11",
        "F20",
        "F26",
        "F27"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "Lighthouse corroboration (mobile experience redirected to m.dcinside.com as configured by site).",
      "findingIds": [
        "F07",
        "F09",
        "F11",
        "F13",
        "F16",
        "F17",
        "F26"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "Home raw-vs-rendered discoverability.",
      "findingIds": [
        "F28"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "Home rendered browser view.",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "Home crawler/no-JS view.",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/detail-discoverability.json",
      "caption": "Detail raw-vs-rendered discoverability.",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-discoverability-rendered.png",
      "caption": "Detail rendered browser view.",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-discoverability-crawler.png",
      "caption": "Detail crawler/no-JS view.",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/site-files-probe.json",
      "caption": "robots, sitemap and manifest responses.",
      "findingIds": [
        "F22",
        "F28"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-headers.json",
      "caption": "Security headers.",
      "findingIds": [
        "F18",
        "F21"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-cookies.json",
      "caption": "Cookie flags and retention.",
      "findingIds": [
        "F19"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-trackers.json",
      "caption": "Third-party tracker inventory.",
      "findingIds": [
        "F20",
        "F27"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-secrets.json",
      "caption": "Client-side secret scan.",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "Image audit.",
      "findingIds": [
        "F16",
        "F26"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.heapsnapshot",
      "caption": "Baseline heap summary.",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.heapsnapshot",
      "caption": "Heap summary after ten night-mode toggles.",
      "findingIds": []
    }
  ],
  "config": {
    "loaded": false
  },
  "coverage": {
    "catalogVersion": "modern-web-guidance@0.0.172",
    "catalogChecksum": "sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7",
    "expected": 58,
    "recorded": 58,
    "judged": 58,
    "blocked": 0,
    "notRun": 0,
    "missing": 0,
    "unknown": 0,
    "duplicates": 0,
    "complete": true
  },
  "checkOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-color-scheme",
      "status": "issues",
      "confidence": "high",
      "method": "Emulated preference screenshots and computed media/animation probe on home.",
      "evidence": "The prefers-color-scheme: dark screenshot remains the same white desktop canvas as the default capture, while the page exposes a separate manual night-mode control.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-high-contrast.png",
        "evidence/preferences-probe.json"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Emulated preference screenshots and computed media/animation probe on home.",
      "evidence": "The reduced-motion evaluate probe reports a running gradient2 animation with a 250 ms duration while matchMedia(prefers-reduced-motion: reduce) is true.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-high-contrast.png",
        "evidence/preferences-probe.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Emulated preference screenshots and computed media/animation probe on home.",
      "evidence": "Forced-colors/high-contrast screenshot preserves visible text, controls, and boundaries in a black/yellow/white system palette.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-high-contrast.png",
        "evidence/preferences-probe.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Rendered DOM/CSS feature inspection and screenshots across home, listing, and detail interactions.",
      "evidence": "DOM/CSS inspection across home, listing and detail found no view-transition CSS; navigation and carousel state are instant in the captured surfaces.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/list-dom.json",
        "evidence/detail-dom.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Rendered DOM/CSS feature inspection and screenshots across home, listing, and detail interactions.",
      "evidence": "No scroll-linked animation or scrollytelling surface exists on the representative templates.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/list-dom.json",
        "evidence/detail-dom.json"
      ],
      "reason": "No scroll-linked animation or scrollytelling surface exists on the representative templates."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "Rendered DOM/CSS feature inspection and screenshots across home, listing, and detail interactions.",
      "evidence": "Representative templates rely on native scrolling and standard link activation rather than custom pointermove gesture handlers.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/list-dom.json",
        "evidence/detail-dom.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Visual and DOM inspection of long listing/detail navigation and overlay controls.",
      "evidence": "The mobile listing/detail captures render desktop-width, very long pages with static header chrome; DOM/CSS inspection found no scroll-state query or progress indicator.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/list-mobile.png",
        "evidence/detail-mobile.png",
        "evidence/list-dom.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Visual and DOM inspection of long listing/detail navigation and overlay controls.",
      "evidence": "No tooltip/popover placement task was present on the representative public paths.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/list-mobile.png",
        "evidence/detail-mobile.png",
        "evidence/list-dom.json"
      ],
      "reason": "No tooltip/popover placement task was present on the representative public paths."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Visual and DOM inspection of long listing/detail navigation and overlay controls.",
      "evidence": "Gallery titles, current section labels, article title, list/detail links and skip links provide visible orientation between audited paths.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/list-mobile.png",
        "evidence/detail-mobile.png",
        "evidence/list-dom.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "pass",
      "confidence": "high",
      "method": "First-load screenshots and semantic primitive DOM inspection.",
      "evidence": "Fresh-load screenshots on home, listing, detail and composer show no content-obscuring modal or interstitial.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-quality-probe.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "First-load screenshots and semantic primitive DOM inspection.",
      "evidence": "Lighthouse inspector-issues failed, while DOM probes counted 63 javascript: links on home and 11 on the listing; these controls are fragile and not naturally crawlable/actionable.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-quality-probe.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "First-load screenshots and semantic primitive DOM inspection.",
      "evidence": "Desktop and mobile screenshots show dense boxed navigation, rankings, side modules, and hundreds of small links; the home probe counted 3,257 interactive elements, 907 under 24 px in one dimension.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-quality-probe.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "360x800 screenshots/layout metrics plus target/focus probes on home, listing, and detail.",
      "evidence": "At a requested 360x800 viewport there is no viewport meta. Home renders a 1,101 CSS-pixel layout at scale 0.327; listing/detail render 1,440 CSS pixels at scale 0.25 and report 75 px horizontal overflow.",
      "pathIds": [
        "home",
        "listing",
        "detail"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/list-mobile-layout.json",
        "evidence/detail-mobile-layout.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "360x800 screenshots/layout metrics plus target/focus probes on home, listing, and detail.",
      "evidence": "At a requested 360x800 viewport there is no viewport meta. Home renders a 1,101 CSS-pixel layout at scale 0.327; listing/detail render 1,440 CSS pixels at scale 0.25 and report 75 px horizontal overflow.",
      "pathIds": [
        "home",
        "listing",
        "detail"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/list-mobile-layout.json",
        "evidence/detail-mobile-layout.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "360x800 screenshots/layout metrics plus target/focus probes on home, listing, and detail.",
      "evidence": "The home probe counted 907 of 3,257 interactive elements below 24 px in at least one dimension; listing/detail probes counted 227/501 and 271/614 respectively. Lighthouse also failed target-size.",
      "pathIds": [
        "home",
        "listing",
        "detail"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/list-mobile-layout.json",
        "evidence/detail-mobile-layout.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Browse home to listing to detail, open composer, and submit it empty without publishing.",
      "evidence": "Home search/navigation, gallery listing title/write action, and article title/comment actions are visible in first rendered states.",
      "pathIds": [
        "home",
        "listing",
        "detail",
        "write"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/list-desktop.png",
        "evidence/detail-desktop.png",
        "evidence/write-invalid-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Browse home to listing to detail, open composer, and submit it empty without publishing.",
      "evidence": "The representative browse flow completed from home to gallery listing to article detail, and the public composer opened without an account wall.",
      "pathIds": [
        "home",
        "listing",
        "detail",
        "write"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/list-desktop.png",
        "evidence/detail-desktop.png",
        "evidence/write-invalid-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "issues",
      "confidence": "high",
      "method": "Browse home to listing to detail, open composer, and submit it empty without publishing.",
      "evidence": "After activating Register with an empty composer, the evaluate probe found no :invalid controls, no role=alert/error text, and focus remained on an anonymous DIV; the screenshot was visually unchanged.",
      "pathIds": [
        "home",
        "listing",
        "detail",
        "write"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/list-desktop.png",
        "evidence/detail-desktop.png",
        "evidence/write-invalid-probe.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Trace summary, layout observers, HAR summary, image audit, and Lighthouse diagnostics.",
      "evidence": "The raw-CDP trace recorded FCP/LCP at 5.254 s and loadEventEnd at 7.043 s; Lighthouse corroboration reported a poor performance score and an even slower mobile-path LCP.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Trace summary, layout observers, HAR summary, image audit, and Lighthouse diagnostics.",
      "evidence": "Layout observers measured CLS 0.000006 home, 0.039 listing and 0.006 detail, all within the good threshold.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "Trace summary, layout observers, HAR summary, image audit, and Lighthouse diagnostics.",
      "evidence": "Trace measured three long tasks, 110.52 ms total blocking, and 130.32 ms longest; Lighthouse corroborated low TBT despite slow paints.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Trace summary, layout observers, HAR summary, image audit, and Lighthouse diagnostics.",
      "evidence": "HAR recorded 85 requests and 2.94 MB transferred, including 907 KB CSS and 1.65 MB JS. Eight parser-inserted stylesheets were VeryHigh priority and multiple 100-401 KB CSS/JS files lacked content encoding.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Trace summary, layout observers, HAR summary, image audit, and Lighthouse diagnostics.",
      "evidence": "Lighthouse estimated 425 KiB unused JavaScript and 375 KiB unused CSS; HAR shows 37 scripts and eight stylesheets.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "axe-core on home and composer, responsive screenshots, focus/target probes, and DOM structure.",
      "evidence": "axe found critical button-name/label/link-name failures on home and, on the composer, an unnamed role=textbox editor, unnamed image/link, and multiple unlabeled inputs.",
      "pathIds": [
        "home",
        "listing",
        "detail"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-write.json",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "axe-core on home and composer, responsive screenshots, focus/target probes, and DOM structure.",
      "evidence": "axe reported 1.93:1 white-on-green text and 3.9:1 ranking badges on home, plus 2.84:1 composer placeholder text; Lighthouse reported 42 low-contrast nodes.",
      "pathIds": [
        "home",
        "listing",
        "detail"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-write.json",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "axe-core on home and composer, responsive screenshots, focus/target probes, and DOM structure.",
      "evidence": "The DOM has an empty H1 and many empty headings; axe reports invalid heading order, content outside landmarks, and skip links whose targets do not exist.",
      "pathIds": [
        "home",
        "listing",
        "detail"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-write.json",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "issues",
      "confidence": "high",
      "method": "axe-core on home and composer, responsive screenshots, focus/target probes, and DOM structure.",
      "evidence": "The 360x800 screenshots shrink fixed desktop layouts to 25-33% scale, making labels, metadata, and controls unreadable without zoom.",
      "pathIds": [
        "home",
        "listing",
        "detail"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-write.json",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "axe-core on home and composer, responsive screenshots, focus/target probes, and DOM structure.",
      "evidence": "At a requested 360x800 viewport there is no viewport meta. Home renders a 1,101 CSS-pixel layout at scale 0.327; listing/detail render 1,440 CSS pixels at scale 0.25 and report 75 px horizontal overflow. The home probe counted 907 of 3,257 interactive elements below 24 px in at least one dimension; listing/detail probes counted 227/501 and 271/614 respectively. Lighthouse also failed target-size.",
      "pathIds": [
        "home",
        "listing",
        "detail"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-write.json",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F06",
        "F07"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "medium",
      "method": "Lighthouse diagnostics, HAR hygiene, image audit, and DOM document metadata.",
      "evidence": "Lighthouse errors-in-console audit passed with zero items on the loaded site experience.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-images.json",
        "evidence/home-quality-probe.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse diagnostics, HAR hygiene, image audit, and DOM document metadata.",
      "evidence": "Images audit found all three homepage images lacked explicit dimensions; Lighthouse found two image aspect-ratio failures, while the page otherwise has a valid doctype and UTF-8 charset.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-images.json",
        "evidence/home-quality-probe.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse diagnostics, HAR hygiene, image audit, and DOM document metadata.",
      "evidence": "Lighthouse inspector-issues failed, while DOM probes counted 63 javascript: links on home and 11 on the listing; these controls are fragile and not naturally crawlable/actionable.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-images.json",
        "evidence/home-quality-probe.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Discoverability raw/rendered comparison, metadata probe, robots/sitemap/manifest fetch.",
      "evidence": "Home, listing and detail have descriptive unique titles; home and detail metadata include descriptions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/detail-discoverability.json",
        "evidence/site-files-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Discoverability raw/rendered comparison, metadata probe, robots/sitemap/manifest fetch.",
      "evidence": "At a requested 360x800 viewport there is no viewport meta. Home renders a 1,101 CSS-pixel layout at scale 0.327; listing/detail render 1,440 CSS pixels at scale 0.25 and report 75 px horizontal overflow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/detail-discoverability.json",
        "evidence/site-files-probe.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Discoverability raw/rendered comparison, metadata probe, robots/sitemap/manifest fetch.",
      "evidence": "Canonical and robots signals are present and raw HTML is crawlable, but /sitemap.xml returns 404 on a site with roughly 96,000 galleries.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/detail-discoverability.json",
        "evidence/site-files-probe.json"
      ],
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Discoverability raw/rendered comparison, metadata probe, robots/sitemap/manifest fetch.",
      "evidence": "Open Graph/Twitter metadata is present, but the DOM probe found zero JSON-LD blocks on home and the audited article detail, despite clear Organization/WebSite and DiscussionForumPosting entities.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/detail-discoverability.json",
        "evidence/site-files-probe.json"
      ],
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Headers, cookies, trackers, HAR, and secrets primitives.",
      "evidence": "The headers primitive confirms HTTPS but no CSP, HSTS, X-Content-Type-Options, X-Frame-Options/frame-ancestors, Referrer-Policy, or Permissions-Policy. The cookie audit found 20 cookies marked SameSite=None and 19 without Secure, including PHPSESSID without Secure; several analytics cookies persist 400 days.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json",
        "evidence/home-trackers.json",
        "evidence/home-secrets.json"
      ],
      "findingIds": [
        "F18",
        "F19"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Headers, cookies, trackers, HAR, and secrets primitives.",
      "evidence": "Tracker capture observed 17 third-party origins and five known tracker domains, including Google Analytics, Tag Manager, DoubleClick, and Google ad services; HAR transferred 2.94 MB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json",
        "evidence/home-trackers.json",
        "evidence/home-secrets.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Headers, cookies, trackers, HAR, and secrets primitives.",
      "evidence": "No permission request occurs on load; authentication is owned by sign.dcinside.com, outside this host audit.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json",
        "evidence/home-trackers.json",
        "evidence/home-secrets.json"
      ],
      "reason": "No permission request occurs on load; authentication is owned by sign.dcinside.com, outside this host audit."
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Headers, cookies, trackers, HAR, and secrets primitives.",
      "evidence": "Headers evidence shows no clickjacking protection, Referrer-Policy, Permissions-Policy, CSP/Trusted Types enforcement, or HSTS; page metadata also declares referrer=unsafe-url.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json",
        "evidence/home-trackers.json",
        "evidence/home-secrets.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "No-JS discoverability, manifest/robots probe, composer error-state exercise, and DOM runtime inspection.",
      "evidence": "Discoverability comparison found 100% home and 87% detail rendered content represented in raw server HTML, not JS shells.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/detail-discoverability.json",
        "evidence/site-files-probe.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "medium",
      "method": "No-JS discoverability, manifest/robots probe, composer error-state exercise, and DOM runtime inspection.",
      "evidence": "Listing, detail and composer rendered complete server-backed states; observed controls and pages did not blank or lose their visible state during inspection.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/detail-discoverability.json",
        "evidence/site-files-probe.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "issues",
      "confidence": "high",
      "method": "No-JS discoverability, manifest/robots probe, composer error-state exercise, and DOM runtime inspection.",
      "evidence": "The linked manifest contains only a legacy gcm_sender_id comment/config and no name, icons, start_url, display, or scope; no offline fallback was exposed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/detail-discoverability.json",
        "evidence/site-files-probe.json"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "issues",
      "confidence": "high",
      "method": "No-JS discoverability, manifest/robots probe, composer error-state exercise, and DOM runtime inspection.",
      "evidence": "After activating Register with an empty composer, the evaluate probe found no :invalid controls, no role=alert/error text, and focus remained on an anonymous DIV; the screenshot was visually unchanged.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/detail-discoverability.json",
        "evidence/site-files-probe.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "DOM language/direction and rendered locale-data inspection.",
      "evidence": "DOM reports html lang=ko, but rendered CSS excerpts and legacy templates use extensive left/right/top pixel positioning and no container-query/logical-layout evidence.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-quality-probe.json",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM language/direction and rendered locale-data inspection.",
      "evidence": "The audited public community templates are deliberately Korean-only and expose no currency or locale-switching data flow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-quality-probe.json",
        "evidence/home-dom.json"
      ],
      "reason": "The audited public community templates are deliberately Korean-only and expose no currency or locale-switching data flow."
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM language/direction and rendered locale-data inspection.",
      "evidence": "No cross-time-zone scheduling or event flow exists on the representative templates.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-quality-probe.json",
        "evidence/home-dom.json"
      ],
      "reason": "No cross-time-zone scheduling or event flow exists on the representative templates."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "First-load and composer screenshots, form metadata, and empty-submit error-state exercise.",
      "evidence": "Fresh-load and composer screenshots show no consent wall, confirmshaming, forced continuity, hidden pricing, or disguised account commitment.",
      "pathIds": [
        "home",
        "listing",
        "detail",
        "write"
      ],
      "artifacts": [
        "evidence/write-probe.json",
        "evidence/write-invalid-probe.json",
        "evidence/write-invalid.png"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "issues",
      "confidence": "high",
      "method": "First-load and composer screenshots, form metadata, and empty-submit error-state exercise.",
      "evidence": "Empty submission produced no visible error, no native invalid state, no aria-invalid, no alert, and no focus movement to a field.",
      "pathIds": [
        "home",
        "listing",
        "detail",
        "write"
      ],
      "artifacts": [
        "evidence/write-probe.json",
        "evidence/write-invalid-probe.json",
        "evidence/write-invalid.png"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "First-load and composer screenshots, form metadata, and empty-submit error-state exercise.",
      "evidence": "Composer probe shows unlabeled nickname/editor fields and most text inputs have empty autocomplete; axe confirms labels are missing on several inputs.",
      "pathIds": [
        "home",
        "listing",
        "detail",
        "write"
      ],
      "artifacts": [
        "evidence/write-probe.json",
        "evidence/write-invalid-probe.json",
        "evidence/write-invalid.png"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "First-load and composer screenshots, form metadata, and empty-submit error-state exercise.",
      "evidence": "No checkout, subscription, cancellation, or same-host account-management flow exists on the representative gall.dcinside.com paths.",
      "pathIds": [
        "home",
        "listing",
        "detail",
        "write"
      ],
      "artifacts": [
        "evidence/write-probe.json",
        "evidence/write-invalid-probe.json",
        "evidence/write-invalid.png"
      ],
      "reason": "No checkout, subscription, cancellation, or same-host account-management flow exists on the representative gall.dcinside.com paths."
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "HAR transfer/resource breakdown, tracker inventory, image audit, and Lighthouse unused-code diagnostics.",
      "evidence": "HAR transferred 2.94 MB for the home page, including 907 KB CSS and 274 KB image resources; Lighthouse found a 503 KB ad image among the largest resources.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trackers.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "HAR transfer/resource breakdown, tracker inventory, image audit, and Lighthouse unused-code diagnostics.",
      "evidence": "Lighthouse estimated 425 KiB unused JavaScript and 375 KiB unused CSS; HAR shows 37 scripts and eight stylesheets. Tracker capture observed 17 third-party origins and five known tracker domains, including Google Analytics, Tag Manager, DoubleClick, and Google ad services; HAR transferred 2.94 MB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trackers.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F11",
        "F20"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "HAR transfer/resource breakdown, tracker inventory, image audit, and Lighthouse unused-code diagnostics.",
      "evidence": "HAR recorded 37 script requests and 1.65 MB transferred as scripts; tracker evidence lists 17 third-party origins and repeated analytics/tag-manager endpoints.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trackers.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "robots policy, no-JS discoverability, DOM structured-data and capability inspection.",
      "evidence": "robots.txt explicitly blocks GPTBot, ClaudeBot, Google-Extended and other AI agents, demonstrating that agent-facing capability is intentionally out of scope.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/site-files-probe.json",
        "evidence/home-discoverability.json"
      ],
      "reason": "robots.txt explicitly blocks GPTBot, ClaudeBot, Google-Extended and other AI agents, demonstrating that agent-facing capability is intentionally out of scope."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "robots policy, no-JS discoverability, DOM structured-data and capability inspection.",
      "evidence": "The directory/forum templates expose no summarisation or inference task and robots policy explicitly opts away from AI-agent access.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/site-files-probe.json",
        "evidence/home-discoverability.json"
      ],
      "reason": "The directory/forum templates expose no summarisation or inference task and robots policy explicitly opts away from AI-agent access."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "Baseline heap summary compared with post-summary after ten night-mode toggles.",
      "evidence": "After ten night-mode toggles, retained self-size rose only 44,053 bytes (0.13%) and nodes by 461 versus baseline, with stable major constructor counts.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post.heapsnapshot"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "Baseline heap summary compared with post-summary after ten night-mode toggles.",
      "evidence": "Baseline heap was 34.49 MB self-size and 610,495 nodes for a content-dense page; post-interaction remained 34.53 MB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post.heapsnapshot"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "Baseline heap summary compared with post-summary after ten night-mode toggles.",
      "evidence": "Heap summaries show no Detached* constructor among top populations and stable closures (27,023 to 27,045) after ten toggles.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post.heapsnapshot"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F02"
      ]
    },
    {
      "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": [
        "F17",
        "F05"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06",
        "F07"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F09",
        "F10",
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F12",
        "F13",
        "F14",
        "F15",
        "F06",
        "F07"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F16",
        "F17"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06",
        "F28",
        "F29"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F18",
        "F19",
        "F20",
        "F21"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F22",
        "F08"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F24",
        "F25"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F26",
        "F11",
        "F20",
        "F27"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "robots.txt explicitly blocks GPTBot, ClaudeBot, Google-Extended and other AI agents, demonstrating that agent-facing capability is intentionally out of scope. The directory/forum templates expose no summarisation or inference task and robots policy explicitly opts away from AI-agent access."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Entry page and gallery directory; represents global navigation, discovery, theme, network, security, performance and directory density.",
      "url": "https://gall.dcinside.com/",
      "conditions": [
        "1440x1000",
        "360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "forced-colors/high contrast",
        "no JavaScript crawler"
      ],
      "result": "issues"
    },
    {
      "id": "listing",
      "description": "League of Legends gallery listing; represents high-density board/list template and route navigation.",
      "url": "https://gall.dcinside.com/board/lists/?id=leagueoflegends6",
      "conditions": [
        "1440x1000",
        "360x800"
      ],
      "result": "issues"
    },
    {
      "id": "detail",
      "description": "Public article detail with comments; represents content/thread template and no-JS content.",
      "url": "https://gall.dcinside.com/board/view/?id=leagueoflegends6&no=14572919",
      "conditions": [
        "1440x1000",
        "360x800",
        "no JavaScript crawler"
      ],
      "result": "issues"
    },
    {
      "id": "write",
      "description": "Public gallery composer; represents primary authoring form and empty-submit recovery without publishing content.",
      "url": "https://gall.dcinside.com/board/write/?id=leagueoflegends6",
      "conditions": [
        "1440x1000",
        "keyboard/error-state probe"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "medium",
      "confidence": "high",
      "summary": "System dark preference does not automatically produce a dark surface.",
      "evidence": "The prefers-color-scheme: dark screenshot remains the same white desktop canvas as the default capture, while the page exposes a separate manual night-mode control.",
      "suggestedFix": "Declare color-scheme and drive surface/text tokens from prefers-color-scheme or light-dark(), while retaining an explicit user override.",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/preferences-probe.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F02",
      "severity": "medium",
      "confidence": "high",
      "summary": "Motion continues under reduced-motion preference.",
      "evidence": "The reduced-motion evaluate probe reports a running gradient2 animation with a 250 ms duration while matchMedia(prefers-reduced-motion: reduce) is true.",
      "suggestedFix": "Add a prefers-reduced-motion: reduce rule that removes non-essential animation and auto-advance.",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "artifacts": [
        "evidence/preferences-probe.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F03",
      "severity": "low",
      "confidence": "high",
      "summary": "State changes use abrupt legacy swaps rather than view transitions.",
      "evidence": "DOM/CSS inspection across home, listing and detail found no view-transition CSS; navigation and carousel state are instant in the captured surfaces.",
      "suggestedFix": "Use same-document or cross-document View Transitions for meaningful gallery/list/detail and carousel state changes, with reduced-motion fallback.",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/list-dom.json",
        "evidence/detail-dom.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F04",
      "severity": "medium",
      "confidence": "high",
      "summary": "Long pages provide little position-aware navigation.",
      "evidence": "The mobile listing/detail captures render desktop-width, very long pages with static header chrome; DOM/CSS inspection found no scroll-state query or progress indicator.",
      "suggestedFix": "Use a compact sticky header and scroll-state/progress affordance that preserves context on long lists and threads.",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "shrinking-header-on-scroll",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/list-mobile.png",
        "evidence/detail-mobile.png",
        "evidence/list-dom.json"
      ],
      "effort": "medium",
      "pathId": "listing",
      "url": "https://gall.dcinside.com/board/lists/?id=leagueoflegends6"
    },
    {
      "id": "F05",
      "severity": "high",
      "confidence": "high",
      "summary": "Dense chrome and tiny repeated controls compete with core content.",
      "evidence": "Desktop and mobile screenshots show dense boxed navigation, rankings, side modules, and hundreds of small links; the home probe counted 3,257 interactive elements, 907 under 24 px in one dimension.",
      "suggestedFix": "Prioritise the current gallery/content, collapse secondary directories, reduce repeated borders, and use a comfortable type scale and spacing.",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "improve-text-layout-and-legibility",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/home-quality-probe.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F06",
      "severity": "critical",
      "confidence": "high",
      "summary": "The desktop site is not usable as a true narrow layout.",
      "evidence": "At a requested 360x800 viewport there is no viewport meta. Home renders a 1,101 CSS-pixel layout at scale 0.327; listing/detail render 1,440 CSS pixels at scale 0.25 and report 75 px horizontal overflow.",
      "suggestedFix": "Add a standards viewport meta tag and rebuild templates with fluid/intrinsic layouts; serve equivalent responsive content rather than shrinking a fixed desktop canvas.",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json",
        "evidence/list-mobile.png",
        "evidence/list-mobile-layout.json",
        "evidence/detail-mobile-layout.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F07",
      "severity": "high",
      "confidence": "high",
      "summary": "Touch targets are extensively undersized.",
      "evidence": "The home probe counted 907 of 3,257 interactive elements below 24 px in at least one dimension; listing/detail probes counted 227/501 and 271/614 respectively. Lighthouse also failed target-size.",
      "suggestedFix": "Set a minimum 44x44 CSS-pixel hit area for primary touch controls, increase spacing, and preserve visible :focus-visible styles.",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "artifacts": [
        "evidence/home-quality-probe.json",
        "evidence/list-quality-probe.json",
        "evidence/detail-quality-probe.json",
        "evidence/lighthouse-home.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F08",
      "severity": "high",
      "confidence": "high",
      "summary": "Empty composer submission provides no clear, accessible recovery state.",
      "evidence": "After activating Register with an empty composer, the evaluate probe found no :invalid controls, no role=alert/error text, and focus remained on an anonymous DIV; the screenshot was visually unchanged.",
      "suggestedFix": "Use required constraints, validate after interaction, focus the first invalid field, set aria-invalid, and announce a concise error summary in a live region.",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-system-state-and-recovery",
      "guidanceId": "accessible-error-announcement",
      "guidanceCategory": "accessibility",
      "artifacts": [
        "evidence/write-invalid.png",
        "evidence/write-invalid-probe.json"
      ],
      "effort": "medium",
      "pathId": "write",
      "url": "https://gall.dcinside.com/board/write/?id=leagueoflegends6"
    },
    {
      "id": "F09",
      "severity": "high",
      "confidence": "high",
      "summary": "Initial content is slow to become visible.",
      "evidence": "The raw-CDP trace recorded FCP/LCP at 5.254 s and loadEventEnd at 7.043 s; Lighthouse corroboration reported a poor performance score and an even slower mobile-path LCP.",
      "suggestedFix": "Prioritise the LCP content, reduce blocking styles/scripts, and defer non-critical advertising and analytics.",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json",
        "evidence/lighthouse-home.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F10",
      "severity": "high",
      "confidence": "high",
      "summary": "Critical delivery is burdened by large uncompressed blocking resources.",
      "evidence": "HAR recorded 85 requests and 2.94 MB transferred, including 907 KB CSS and 1.65 MB JS. Eight parser-inserted stylesheets were VeryHigh priority and multiple 100-401 KB CSS/JS files lacked content encoding.",
      "suggestedFix": "Compress text, consolidate/trim critical CSS, defer non-critical styles and scripts, and set useful cache headers.",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-script-priority",
      "guidanceCategory": "performance",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F11",
      "severity": "high",
      "confidence": "high",
      "summary": "Large amounts of unused JavaScript and CSS ship on load.",
      "evidence": "Lighthouse estimated 425 KiB unused JavaScript and 375 KiB unused CSS; HAR shows 37 scripts and eight stylesheets.",
      "suggestedFix": "Use coverage to split templates, load gallery/editor/advertising code only when needed, and remove duplicate legacy bundles.",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-summary.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F12",
      "severity": "high",
      "confidence": "high",
      "summary": "Core controls and composer fields lack accessible names or labels.",
      "evidence": "axe found critical button-name/label/link-name failures on home and, on the composer, an unnamed role=textbox editor, unnamed image/link, and multiple unlabeled inputs.",
      "suggestedFix": "Give every control a programmatic and visible name, associate labels, name the rich-text textbox, and make decorative images presentational.",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-write.json",
        "evidence/write-probe.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F13",
      "severity": "high",
      "confidence": "high",
      "summary": "Text contrast fails WCAG AA.",
      "evidence": "axe reported 1.93:1 white-on-green text and 3.9:1 ranking badges on home, plus 2.84:1 composer placeholder text; Lighthouse reported 42 low-contrast nodes.",
      "suggestedFix": "Adjust foreground/background tokens to at least 4.5:1 for normal text and retest both themes.",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-write.json",
        "evidence/lighthouse-home.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F14",
      "severity": "medium",
      "confidence": "high",
      "summary": "Heading, landmark, and skip-link structure is unreliable.",
      "evidence": "The DOM has an empty H1 and many empty headings; axe reports invalid heading order, content outside landmarks, and skip links whose targets do not exist.",
      "suggestedFix": "Use one meaningful H1, a logical heading hierarchy, contain content in landmarks, and ensure each skip target exists and can receive focus.",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "artifacts": [
        "evidence/home-quality-probe.json",
        "evidence/axe-home.json",
        "evidence/axe-write.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F15",
      "severity": "high",
      "confidence": "high",
      "summary": "Text becomes illegibly small on narrow screens.",
      "evidence": "The 360x800 screenshots shrink fixed desktop layouts to 25-33% scale, making labels, metadata, and controls unreadable without zoom.",
      "suggestedFix": "Use responsive type and line-height tokens, reflow columns, and avoid scale-to-fit desktop rendering.",
      "principleId": "be-inclusive",
      "principleCheckId": "legible-text",
      "guidanceId": "improve-text-layout-and-legibility",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/list-mobile.png",
        "evidence/detail-mobile.png"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F16",
      "severity": "medium",
      "confidence": "high",
      "summary": "Image/document asset hygiene has defects.",
      "evidence": "Images audit found all three homepage images lacked explicit dimensions; Lighthouse found two image aspect-ratio failures, while the page otherwise has a valid doctype and UTF-8 charset.",
      "suggestedFix": "Declare intrinsic width/height or aspect-ratio and correct mismatched rendered dimensions.",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/lighthouse-home.json",
        "evidence/home-dom.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F17",
      "severity": "medium",
      "confidence": "high",
      "summary": "Browser inspector issues and legacy patterns remain.",
      "evidence": "Lighthouse inspector-issues failed, while DOM probes counted 63 javascript: links on home and 11 on the listing; these controls are fragile and not naturally crawlable/actionable.",
      "suggestedFix": "Replace javascript: anchors with buttons or real href links and resolve all DevTools Issues panel diagnostics.",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-quality-probe.json",
        "evidence/list-quality-probe.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F18",
      "severity": "high",
      "confidence": "high",
      "summary": "Baseline security headers are absent.",
      "evidence": "The headers primitive confirms HTTPS but no CSP, HSTS, X-Content-Type-Options, X-Frame-Options/frame-ancestors, Referrer-Policy, or Permissions-Policy.",
      "suggestedFix": "Deploy a restrictive CSP, HSTS, nosniff, frame-ancestors, strict-origin-when-cross-origin referrer policy, and a minimal Permissions-Policy.",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F19",
      "severity": "high",
      "confidence": "high",
      "summary": "Cookies are not protected with modern transport and SameSite defaults.",
      "evidence": "The cookie audit found 20 cookies marked SameSite=None and 19 without Secure, including PHPSESSID without Secure; several analytics cookies persist 400 days.",
      "suggestedFix": "Mark all HTTPS cookies Secure, use Lax/Strict by default, retain HttpOnly for session cookies, and shorten analytics retention.",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "artifacts": [
        "evidence/home-cookies.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F20",
      "severity": "high",
      "confidence": "high",
      "summary": "The page has a broad tracking and third-party footprint.",
      "evidence": "Tracker capture observed 17 third-party origins and five known tracker domains, including Google Analytics, Tag Manager, DoubleClick, and Google ad services; HAR transferred 2.94 MB.",
      "suggestedFix": "Reduce trackers and duplicate analytics, gate optional tracking behind meaningful consent, batch telemetry, and self-host essential assets.",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "artifacts": [
        "evidence/home-trackers.json",
        "evidence/home-summary.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F21",
      "severity": "medium",
      "confidence": "high",
      "summary": "Browser-enforced defensive policies are not configured.",
      "evidence": "Headers evidence shows no clickjacking protection, Referrer-Policy, Permissions-Policy, CSP/Trusted Types enforcement, or HSTS; page metadata also declares referrer=unsafe-url.",
      "suggestedFix": "Add frame-ancestors, a privacy-preserving Referrer-Policy, minimal Permissions-Policy, HSTS and CSP/Trusted Types where feasible; remove unsafe-url.",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-recon.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F22",
      "severity": "medium",
      "confidence": "high",
      "summary": "The app-like community has no valid install/offline surface.",
      "evidence": "The linked manifest contains only a legacy gcm_sender_id comment/config and no name, icons, start_url, display, or scope; no offline fallback was exposed.",
      "suggestedFix": "Publish a valid web app manifest and service worker with an offline reading/failure fallback, or remove the misleading manifest link.",
      "principleId": "be-resilient",
      "principleCheckId": "offline-and-installable",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "artifacts": [
        "evidence/site-files-probe.json",
        "evidence/home-dom.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F23",
      "severity": "low",
      "confidence": "high",
      "summary": "The Korean locale is declared, but layout CSS is dominated by physical positioning.",
      "evidence": "DOM reports html lang=ko, but rendered CSS excerpts and legacy templates use extensive left/right/top pixel positioning and no container-query/logical-layout evidence.",
      "suggestedFix": "Retain lang=ko and migrate reusable layout rules to inline/block logical properties so translation and writing-mode changes do not break placement.",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "guidanceCategory": "built-in-ai",
      "artifacts": [
        "evidence/home-quality-probe.json",
        "evidence/home-dom.json",
        "evidence/list-dom.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F24",
      "severity": "medium",
      "confidence": "high",
      "summary": "Composer validation does not prevent and recover from mistakes humanely.",
      "evidence": "Empty submission produced no visible error, no native invalid state, no aria-invalid, no alert, and no focus movement to a field.",
      "suggestedFix": "Apply required constraints and :user-invalid styling after interaction, then announce and focus the first actionable error.",
      "principleId": "be-trustworthy",
      "principleCheckId": "humane-error-handling",
      "guidanceId": "validate-input-after-interaction",
      "guidanceCategory": "forms",
      "artifacts": [
        "evidence/write-invalid.png",
        "evidence/write-invalid-probe.json"
      ],
      "effort": "medium",
      "pathId": "write",
      "url": "https://gall.dcinside.com/board/write/?id=leagueoflegends6"
    },
    {
      "id": "F25",
      "severity": "medium",
      "confidence": "high",
      "summary": "Input assistance is incomplete on core forms.",
      "evidence": "Composer probe shows unlabeled nickname/editor fields and most text inputs have empty autocomplete; axe confirms labels are missing on several inputs.",
      "suggestedFix": "Add visible labels and appropriate autocomplete/inputmode tokens, especially username/nickname and password fields.",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "forms",
      "guidanceCategory": "forms",
      "artifacts": [
        "evidence/write-probe.json",
        "evidence/axe-write.json"
      ],
      "effort": "small",
      "pathId": "write",
      "url": "https://gall.dcinside.com/board/write/?id=leagueoflegends6"
    },
    {
      "id": "F26",
      "severity": "medium",
      "confidence": "high",
      "summary": "Resource weight is disproportionate for a mostly text directory page.",
      "evidence": "HAR transferred 2.94 MB for the home page, including 907 KB CSS and 274 KB image resources; Lighthouse found a 503 KB ad image among the largest resources.",
      "suggestedFix": "Set a template-specific byte budget, serve modern/responsive images, and avoid loading heavy decorative/ad assets before they are useful.",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json",
        "evidence/home-images.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F27",
      "severity": "medium",
      "confidence": "high",
      "summary": "Third-party scripts and analytics consume a large share of the page budget.",
      "evidence": "HAR recorded 37 script requests and 1.65 MB transferred as scripts; tracker evidence lists 17 third-party origins and repeated analytics/tag-manager endpoints.",
      "suggestedFix": "Defer third-party work until consent or interaction, remove duplicate tags, and enforce per-vendor performance/privacy budgets.",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "deprioritize-background-fetches",
      "guidanceCategory": "performance",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trackers.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F28",
      "severity": "low",
      "confidence": "high",
      "summary": "Indexing infrastructure is incomplete.",
      "evidence": "Canonical and robots signals are present and raw HTML is crawlable, but /sitemap.xml returns 404 on a site with roughly 96,000 galleries.",
      "suggestedFix": "Publish sitemap indexes for public gallery/list/detail templates and keep them aligned with robots policy and canonical URLs.",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "artifacts": [
        "evidence/site-files-probe.json",
        "evidence/home-discoverability.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://gall.dcinside.com/"
    },
    {
      "id": "F29",
      "severity": "low",
      "confidence": "high",
      "summary": "Entity pages lack structured data.",
      "evidence": "Open Graph/Twitter metadata is present, but the DOM probe found zero JSON-LD blocks on home and the audited article detail, despite clear Organization/WebSite and DiscussionForumPosting entities.",
      "suggestedFix": "Add accurate schema.org JSON-LD for WebSite/Organization and discussion posts while preserving the existing social metadata.",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "artifacts": [
        "evidence/home-quality-probe.json",
        "evidence/detail-dom.json",
        "evidence/home-recon.json"
      ],
      "effort": "medium",
      "pathId": "detail",
      "url": "https://gall.dcinside.com/board/view/?id=leagueoflegends6&no=14572919"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Build real responsive templates and usable touch targets",
      "priority": 1,
      "guidanceId": "fluid-scaling",
      "findingIds": [
        "F06",
        "F07",
        "F15"
      ],
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Add labels, accessible names, landmarks, and valid skip targets",
      "priority": 2,
      "guidanceId": "accessibility",
      "findingIds": [
        "F12",
        "F14"
      ],
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Deploy security headers and secure cookie defaults",
      "priority": 3,
      "guidanceId": "security",
      "findingIds": [
        "F18",
        "F19",
        "F21"
      ],
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Reduce render-blocking and unused CSS/JS",
      "priority": 4,
      "guidanceId": "optimize-script-priority",
      "findingIds": [
        "F09",
        "F10",
        "F11"
      ],
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Reduce trackers and third-party resource cost",
      "priority": 5,
      "guidanceId": "privacy",
      "findingIds": [
        "F20",
        "F27"
      ],
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Implement humane composer validation and input assistance",
      "priority": 6,
      "guidanceId": "validate-input-after-interaction",
      "findingIds": [
        "F08",
        "F24",
        "F25"
      ],
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Improve text contrast and information hierarchy",
      "priority": 7,
      "guidanceId": "improve-text-layout-and-legibility",
      "findingIds": [
        "F05",
        "F13"
      ],
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Respect dark and reduced-motion preferences",
      "priority": 8,
      "guidanceId": "dark-mode",
      "findingIds": [
        "F01",
        "F02"
      ],
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Fix image dimensions and resource budgets",
      "priority": 9,
      "guidanceId": "deliver-optimized-decorative-images",
      "findingIds": [
        "F16",
        "F26"
      ],
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Complete sitemap and structured metadata",
      "priority": 10,
      "guidanceId": "html",
      "findingIds": [
        "F28",
        "F29"
      ],
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Provide a valid manifest/offline fallback",
      "priority": 11,
      "guidanceId": "performance",
      "findingIds": [
        "F22"
      ],
      "status": "open"
    },
    {
      "id": "T12",
      "title": "Modernise navigation controls and transitions",
      "priority": 12,
      "guidanceId": "same-document-transitions",
      "findingIds": [
        "F03",
        "F04",
        "F17"
      ],
      "status": "open"
    },
    {
      "id": "T13",
      "title": "Migrate physical positioning to logical responsive layout",
      "priority": 13,
      "guidanceId": "translator",
      "findingIds": [
        "F23"
      ],
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 4,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-20T09-42-23-247Z"
}
