{
  "url": "https://www.aajtak.in",
  "auditedAt": "2026-07-22T16:15:47.674Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete model-led audit of five representative public-news paths. Not covered: authenticated/account and commercial flows (none exposed in representative public paths), live-video playback, and robots-disallowed search results.",
  "page": {
    "appType": "mpa",
    "framework": "server-rendered legacy multi-page site with service worker",
    "notes": "Large Hindi news publication with homepage, section, article and visual-story templates. Core content survives without JavaScript, but a consent wall overlays all tested entry pages."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "discoverability",
    "images",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "har",
    "trace",
    "lighthouse",
    "heap-summary",
    "robots/sitemap/manifest fetch"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "adapt-scrollbar-to-contrast-preferences",
    "same-document-transitions",
    "scrollytelling",
    "physics-based-easing",
    "shrinking-header-on-scroll",
    "anchor-positioning-tab-underline",
    "directional-navigation-transitions",
    "light-dismiss-a-dialog",
    "declarative-dialog-popover-control",
    "complex-shapes",
    "fluid-scaling",
    "size-aware-styling",
    "improve-text-layout-and-legibility",
    "forms",
    "accessible-error-announcement",
    "identify-inp-causes",
    "visually-stable-font-fallbacks",
    "break-up-long-tasks",
    "optimize-image-priority",
    "identify-heavy-scripts",
    "move-dom-element-without-losing-state",
    "css",
    "html",
    "security",
    "privacy",
    "passkeys",
    "flicker-free-client-side-ab-testing",
    "resilient-context-menus-and-nested-dropdowns",
    "persistent-toast-notifications",
    "translator",
    "support-global-calendar-systems",
    "coordinate-global-events",
    "search-hidden-content",
    "autofill-address-form",
    "autofill-payment-form",
    "deliver-optimized-decorative-images",
    "deprioritize-background-fetches",
    "webmcp",
    "language-model",
    "manage-recurring-intervals"
  ],
  "artifacts": [
    {
      "type": "other",
      "path": "evidence/404-probe.json",
      "caption": "404 probe",
      "findingIds": [
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/404.png",
      "caption": "404",
      "findingIds": [
        "F06",
        "F11"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-crawler.png",
      "caption": "article discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-rendered.png",
      "caption": "article discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/article-discoverability.json",
      "caption": "article discoverability",
      "findingIds": [
        "F11",
        "F15"
      ]
    },
    {
      "type": "other",
      "path": "evidence/article-metadata-probe.json",
      "caption": "article metadata probe",
      "findingIds": [
        "F15"
      ]
    },
    {
      "type": "other",
      "path": "evidence/article-metadata.json",
      "caption": "article metadata"
    },
    {
      "type": "screenshot",
      "path": "evidence/article.png",
      "caption": "article",
      "findingIds": [
        "F04",
        "F06"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies",
      "findingIds": [
        "F10"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers",
      "findingIds": [
        "F10"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "heap baseline",
      "findingIds": [
        "F16"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-scroll.json",
      "caption": "heap post scroll",
      "findingIds": [
        "F16"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark",
      "condition": "prefers-color-scheme: dark",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": [
        "F04",
        "F13"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "home discoverability crawler",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "home discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "home discoverability",
      "findingIds": [
        "F11",
        "F15"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom"
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images",
      "findingIds": [
        "F08",
        "F09",
        "F14"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-mobile.json",
      "caption": "home layout mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F05"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F04",
        "F12",
        "F13"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F07",
        "F14"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace"
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": [
        "F07",
        "F14"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/india-layout-mobile.json",
      "caption": "india layout mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F05"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/india-listing.png",
      "caption": "india listing"
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-summary.json",
      "caption": "lighthouse summary",
      "findingIds": [
        "F07",
        "F08",
        "F09",
        "F10"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "lighthouse"
    },
    {
      "type": "other",
      "path": "evidence/listener-timer-probe.json",
      "caption": "listener timer probe",
      "findingIds": [
        "F16"
      ]
    },
    {
      "type": "other",
      "path": "evidence/pwa-probe.json",
      "caption": "pwa probe",
      "findingIds": [
        "F11"
      ]
    },
    {
      "type": "other",
      "path": "evidence/recon.json",
      "caption": "recon",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "other",
      "path": "evidence/reduced-motion-probe.json",
      "caption": "reduced motion probe",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/render-blocking-dom-probe.json",
      "caption": "render blocking dom probe"
    },
    {
      "type": "other",
      "path": "evidence/routes.json",
      "caption": "routes"
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets"
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers",
      "findingIds": [
        "F10"
      ]
    },
    {
      "type": "other",
      "path": "evidence/ui-probe.json",
      "caption": "ui probe",
      "findingIds": [
        "F01",
        "F02",
        "F03",
        "F05",
        "F08",
        "F12"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/visualstories-layout-mobile.json",
      "caption": "visualstories layout mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F05"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/visualstories-mobile.png",
      "caption": "visualstories mobile",
      "condition": "viewport: 360x800"
    }
  ],
  "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": "Screenshot comparison plus authored CSS capability probe",
      "evidence": "Dark emulation remained a light white/grey surface and CSS inspection found no color-scheme support.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/ui-probe.json"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Emulated media animation probe",
      "evidence": "With prefers-reduced-motion: reduce active, two 40,000ms animations remained running; no reduced-motion CSS was present.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/reduced-motion-probe.json"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse contrast audit and CSS probe",
      "evidence": "Lighthouse found contrast failures down to 1.82:1 and CSS inspection found no contrast/forced-colors adaptation.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/ui-probe.json"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "medium",
      "method": "Rendered stylesheet inspection",
      "evidence": "CSS inspection found no view-transition usage across the multi-page navigation experience.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/ui-probe.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "issues",
      "confidence": "medium",
      "method": "Rendered stylesheet inspection",
      "evidence": "No animation-timeline or scroll-timeline rules were present while the page implements long feeds and carousel motion.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/ui-probe.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "issues",
      "confidence": "medium",
      "method": "Rendered stylesheet and control inspection",
      "evidence": "No scroll-snap/overscroll gesture primitive was found for the carousel-like story controls.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/ui-probe.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "medium",
      "method": "Layout height and CSS capability inspection",
      "evidence": "Long 17,004-24,694px pages expose no scroll-state/progress styling in the rendered CSS.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/ui-probe.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM and rendered CSS recon",
      "evidence": "No tooltip or edge-sensitive anchored menu interaction was identified in the representative core reading paths.",
      "reason": "No tooltip or edge-sensitive anchored menu interaction was identified in the representative core reading paths."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "issues",
      "confidence": "medium",
      "method": "Rendered CSS inspection",
      "evidence": "No view-transition, highlight, or directional-transition treatment was found for route/state changes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/ui-probe.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Initial-load screenshots",
      "evidence": "A consent interstitial covers essentially the full viewport before news can be read on desktop and mobile.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "DOM semantic probe and screenshot",
      "evidence": "The page contains four role=dialog overlays but zero native dialog, popover or details elements; the initial consent modal has no direct dismiss/reject control.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/ui-probe.json",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Initial and crawler-view screenshots",
      "evidence": "Initial content is dominated by the consent wall and a large advertisement slot rather than news.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-discoverability-crawler.png"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "Mobile layout probes across homepage, section and visual stories",
      "evidence": "All tested 360px templates reported scrollWidth=clientWidth=360, viewport metadata, and zero horizontal overflow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/india-layout-mobile.json",
        "evidence/visualstories-layout-mobile.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Rendered stylesheet inspection",
      "evidence": "Rendered stylesheet inspection found no @container support on a page with reused cards and chrome across templates.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/ui-probe.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Programmatic focus and target-size probe",
      "evidence": "Focused first link had outline-style none, and many visible header/ticker links measured only 15-30px high.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/ui-probe.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "DOM heading/link recon and crawler screenshot",
      "evidence": "Homepage and article expose descriptive Hindi headlines, a Hindi News H1 and recognizable section navigation once content is visible.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon.json",
        "evidence/home-discoverability-crawler.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "issues",
      "confidence": "high",
      "method": "Article journey screenshot",
      "evidence": "Opening the representative article is blocked by the consent wall before the core reading task can proceed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/article.png"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "404 route screenshot and DOM probe",
      "evidence": "The invalid-route test renders a clear Page Not Found title, latest stories, home and section recovery links rather than a blank shell.",
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/404.png",
        "evidence/404-probe.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse mobile audit",
      "evidence": "Mobile Lighthouse reported LCP 8.4s, TBT 390ms and TTI 19.9s; these exceed a good interactive experience.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse and layout-shift observers",
      "evidence": "CLS was 0 in Lighthouse and approximately 0.011 in three mobile layout observations, with no horizontal shift.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-layout-mobile.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "DevTools trace summary",
      "evidence": "Trace recorded three long tasks, an 886ms longest task and 867ms total blocking time.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "HAR summary confirmed against live DOM",
      "evidence": "HAR found 120 requests/3.17MB and confirmed parser-inserted styles plus non-deferred jQuery/Swiper scripts; four fonts cost 352KB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/render-blocking-dom-probe.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse coverage diagnostics",
      "evidence": "Lighthouse estimated 784KiB unused JavaScript and 33KiB unused CSS, with multiple duplicate gtag payloads.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility and image probes",
      "evidence": "Lighthouse found a focusable WhatsApp link without a discernible name; image sampling separately found 16 missing alt attributes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse color-contrast audit",
      "evidence": "Lighthouse found 2.86:1 top-menu text and 1.82:1 consent text, below WCAG minimums.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse heading audit and focus probe",
      "evidence": "Lighthouse found skipped heading levels and the active keyboard target computed outline-style none.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/ui-probe.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse node details and mobile screenshot",
      "evidence": "Top navigation uses 11px low-contrast text, and consent content becomes cramped in a viewport-height scrolling modal on mobile.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Viewport, mobile layout and target-size probes",
      "evidence": "Viewport allows scaling to 5 and mobile reflow fits, but many interactive header links measure only 15-30px high, below comfortable touch targets.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/ui-probe.json",
        "evidence/home-layout-mobile.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse console audit",
      "evidence": "Lighthouse captured CORS and failed-network console errors from the recommendation collector.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "DOM, image and Lighthouse audits",
      "evidence": "Doctype/UTF-8 are valid, but image sampling found 8 missing dimensions, 20 oversized images and Lighthouse found low-resolution assets.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/ui-probe.json",
        "evidence/home-images.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse best-practices audits",
      "evidence": "Lighthouse found notification permission requested on load, cookie inspector issues and a BFCache blocker.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Rendered metadata probes",
      "evidence": "Homepage and article have unique descriptive titles and meta descriptions in Hindi/English.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon.json",
        "evidence/article-metadata-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse SEO and discoverability probes",
      "evidence": "Lighthouse SEO scored 1.0; links are crawlable, viewport metadata is present, robots.txt is valid, and raw HTML retains core content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-discoverability.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "HTTP fetch, robots and metadata probes",
      "evidence": "Both tested public pages returned 200 with self-referential canonicals; robots allows public paths and declares dedicated sitemap endpoints.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon.json",
        "evidence/article-metadata-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "JSON-LD/Open Graph probe",
      "evidence": "Homepage has Organization/WebPage/ItemList JSON-LD; article has NewsArticle JSON-LD and complete Open Graph title, description, URL and image.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/article-metadata.json",
        "evidence/article-metadata-probe.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Header and cookie primitives",
      "evidence": "HTTPS/HSTS/nosniff/frame protection are present, but CSP allows unsafe-inline/unsafe-eval and 11 cookies were flagged insecure.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Tracker and HAR summaries",
      "evidence": "Tracker probe found 34 third-party origins and eight known trackers; HAR attributed 3.02MB and 115 requests to third parties.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse permission audit",
      "evidence": "Lighthouse showed notification permission requested on page load. Authentication was not present, but the applicable permission behavior fails.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Headers and cookies primitives",
      "evidence": "Referrer-Policy and Permissions-Policy are absent, CSP is permissive, and SameSite=None cookies are used widely.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "No-JavaScript discoverability comparison",
      "evidence": "Raw HTML returned 200 and preserved 82% of homepage and 77% of article rendered content, including title, H1 and description.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/article-discoverability.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots and layout probes",
      "evidence": "Consent overlay remained within both desktop and 360px viewports, mobile layouts did not overflow, and core content was server-rendered.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-layout-mobile.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "issues",
      "confidence": "high",
      "method": "Service worker/manifest/cache probe",
      "evidence": "Manifest and active service workers exist, but Cache Storage contained no cache keys after load, providing no evidence of an offline content fallback.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/pwa-probe.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "404 screenshot and DOM probe",
      "evidence": "The representative missing route produced a useful recovery screen with latest stories and explicit section links.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/404.png",
        "evidence/404-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "DOM and stylesheet probe",
      "evidence": "html lang is hi, but no logical CSS properties were found and no dir strategy was exposed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon.json",
        "evidence/ui-probe.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "issues",
      "confidence": "high",
      "method": "Visual and DOM locale probe",
      "evidence": "The Hindi page displays its global date as English “Jul 22, 2026” and exposes no time/datetime markup or locale-aware evidence.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/ui-probe.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM recon of representative paths",
      "evidence": "No scheduling, event coordination, user-entered time, or recurring-time workflow was present in the representative news-reading paths.",
      "reason": "No scheduling, event coordination, user-entered time, or recurring-time workflow was present in the representative news-reading paths."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Initial consent screenshots",
      "evidence": "First-layer consent provides Consent and Manage options but no equally direct reject action, while describing 212 partners and precise geolocation processing.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM form recon",
      "evidence": "No user-submittable form was present in the representative homepage, section, article, visual-story or error paths.",
      "reason": "No user-submittable form was present in the representative homepage, section, article, visual-story or error paths."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM form recon",
      "evidence": "No address, payment, sign-in, sign-up or other user input fields were present in the representative paths.",
      "reason": "No address, payment, sign-in, sign-up or other user input fields were present in the representative paths."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Journey recon",
      "evidence": "No checkout, subscription purchase, authentication or account-management flow was present in the audited public-news scope.",
      "reason": "No checkout, subscription purchase, authentication or account-management flow was present in the audited public-news scope."
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Image primitive",
      "evidence": "Image audit found 73 below-fold images not lazy-loaded, 67 missing srcset, 64 legacy formats and 20 oversized images.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Trace and Lighthouse diagnostics",
      "evidence": "Trace found 867ms blocking time and Lighthouse estimated 784KiB unused JavaScript, largely advertising/analytics code.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "HAR summary",
      "evidence": "HAR recorded 115 third-party requests and 3.02MB third-party transfer; one hero JPG alone transferred 694KB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "issues",
      "confidence": "medium",
      "method": "DOM/source capability and discoverability probes",
      "evidence": "Content is server-rendered and structured, but no WebMCP/agent tool registration was found for search, save or content actions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/ui-probe.json",
        "evidence/home-discoverability.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Product-surface recon",
      "evidence": "The audited public news-reading journeys do not require an on-device generative feature to complete their core task; absence is not a quality failure.",
      "reason": "The audited public news-reading journeys do not require an on-device generative feature to complete their core task; absence is not a quality failure."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "issues",
      "confidence": "high",
      "method": "Baseline and post-interaction heap-summary comparison",
      "evidence": "Ten repeated bottom/top feed traversals increased retained snapshot size from 41.46MB/713k nodes to 84.23MB/1.394m nodes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "high",
      "method": "Heap-summary footprint analysis",
      "evidence": "Post-interaction heap reached 84.23MB, 1.394m heap nodes, 379k native nodes and 196k objects for a news homepage.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-post-scroll.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "issues",
      "confidence": "high",
      "method": "Heap constructor and listener/timer instrumentation",
      "evidence": "No Detached* constructor appeared in the top constructor list, but repeated-scroll instrumentation observed 1,126 listener adds vs 76 removals and three net intervals.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-post-scroll.json",
        "evidence/listener-timer-probe.json"
      ],
      "findingIds": [
        "F16"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F16"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and primary news-discovery surface; covers navigation, consent, responsive layout, preferences, performance, privacy and crawlability.",
      "url": "https://www.aajtak.in/",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "keyboard focus",
        "JavaScript disabled crawler view"
      ],
      "result": "issues"
    },
    {
      "id": "india-listing",
      "description": "India section listing representing section/category templates.",
      "url": "https://www.aajtak.in/india",
      "conditions": [
        "desktop",
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "Representative NewsArticle and the core reading journey.",
      "url": "https://www.aajtak.in/india/news/story/modi-sharad-pawar-meeting-impact-monsoon-session-politics-ntcpvp-rptc-2607094-2026-07-22",
      "conditions": [
        "desktop",
        "JavaScript disabled crawler view"
      ],
      "result": "issues"
    },
    {
      "id": "visual-stories",
      "description": "Visual-story listing representing media-heavy mobile content.",
      "url": "https://www.aajtak.in/visualstories",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Invalid route used to exercise HTTP/error recovery.",
      "url": "https://www.aajtak.in/this-route-should-not-exist-web-uplift",
      "conditions": [
        "desktop"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "pathId": "home",
      "url": "https://www.aajtak.in/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "The interface ignores system appearance and motion preferences",
      "evidence": "The dark-condition screenshot is visually identical to light mode; CSS inspection found no color-scheme, prefers-color-scheme, prefers-reduced-motion, or forced-contrast treatment. Under reduced motion, two 40-second animations continued running.",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/reduced-motion-probe.json",
        "evidence/ui-probe.json"
      ],
      "suggestedFix": "Add color-scheme-aware tokens with prefers-color-scheme/light-dark(), stop non-essential animation under prefers-reduced-motion, and preserve control visibility under forced-colors.",
      "effort": "medium"
    },
    {
      "id": "F02",
      "pathId": "home",
      "url": "https://www.aajtak.in/",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "medium",
      "summary": "Navigation and carousel interactions use legacy abrupt/hand-rolled behavior",
      "evidence": "CSS inspection found no View Transition, scroll timeline, scroll snap, or declarative gesture primitives despite route changes, drawers and carousel controls.",
      "artifacts": [
        "evidence/ui-probe.json"
      ],
      "suggestedFix": "Progressively enhance route/state changes with View Transitions and use CSS scroll snap/scroll-driven animation for applicable carousels and scroll effects.",
      "effort": "large"
    },
    {
      "id": "F03",
      "pathId": "home",
      "url": "https://www.aajtak.in/",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "shrinking-header-on-scroll",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "medium",
      "summary": "Navigation chrome does not expose modern position/state cues",
      "evidence": "The rendered CSS contains no scroll-state/container, anchor-positioning, or directional transition primitives; long listings rely on static chrome and abrupt jumps.",
      "artifacts": [
        "evidence/ui-probe.json",
        "evidence/home-discoverability-crawler.png"
      ],
      "suggestedFix": "Add a lightweight scroll-progress/scroll-state cue and directional transitions where they clarify movement; use anchor positioning for edge-sensitive overlays.",
      "effort": "medium"
    },
    {
      "id": "F04",
      "pathId": "home",
      "url": "https://www.aajtak.in/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "severity": "critical",
      "confidence": "high",
      "summary": "A full-screen consent wall blocks the news on every tested entry surface",
      "evidence": "Desktop and 360px screenshots show a viewport-covering consent dialog before users can read the homepage, listing, article, or visual stories. The page also devotes the first content area to a large advertisement placeholder.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/article.png"
      ],
      "suggestedFix": "Keep essential news readable while consent is unresolved; provide compact, equally prominent accept/reject choices and defer non-essential ad chrome. Use a semantic dialog only when modal behavior is essential.",
      "effort": "medium"
    },
    {
      "id": "F05",
      "pathId": "home",
      "url": "https://www.aajtak.in/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "css",
      "severity": "medium",
      "confidence": "high",
      "summary": "Mobile layout fits, but component and input adaptation is weak",
      "evidence": "Layout probes show zero horizontal overflow at 360px on all three tested templates, but CSS inspection found no container queries and the focus probe reported outline-style none. Many visible header links are only 15-30px high.",
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/india-layout-mobile.json",
        "evidence/visualstories-layout-mobile.json",
        "evidence/ui-probe.json"
      ],
      "suggestedFix": "Retain the working fluid shell, add container-query adaptation for reused cards, visible :focus-visible styling, and at least 44x44 CSS-pixel touch hit areas.",
      "effort": "medium"
    },
    {
      "id": "F06",
      "pathId": "home",
      "url": "https://www.aajtak.in/",
      "principleId": "support-core-task-success",
      "principleCheckId": "primary-flow-completion",
      "guidanceId": "forms",
      "guidanceCategory": "forms",
      "severity": "high",
      "confidence": "high",
      "summary": "The core reading journey is interrupted before content access",
      "evidence": "Purpose and headlines are clear, and the custom 404 offers useful routes, but the representative article opens behind a mandatory consent wall with no immediate reject option.",
      "artifacts": [
        "evidence/article.png",
        "evidence/404.png",
        "evidence/404-probe.json"
      ],
      "suggestedFix": "Allow immediate article reading and offer an equally direct reject path; preserve the useful recovery links on error pages.",
      "effort": "medium"
    },
    {
      "id": "F07",
      "pathId": "home",
      "url": "https://www.aajtak.in/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "identify-inp-causes",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Slow LCP and heavy main-thread/network work delay useful content",
      "evidence": "Mobile Lighthouse measured LCP 8.4s, TTI 19.9s and TBT 390ms. The trace found an 886ms longest task and 867ms total blocking time. HAR recorded 120 requests and 3.17MB transferred, including 1.72MB scripts.",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "suggestedFix": "Prioritize the LCP resource, delay ad/analytics code until consent or idle, split long tasks, remove unused bundles, and shorten confirmed render-blocking chains.",
      "effort": "large"
    },
    {
      "id": "F08",
      "pathId": "home",
      "url": "https://www.aajtak.in/",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Accessibility defects affect names, contrast, focus and heading structure",
      "evidence": "Lighthouse accessibility was 0.86 and found an unnamed WhatsApp link, invalid heading order, 2.86:1 top-nav contrast, 1.82:1 consent text contrast, and the direct focus probe found outline-style none. Image inspection also found 16 images without alt in its 100-image sample.",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/ui-probe.json",
        "evidence/home-images.json"
      ],
      "suggestedFix": "Give every control a name, restore strong :focus-visible outlines, correct heading hierarchy, raise contrast to WCAG minimums, and audit meaningful image alternatives.",
      "effort": "medium"
    },
    {
      "id": "F09",
      "pathId": "home",
      "url": "https://www.aajtak.in/",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Console, browser-policy and asset hygiene checks fail",
      "evidence": "Lighthouse logged CORS/network console errors, an on-load notification request, cookie inspector issues and a BFCache failure. Image evidence found missing dimensions, oversized assets and low-resolution delivery.",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-images.json"
      ],
      "suggestedFix": "Fix the collector CORS failure, request notifications only after user intent, resolve cookie inspector issues, and correct image sizing/resolution.",
      "effort": "medium"
    },
    {
      "id": "F10",
      "pathId": "home",
      "url": "https://www.aajtak.in/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Tracking and browser defenses are not privacy-preserving by default",
      "evidence": "The page contacted 34 third-party origins and eight known trackers. Eleven cookies were flagged insecure; several analytics/UID session cookies use SameSite=None without Secure. CSP allows unsafe-inline and unsafe-eval, while Referrer-Policy and Permissions-Policy are absent. Lighthouse observed an on-load notification prompt.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json",
        "evidence/trackers.json",
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Gate trackers behind explicit consent, minimize vendors, mark all HTTPS cookies Secure with appropriate SameSite/HttpOnly, tighten CSP, add Referrer-Policy and Permissions-Policy, and request permissions in context.",
      "effort": "large"
    },
    {
      "id": "F11",
      "pathId": "home",
      "url": "https://www.aajtak.in/",
      "principleId": "be-resilient",
      "principleCheckId": "offline-and-installable",
      "guidanceId": "flicker-free-client-side-ab-testing",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Installability exists but offline support is not evidenced",
      "evidence": "A valid manifest and active service worker exist, but Cache Storage had no cache keys after load, so no offline document or content fallback was available from this implementation signal. The no-JS crawler did retain 77-82% of content and the 404 route offered recovery.",
      "artifacts": [
        "evidence/pwa-probe.json",
        "evidence/home-discoverability.json",
        "evidence/article-discoverability.json",
        "evidence/404.png"
      ],
      "suggestedFix": "Keep the strong server-rendered baseline and add a versioned offline shell/document fallback in the service worker with explicit stale/error handling.",
      "effort": "medium"
    },
    {
      "id": "F12",
      "pathId": "home",
      "url": "https://www.aajtak.in/",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "guidanceCategory": "internationalization",
      "severity": "medium",
      "confidence": "high",
      "summary": "Hindi localization is incomplete in layout and date presentation",
      "evidence": "The document correctly declares lang=hi, but CSS inspection found no logical properties and the Hindi surface renders the global timestamp as English “Jul 22, 2026 | 21:47 IST”.",
      "artifacts": [
        "evidence/recon.json",
        "evidence/ui-probe.json",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Use CSS logical properties and Intl.DateTimeFormat with the active Hindi locale; retain machine-readable datetime values for published content.",
      "effort": "medium"
    },
    {
      "id": "F13",
      "pathId": "home",
      "url": "https://www.aajtak.in/",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "custom-button-actions",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Consent choice is asymmetric and burdens refusal",
      "evidence": "The first dialog offers “Consent” and “Manage options”, but no immediate reject action, while stating that data may be shared with 212 partners and precise geolocation may be used.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Present accept and reject at equal prominence on the first layer, default optional purposes off, and make withdrawal as easy as acceptance.",
      "effort": "medium"
    },
    {
      "id": "F14",
      "pathId": "home",
      "url": "https://www.aajtak.in/",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "The page ships disproportionate image, script and third-party weight",
      "evidence": "HAR recorded 3.17MB across 120 requests, with 115 third-party requests and 3.02MB third-party transfer. A single hero JPG was 694KB. Image inspection found 73 below-fold images not lazy-loaded, 67 without srcset, 64 legacy-format assets and 20 oversized images.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-images.json",
        "evidence/home.har"
      ],
      "suggestedFix": "Serve responsive AVIF/WebP sources, lazy-load below-fold media, remove duplicate/unused tags, and enforce a consent-aware third-party and page-weight budget.",
      "effort": "large"
    },
    {
      "id": "F15",
      "pathId": "home",
      "url": "https://www.aajtak.in/",
      "principleId": "be-agent-ready",
      "principleCheckId": "structured-agent-capabilities",
      "guidanceId": "webmcp",
      "guidanceCategory": "ai",
      "severity": "low",
      "confidence": "medium",
      "summary": "Machine-readable content is strong, but agent actions are not exposed",
      "evidence": "Raw HTML retains 77-82% of rendered content and NewsArticle JSON-LD is present, but source/CSS/DOM probes found no WebMCP or structured agent-tool surface.",
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/article-discoverability.json",
        "evidence/article-metadata-probe.json"
      ],
      "suggestedFix": "Preserve server-rendered article metadata and consider read/search/save WebMCP tools with explicit, safe schemas if agent access is a product goal.",
      "effort": "medium"
    },
    {
      "id": "F16",
      "pathId": "home",
      "url": "https://www.aajtak.in/",
      "principleId": "be-memory-efficient",
      "principleCheckId": "no-leak-under-repeated-interaction",
      "guidanceId": "manage-recurring-intervals",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Repeated feed traversal produces a very large retained footprint and listener growth",
      "evidence": "Baseline heap was 41.46MB/713,455 nodes; after ten bottom/top traversals it was 84.23MB/1,393,815 nodes. Instrumentation during the same repeated interaction observed 1,126 listener additions, 76 removals and three net intervals. No Detached* constructor appeared among top constructors, but overall retained growth is substantial.",
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll.json",
        "evidence/listener-timer-probe.json"
      ],
      "suggestedFix": "Profile the feed with allocation timelines, clean up lazy-module/carousel listeners and timers on teardown, bound caches, and re-test repeated traversal until retained growth plateaus.",
      "effort": "large"
    }
  ],
  "taskList": [
    {
      "id": "T1",
      "title": "Replace the full-screen asymmetric consent wall with compact, equal accept/reject controls and consent-gated trackers",
      "priority": 1,
      "findingIds": [
        "F04",
        "F06",
        "F10",
        "F13"
      ],
      "guidanceId": "light-dismiss-a-dialog",
      "status": "open"
    },
    {
      "id": "T2",
      "title": "Cut LCP and main-thread cost by deferring ad/analytics code and prioritizing the hero",
      "priority": 2,
      "findingIds": [
        "F07",
        "F14"
      ],
      "guidanceId": "identify-inp-causes",
      "status": "open"
    },
    {
      "id": "T3",
      "title": "Repair accessible names, focus, contrast, headings and touch targets",
      "priority": 3,
      "findingIds": [
        "F05",
        "F08"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T4",
      "title": "Harden CSP, cookies and browser privacy policies",
      "priority": 4,
      "findingIds": [
        "F10"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T5",
      "title": "Make images responsive, modern-format and lazy below the fold",
      "priority": 5,
      "findingIds": [
        "F09",
        "F14"
      ],
      "guidanceId": "deliver-optimized-decorative-images",
      "status": "open"
    },
    {
      "id": "T6",
      "title": "Bound feed memory and clean up listeners/timers after lazy content interactions",
      "priority": 6,
      "findingIds": [
        "F16"
      ],
      "guidanceId": "manage-recurring-intervals",
      "status": "open"
    },
    {
      "id": "T7",
      "title": "Add preference-aware dark, reduced-motion and contrast treatments",
      "priority": 7,
      "findingIds": [
        "F01"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T8",
      "title": "Localize dates and migrate reusable layout rules to logical/container-aware CSS",
      "priority": 8,
      "findingIds": [
        "F05",
        "F12"
      ],
      "guidanceId": "translator",
      "status": "open"
    },
    {
      "id": "T9",
      "title": "Add an offline document fallback while retaining server-rendered content",
      "priority": 9,
      "findingIds": [
        "F11"
      ],
      "guidanceId": "flicker-free-client-side-ab-testing",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 5,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-22T16-15-47-674Z"
}
