{
  "url": "https://faq.whatsapp.com",
  "auditedAt": "2026-07-20T22:42:00.000Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "All 58 catalog checks were judged across five representative public help-center paths.",
  "page": {
    "appType": "hybrid",
    "framework": "Meta/Comet client runtime",
    "notes": "Public help center with client-rendered home, category, article, search and error templates."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "lighthouse",
    "curl HTTP inspection",
    "modern-web-guidance"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "privacy",
    "security",
    "performance",
    "css-layout",
    "fluid-scaling",
    "navigation-drawer",
    "forms",
    "improve-text-layout-and-legibility",
    "optimize-image-priority",
    "break-up-long-tasks",
    "defer-rendering-heavy-content"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "Homepage at desktop viewport",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "Homepage captured on a 360x800 device viewport",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F2"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/category-mobile.png",
      "caption": "Category template on mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F3"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/article-mobile.png",
      "caption": "Article template on mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F2",
        "F3"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/search-mobile.png",
      "caption": "Search results for backup",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F9"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/error-mobile.png",
      "caption": "Error state and recovery actions",
      "condition": "viewport: 360x800",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile-dark.png",
      "caption": "Homepage with dark preference",
      "condition": "prefers-color-scheme: dark",
      "findingIds": [
        "F1"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile-contrast.png",
      "caption": "Homepage with increased contrast preference",
      "condition": "prefers-contrast: more",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/layout-mobile.json",
      "caption": "Mobile viewport and layout metrics",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F2",
        "F10",
        "F14"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/layout-article.json",
      "caption": "Article CLS and long-task metrics",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "DevTools performance trace",
      "condition": "cold load",
      "findingIds": []
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "Compact trace timing summary",
      "condition": "cold load",
      "findingIds": [
        "F6"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "Network HAR",
      "condition": "cold load",
      "findingIds": [
        "F7"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "Compact network summary",
      "condition": "cold load",
      "findingIds": [
        "F7",
        "F19"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "Lighthouse report",
      "condition": "mobile simulated",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-summary.json",
      "caption": "Selected Lighthouse metrics",
      "condition": "mobile simulated",
      "findingIds": [
        "F6",
        "F8",
        "F11",
        "F19"
      ]
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-failures.json",
      "caption": "Lighthouse failing audit summary",
      "condition": "mobile simulated",
      "findingIds": [
        "F4",
        "F7",
        "F10",
        "F12",
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/focus-probe.json",
      "caption": "Programmatic keyboard focus visibility probe",
      "condition": "keyboard focus",
      "findingIds": [
        "F5"
      ]
    },
    {
      "type": "other",
      "path": "evidence/i18n-probe.json",
      "caption": "Language and logical CSS probe",
      "condition": "English template",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability-home.json",
      "caption": "Raw vs rendered homepage content comparison",
      "condition": "JavaScript disabled crawler",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-home-crawler.png",
      "caption": "Crawler view of homepage",
      "condition": "JavaScript disabled",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability-article.json",
      "caption": "Raw vs rendered article content comparison",
      "condition": "JavaScript disabled crawler",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-article-crawler.png",
      "caption": "Crawler view of article",
      "condition": "JavaScript disabled",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "Security response headers",
      "condition": "cold load",
      "findingIds": [
        "F16"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "Cookie posture",
      "condition": "cold load",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "Third-party tracker scan",
      "condition": "cold load",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "Client secret scan",
      "condition": "cold load",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/images-article.json",
      "caption": "Article image audit",
      "condition": "article",
      "findingIds": [
        "F11",
        "F18"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.heapsnapshot",
      "caption": "Baseline heap summary",
      "condition": "initial state",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-interaction.heapsnapshot",
      "caption": "Heap after ten navigation toggles",
      "condition": "10 repeated toggles",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-probe.json",
      "caption": "Homepage DOM/computed-style probe",
      "condition": "mobile/reduced motion",
      "findingIds": [
        "F1",
        "F4",
        "F9"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/article-probe.json",
      "caption": "Article metadata/structure probe",
      "condition": "mobile",
      "findingIds": [
        "F13",
        "F15"
      ]
    },
    {
      "type": "other",
      "path": "coverage-manifest.json",
      "caption": "Exact 58-check coverage manifest",
      "condition": "catalog 0.0.172",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence-plan.json",
      "caption": "Per-check evidence plan",
      "condition": "five representative paths",
      "findingIds": []
    }
  ],
  "config": {
    "loaded": false
  },
  "coverage": {
    "catalogVersion": "modern-web-guidance@0.0.172",
    "catalogChecksum": "sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7",
    "expected": 58,
    "recorded": 58,
    "judged": 58,
    "blocked": 0,
    "notRun": 0,
    "missing": 0,
    "unknown": 0,
    "duplicates": 0,
    "complete": true
  },
  "checkOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-color-scheme",
      "status": "issues",
      "confidence": "high",
      "method": "Emulated-media screenshots and computed-style/animation probe",
      "evidence": "The dark-mode capture is pixel-equivalent to the light capture; the probe reports colorScheme \"normal\" and the same light rgb(240, 242, 245) body background.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-dark.png",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F1"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "Emulated-media screenshots and computed-style/animation probe",
      "evidence": "Under prefers-reduced-motion: reduce, getAnimations() returned an empty array; no auto-advance or nonessential animation was running.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-dark.png",
        "evidence/home-mobile-contrast.png",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Emulated-media screenshots and computed-style/animation probe",
      "evidence": "The prefers-contrast capture remained fully visible, and Lighthouse color-contrast passed with no failing elements.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-dark.png",
        "evidence/home-mobile-contrast.png",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "pass",
      "confidence": "high",
      "method": "Rendered CSS capability and interaction inspection",
      "evidence": "The stylesheet inspection found view-transition rules and the browser exposes document.startViewTransition; no abrupt state-loss issue was observed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/article-probe.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Rendered CSS capability and interaction inspection",
      "evidence": "No scroll-linked animation is present on the sampled help templates, so there is no scroll animation implementation to assess.",
      "reason": "No scroll-linked animation is present on the sampled help templates, so there is no scroll animation implementation to assess."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Rendered CSS capability and interaction inspection",
      "evidence": "The sampled help center exposes ordinary links, search and disclosure controls, not gesture-driven interactions.",
      "reason": "The sampled help center exposes ordinary links, search and disclosure controls, not gesture-driven interactions."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshots, DOM and interaction inspection",
      "evidence": "The persistent category navigation and article context remain visible while long content scrolls, providing stable orientation without scroll-handler long tasks.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative screenshots, DOM and interaction inspection",
      "evidence": "No tooltip or edge-positioned transient overlay was exposed on the sampled primary paths.",
      "reason": "No tooltip or edge-positioned transient overlay was exposed on the sampled primary paths."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshots, DOM and interaction inspection",
      "evidence": "Article navigation highlights the current article in green, uses a clear H1 and platform tabs, and search results highlight the query term.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "pass",
      "confidence": "high",
      "method": "First-load and article screenshots plus DOM semantics inspection",
      "evidence": "First-load home screenshot contains no modal, consent wall or interstitial obscuring content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "pass",
      "confidence": "high",
      "method": "First-load and article screenshots plus DOM semantics inspection",
      "evidence": "No modal flow was triggered; the only persistent feedback prompt visibly provides a close control and does not obscure the article body.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "First-load and article screenshots plus DOM semantics inspection",
      "evidence": "On article and category mobile captures, the always-visible left navigation occupies about 110 of 360 physical pixels before the content column.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/article-mobile.png",
        "evidence/category-mobile.png"
      ],
      "findingIds": [
        "F3"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "360x800 screenshot, layout metrics, container-rule and focus probes",
      "evidence": "At a 360x800 device viewport, layout reports hasViewportMeta:false, innerWidth:980 and scale:0.367. Screenshots show the permanent desktop sidebar and very small content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/layout-mobile.json",
        "evidence/home-mobile.png",
        "evidence/article-mobile.png"
      ],
      "findingIds": [
        "F2"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "pass",
      "confidence": "high",
      "method": "360x800 screenshot, layout metrics, container-rule and focus probes",
      "evidence": "The live stylesheet probe found multiple size-based @container rules, including editor and component containers.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/article-mobile.png",
        "evidence/search-mobile.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "360x800 screenshot, layout metrics, container-rule and focus probes",
      "evidence": "The focus probe focused the Help Center link, language control, all sidebar buttons, search input and article links; every sampled element reported outline:none and boxShadow:none.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/focus-probe.json"
      ],
      "findingIds": [
        "F5"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Homepage, search-result and error-state walkthrough",
      "evidence": "The home first viewport clearly asks “How can we help you?” and makes search and popular topics primary.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/search-mobile.png",
        "evidence/error-mobile.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Homepage, search-result and error-state walkthrough",
      "evidence": "The representative search URL returned 16 relevant backup results with descriptive links, and the sampled result article loaded successfully.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/search-mobile.png",
        "evidence/error-mobile.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Homepage, search-result and error-state walkthrough",
      "evidence": "The explicit error route explains that the page was not found and offers Help Center Home, back and WhatsApp recovery actions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/search-mobile.png",
        "evidence/error-mobile.png"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, trace summary, layout metrics, HAR summary and images audit",
      "evidence": "Mobile Lighthouse measured FCP 13.2s and LCP 17.5s (performance 0.55). A separate trace measured FCP/LCP 2.25s, showing network variability but corroborating that the page is delivery-bound rather than main-thread-bound.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F6"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse, trace summary, layout metrics, HAR summary and images audit",
      "evidence": "Layout observers measured CLS 0 on home and 0.00029 on the article, both in the good range.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse, trace summary, layout metrics, HAR summary and images audit",
      "evidence": "Trace TBT was 17ms with one 67ms task; layout observed no long tasks on home.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, trace summary, layout metrics, HAR summary and images audit",
      "evidence": "HAR records 41 requests and 3,150,112 transferred bytes, including two VeryHigh parser-inserted stylesheets. Lighthouse reports render-blocking savings of 1.35s and a 3,063 KiB payload.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/lighthouse-failures.json"
      ],
      "findingIds": [
        "F7"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, trace summary, layout metrics, HAR summary and images audit",
      "evidence": "Lighthouse estimates 1,906 KiB unused JavaScript and 306 KiB unused CSS; many individual bundles are over 90% unused.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F8"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility audits, focus probe, DOM and mobile screenshots",
      "evidence": "Lighthouse reports aria-required-children, list and listitem failures, and an agent accessibility-tree failure. The DOM also exposes core navigation controls as DIV role=button.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-failures.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F4"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse accessibility audits, focus probe, DOM and mobile screenshots",
      "evidence": "Lighthouse color-contrast passed with no failing elements; the high-contrast emulation remained readable.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-failures.json",
        "evidence/focus-probe.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility audits, focus probe, DOM and mobile screenshots",
      "evidence": "The focus probe focused the Help Center link, language control, all sidebar buttons, search input and article links; every sampled element reported outline:none and boxShadow:none.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/focus-probe.json"
      ],
      "findingIds": [
        "F5"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility audits, focus probe, DOM and mobile screenshots",
      "evidence": "The page computes 12px body text inside a 980px layout that Chrome scales to 0.367, producing roughly 4.4 physical-pixel text in the mobile captures.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/search-mobile.png"
      ],
      "findingIds": [
        "F9"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility audits, focus probe, DOM and mobile screenshots",
      "evidence": "The mobile layout primitive reports hasViewportMeta:false and Chrome emulates a 980px layout scaled down. Lighthouse separately fails meta-viewport.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/layout-mobile.json",
        "evidence/lighthouse-failures.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse best-practices audits, DOM and images audit",
      "evidence": "Lighthouse errors-in-console audit passed with an empty error table.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/images-article.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse best-practices audits, DOM and images audit",
      "evidence": "Lighthouse reports a missing/late charset. The article image audit finds all 16 images missing at least one explicit dimension, 15 below-fold images not lazy-loaded and one missing alt.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/images-article.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse best-practices audits, DOM and images audit",
      "evidence": "Lighthouse reports one deprecated-API warning and four BFCache failure reasons.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-failures.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "issues",
      "confidence": "high",
      "method": "Discoverability raw/rendered comparison, metadata probe, robots/sitemap HTTP inspection",
      "evidence": "The sampled article has a descriptive title but article-probe reports description:null.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/article-probe.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Discoverability raw/rendered comparison, metadata probe, robots/sitemap HTTP inspection",
      "evidence": "robots.txt and sitemap.xml redirect to the generic error route; Lighthouse reports robots.txt invalid with 73 errors, and the page has no viewport meta.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-failures.json",
        "evidence/layout-mobile.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Discoverability raw/rendered comparison, metadata probe, robots/sitemap HTTP inspection",
      "evidence": "robots.txt and sitemap.xml redirect to the generic error route; Lighthouse reports robots.txt invalid with 73 errors, and the page has no viewport meta.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-failures.json",
        "evidence/layout-mobile.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Discoverability raw/rendered comparison, metadata probe, robots/sitemap HTTP inspection",
      "evidence": "The article metadata probe found no JSON-LD and no Open Graph properties.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/article-probe.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "pass",
      "confidence": "high",
      "method": "Headers, cookies, trackers, secrets and HAR inspection",
      "evidence": "HTTPS, HSTS, CSP, nosniff, X-Frame-Options DENY and Secure/Lax first-party cookies were directly observed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json",
        "evidence/trackers.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 scan found no known trackers, cookies found no third-party cookies, and the secrets scan found no credentials.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json",
        "evidence/trackers.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Headers, cookies, trackers, secrets and HAR inspection",
      "evidence": "The public help-center paths request no browser permission and contain no authentication flow.",
      "reason": "The public help-center paths request no browser permission and contain 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 show HSTS, nosniff, X-Frame-Options DENY and a nonce-based script policy, but Referrer-Policy is missing and style-src contains unsafe-inline.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "issues",
      "confidence": "high",
      "method": "Discoverability no-JS comparison and explicit error-route walkthrough",
      "evidence": "Discoverability reports isJsShell:true with only 6% raw/rendered word coverage on home and 3% on the article; crawler screenshots are blank while rendered screenshots contain the content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/discoverability-home.json",
        "evidence/discoverability-home-crawler.png",
        "evidence/discoverability-article.json",
        "evidence/discoverability-article-crawler.png"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "Discoverability no-JS comparison and explicit error-route walkthrough",
      "evidence": "Home, category, article, search and error templates loaded without console errors or clipped horizontal overflow in their CSS layout viewport.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/discoverability-home.json",
        "evidence/discoverability-article.json",
        "evidence/search-mobile.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Discoverability no-JS comparison and explicit error-route walkthrough",
      "evidence": "This public content/reference site is not an installed app; offline installability is contextual and was judged outside its primary browse/search purpose.",
      "reason": "This public content/reference site is not an installed app; offline installability is contextual and was judged outside its primary browse/search purpose."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Discoverability no-JS comparison and explicit error-route walkthrough",
      "evidence": "A nonexistent path redirects to a clear error page with three recovery actions rather than a blank shell.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/discoverability-home.json",
        "evidence/discoverability-article.json",
        "evidence/search-mobile.png"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "lang/dir, CSS logical-properties and locale-content probes",
      "evidence": "The article reports html lang=en and dir=ltr; the stylesheet includes 4,289 logical-property rules and the language selector is exposed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/i18n-probe.json",
        "evidence/article-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "high",
      "method": "lang/dir, CSS logical-properties and locale-content probes",
      "evidence": "The sampled English help templates render no dates, currencies, durations or locale-sensitive numeric data.",
      "reason": "The sampled English help templates render no dates, currencies, durations or locale-sensitive numeric data."
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "lang/dir, CSS logical-properties and locale-content probes",
      "evidence": "The sampled help templates contain no time or event scheduling data.",
      "reason": "The sampled help templates contain no time or event scheduling data."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "Search/error-flow walkthrough and form/input DOM inspection",
      "evidence": "No ads, consent wall, upsell, forced continuity or disguised action appeared in the sampled home/search/article/error journey.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/search-mobile.png",
        "evidence/error-mobile.png"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Search/error-flow walkthrough and form/input DOM inspection",
      "evidence": "The sampled public surface has search but no submitted data form with invalid/required-field states.",
      "reason": "The sampled public surface has search but no submitted data form with invalid/required-field states."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Search/error-flow walkthrough and form/input DOM inspection",
      "evidence": "The only input is article search; address, payment, sign-in and sign-up autofill do not apply.",
      "reason": "The only input is article search; address, payment, sign-in and sign-up autofill do not apply."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Search/error-flow walkthrough and form/input DOM inspection",
      "evidence": "No checkout, subscription, authentication or account-management transaction is present in the public help-center paths.",
      "reason": "No checkout, subscription, authentication or account-management transaction is present in the public help-center paths."
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "HAR, Lighthouse byte/code coverage, images and trace inspection",
      "evidence": "The image audit reports 8 of 16 images over 2x display width, 15 below-fold images without lazy loading and one legacy PNG.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images-article.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "HAR, Lighthouse byte/code coverage, images and trace inspection",
      "evidence": "The 3.15 MB load is 2.52 MB JavaScript; Lighthouse estimates about 1.9 MB of that JavaScript and 306 KiB CSS are unused.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "HAR, Lighthouse byte/code coverage, images and trace inspection",
      "evidence": "The 3.15 MB load is 2.52 MB JavaScript; Lighthouse estimates about 1.9 MB of that JavaScript and 306 KiB CSS are unused.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Discoverability and agent-facing capability inspection",
      "evidence": "The sampled surface offers browsable help content, not an agent-executable transaction or tool capability.",
      "reason": "The sampled surface offers browsable help content, not an agent-executable transaction or tool capability."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Discoverability and agent-facing capability inspection",
      "evidence": "No summarisation/generation interaction is offered; adding inference is not necessary to complete browse or search tasks.",
      "reason": "No summarisation/generation interaction is offered; adding inference is not necessary to complete browse or search tasks."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "medium",
      "method": "Baseline and post-10-toggle heap summaries",
      "evidence": "Ten representative category toggles increased total heap self size by about 2.6% between fresh baseline/post captures, not unbounded growth; confidence is limited by cross-session snapshots.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-interaction.heapsnapshot"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "high",
      "method": "Baseline and post-10-toggle heap summaries",
      "evidence": "The baseline heap summary contains 1,048,981 nodes and 55,025,709 bytes self size; after ten representative navigation toggles the fresh-run snapshot is 56,444,423 bytes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-interaction.heapsnapshot"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "Baseline and post-10-toggle heap summaries",
      "evidence": "No Detached* constructor appeared among top retained constructors, and ten toggles did not produce runaway total growth.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-interaction.heapsnapshot"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F1"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F3"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F2",
        "F5"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F6",
        "F7",
        "F8"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F4",
        "F5",
        "F9",
        "F10"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F11",
        "F12"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F13",
        "F14",
        "F15"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F18",
        "F19"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "All checks were judged contextual and not applicable to this public help-center surface."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F20"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage/index and primary search entry; represents the global shell and topic listing.",
      "url": "https://faq.whatsapp.com/",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "prefers-color-scheme: dark",
        "prefers-contrast: more",
        "prefers-reduced-motion: reduce",
        "keyboard focus"
      ],
      "result": "issues"
    },
    {
      "id": "category",
      "description": "Get Started category/detail template; represents topic landing pages.",
      "url": "https://faq.whatsapp.com/497209988909970/",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "How to make a video call; represents long instructional articles with platform tabs and inline media.",
      "url": "https://faq.whatsapp.com/1862285217468140/",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "JavaScript-disabled crawler"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Backup query; represents the primary find-an-answer flow and result listing.",
      "url": "https://faq.whatsapp.com/search/?query=backup",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "error",
      "description": "Generic error route reached by missing assets/pages; represents recovery from HTTP/navigation failure.",
      "url": "https://faq.whatsapp.com/error/?locale=en_US",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F1",
      "severity": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "summary": "The help center ignores the user’s dark color-scheme preference.",
      "evidence": "The dark-mode capture is pixel-equivalent to the light capture; the probe reports colorScheme \"normal\" and the same light rgb(240, 242, 245) body background.",
      "artifacts": [
        "evidence/home-mobile-dark.png",
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Declare color-scheme: light dark and provide preference-driven surface, text, border and icon colors with prefers-color-scheme or light-dark().",
      "effort": "medium",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F2",
      "severity": "critical",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "css",
      "summary": "Mobile browsers receive a desktop 980 CSS-pixel layout scaled down to 360 device pixels.",
      "evidence": "At a 360x800 device viewport, layout reports hasViewportMeta:false, innerWidth:980 and scale:0.367. Screenshots show the permanent desktop sidebar and very small content.",
      "artifacts": [
        "evidence/layout-mobile.json",
        "evidence/home-mobile.png",
        "evidence/article-mobile.png"
      ],
      "suggestedFix": "Add a standard width=device-width, initial-scale=1 viewport declaration, then reflow to a single-column layout and collapse the sidebar into an accessible navigation drawer.",
      "effort": "large",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F3",
      "severity": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "navigation-drawer",
      "guidanceCategory": "user-experience",
      "summary": "Persistent navigation chrome consumes a disproportionate share of the small-screen layout.",
      "evidence": "On article and category mobile captures, the always-visible left navigation occupies about 110 of 360 physical pixels before the content column.",
      "artifacts": [
        "evidence/article-mobile.png",
        "evidence/category-mobile.png"
      ],
      "suggestedFix": "Use a compact header and dismissible, focus-managed navigation drawer below the mobile breakpoint so article content gets the viewport.",
      "effort": "medium",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F4",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "The rendered accessibility structure contains malformed ARIA/list relationships.",
      "evidence": "Lighthouse reports aria-required-children, list and listitem failures, and an agent accessibility-tree failure. The DOM also exposes core navigation controls as DIV role=button.",
      "artifacts": [
        "evidence/lighthouse-failures.json",
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Replace simulated controls with native buttons and repair list ownership so every list has only valid li children and required ARIA descendants.",
      "effort": "medium",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F5",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Keyboard focus is programmatically reachable but has no visible focus indicator.",
      "evidence": "The focus probe focused the Help Center link, language control, all sidebar buttons, search input and article links; every sampled element reported outline:none and boxShadow:none.",
      "artifacts": [
        "evidence/focus-probe.json"
      ],
      "suggestedFix": "Add a high-contrast :focus-visible indicator with sufficient offset for every interactive control and verify a complete keyboard focus walk.",
      "effort": "small",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F6",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "summary": "Cold-load paint performance is far outside the good Core Web Vitals range.",
      "evidence": "Mobile Lighthouse measured FCP 13.2s and LCP 17.5s (performance 0.55). A separate trace measured FCP/LCP 2.25s, showing network variability but corroborating that the page is delivery-bound rather than main-thread-bound.",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Profile LCP discovery and prioritize only the critical content path; remove noncritical page shell code and defer below-the-fold work.",
      "effort": "large",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F7",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "summary": "The page ships a long critical delivery chain and multi-megabyte payload for a simple help index.",
      "evidence": "HAR records 41 requests and 3,150,112 transferred bytes, including two VeryHigh parser-inserted stylesheets. Lighthouse reports render-blocking savings of 1.35s and a 3,063 KiB payload.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/lighthouse-failures.json"
      ],
      "suggestedFix": "Inline or isolate minimal critical CSS, split route-specific assets, preload only the actual LCP resource, and defer noncritical styles/scripts.",
      "effort": "large",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F8",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "defer-rendering-heavy-content",
      "guidanceCategory": "performance",
      "summary": "Most shipped CSS and JavaScript is unused on the help-center homepage.",
      "evidence": "Lighthouse estimates 1,906 KiB unused JavaScript and 306 KiB unused CSS; many individual bundles are over 90% unused.",
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Create a help-center-specific entry point, split by route/feature, and conditionally load search, feedback, and article-only code.",
      "effort": "large",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F9",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "legible-text",
      "guidanceId": "improve-text-layout-and-legibility",
      "guidanceCategory": "css",
      "summary": "Text is physically too small to read comfortably on mobile.",
      "evidence": "The page computes 12px body text inside a 980px layout that Chrome scales to 0.367, producing roughly 4.4 physical-pixel text in the mobile captures.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/search-mobile.png"
      ],
      "suggestedFix": "Fix viewport/reflow first, then use readable rem-based type and line-height with fluid scaling and a comfortable article measure.",
      "effort": "medium",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F10",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "css",
      "summary": "The missing viewport declaration defeats mobile reflow and makes apparent target sizes misleading.",
      "evidence": "The mobile layout primitive reports hasViewportMeta:false and Chrome emulates a 980px layout scaled down. Lighthouse separately fails meta-viewport.",
      "artifacts": [
        "evidence/layout-mobile.json",
        "evidence/lighthouse-failures.json"
      ],
      "suggestedFix": "Add a zoom-permissive viewport declaration and retest at 320 CSS px, 200% zoom, touch and keyboard conditions.",
      "effort": "medium",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F11",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "Document encoding and image sizing hygiene are incomplete.",
      "evidence": "Lighthouse reports a missing/late charset. The article image audit finds all 16 images missing at least one explicit dimension, 15 below-fold images not lazy-loaded and one missing alt.",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/images-article.json"
      ],
      "suggestedFix": "Declare UTF-8 in the first 1024 bytes, set intrinsic width/height or aspect-ratio, lazy-load below-fold images, and supply meaningful or empty alt text.",
      "effort": "small",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F12",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "The page uses deprecated APIs and is not eligible for back/forward cache.",
      "evidence": "Lighthouse reports one deprecated-API warning and four BFCache failure reasons.",
      "artifacts": [
        "evidence/lighthouse-failures.json"
      ],
      "suggestedFix": "Inspect the Lighthouse audit details, replace the deprecated API, and remove avoidable unload/state blockers so article back-navigation restores instantly.",
      "effort": "medium",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F13",
      "severity": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "title-and-description",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "Article pages lack a page-specific meta description.",
      "evidence": "The sampled article has a descriptive title but article-probe reports description:null.",
      "artifacts": [
        "evidence/article-probe.json"
      ],
      "suggestedFix": "Server-render a concise, unique meta description derived from each article summary.",
      "effort": "small",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F14",
      "severity": "high",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "Crawler and mobile indexing signals are broken or incomplete.",
      "evidence": "robots.txt and sitemap.xml redirect to the generic error route; Lighthouse reports robots.txt invalid with 73 errors, and the page has no viewport meta.",
      "artifacts": [
        "evidence/lighthouse-failures.json",
        "evidence/layout-mobile.json"
      ],
      "suggestedFix": "Serve valid text/plain robots.txt and an XML sitemap with 200 responses, and add the standard viewport declaration.",
      "effort": "medium",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F15",
      "severity": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "Help articles expose no structured data or social preview metadata.",
      "evidence": "The article metadata probe found no JSON-LD and no Open Graph properties.",
      "artifacts": [
        "evidence/article-probe.json"
      ],
      "suggestedFix": "Add accurate Article/TechArticle JSON-LD and Open Graph/Twitter metadata matching the visible title, summary, canonical URL and media.",
      "effort": "medium",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F16",
      "severity": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "summary": "The otherwise strong security-header set omits Referrer-Policy and allows inline styles.",
      "evidence": "Headers show HSTS, nosniff, X-Frame-Options DENY and a nonce-based script policy, but Referrer-Policy is missing and style-src contains unsafe-inline.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Set a deliberate Referrer-Policy such as strict-origin-when-cross-origin and migrate inline styles toward nonces/hashes or constrained style sources.",
      "effort": "medium",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F17",
      "severity": "high",
      "principleId": "be-resilient",
      "principleCheckId": "progressive-enhancement",
      "guidanceId": "defer-rendering-heavy-content",
      "guidanceCategory": "performance",
      "summary": "Core help content disappears when JavaScript is unavailable.",
      "evidence": "Discoverability reports isJsShell:true with only 6% raw/rendered word coverage on home and 3% on the article; crawler screenshots are blank while rendered screenshots contain the content.",
      "artifacts": [
        "evidence/discoverability-home.json",
        "evidence/discoverability-home-crawler.png",
        "evidence/discoverability-article.json",
        "evidence/discoverability-article-crawler.png"
      ],
      "suggestedFix": "Server-render article/index content and real links, then hydrate search, navigation and feedback as enhancements.",
      "effort": "large",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F18",
      "severity": "medium",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "summary": "Article imagery is routinely oversized and eagerly loaded.",
      "evidence": "The image audit reports 8 of 16 images over 2x display width, 15 below-fold images without lazy loading and one legacy PNG.",
      "artifacts": [
        "evidence/images-article.json"
      ],
      "suggestedFix": "Serve correctly sized responsive sources, retain modern formats, set intrinsic dimensions and lazy-load below-fold instructional images.",
      "effort": "medium",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F19",
      "severity": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "defer-rendering-heavy-content",
      "guidanceCategory": "performance",
      "summary": "The resource footprint is disproportionate to a mostly text-and-links help page.",
      "evidence": "The 3.15 MB load is 2.52 MB JavaScript; Lighthouse estimates about 1.9 MB of that JavaScript and 306 KiB CSS are unused.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Budget the help shell independently, remove shared product code, and load route capabilities only when requested.",
      "effort": "large",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    },
    {
      "id": "F20",
      "severity": "medium",
      "principleId": "be-memory-efficient",
      "principleCheckId": "bounded-footprint",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "summary": "The initial heap footprint is large for a static help index.",
      "evidence": "The baseline heap summary contains 1,048,981 nodes and 55,025,709 bytes self size; after ten representative navigation toggles the fresh-run snapshot is 56,444,423 bytes.",
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-interaction.heapsnapshot"
      ],
      "suggestedFix": "Reduce the shared client runtime and DOM/state graph; profile retained objects after route-specific code splitting.",
      "effort": "large",
      "confidence": "high",
      "pathId": "home",
      "url": "https://faq.whatsapp.com"
    }
  ],
  "taskList": [
    {
      "id": "T1",
      "title": "Restore true mobile layout and visible focus",
      "priority": 1,
      "findingIds": [
        "F2",
        "F3",
        "F5",
        "F9",
        "F10"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T2",
      "title": "Server-render core help content and crawler assets",
      "priority": 2,
      "findingIds": [
        "F13",
        "F14",
        "F15",
        "F17"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T3",
      "title": "Ship a help-center-specific critical bundle",
      "priority": 3,
      "findingIds": [
        "F6",
        "F7",
        "F8",
        "F19",
        "F20"
      ],
      "guidanceId": "defer-rendering-heavy-content",
      "status": "open"
    },
    {
      "id": "T4",
      "title": "Repair semantic control and list structure",
      "priority": 4,
      "findingIds": [
        "F4"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T5",
      "title": "Add preference-driven dark styling",
      "priority": 5,
      "findingIds": [
        "F1"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T6",
      "title": "Fix document and image hygiene",
      "priority": 6,
      "findingIds": [
        "F11",
        "F18"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T7",
      "title": "Complete browser policy and platform hygiene",
      "priority": 7,
      "findingIds": [
        "F12",
        "F16"
      ],
      "guidanceId": "security",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 5,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-20T22-36-46-287Z"
}
