{
  "url": "https://t.me",
  "auditedAt": "2026-07-18T05:21:10.852Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "The requested URL redirects to https://telegram.org/. Audit covers the destination public-site templates. Atomic coverage complete: 58/58 checks judged.",
  "page": {
    "appType": "mpa",
    "framework": "server-rendered static/MPA",
    "notes": "t.me redirects to telegram.org. Representative public information, download, safety, FAQ, and developer API templates were audited."
  },
  "evidenceUsed": [
    "screenshot",
    "video",
    "dom+css",
    "layout-metrics",
    "evaluate-probe",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "lighthouse",
    "axe-core",
    "HTTP fetch",
    "Modern Web Guidance 0.0.172"
  ],
  "guidanceConsulted": [
    "accessibility",
    "accessible-error-announcement",
    "adapt-scrollbar-to-contrast-preferences",
    "agentic-forms",
    "agentic-javascript-tools",
    "anchor-positioning-tab-underline",
    "animate-element-entry-exit",
    "animate-to-from-top-layer",
    "animate-to-intrinsic-sizes",
    "animated-select-picker",
    "apply-webgl-shaders",
    "autofill-address-form",
    "autofill-highlight-inputs",
    "autofill-payment-form",
    "autofill-sign-in-form",
    "autofill-sign-up-form",
    "batch-analytics-events",
    "brand-consistent-forms",
    "branded-select-styling",
    "break-up-long-tasks",
    "calculate-event-differentials",
    "calculate-total-foreground-time",
    "calculate-with-intrinsic-sizes",
    "capture-location-agnostic-data",
    "carousel-slide-effects",
    "carousel-snap-highlights",
    "child-state-based-styling",
    "complex-shapes",
    "component-specific-light-dark-theme",
    "conditional-async-dependencies",
    "consistent-cross-document-transitions",
    "content-based-styling",
    "coordinate-global-events",
    "cross-document-transitions",
    "css-layout",
    "css",
    "custom-select-picker-layouts",
    "customize-scrollbar-color-and-thickness",
    "dark-mode",
    "declarative-dialog-popover-control",
    "defer-rendering-heavy-content",
    "defer-work-until-scroll-ends",
    "deliver-optimized-decorative-images",
    "deprioritize-background-fetches",
    "design-token-reactivity",
    "detect-initial-visibility-state",
    "directional-navigation-transitions",
    "dynamic-sibling-animations",
    "dynamic-sibling-styling",
    "efficient-background-processing",
    "export-html-media-from-canvas",
    "expose-canvas-content-to-browser-features",
    "faster-spa-view-transitions",
    "flicker-free-client-side-ab-testing",
    "fluid-scaling",
    "form-fields-automatically-fit-contents",
    "format-human-readable-durations",
    "forms",
    "full-session-analytics",
    "group-element-transitions",
    "highlight-text-ranges",
    "html",
    "identify-heavy-scripts",
    "identify-inp-causes",
    "improve-next-page-load-performance",
    "improve-text-layout-and-legibility",
    "individual-transform-properties",
    "interactions-in-complex-layouts",
    "interactive-content-in-3d-scenes",
    "interactive-content-reveal",
    "interest-triggered-action-previews",
    "interest-triggered-tooltips",
    "language-detection",
    "language-model",
    "light-dismiss-a-dialog",
    "manage-recurring-intervals",
    "model-partial-time-concepts",
    "move-dom-element-without-losing-state",
    "navigation-drawer",
    "optimize-image-priority",
    "optimize-preload-priority",
    "optimize-script-priority",
    "overflow-clipping-control",
    "parallax-scroll-effects",
    "passkey-authentication",
    "passkey-conditional-create",
    "passkey-management",
    "passkey-reauthentication",
    "passkey-registration",
    "passkeys",
    "performance",
    "persistent-app-tours",
    "persistent-toast-notifications",
    "persistent-top-layer-ui",
    "physics-based-easing",
    "platform-controls-dismiss-dialog",
    "position-aware-tooltips",
    "precise-text-alignment",
    "prevent-text-wrapping",
    "privacy",
    "pull-to-reveal",
    "reduce-style-repetition",
    "required-field-feedback",
    "resilient-context-menus-and-nested-dropdowns",
    "resolution-optimized-pseudo-elements",
    "rich-media-picker",
    "same-document-transitions",
    "schedule-tasks-by-priority",
    "scroll-entry-exit-effects",
    "scroll-position-aware-elements",
    "scroll-progress-indicator",
    "scroll-snap-realtime-feedback",
    "scroll-snap-state-sync",
    "scroll-target-on-load",
    "scrollability-affordance-hints",
    "scrollytelling",
    "search-hidden-content",
    "security",
    "select-menu-interaction",
    "sequence-distributed-events",
    "shaped-cutouts",
    "shrinking-header-on-scroll",
    "size-aware-styling",
    "soft-edge-content-fade",
    "stabilize-reactive-state",
    "stack-drill-down",
    "style-parent-with-has",
    "summarizer",
    "support-global-calendar-systems",
    "swipe-to-remove",
    "translator",
    "validate-input-after-interaction",
    "visually-stable-font-fallbacks",
    "visually-stable-mixed-fonts",
    "visually-texture-content",
    "webmcp"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "Home at 1440x900",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "Home at 360x800",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "Home under dark preference",
      "findingIds": [
        "F-001"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-high-contrast.png",
      "caption": "Home under higher contrast preference",
      "findingIds": [
        "F-003"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "Rendered Home DOM and CSS",
      "findingIds": [
        "F-001",
        "F-012"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "Home mobile layout metrics",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-probe.json",
      "caption": "Preference, animation, feature, metadata and navigation probe",
      "findingIds": [
        "F-002"
      ]
    },
    {
      "type": "video",
      "path": "evidence/home-to-faq.mp4",
      "caption": "Home to FAQ navigation transition",
      "findingIds": [
        "F-004"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "DevTools performance trace",
      "findingIds": []
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "Compact trace timing and long-task summary",
      "findingIds": [
        "F-007",
        "F-008"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "Network capture",
      "findingIds": []
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "Compact network weight and dependency summary",
      "findingIds": [
        "F-009",
        "F-020",
        "F-021"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "Raw HTML versus rendered content analysis",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "Rendered crawler comparison",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "No-JS crawler comparison",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-headers.json",
      "caption": "Security headers",
      "findingIds": [
        "F-016",
        "F-017"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-cookies.json",
      "caption": "Cookie posture",
      "findingIds": [
        "F-016"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-trackers.json",
      "caption": "Third-party/tracker origins",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-secrets.json",
      "caption": "Client-visible secret scan",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "Image sizing, loading, format and alt audit",
      "findingIds": [
        "F-010",
        "F-013",
        "F-020"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "Lighthouse report",
      "findingIds": [
        "F-007",
        "F-009",
        "F-014"
      ]
    },
    {
      "type": "other",
      "path": "evidence/axe-home.json",
      "caption": "axe-core accessibility results",
      "findingIds": [
        "F-003",
        "F-010",
        "F-011",
        "F-012",
        "F-019"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/faq-desktop.png",
      "caption": "FAQ desktop",
      "findingIds": [
        "F-005"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/faq-dom.json",
      "caption": "FAQ DOM/CSS",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/faq-mobile-layout.json",
      "caption": "FAQ mobile layout metrics",
      "findingIds": [
        "F-005"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/apps-mobile.png",
      "caption": "Apps mobile",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/apps-dom.json",
      "caption": "Apps DOM/CSS",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/safety-desktop.png",
      "caption": "Safety desktop",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/safety-mobile.png",
      "caption": "Safety at requested 360x800",
      "findingIds": [
        "F-006"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/safety-mobile-layout.json",
      "caption": "Safety mobile overflow metrics",
      "findingIds": [
        "F-006"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/safety-dom.json",
      "caption": "Safety DOM/CSS",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/api-desktop.png",
      "caption": "API documentation desktop",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/api-dom.json",
      "caption": "API DOM/CSS",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/not-found.png",
      "caption": "Nonexistent route rendering the homepage",
      "findingIds": [
        "F-015",
        "F-018"
      ]
    },
    {
      "type": "other",
      "path": "evidence/metadata-probe.json",
      "caption": "Metadata across five templates",
      "findingIds": [
        "F-014",
        "F-015",
        "F-019"
      ]
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots.txt 404 body",
      "findingIds": [
        "F-015"
      ]
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "sitemap.xml 404 body",
      "findingIds": [
        "F-015"
      ]
    },
    {
      "type": "other",
      "path": "evidence/t-me-redirect-headers.txt",
      "caption": "t.me redirect and destination headers",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "Baseline heap summary",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-toggle.json",
      "caption": "Heap after ten theme toggles",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/memory-metrics.json",
      "caption": "In-page repeated-toggle memory metrics",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/interaction-probe.json",
      "caption": "Touch target, focus and CSS probe",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/guidance-consulted.json",
      "caption": "Pinned MWG retrieval and search record",
      "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": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "Dark emulation matches true, but home-dark.png is visually identical to the light capture; computed body remains rgb(255,255,255) and color-scheme is normal.",
      "findingIds": [
        "F-001"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "Under prefers-reduced-motion: reduce, getAnimations() still reports the non-essential 500ms t-logo-play animation.",
      "findingIds": [
        "F-002"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "The prefers-contrast: more screenshot is unchanged, while axe measures the main #0088cc links at only 3.89:1 on white.",
      "findingIds": [
        "F-003"
      ],
      "artifacts": [
        "evidence/home-high-contrast.png",
        "evidence/axe-home.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "The navigation video records a direct cross-document swap from Home to FAQ; DOM/CSS has no view-transition declarations.",
      "findingIds": [
        "F-004"
      ],
      "artifacts": [
        "evidence/home-to-faq.mp4"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon applicability review",
      "evidence": "No scroll-linked animation exists on the representative pages, so there is no implementation to place on a scroll timeline.",
      "reason": "No scroll-linked animation exists on the representative pages, so there is no implementation to place on a scroll timeline."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "DOM/CSS inspection found ordinary links and native scrolling, with no custom pointermove, swipe, pull-to-refresh, or gesture interception fighting platform behaviour.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "Long FAQ (about 53,068px mobile content height) and Safety pages retain static header chrome with no progress, shrinking, or scroll-state response.",
      "findingIds": [
        "F-005"
      ],
      "artifacts": [
        "evidence/faq-desktop.png",
        "evidence/faq-mobile-layout.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon applicability review",
      "evidence": "No tooltip, popover, or floating menu is exposed on the audited public pages.",
      "reason": "No tooltip, popover, or floating menu is exposed on the audited public pages."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "Screenshots show an active blue underline in the global navigation; FAQ in-page links use real fragment targets, preserving location and orientation.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "Desktop and mobile load screenshots show content immediately with no modal, consent wall, interstitial, or obscuring banner.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon applicability review",
      "evidence": "No overlay, modal flow, disclosure widget, or rich picker is present on these static public pages.",
      "reason": "No overlay, modal flow, disclosure widget, or rich picker is present on these static public pages."
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "Across home, FAQ, Apps, Safety, and API screenshots, a single compact header leaves the viewport primarily to content.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "At a requested 360px viewport, Safety reports a 450px layout viewport and 90px horizontal overflow, forcing browser scale-down rather than true 360px reflow.",
      "findingIds": [
        "F-006"
      ],
      "artifacts": [
        "evidence/safety-mobile.png",
        "evidence/safety-mobile-layout.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "pass",
      "confidence": "medium",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "Mobile and desktop screenshots show the reused global header and content columns adapting via responsive CSS; no component is reused in conflicting container sizes that requires a container query.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "Lighthouse target-size passed, viewport scaling is allowed, the theme button retains a browser focus outline, and primary header links occupy the 48px header hit area.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "The first viewport names Telegram, presents platform download choices, and uses direct labels such as “Telegram for Android” and “Telegram for iPhone / iPad”.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "The home and Apps paths expose direct platform-specific download links without account walls, modals, or hidden prerequisites.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "The static download and documentation journeys use normal links and browser history, with no loading shell or partial state on the exercised successful paths.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, trace summary, layout observer, and HAR summary",
      "evidence": "Cold Lighthouse reports LCP 4.7s (score 0.33), outside the good <=2.5s Core Web Vitals threshold, although CLS is 0.",
      "findingIds": [
        "F-007"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse, trace summary, layout observer, and HAR summary",
      "evidence": "Layout observers reported CLS 0 on Home, FAQ, and Safety, with no observed shifts during the capture windows.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, trace summary, layout observer, and HAR summary",
      "evidence": "The DevTools trace records one 194.12ms main-thread task and 144.12ms total blocking time on the simple landing page.",
      "findingIds": [
        "F-008"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, trace summary, layout observer, and HAR summary",
      "evidence": "HAR confirms three parser-inserted render-blocking stylesheets and three classic scripts without async/defer; Lighthouse also estimates 26 KiB unused CSS and cold LCP is 4.7s.",
      "findingIds": [
        "F-009"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, trace summary, layout observer, and HAR summary",
      "evidence": "HAR confirms three parser-inserted render-blocking stylesheets and three classic scripts without async/defer; Lighthouse also estimates 26 KiB unused CSS and cold LCP is 4.7s.",
      "findingIds": [
        "F-009"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "axe-core, Lighthouse accessibility, DOM, and responsive screenshots",
      "evidence": "axe reports two images without alt text, the logo home link without an accessible name, and the Images primitive confirms two missing alt attributes.",
      "findingIds": [
        "F-010"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/home-images.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "axe-core, Lighthouse accessibility, DOM, and responsive screenshots",
      "evidence": "axe reports serious color-contrast failures: the shared #0088cc link color is 3.89:1 on white across navigation and news links.",
      "findingIds": [
        "F-011"
      ],
      "artifacts": [
        "evidence/axe-home.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "axe-core, Lighthouse accessibility, DOM, and responsive screenshots",
      "evidence": "axe reports no main landmark, no H1 on Home, invalid heading order, broad content outside landmarks, and an empty heading.",
      "findingIds": [
        "F-012"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "axe-core, Lighthouse accessibility, DOM, and responsive screenshots",
      "evidence": "Visual review across four templates found readable line lengths, clear heading/body hierarchy, and no clipping in ordinary desktop and mobile states.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "axe-core, Lighthouse accessibility, DOM, and responsive screenshots",
      "evidence": "At a requested 360px viewport, Safety reports a 450px layout viewport and 90px horizontal overflow, forcing browser scale-down rather than true 360px reflow.",
      "findingIds": [
        "F-006"
      ],
      "artifacts": [
        "evidence/safety-mobile.png",
        "evidence/safety-mobile-layout.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "Lighthouse errors-in-console passed and no uncaught runtime exception appeared during CDP evidence collection.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "Images primitive reports both sampled below-fold news images omit width and height attributes (and loading/srcset).",
      "findingIds": [
        "F-013"
      ],
      "artifacts": [
        "evidence/home-images.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "Lighthouse best-practices scored 1.00, BFCache passed, and no permission prompt, paste prevention, or deprecation surfaced during recon.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "issues",
      "confidence": "high",
      "method": "Raw HTML metadata probe, discoverability capture, and HTTP fetch",
      "evidence": "Metadata probe finds a descriptive title but no meta description on Home, FAQ, Apps, Safety, or API; Lighthouse meta-description fails.",
      "findingIds": [
        "F-014"
      ],
      "artifacts": [
        "evidence/metadata-probe.json",
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "Raw HTML metadata probe, discoverability capture, and HTTP fetch",
      "evidence": "All sampled navigation/content links have real href values, viewport metadata is present, raw HTML contains the content, and no robots noindex directive blocks crawling.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Raw HTML metadata probe, discoverability capture, and HTTP fetch",
      "evidence": "robots.txt and sitemap.xml return 404, sampled pages have no canonical, and an invented URL returns HTTP 200 with the homepage, creating a soft-404 indexing signal.",
      "findingIds": [
        "F-015"
      ],
      "artifacts": [
        "evidence/metadata-probe.json",
        "evidence/robots.txt",
        "evidence/sitemap.xml",
        "evidence/not-found.png"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "Raw HTML metadata probe, discoverability capture, and HTTP fetch",
      "evidence": "All five sampled templates include Open Graph metadata matching their visible Telegram content; none is a product, event, or article detail requiring richer schema for the audited task.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Headers, cookies, trackers, secrets, and HAR inspection",
      "evidence": "Headers primitive finds HTTPS and HSTS, but no Content-Security-Policy and no X-Content-Type-Options; the short-lived cookie is Secure and HttpOnly.",
      "findingIds": [
        "F-016"
      ],
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "pass",
      "confidence": "high",
      "method": "Headers, cookies, trackers, secrets, and HAR inspection",
      "evidence": "Tracker capture found no known trackers, cookies found no third-party cookie, secrets found no exposed credential, and the HAR contains only the t.me to telegram.org first-party organisational redirect.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon applicability review",
      "evidence": "The audited public information and download pages request no browser permissions and expose no authentication flow.",
      "reason": "The audited public information and download pages request no browser permissions and expose no authentication flow."
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Headers, cookies, trackers, secrets, and HAR inspection",
      "evidence": "Headers primitive finds no Referrer-Policy or Permissions-Policy; X-Frame-Options and HSTS are present.",
      "findingIds": [
        "F-017"
      ],
      "artifacts": [
        "evidence/home-headers.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "Discoverability measured 100% raw-HTML content coverage with no JS shell; browser and crawler views both contain the core page.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "The sampled static routes use native links and no overlays; no clipped menu, async shell, or unstable reactive state appeared in screenshots or DOM evidence.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon applicability review",
      "evidence": "The audited surface is a brochure/documentation site linking to native and web apps, not an installable app itself; offline installability is not required for this surface.",
      "reason": "The audited surface is a brochure/documentation site linking to native and web apps, not an installable app itself; offline installability is not required for this surface."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "A clearly nonexistent path returns HTTP 200 and silently renders the homepage instead of an explicit not-found state with recovery guidance.",
      "findingIds": [
        "F-018"
      ],
      "artifacts": [
        "evidence/not-found.png"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "All five sampled documents omit html lang (axe serious), and the root computed direction metadata is also undeclared despite offering 19 languages.",
      "findingIds": [
        "F-019"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/metadata-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "medium",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "The language selector exposes 19 locales; a German cookie response localised navigation and the visible date from “Jul 14” to “14. Jul”.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon applicability review",
      "evidence": "The representative pages do not coordinate events, appointments, deadlines, or user-entered times across time zones.",
      "reason": "The representative pages do not coordinate events, appointments, deadlines, or user-entered times across time zones."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "No consent wall, forced continuity, disguised ad, nagging prompt, pricing, or destructive action appears on any sampled public page.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon applicability review",
      "evidence": "No form is present on the audited public pages.",
      "reason": "No form is present on the audited public pages."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon applicability review",
      "evidence": "No editable input or account/payment form is present on the audited public pages.",
      "reason": "No editable input or account/payment form is present on the audited public pages."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon applicability review",
      "evidence": "No checkout, subscription, consent, sign-in, or account-management flow is exposed on the audited pages.",
      "reason": "No checkout, subscription, consent, sign-in, or account-management flow is exposed on the audited pages."
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "HAR transfers 666,179 image bytes; the two 600px news images lack lazy loading and srcset, including one 324,389-byte below-fold image.",
      "findingIds": [
        "F-020"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-images.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "HAR and trace show a bounded initial load with no analytics beacons, recurring background fetches, or continuous idle processing.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/CSS/evaluate probes plus desktop/mobile screenshots",
      "evidence": "The simple landing page initiates six media requests plus 20 image requests and transfers 798,160 bytes before interaction; demo MP4 requests begin without user intent.",
      "findingIds": [
        "F-021"
      ],
      "artifacts": [
        "evidence/home-summary.json"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon applicability review",
      "evidence": "This public marketing/documentation surface does not declare an agent-facing intent; emerging WebMCP capability is an opportunity, not an obligation.",
      "reason": "This public marketing/documentation surface does not declare an agent-facing intent; emerging WebMCP capability is an opportunity, not an obligation."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon applicability review",
      "evidence": "The pages contain no summarisation or generation workflow where on-device inference would improve the task.",
      "reason": "The pages contain no summarisation or generation workflow where on-device inference would improve the task."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "Heap summaries plus repeated-interaction memory probe",
      "evidence": "Ten repeated theme toggles left DOM nodes unchanged at 306 and reduced measured used JS heap by 701,845 bytes after settling.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "Heap summaries plus repeated-interaction memory probe",
      "evidence": "The heap baseline is about 29.0 MB self size with 68,857 nodes in the snapshot graph, proportionate to the image-rich static landing page.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "Heap summaries plus repeated-interaction memory probe",
      "evidence": "After ten theme toggles, live DOM node count remained 306; the second heap summary showed only modest cross-process variance and no direct evidence of unbounded retention.",
      "pathIds": [
        "home",
        "faq",
        "apps",
        "safety",
        "api"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-001",
        "F-002",
        "F-003"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-004"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-005"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-006"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-007",
        "F-008",
        "F-009"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-010",
        "F-011",
        "F-012",
        "F-006"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-013"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-014",
        "F-015"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-016",
        "F-017"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F-018"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F-019"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F-020",
        "F-021"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "This public marketing/documentation surface does not declare an agent-facing intent; emerging WebMCP capability is an opportunity, not an obligation. The pages contain no summarisation or generation workflow where on-device inference would improve the task."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Redirect destination and primary app-download landing page; covers global chrome, core action, preferences, performance, privacy, discoverability, and memory.",
      "url": "https://t.me",
      "conditions": [
        "1440x900",
        "360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "prefers-contrast: more",
        "ten repeated theme toggles"
      ],
      "result": "issues"
    },
    {
      "id": "faq",
      "description": "Long-form documentation archetype and in-page navigation.",
      "url": "https://telegram.org/faq",
      "conditions": [
        "1440x900",
        "360x800"
      ],
      "result": "issues"
    },
    {
      "id": "apps",
      "description": "Platform download listing and primary task continuation.",
      "url": "https://telegram.org/apps",
      "conditions": [
        "360x800"
      ],
      "result": "pass"
    },
    {
      "id": "safety",
      "description": "Data-heavy report/chart archetype and narrow-screen stress case.",
      "url": "https://telegram.org/safety",
      "conditions": [
        "1440x900",
        "360x800"
      ],
      "result": "issues"
    },
    {
      "id": "api",
      "description": "Developer documentation archetype on the linked core.telegram.org host.",
      "url": "https://core.telegram.org/api",
      "conditions": [
        "1440x900"
      ],
      "result": "issues"
    },
    {
      "id": "multi-template",
      "description": "Cross-template metadata, language, HTTP status, robots, sitemap, and canonical checks. Blog/article details, authenticated web apps, checkout, account flows, and native apps were not covered because they are distinct products or absent from this public site.",
      "url": "https://telegram.org/",
      "conditions": [
        "raw HTTP",
        "no-JS crawler"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F-001",
      "pathId": "home",
      "url": "https://t.me",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Add system-driven dark mode",
      "evidence": "Dark emulation matches true, but home-dark.png is visually identical to the light capture; computed body remains rgb(255,255,255) and color-scheme is normal.",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Add color-scheme: light dark and retint surfaces with prefers-color-scheme or light-dark().",
      "effort": "small"
    },
    {
      "id": "F-002",
      "pathId": "home",
      "url": "https://t.me",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Stop decorative logo motion when reduced motion is requested",
      "evidence": "Under prefers-reduced-motion: reduce, getAnimations() still reports the non-essential 500ms t-logo-play animation.",
      "artifacts": [
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Wrap decorative animation in no-preference and disable it under prefers-reduced-motion: reduce.",
      "effort": "small"
    },
    {
      "id": "F-003",
      "pathId": "home",
      "url": "https://t.me",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-contrast",
      "guidanceId": "adapt-scrollbar-to-contrast-preferences",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Adapt to higher contrast and fix low-contrast links",
      "evidence": "The prefers-contrast: more screenshot is unchanged, while axe measures the main #0088cc links at only 3.89:1 on white.",
      "artifacts": [
        "evidence/home-high-contrast.png",
        "evidence/axe-home.json"
      ],
      "suggestedFix": "Use a darker link token meeting 4.5:1 and add prefers-contrast/forced-colors adjustments.",
      "effort": "small"
    },
    {
      "id": "F-004",
      "pathId": "home",
      "url": "https://t.me",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "high",
      "summary": "Route changes swap abruptly",
      "evidence": "The navigation video records a direct cross-document swap from Home to FAQ; DOM/CSS has no view-transition declarations.",
      "artifacts": [
        "evidence/home-to-faq.mp4"
      ],
      "suggestedFix": "Add @view-transition { navigation: auto } and stable view-transition names, with reduced-motion handling.",
      "effort": "small"
    },
    {
      "id": "F-005",
      "pathId": "home",
      "url": "https://t.me",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "scroll-progress-indicator",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "high",
      "summary": "Long documents provide no scroll-state guidance",
      "evidence": "Long FAQ (about 53,068px mobile content height) and Safety pages retain static header chrome with no progress, shrinking, or scroll-state response.",
      "artifacts": [
        "evidence/faq-desktop.png",
        "evidence/faq-mobile-layout.json"
      ],
      "suggestedFix": "Add lightweight CSS scroll-state/progress feedback on long FAQ and Safety documents.",
      "effort": "medium"
    },
    {
      "id": "F-006",
      "pathId": "safety",
      "url": "https://telegram.org/safety",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "css",
      "severity": "high",
      "confidence": "high",
      "summary": "Safety uses a 450px minimum layout on a 360px device",
      "evidence": "At a requested 360px viewport, Safety reports a 450px layout viewport and 90px horizontal overflow, forcing browser scale-down rather than true 360px reflow.",
      "artifacts": [
        "evidence/safety-mobile.png",
        "evidence/safety-mobile-layout.json"
      ],
      "suggestedFix": "Remove the 450px minimum constraint and let charts/content reflow within 100% inline size at 360px.",
      "effort": "medium"
    },
    {
      "id": "F-007",
      "pathId": "home",
      "url": "https://t.me",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Cold-load LCP is 4.7 seconds",
      "evidence": "Cold Lighthouse reports LCP 4.7s (score 0.33), outside the good <=2.5s Core Web Vitals threshold, although CLS is 0.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Prioritise the actual LCP asset, remove the redirect for canonical traffic, and defer below-fold images/media.",
      "effort": "medium"
    },
    {
      "id": "F-008",
      "pathId": "home",
      "url": "https://t.me",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "guidanceId": "break-up-long-tasks",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "A 194ms main-thread task blocks initial responsiveness",
      "evidence": "The DevTools trace records one 194.12ms main-thread task and 144.12ms total blocking time on the simple landing page.",
      "artifacts": [
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Profile the long task, split non-critical startup work, and defer demo/sticker setup until needed.",
      "effort": "medium"
    },
    {
      "id": "F-009",
      "pathId": "home",
      "url": "https://t.me",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-script-priority",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Blocking resources and unused CSS delay a simple page",
      "evidence": "HAR confirms three parser-inserted render-blocking stylesheets and three classic scripts without async/defer; Lighthouse also estimates 26 KiB unused CSS and cold LCP is 4.7s.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json"
      ],
      "suggestedFix": "Inline only critical CSS, defer classic scripts, and remove the 26 KiB of unused CSS reported by Lighthouse.",
      "effort": "medium"
    },
    {
      "id": "F-010",
      "pathId": "home",
      "url": "https://t.me",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "Give meaningful images concise alt text (or alt=\"\" when decorative) and name the logo link “Telegram home”.",
      "severity": "high",
      "confidence": "high",
      "summary": "Images and the logo link lack accessible alternatives",
      "evidence": "axe reports two images without alt text, the logo home link without an accessible name, and the Images primitive confirms two missing alt attributes.",
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/home-images.json"
      ],
      "suggestedFix": "small"
    },
    {
      "id": "F-011",
      "pathId": "home",
      "url": "https://t.me",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "Darken the link color so normal text reaches at least 4.5:1 in every state.",
      "severity": "high",
      "confidence": "high",
      "summary": "Shared blue links fail WCAG AA contrast",
      "evidence": "axe reports serious color-contrast failures: the shared #0088cc link color is 3.89:1 on white across navigation and news links.",
      "artifacts": [
        "evidence/axe-home.json"
      ],
      "suggestedFix": "small"
    },
    {
      "id": "F-012",
      "pathId": "home",
      "url": "https://t.me",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "Use semantic header/nav/main/footer landmarks, one descriptive H1, and sequential heading levels.",
      "severity": "high",
      "confidence": "high",
      "summary": "Home lacks basic heading and landmark structure",
      "evidence": "axe reports no main landmark, no H1 on Home, invalid heading order, broad content outside landmarks, and an empty heading.",
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/home-dom.json"
      ],
      "suggestedFix": "medium"
    },
    {
      "id": "F-013",
      "pathId": "home",
      "url": "https://t.me",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "Set width and height or aspect-ratio on each image to make sizing explicit.",
      "severity": "low",
      "confidence": "high",
      "summary": "Below-fold images omit intrinsic dimensions",
      "evidence": "Images primitive reports both sampled below-fold news images omit width and height attributes (and loading/srcset).",
      "artifacts": [
        "evidence/home-images.json"
      ],
      "suggestedFix": "small"
    },
    {
      "id": "F-014",
      "pathId": "multi-template",
      "url": "https://t.me",
      "principleId": "be-discoverable",
      "principleCheckId": "title-and-description",
      "guidanceId": "html",
      "guidanceCategory": "Add a unique concise meta description matching each page purpose.",
      "severity": "medium",
      "confidence": "high",
      "summary": "Every sampled page lacks a meta description",
      "evidence": "Metadata probe finds a descriptive title but no meta description on Home, FAQ, Apps, Safety, or API; Lighthouse meta-description fails.",
      "artifacts": [
        "evidence/metadata-probe.json",
        "evidence/lighthouse-home.json"
      ],
      "suggestedFix": "small"
    },
    {
      "id": "F-015",
      "pathId": "multi-template",
      "url": "https://t.me",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "guidanceCategory": "Return real 404 status for unknown URLs, publish robots.txt and sitemap.xml, and add canonical links.",
      "severity": "high",
      "confidence": "high",
      "summary": "Soft 404s and missing canonical crawl signals confuse indexing",
      "evidence": "robots.txt and sitemap.xml return 404, sampled pages have no canonical, and an invented URL returns HTTP 200 with the homepage, creating a soft-404 indexing signal.",
      "artifacts": [
        "evidence/metadata-probe.json",
        "evidence/robots.txt",
        "evidence/sitemap.xml",
        "evidence/not-found.png"
      ],
      "suggestedFix": "medium"
    },
    {
      "id": "F-016",
      "pathId": "home",
      "url": "https://t.me",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "Deploy a restrictive Content-Security-Policy and X-Content-Type-Options: nosniff, testing CSP in report-only first.",
      "severity": "high",
      "confidence": "high",
      "summary": "Core XSS and MIME-sniffing defenses are absent",
      "evidence": "Headers primitive finds HTTPS and HSTS, but no Content-Security-Policy and no X-Content-Type-Options; the short-lived cookie is Secure and HttpOnly.",
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json"
      ],
      "suggestedFix": "medium"
    },
    {
      "id": "F-017",
      "pathId": "home",
      "url": "https://t.me",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "privacy",
      "guidanceCategory": "Set a suitable Referrer-Policy and a least-privilege Permissions-Policy.",
      "severity": "medium",
      "confidence": "high",
      "summary": "Privacy-oriented browser policies are incomplete",
      "evidence": "Headers primitive finds no Referrer-Policy or Permissions-Policy; X-Frame-Options and HSTS are present.",
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "suggestedFix": "small"
    },
    {
      "id": "F-018",
      "pathId": "home",
      "url": "https://t.me",
      "principleId": "be-resilient",
      "principleCheckId": "network-and-http-failure-states",
      "guidanceId": "persistent-toast-notifications",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Unknown routes silently become the homepage",
      "evidence": "A clearly nonexistent path returns HTTP 200 and silently renders the homepage instead of an explicit not-found state with recovery guidance.",
      "artifacts": [
        "evidence/not-found.png"
      ],
      "suggestedFix": "Return a clear 404 page with navigation, search/help, and a route back to the intended task.",
      "effort": "small"
    },
    {
      "id": "F-019",
      "pathId": "multi-template",
      "url": "https://t.me",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "language-detection",
      "guidanceCategory": "internationalisation",
      "severity": "high",
      "confidence": "high",
      "summary": "Localized pages omit language and direction metadata",
      "evidence": "All five sampled documents omit html lang (axe serious), and the root computed direction metadata is also undeclared despite offering 19 languages.",
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/metadata-probe.json"
      ],
      "suggestedFix": "Set html lang for every selected locale and dir=\"rtl\" for Arabic/Persian output; favour logical CSS properties.",
      "effort": "small"
    },
    {
      "id": "F-020",
      "pathId": "home",
      "url": "https://t.me",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Below-fold images are heavy and not responsive or lazy",
      "evidence": "HAR transfers 666,179 image bytes; the two 600px news images lack lazy loading and srcset, including one 324,389-byte below-fold image.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-images.json"
      ],
      "suggestedFix": "Add loading=\"lazy\", width/height, and responsive srcset/sizes; compress the 324 KB news image further.",
      "effort": "small"
    },
    {
      "id": "F-021",
      "pathId": "home",
      "url": "https://t.me",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "deprioritize-background-fetches",
      "guidanceCategory": "performance",
      "severity": "low",
      "confidence": "high",
      "summary": "Demo media starts loading before user intent",
      "evidence": "The simple landing page initiates six media requests plus 20 image requests and transfers 798,160 bytes before interaction; demo MP4 requests begin without user intent.",
      "artifacts": [
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Use preload=\"none\" for demo videos and fetch/play them only on explicit interaction or when near the viewport.",
      "effort": "small"
    }
  ],
  "taskList": [
    {
      "id": "T-001",
      "title": "Repair the shared accessibility foundation: landmarks and headings, accessible names and alt text, and AA link contrast.",
      "priority": 1,
      "findingIds": [
        "F-010",
        "F-011",
        "F-012"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T-002",
      "title": "Make the Safety template genuinely reflow at 360px instead of scaling a 450px layout.",
      "priority": 2,
      "findingIds": [
        "F-006"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T-003",
      "title": "Deploy CSP, nosniff, Referrer-Policy, and a least-privilege Permissions-Policy.",
      "priority": 3,
      "findingIds": [
        "F-016",
        "F-017"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T-004",
      "title": "Fix crawl signals: real 404 responses, canonical links, robots.txt, sitemap.xml, and per-page descriptions.",
      "priority": 4,
      "findingIds": [
        "F-014",
        "F-015",
        "F-018"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T-005",
      "title": "Improve cold LCP and startup efficiency by deferring media and scripts, trimming CSS, and optimising below-fold images.",
      "priority": 5,
      "findingIds": [
        "F-007",
        "F-008",
        "F-009",
        "F-020",
        "F-021"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T-006",
      "title": "Respect dark, reduced-motion, and higher-contrast user preferences.",
      "priority": 6,
      "findingIds": [
        "F-001",
        "F-002",
        "F-003"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T-007",
      "title": "Declare the selected language and writing direction on every localized page.",
      "priority": 7,
      "findingIds": [
        "F-019"
      ],
      "guidanceId": "language-detection",
      "status": "open"
    },
    {
      "id": "T-008",
      "title": "Add scroll-state orientation on long documents and smooth cross-document navigation.",
      "priority": 8,
      "findingIds": [
        "F-004",
        "F-005"
      ],
      "guidanceId": "cross-document-transitions",
      "status": "open"
    },
    {
      "id": "T-009",
      "title": "Give below-fold images intrinsic width and height.",
      "priority": 9,
      "findingIds": [
        "F-013"
      ],
      "guidanceId": "html",
      "status": "open"
    }
  ],
  "budget": {
    "wallClockSeconds": 900,
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-18T05-21-10-852Z"
}
