{
  "url": "https://blacktoon410.com",
  "auditedAt": "2026-07-18T13:40:30.691Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "The requested host redirects in Chrome to a public Telegram channel; the redirect destination and its channel, post, and search surfaces were audited.",
  "page": {
    "appType": "mpa",
    "framework": "Server-rendered Telegram web channel",
    "notes": "blacktoon410.com returned a browser-visible 301 to https://t.me/s/blacktoonlink. Curl received a Cloudflare 403 under a different client condition, recorded as evidence."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "discoverability",
    "har",
    "trace",
    "lighthouse",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary"
  ],
  "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": "home desktop",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "findingIds": [
        "F-locale-data"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-light.png",
      "caption": "home light",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark-reduce.png",
      "caption": "home dark reduce",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/post-10-mobile.png",
      "caption": "post 10 mobile",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/search-mobile.png",
      "caption": "search mobile",
      "findingIds": [
        "F-route-transition"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-rendered.png",
      "caption": "discoverability rendered",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-crawler.png",
      "caption": "discoverability crawler",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/dom-probe.json",
      "caption": "dom probe",
      "findingIds": [
        "F-route-transition",
        "F-input-modality",
        "F-resource-delivery",
        "F-accessible-names",
        "F-structure-focus",
        "F-user-zoom",
        "F-document-assets",
        "F-meta-description",
        "F-indexing-signals",
        "F-share-metadata",
        "F-language-metadata",
        "F-locale-data"
      ]
    },
    {
      "type": "other",
      "path": "evidence/preferences-probe.json",
      "caption": "preferences probe",
      "findingIds": [
        "F-contrast-preference"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-mobile.json",
      "caption": "home layout mobile",
      "findingIds": [
        "F-visual-stability",
        "F-user-zoom"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": []
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F-resource-delivery"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace",
      "findingIds": []
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": [
        "F-core-web-vitals"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "lighthouse",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-summary.json",
      "caption": "lighthouse summary",
      "findingIds": [
        "F-contrast-preference",
        "F-input-modality",
        "F-core-web-vitals",
        "F-visual-stability",
        "F-unused-code",
        "F-accessible-names",
        "F-color-contrast",
        "F-document-assets",
        "F-bfcache",
        "F-meta-description",
        "F-indexing-signals",
        "F-language-metadata"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers",
      "findingIds": [
        "F-security-headers",
        "F-defensive-policies"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies",
      "findingIds": [
        "F-security-headers"
      ]
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets",
      "findingIds": [
        "F-security-headers"
      ]
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "images",
      "findingIds": [
        "F-accessible-names",
        "F-document-assets"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.heapsnapshot",
      "caption": "heap baseline",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.heapsnapshot",
      "caption": "heap post",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/memory-metrics.json",
      "caption": "memory metrics",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability",
      "caption": "discoverability",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/http-signals.txt",
      "caption": "http signals",
      "findingIds": [
        "F-indexing-signals"
      ]
    }
  ],
  "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": "Light/dark emulation and screenshots",
      "evidence": "The final Telegram channel changes from light surfaces to dark surfaces under prefers-color-scheme: dark.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/home-light.png",
        "evidence/home-dark-reduce.png"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "Reduced-motion emulation plus animation probe",
      "evidence": "Under prefers-reduced-motion: reduce, document.getAnimations() returned no animations; the page has no auto-advance or non-essential motion.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/preferences-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Contrast preference probe plus Lighthouse contrast audit",
      "evidence": "No prefers-contrast or forced-colors CSS was found, and Lighthouse measured several sub-threshold combinations, including the Join action at 3.31:1.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/preferences-probe.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F-contrast-preference"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "medium",
      "method": "Rendered route/search walkthrough and CSS probe",
      "evidence": "The search result is a full document navigation and the stylesheet probe found no view-transition declarations, so state/route changes swap abruptly.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/search-mobile.png",
        "evidence/dom-probe.json"
      ],
      "findingIds": [
        "F-route-transition"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM/CSS inspection",
      "evidence": "The channel has no parallax, scrollytelling, entry reveal, or other scroll-linked animation to implement.",
      "reason": "The channel has no parallax, scrollytelling, entry reveal, or other scroll-linked animation to implement."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Interaction and CSS inspection",
      "evidence": "The tested channel and search surfaces expose no swipe, pull, carousel, or gesture-driven control.",
      "reason": "The tested channel and search surfaces expose no swipe, pull, carousel, or gesture-driven control."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "pass",
      "confidence": "medium",
      "method": "Desktop/mobile screenshots and DOM inspection",
      "evidence": "A persistent compact header keeps channel identity, search, and Join available while the feed scrolls; there is no oversized chrome requiring a shrink transition.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM overlay inspection",
      "evidence": "No tooltip, popover, menu, or other anchored overlay exists on the representative surfaces.",
      "reason": "No tooltip, popover, menu, or other anchored overlay exists on the representative surfaces."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Search-results screenshot and page screenshots",
      "evidence": "Date separators orient feed position, and the search result visibly highlights the matched term while preserving channel context.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/search-mobile.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "pass",
      "confidence": "high",
      "method": "Load screenshots at desktop and mobile",
      "evidence": "No popup, consent wall, or interstitial obscures the channel content on load.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM inspection",
      "evidence": "No transient overlay, modal flow, disclosure, or custom picker exists on the tested surfaces.",
      "reason": "No transient overlay, modal flow, disclosure, or custom picker exists on the tested surfaces."
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "Desktop/mobile visual review",
      "evidence": "The viewport is dominated by channel posts; the compact header and optional channel card do not obstruct reading.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "Layout primitive at 360x800",
      "evidence": "At 360px, scrollWidth and innerWidth were both 360px, horizontalOverflowPx was 0, and mobile layout remained readable.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "not-applicable",
      "confidence": "medium",
      "method": "DOM/CSS and template inspection",
      "evidence": "The destination is one fixed Telegram channel template with no same component reused in materially different container contexts.",
      "reason": "The destination is one fixed Telegram channel template with no same component reused in materially different container contexts."
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Programmatic focus/target probe and Lighthouse target audit",
      "evidence": "Lighthouse passed aggregate target sizing, but the search input and icon-only link showed outline-style none when focused, and several text links render only 14-19px high.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/dom-probe.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F-input-modality"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "First-viewport screenshots and content review",
      "evidence": "The final page identifies the official channel and makes Join plus the latest Blacktoon address immediately visible.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Redirect, latest-post, and search walkthrough",
      "evidence": "Browser navigation follows the requested URL to the official channel; the latest address is a real link, and the search route returns a highlighted result.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/post-10-mobile.png",
        "evidence/search-mobile.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "medium",
      "method": "Search walkthrough and progressive-rendering comparison",
      "evidence": "Search preserves the query and highlights its match; the channel content remains server-rendered without an unresolved spinner or blank state.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/search-mobile.png",
        "evidence/discoverability-crawler.png"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse plus DevTools trace",
      "evidence": "Mobile Lighthouse measured LCP 3.13s and CLS 0.150, outside good thresholds; trace corroboration measured LCP 1.59s with low blocking under a different run.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F-core-web-vitals"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse CLS plus layout observer",
      "evidence": "Lighthouse recorded CLS 0.150. A later layout observation saw no additional shift after its observation window, so the lab-load result is the stronger load signal.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-layout-mobile.json"
      ],
      "findingIds": [
        "F-visual-stability"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "DevTools trace and Lighthouse",
      "evidence": "The trace found one 57ms long task and only 7ms TBT; Lighthouse reported 0ms TBT.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "HAR summary confirmed against script DOM attributes",
      "evidence": "The 301 adds a navigation; three high-priority stylesheets and six classic scripts load without async/defer, with 309KB transferred.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/dom-probe.json"
      ],
      "findingIds": [
        "F-resource-delivery"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse coverage diagnostics",
      "evidence": "Lighthouse estimated 52KiB unused JavaScript (about 89% in jquery-ui and widget-frame) and 15KiB unused CSS.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F-unused-code"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility plus DOM/image probes",
      "evidence": "All six images lack alt attributes, and the visible search input has no label or aria-label (placeholder only).",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/images.json",
        "evidence/dom-probe.json"
      ],
      "findingIds": [
        "F-accessible-names"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse contrast audit",
      "evidence": "The Join action measured 3.31:1 and post metadata measured 4.14:1, below WCAG minimum for their sizes.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F-color-contrast"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Heading/landmark and focus probe",
      "evidence": "There is no h1; the only headings are four h5 footer labels, and the search input plus an icon link suppress visible focus outlines.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/dom-probe.json"
      ],
      "findingIds": [
        "F-structure-focus"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Desktop/mobile screenshots",
      "evidence": "Korean post text reflows cleanly in readable lines without clipping or horizontal scrolling.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Viewport DOM probe and mobile layout",
      "evidence": "Reflow works at 360px and Lighthouse target sizing passes, but the viewport explicitly sets maximum-scale=1 and user-scalable=no, preventing user zoom.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/dom-probe.json",
        "evidence/home-layout-mobile.json"
      ],
      "findingIds": [
        "F-user-zoom"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse runtime audit",
      "evidence": "Lighthouse recorded no browser console errors.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "DOM, image primitive, and Lighthouse",
      "evidence": "Doctype and UTF-8 are valid, but all six img elements omit intrinsic width/height and the document jumps directly to h5 headings without an h1.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/dom-probe.json",
        "evidence/images.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F-document-assets"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse best-practices diagnostics",
      "evidence": "No deprecated APIs, prompt-on-load, source-map, or inspector issue appeared, but Lighthouse found two BFCache blockers caused by no-store responses.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F-bfcache"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "issues",
      "confidence": "high",
      "method": "DOM and Lighthouse SEO audits",
      "evidence": "The title is descriptive, but no meta description is present.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/dom-probe.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F-meta-description"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "medium",
      "method": "DOM links, robots request, viewport, and Lighthouse",
      "evidence": "All 25 links have href values and non-generic text; a viewport meta exists and the original host serves robots.txt with HTTP 200.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/dom-probe.json",
        "evidence/http-signals.txt",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "HTTP probes, DOM canonical, and Lighthouse SEO",
      "evidence": "The original sitemap URL returned 403 to curl, the final t.me robots URL returned 404, and Lighthouse judged the pagination canonical invalid.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/http-signals.txt",
        "evidence/dom-probe.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F-indexing-signals"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "DOM metadata probe",
      "evidence": "No JSON-LD is present; og:image and og:description exist but are empty, so shares cannot describe or preview the channel well.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/dom-probe.json"
      ],
      "findingIds": [
        "F-share-metadata"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Headers, cookies, and secrets primitives",
      "evidence": "HTTPS and HSTS are present and no insecure cookies or secrets were found, but browser-loaded response evidence has no CSP or X-Content-Type-Options.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json",
        "evidence/secrets.json"
      ],
      "findingIds": [
        "F-security-headers"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "pass",
      "confidence": "high",
      "method": "HAR, trackers, cookies, and secrets primitives",
      "evidence": "The redirect transfers 309KB from Telegram origins, but no known trackers, cookies, analytics origins, or exposed credentials were detected.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json",
        "evidence/cookies.json",
        "evidence/secrets.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Lighthouse permission audits and surface inspection",
      "evidence": "No permission prompt, authentication, account, or sensitive action is part of this public channel surface.",
      "reason": "No permission prompt, authentication, account, or sensitive action is part of this public channel surface."
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Headers primitive",
      "evidence": "HSTS and X-Frame-Options are set, but CSP, Referrer-Policy, Permissions-Policy, and X-Content-Type-Options were absent in the browser response.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F-defensive-policies"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Discoverability raw-HTML comparison",
      "evidence": "Raw HTML contains 92% of rendered content words and no empty SPA mount; crawler and rendered views both expose the posts.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/discoverability",
        "evidence/discoverability-crawler.png",
        "evidence/discoverability-rendered.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "medium",
      "method": "Search and mobile interaction walkthrough",
      "evidence": "The simple server-rendered feed/search has no clipped overlays or fragile async shell; search and scrolling remained stable.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/search-mobile.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Manifest/service-worker probe",
      "evidence": "This public redirect/channel is not an app-like installable tool; no manifest or controlling service worker is expected for its core purpose.",
      "reason": "This public redirect/channel is not an app-like installable tool; no manifest or controlling service worker is expected for its core purpose."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "not-applicable",
      "confidence": "medium",
      "method": "Architecture and DOM inspection",
      "evidence": "The tested surface is a read-only server-rendered document with ordinary links, not a fetch-driven stateful flow requiring in-page retry/stale-data UI.",
      "reason": "The tested surface is a read-only server-rendered document with ordinary links, not a fetch-driven stateful flow requiring in-page retry/stale-data UI."
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "DOM language/structure probe",
      "evidence": "The Korean channel document has neither html lang nor dir, so assistive technology and translation tools cannot identify its language/direction.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/dom-probe.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F-language-metadata"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "issues",
      "confidence": "medium",
      "method": "Rendered locale review",
      "evidence": "Korean content is mixed with fixed English UI/date labels such as July 10 and subscribers, with no document language signal indicating an intentional locale.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/dom-probe.json"
      ],
      "findingIds": [
        "F-locale-data"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "pass",
      "confidence": "high",
      "method": "DOM timestamp inspection",
      "evidence": "Post time elements use unambiguous ISO datetimes with an explicit +00:00 offset.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "Visual and interaction review",
      "evidence": "No consent wall, disguised advertisement, forced continuity, or confirmshaming appeared; outbound links are visibly presented as links.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/search-mobile.png"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Form inspection",
      "evidence": "The only input is optional channel search; there is no required or validation-bearing form to submit incorrectly.",
      "reason": "The only input is optional channel search; there is no required or validation-bearing form to submit incorrectly."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Input inspection",
      "evidence": "There are no address, payment, sign-in, sign-up, or personal-data inputs requiring autofill tokens; the only field is search.",
      "reason": "There are no address, payment, sign-in, sign-up, or personal-data inputs requiring autofill tokens; the only field is search."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Journey inventory",
      "evidence": "No checkout, subscription, consent, authentication, cancellation, or account-management flow exists on the representative surface.",
      "reason": "No checkout, subscription, consent, authentication, cancellation, or account-management flow exists on the representative surface."
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "pass",
      "confidence": "medium",
      "method": "HAR and image audit",
      "evidence": "The page transfers about 309KB total; its avatars are embedded SVG and Lighthouse passed appropriate image resolution despite small intrinsic-attribute gaps.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/images.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "pass",
      "confidence": "high",
      "method": "Trace, HAR, and tracker evidence",
      "evidence": "Only 31 requests, no known trackers, one 57ms long task, and 7ms TBT were observed; no idle polling or background over-fetching appeared.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trace-summary.json",
        "evidence/trackers.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "pass",
      "confidence": "medium",
      "method": "HAR and DOM media probe",
      "evidence": "No audio/video/autoplay exists; nearly all bytes come from Telegram because the requested host deliberately redirects there, and the total remains modest.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/dom-probe.json"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Site-purpose and DOM inspection",
      "evidence": "This read-only announcement channel exposes no transaction or tool capability for an agent to invoke; its content is already server-rendered.",
      "reason": "This read-only announcement channel exposes no transaction or tool capability for an agent to invoke; its content is already server-rendered."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Site-purpose and script inspection",
      "evidence": "The narrow channel/link experience has no summarisation or generative task whose core UX warrants built-in on-device inference.",
      "reason": "The narrow channel/link experience has no summarisation or generative task whose core UX warrants built-in on-device inference."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "medium",
      "method": "Baseline/post heaps plus 10x scroll/focus metrics",
      "evidence": "After 10 scroll/focus cycles, DOM count stayed 304, page heap grew 142KB, and snapshot self-size changed from 6,637,663 to 6,688,616 bytes (under 1%).",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post.heapsnapshot",
        "evidence/memory-metrics.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "medium",
      "method": "Heap snapshot totals and page metrics",
      "evidence": "The content page snapshot is proportionate at about 6.64MB self-size with 109,786 nodes in the V8 heap graph and 304 live DOM elements.",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/memory-metrics.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "Repeated-interaction instrumentation and heap totals",
      "evidence": "Across 10 cycles the live DOM count did not grow, and instrumentation observed zero newly added listeners or intervals; snapshot node growth was only 492 (0.45%).",
      "pathIds": [
        "channel"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post.heapsnapshot",
        "evidence/memory-metrics.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-contrast-preference"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-route-transition"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-input-modality"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-core-web-vitals",
        "F-visual-stability",
        "F-resource-delivery",
        "F-unused-code"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-accessible-names",
        "F-color-contrast",
        "F-structure-focus",
        "F-user-zoom"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-document-assets",
        "F-bfcache"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-meta-description",
        "F-indexing-signals",
        "F-share-metadata"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-security-headers",
        "F-defensive-policies"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F-language-metadata",
        "F-locale-data"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "All checks were judged not applicable to this read-only channel surface."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "channel",
      "description": "Requested URL redirect and public channel feed; represents entry, reading, current-address discovery, responsive layout, preferences, security, performance, and memory.",
      "url": "https://blacktoon410.com",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "prefers-color-scheme: light/dark",
        "prefers-reduced-motion: reduce",
        "prefers-contrast: more",
        "JavaScript-disabled crawler"
      ],
      "result": "issues"
    },
    {
      "id": "post-10",
      "description": "Latest address post detail; represents individual-message/deep-link reading.",
      "url": "https://t.me/s/blacktoonlink/10",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "pass"
    },
    {
      "id": "search",
      "description": "Channel search result; represents the only form and interactive navigation flow.",
      "url": "https://t.me/s/blacktoonlink?q=blacktoon",
      "conditions": [
        "viewport: 360x800",
        "keyboard focus"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F-contrast-preference",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-contrast",
      "guidanceId": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Contrast preference does not preserve minimum contrast",
      "evidence": "The high-contrast condition has no dedicated CSS, while Lighthouse records 3.31:1 and 4.14:1 combinations.",
      "artifacts": [
        "evidence/preferences-probe.json",
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Add forced-colors/prefers-contrast adaptations and retest essential controls to WCAG contrast minimums.",
      "effort": "small"
    },
    {
      "id": "F-route-transition",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "severity": "low",
      "confidence": "medium",
      "summary": "Search navigation swaps abruptly",
      "evidence": "Search performs a full navigation and no View Transition CSS is present.",
      "artifacts": [
        "evidence/search-mobile.png",
        "evidence/dom-probe.json"
      ],
      "suggestedFix": "Use cross-document View Transitions for same-origin search/channel navigation, guarded by reduced-motion preferences.",
      "effort": "medium"
    },
    {
      "id": "F-input-modality",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Visible focus is missing on key controls",
      "evidence": "The search input and icon-only link compute outline-style none under programmatic focus.",
      "artifacts": [
        "evidence/dom-probe.json",
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Add a high-contrast :focus-visible treatment and ensure compact links have adequate target padding.",
      "effort": "small"
    },
    {
      "id": "F-core-web-vitals",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Mobile LCP and CLS miss good thresholds",
      "evidence": "Lighthouse measured LCP 3.13s and CLS 0.150.",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Profile the LCP dependency chain, reserve all late layout space, and prioritize only the LCP-critical resources.",
      "effort": "medium"
    },
    {
      "id": "F-visual-stability",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "visual-stability",
      "guidanceId": "visually-stable-font-fallbacks",
      "severity": "medium",
      "confidence": "high",
      "summary": "Load-time layout shift is measurable",
      "evidence": "Lighthouse reports CLS 0.150 even though a later observer window was stable.",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-layout-mobile.json"
      ],
      "suggestedFix": "Use explicit dimensions/aspect-ratio and stable font/layout placeholders for every load-time element.",
      "effort": "small"
    },
    {
      "id": "F-resource-delivery",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-script-priority",
      "severity": "medium",
      "confidence": "high",
      "summary": "Redirect and parser-ordered resources lengthen delivery",
      "evidence": "The load includes a 301, three high-priority stylesheets, and six classic scripts without async/defer.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/dom-probe.json"
      ],
      "suggestedFix": "Redirect directly and reduce/defer non-critical scripts and styles while preserving document order only where required.",
      "effort": "medium"
    },
    {
      "id": "F-unused-code",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "severity": "low",
      "confidence": "high",
      "summary": "The destination ships avoidable unused CSS and JavaScript",
      "evidence": "Lighthouse estimates 52KiB unused JS and 15KiB unused CSS.",
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Split or conditionally load jQuery UI/widget code and page-specific CSS.",
      "effort": "medium"
    },
    {
      "id": "F-accessible-names",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Images and search lack robust accessible names",
      "evidence": "Six images have no alt and the search input relies on placeholder text.",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/images.json",
        "evidence/dom-probe.json"
      ],
      "suggestedFix": "Mark decorative avatars alt=\"\" or provide meaningful alt; add a persistent label or aria-label to search.",
      "effort": "small"
    },
    {
      "id": "F-color-contrast",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Join and metadata text fail WCAG contrast",
      "evidence": "Lighthouse measured 3.31:1 on Join and 4.14:1 on 12px metadata.",
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Darken the blue/gray backgrounds or lighten foregrounds until text meets 4.5:1.",
      "effort": "small"
    },
    {
      "id": "F-structure-focus",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Heading hierarchy and focus visibility are incomplete",
      "evidence": "The page has no h1, jumps to h5 footer headings, and suppresses focus on search/icon controls.",
      "artifacts": [
        "evidence/dom-probe.json"
      ],
      "suggestedFix": "Add a channel h1, use sequential footer headings, and provide visible :focus-visible styles.",
      "effort": "small"
    },
    {
      "id": "F-user-zoom",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "severity": "high",
      "confidence": "high",
      "summary": "Viewport settings block user zoom",
      "evidence": "maximum-scale=1 and user-scalable=no prevent pinch zoom despite responsive reflow.",
      "artifacts": [
        "evidence/dom-probe.json",
        "evidence/home-layout-mobile.json"
      ],
      "suggestedFix": "Remove maximum-scale and user-scalable restrictions; keep width=device-width, initial-scale=1.",
      "effort": "trivial"
    },
    {
      "id": "F-document-assets",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "severity": "low",
      "confidence": "high",
      "summary": "Images lack intrinsic dimensions and structure is weak",
      "evidence": "All six img elements omit width/height, and headings begin at h5.",
      "artifacts": [
        "evidence/dom-probe.json",
        "evidence/images.json",
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Declare intrinsic image dimensions and repair the heading outline.",
      "effort": "small"
    },
    {
      "id": "F-bfcache",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "performance",
      "severity": "low",
      "confidence": "high",
      "summary": "No-store responses block back/forward cache",
      "evidence": "Lighthouse found main-resource and JavaScript-request no-store BFCache blockers.",
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Use cache directives compatible with BFCache for public channel content where freshness rules allow.",
      "effort": "medium"
    },
    {
      "id": "F-meta-description",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "be-discoverable",
      "principleCheckId": "title-and-description",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "The public channel has no meta description",
      "evidence": "DOM and Lighthouse both show a missing meta description.",
      "artifacts": [
        "evidence/dom-probe.json",
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Add a concise Korean description of the official channel and current-address purpose.",
      "effort": "trivial"
    },
    {
      "id": "F-indexing-signals",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Indexing signals are inconsistent",
      "evidence": "The sitemap endpoint returned 403, final robots returned 404, and Lighthouse rejected the canonical.",
      "artifacts": [
        "evidence/http-signals.txt",
        "evidence/dom-probe.json",
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Serve consistent robots/sitemap responses and a valid absolute canonical for the public channel view.",
      "effort": "small"
    },
    {
      "id": "F-share-metadata",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Share metadata is empty and unstructured",
      "evidence": "og:image and og:description are empty and no JSON-LD describes the channel.",
      "artifacts": [
        "evidence/dom-probe.json"
      ],
      "suggestedFix": "Populate Open Graph image/description and add accurate Organization/WebPage JSON-LD.",
      "effort": "small"
    },
    {
      "id": "F-security-headers",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Core content defenses are incomplete",
      "evidence": "The browser response lacks CSP and X-Content-Type-Options despite HTTPS/HSTS.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json",
        "evidence/secrets.json"
      ],
      "suggestedFix": "Deploy a nonce/hash-based CSP and X-Content-Type-Options: nosniff, testing CSP in report-only mode first.",
      "effort": "medium"
    },
    {
      "id": "F-defensive-policies",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "privacy",
      "severity": "medium",
      "confidence": "high",
      "summary": "Referrer and permissions policies are absent",
      "evidence": "Headers evidence lacks Referrer-Policy and Permissions-Policy in addition to CSP/nosniff.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Set a deliberate Referrer-Policy and least-privilege Permissions-Policy alongside CSP.",
      "effort": "small"
    },
    {
      "id": "F-language-metadata",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "The Korean page omits document language",
      "evidence": "html has no lang or dir and Lighthouse fails html-has-lang.",
      "artifacts": [
        "evidence/dom-probe.json",
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Set lang=\"ko\" and an appropriate direction on the root document.",
      "effort": "trivial"
    },
    {
      "id": "F-locale-data",
      "pathId": "channel",
      "url": "https://t.me/s/blacktoonlink",
      "principleId": "be-internationalised",
      "principleCheckId": "locale-aware-data",
      "guidanceId": "translator",
      "severity": "medium",
      "confidence": "medium",
      "summary": "UI locale is inconsistent with Korean content",
      "evidence": "The channel uses Korean content alongside English dates and labels without a declared language.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/dom-probe.json"
      ],
      "suggestedFix": "Format dates/counters for the selected locale and expose language changes explicitly when mixed.",
      "effort": "medium"
    }
  ],
  "taskList": [
    {
      "id": "T-1",
      "title": "Repair the accessibility foundation: set lang=ko, add an h1, label search, give images alt semantics, restore visible focus, and allow user zoom.",
      "priority": 1,
      "findingIds": [
        "F-accessible-names",
        "F-structure-focus",
        "F-user-zoom",
        "F-language-metadata",
        "F-input-modality"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T-2",
      "title": "Reduce LCP and CLS by reserving intrinsic space and shortening the critical resource chain.",
      "priority": 2,
      "findingIds": [
        "F-core-web-vitals",
        "F-visual-stability",
        "F-document-assets"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T-3",
      "title": "Deploy CSP, nosniff, Referrer-Policy, and a least-privilege Permissions-Policy.",
      "priority": 3,
      "findingIds": [
        "F-security-headers",
        "F-defensive-policies"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T-4",
      "title": "Provide consistent canonical, robots, sitemap, meta-description, Open Graph, and structured-data signals.",
      "priority": 4,
      "findingIds": [
        "F-meta-description",
        "F-indexing-signals",
        "F-share-metadata"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T-5",
      "title": "Raise text/control contrast and add forced-colors and prefers-contrast adaptations.",
      "priority": 5,
      "findingIds": [
        "F-color-contrast",
        "F-contrast-preference"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T-6",
      "title": "Remove or defer unused scripts/styles and make public responses BFCache-compatible where safe.",
      "priority": 6,
      "findingIds": [
        "F-resource-delivery",
        "F-unused-code",
        "F-bfcache"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    },
    {
      "id": "T-7",
      "title": "Localize dates and interface labels consistently with the Korean channel.",
      "priority": 7,
      "findingIds": [
        "F-locale-data"
      ],
      "guidanceId": "translator",
      "status": "open"
    },
    {
      "id": "T-8",
      "title": "Add reduced-motion-safe cross-document transitions for channel search navigation.",
      "priority": 8,
      "findingIds": [
        "F-route-transition"
      ],
      "guidanceId": "cross-document-transitions",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 3,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-18T13-40-30-691Z"
}
