{
  "url": "https://www.goodreturns.in",
  "auditedAt": "2026-07-23T23:33:11.314Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Atomic coverage complete: all 58 checks judged across six representative paths. No local target config was loaded.",
  "page": {
    "appType": "mpa",
    "framework": "server-rendered MPA with client-side advertising, consent, PWA service worker, and utility widgets",
    "notes": "Representative coverage includes home, listing, article, rates, calculator, and error state. Excluded duplicate locale/city/rate pages and account-only surfaces because they reuse covered templates or are not required for the public core journeys."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "lighthouse",
    "axe-core",
    "heap-summary",
    "robots/sitemap fetch",
    "direct HTTP headers",
    "modern-web-guidance"
  ],
  "guidanceConsulted": [
    "light-dismiss-a-dialog",
    "accessibility",
    "same-document-transitions",
    "scroll-progress-indicator",
    "declarative-dialog-popover-control",
    "improve-text-layout-and-legibility",
    "fluid-scaling",
    "size-aware-styling",
    "accessible-error-announcement",
    "identify-inp-causes",
    "identify-heavy-scripts",
    "optimize-image-priority",
    "html",
    "security",
    "privacy",
    "persistent-toast-notifications",
    "translator",
    "webmcp",
    "manage-recurring-intervals",
    "dark-mode",
    "scrollytelling",
    "navigation-drawer",
    "forms",
    "break-up-long-tasks",
    "passkeys",
    "flicker-free-client-side-ab-testing",
    "autofill-sign-in-form",
    "deliver-optimized-decorative-images",
    "deprioritize-background-fetches",
    "language-model"
  ],
  "artifacts": [
    {
      "type": "other",
      "path": "evidence/404-headers.txt",
      "caption": "404 headers",
      "findingIds": [
        "F11",
        "F20"
      ]
    },
    {
      "type": "other",
      "path": "evidence/404-state.json",
      "caption": "404 state",
      "findingIds": [
        "F11",
        "F20"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/article-discoverability.json",
      "caption": "article discoverability",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/article-layout-mobile.json",
      "caption": "article layout mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F08"
      ]
    },
    {
      "type": "other",
      "path": "evidence/article-metadata.json",
      "caption": "article metadata",
      "findingIds": [
        "F21"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/article-mobile.png",
      "caption": "article mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F01",
        "F05",
        "F07"
      ]
    },
    {
      "type": "other",
      "path": "evidence/axe-calculator.json",
      "caption": "axe calculator",
      "findingIds": [
        "F03",
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/axe-home.json",
      "caption": "axe home",
      "findingIds": [
        "F03",
        "F10",
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/calculator-controls.json",
      "caption": "calculator controls",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/calculator-heap-baseline.heapsnapshot",
      "caption": "calculator heap baseline",
      "findingIds": [
        "F23"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/calculator-heap-post.heapsnapshot",
      "caption": "calculator heap post",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/calculator-invalid-state.json",
      "caption": "calculator invalid state",
      "findingIds": [
        "F11"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/calculator-mobile.png",
      "caption": "calculator mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies",
      "findingIds": [
        "F18"
      ]
    },
    {
      "type": "other",
      "path": "evidence/css-platform-signals.json",
      "caption": "css platform signals",
      "findingIds": [
        "F04",
        "F05",
        "F06",
        "F09",
        "F21"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/gold-mobile.png",
      "caption": "gold mobile",
      "condition": "viewport: 360x800",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers",
      "findingIds": [
        "F18"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark-reduced.png",
      "caption": "home dark reduced",
      "condition": "prefers-color-scheme: dark; prefers-reduced-motion: reduce",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": [
        "F01",
        "F19"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "home discoverability",
      "findingIds": [
        "F22"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images",
      "findingIds": [
        "F15"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-mobile.json",
      "caption": "home layout mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F08",
        "F17"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F01",
        "F07",
        "F08"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F13",
        "F19"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": [
        "F13"
      ]
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-summary.json",
      "caption": "lighthouse summary",
      "findingIds": [
        "F12",
        "F13",
        "F16",
        "F17"
      ]
    },
    {
      "type": "other",
      "path": "evidence/news-recon.json",
      "caption": "news recon",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/platform-metadata.json",
      "caption": "platform metadata",
      "findingIds": [
        "F22"
      ]
    },
    {
      "type": "other",
      "path": "evidence/preferences-focus.json",
      "caption": "preferences focus",
      "findingIds": [
        "F02",
        "F10"
      ]
    },
    {
      "type": "other",
      "path": "evidence/robots-sitemap.json",
      "caption": "robots sitemap",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/service-worker.json",
      "caption": "service worker",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers",
      "findingIds": [
        "F19"
      ]
    }
  ],
  "config": {
    "loaded": false
  },
  "coverage": {
    "catalogVersion": "modern-web-guidance@0.0.172",
    "catalogChecksum": "sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7",
    "expected": 58,
    "recorded": 58,
    "judged": 58,
    "blocked": 0,
    "notRun": 0,
    "missing": 0,
    "unknown": 0,
    "duplicates": 0,
    "complete": true
  },
  "checkOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-color-scheme",
      "status": "pass",
      "confidence": "high",
      "method": "Dark-media screenshot and computed-style probe",
      "evidence": "Dark preference matched and the body rendered rgb(10,14,18), showing a dark surface.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark-reduced.png",
        "evidence/preferences-focus.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Emulated prefers-reduced-motion and queried document animations",
      "evidence": "A 38,000 ms animation remained running under reduce.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/preferences-focus.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Stylesheet signals plus axe contrast analysis",
      "evidence": "No prefers-contrast/forced-colors rules were found and axe reported contrast failures.",
      "pathIds": [
        "home",
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/css-platform-signals.json",
        "evidence/axe-home.json",
        "evidence/axe-calculator.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Inspected live CSS across representative MPA states",
      "evidence": "No View Transition CSS was present on route-rich and stateful surfaces.",
      "pathIds": [
        "home",
        "article",
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/css-platform-signals.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "pass",
      "confidence": "medium",
      "method": "Inspected CSS animation signals and trace long tasks",
      "evidence": "No scroll-linked visual animation was present that used a main-thread scroll handler; no trace long tasks were recorded.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/css-platform-signals.json",
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "medium",
      "method": "Inspected gesture-related CSS",
      "evidence": "CSS uses scroll-snap, providing platform-native physical scrolling behavior; screenshots showed no pointer-only custom gesture dependency.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/css-platform-signals.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Inspected long article screenshot and stylesheet signals",
      "evidence": "No scroll-state/progress treatment was found on a long article.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-mobile.png",
        "evidence/css-platform-signals.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "issues",
      "confidence": "medium",
      "method": "Inspected overlay/menu primitives and CSS signals",
      "evidence": "Overlay/menu UI exists but no anchor positioning or native popover treatment was found.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/css-platform-signals.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "issues",
      "confidence": "medium",
      "method": "Reviewed representative screenshots and navigation CSS signals",
      "evidence": "No progress marker, transition, or highlight guides attention through long content.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-mobile.png",
        "evidence/css-platform-signals.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Captured page-load screenshots across five archetypes",
      "evidence": "A consent interstitial obscured every tested primary surface.",
      "pathIds": [
        "home",
        "news-listing",
        "article",
        "gold-rates",
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/article-mobile.png"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Queried dialog, popover, and overlay elements",
      "evidence": "Four custom DIV role=dialog overlays were present; no native dialog/popover primitive was used.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/css-platform-signals.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Reviewed mobile and desktop screenshots",
      "evidence": "Dense double-row navigation, ads, and repeated widgets compete with core content.",
      "pathIds": [
        "home",
        "article",
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/article-mobile.png",
        "evidence/calculator-mobile.png"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "Captured mobile screenshots and layout metrics at 360x800",
      "evidence": "Viewport meta was absent and Chrome used a 980-1003px layout viewport scaled to 360px.",
      "pathIds": [
        "home",
        "article"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/article-layout-mobile.json",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Inspected live stylesheet rules",
      "evidence": "No @container or container-type rules were found for reused cards/widgets.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/css-platform-signals.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Focused visible links/buttons and inspected computed outline",
      "evidence": "Primary links and icon buttons had outline-style none and no focus box-shadow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/preferences-focus.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Reviewed first-view screenshots and headings across templates",
      "evidence": "Home, News, article, Gold Rates, and Gold Calculator surfaces communicate their purpose with visible headings/content.",
      "pathIds": [
        "home",
        "news-listing",
        "article",
        "gold-rates",
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/article-mobile.png",
        "evidence/calculator-mobile.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "medium",
      "method": "Walked listing-to-article and calculator control surfaces",
      "evidence": "A news item opens its complete article and calculator controls produce an immediate total without account gating.",
      "pathIds": [
        "news-listing",
        "article",
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/news-recon.json",
        "evidence/article-mobile.png",
        "evidence/calculator-controls.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "issues",
      "confidence": "high",
      "method": "Exercised empty calculator input and nonexistent URL",
      "evidence": "Empty weight silently yielded ₹0 with no validation; unknown URL offered no intentional recovery state.",
      "pathIds": [
        "gold-calculator",
        "error-state"
      ],
      "artifacts": [
        "evidence/calculator-invalid-state.json",
        "evidence/404-state.json",
        "evidence/404-headers.txt"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Ran Lighthouse and DevTools trace",
      "evidence": "Lighthouse LCP was 13.9s and TTI 17.0s; CLS was good.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Measured CLS with layout observer and Lighthouse",
      "evidence": "Layout observer measured CLS 0.0008 and Lighthouse measured 0.026, both good.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse TBT plus script/network analysis",
      "evidence": "Lighthouse TBT was 210ms and the page loaded 47 scripts, with large avoidable third-party execution.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Captured HAR and confirmed candidate script attributes in DOM",
      "evidence": "183 requests transferred 3.05MB; 152 requests and 2.70MB were third-party.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/platform-metadata.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Ran Lighthouse code diagnostics and HAR",
      "evidence": "Lighthouse estimated 570KiB unused JavaScript and showed three separate Google tag scripts.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/platform-metadata.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Ran axe-core on home and calculator plus image audit",
      "evidence": "Axe found unnamed buttons/links on both templates; image audit found 11 missing alt attributes.",
      "pathIds": [
        "home",
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-calculator.json",
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Ran axe-core contrast checks",
      "evidence": "Axe found contrast violations on consent UI and calculator controls.",
      "pathIds": [
        "home",
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-calculator.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Ran axe structure rules and active focus-style probe",
      "evidence": "Heading/landmark violations and invisible focus were directly observed.",
      "pathIds": [
        "home",
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/preferences-focus.json"
      ],
      "findingIds": [
        "F10",
        "F14"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "medium",
      "method": "Visually inspected article and calculator at representative viewport",
      "evidence": "Core article paragraphs and calculator explanations remain readable with stable line spacing; no clipping was observed.",
      "pathIds": [
        "article",
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/article-mobile.png",
        "evidence/calculator-mobile.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Inspected viewport/reflow at 360x800 and Lighthouse responsive behavior",
      "evidence": "Missing viewport meta forces scaled desktop rendering and harms zoom/reflow usability.",
      "pathIds": [
        "home",
        "article"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/article-layout-mobile.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Ran Lighthouse errors-in-console audit",
      "evidence": "Lighthouse errors-in-console audit passed with no items.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Probed doctype/charset and audited all images",
      "evidence": "Doctype/UTF-8 passed, but 61/63 images lacked intrinsic dimensions and responsive delivery was poor.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-metadata.json",
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Ran Lighthouse best-practices/Inspector Issues and observed tooling output",
      "evidence": "Best-practices score was 0.58, Inspector Issues reported cookies, and a broken source map was logged.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Inspected title/meta and Lighthouse SEO audits",
      "evidence": "Homepage and article have descriptive titles and meta descriptions; Lighthouse audits passed.",
      "pathIds": [
        "home",
        "article"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/article-metadata.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Ran Lighthouse SEO link audits, robots fetch, and viewport layout probe",
      "evidence": "Robots permits indexing, but javascript:void anchors, generic link text, and absent viewport metadata fail the combined check.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/robots-sitemap.json",
        "evidence/home-layout-mobile.json"
      ],
      "findingIds": [
        "F17",
        "F08"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "Inspected canonical/robots and fetched sitemap/robots",
      "evidence": "Homepage/article canonical URLs, 200 discoverability fetches, permissive robots, and multiple sitemaps were present.",
      "pathIds": [
        "home",
        "article"
      ],
      "artifacts": [
        "evidence/platform-metadata.json",
        "evidence/article-metadata.json",
        "evidence/robots-sitemap.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "Parsed JSON-LD and Open Graph on home/article",
      "evidence": "Organization/WebSite and NewsArticle/Breadcrumb JSON-LD plus Open Graph accurately describe visible content.",
      "pathIds": [
        "home",
        "article"
      ],
      "artifacts": [
        "evidence/platform-metadata.json",
        "evidence/article-metadata.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Ran headers and cookies primitives",
      "evidence": "HTTPS/HSTS passed, but CSP, nosniff, framing, referrer/permissions headers and secure cookie posture failed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Captured trackers and HAR before consent choice",
      "evidence": "57 third-party origins and 14 known tracker domains were active; 2.70MB of transfer was third-party.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "pass",
      "confidence": "medium",
      "method": "Inspected permission state and page-load UI",
      "evidence": "Geolocation/notification permission states remained prompt and no browser permission prompt appeared on load; no password-only primary auth flow was required in tested journeys.",
      "pathIds": [
        "home",
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/css-platform-signals.json",
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Ran response-header, cookie, and Lighthouse third-party-cookie audits",
      "evidence": "HSTS exists, but framing/CSP/referrer/permissions protections are absent and third-party cookie issues are extensive.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F18",
        "F19"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Compared raw HTML with rendered DOM using discoverability primitive",
      "evidence": "Raw HTML contains 86% of homepage and 92% of article rendered words; neither page is a JS shell.",
      "pathIds": [
        "home",
        "article"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/article-discoverability.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "medium",
      "method": "Exercised calculator controls and inspected overlays at mobile/desktop",
      "evidence": "Calculator state updates synchronously and modal UI remains within tested viewports without clipping.",
      "pathIds": [
        "home",
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/calculator-controls.json",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "pass",
      "confidence": "high",
      "method": "Inspected manifest, active service worker, and worker fetch/cache source",
      "evidence": "Manifest is standalone with start_url/icons; active service worker has fetch/cache handling and explicitly precaches /common/offline.html.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/css-platform-signals.json",
        "evidence/service-worker.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "issues",
      "confidence": "high",
      "method": "Requested a nonexistent route in browser and directly over HTTP",
      "evidence": "Unknown route yielded misleading homepage content in-browser and 403 directly, not an intentional recoverable 404.",
      "pathIds": [
        "error-state"
      ],
      "artifacts": [
        "evidence/404-state.json",
        "evidence/404-headers.txt"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "medium",
      "method": "Inspected lang/dir and live stylesheet logical-property use",
      "evidence": "Language is declared, but no logical layout properties or explicit direction were found.",
      "pathIds": [
        "home",
        "article"
      ],
      "artifacts": [
        "evidence/css-platform-signals.json",
        "evidence/article-metadata.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "medium",
      "method": "Reviewed rendered Indian currency/rate formatting and semantic article date",
      "evidence": "Rates consistently use ₹ and Indian grouping, and article dates are exposed in semantic time markup.",
      "pathIds": [
        "gold-rates",
        "article"
      ],
      "artifacts": [
        "evidence/gold-mobile.png",
        "evidence/article-metadata.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "pass",
      "confidence": "high",
      "method": "Inspected visible and machine-readable publication time",
      "evidence": "Article time uses an unambiguous +05:30 ISO datetime and labels the visible value IST.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-metadata.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Compared consent UI with pre-choice network activity",
      "evidence": "Consent choices are visually equal, but tracker/HAR evidence shows extensive non-essential third-party activity before a choice.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/trackers.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "issues",
      "confidence": "high",
      "method": "Cleared calculator input after interaction and inspected invalid/alert state",
      "evidence": "Empty numeric input silently became ₹0 with no invalid state or accessible error.",
      "pathIds": [
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/calculator-invalid-state.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "pass",
      "confidence": "high",
      "method": "Inspected calculator controls, labels, types, ranges, and units",
      "evidence": "Core inputs use number types, associated labels, min/max constraints, a native select, and explicit unit controls.",
      "pathIds": [
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/calculator-controls.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon of representative templates and controls",
      "evidence": "No checkout, subscription purchase, or required account flow exists in the audited public news/rates/calculator journeys.",
      "reason": "The representative public journeys do not contain a commercial or required account transaction."
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Ran image audit and HAR weight analysis",
      "evidence": "Most images lack dimensions/srcset, 30 are oversized, and 55 use legacy formats.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Captured idle page-load network and Lighthouse unused code",
      "evidence": "183 requests, 47 scripts, and 570KiB estimated unused JS indicate substantial work unrelated to initial content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Measured third-party requests/bytes and image delivery",
      "evidence": "Third parties account for 152 requests and 2.70MB; images transfer 1.36MB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F19",
        "F13"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "issues",
      "confidence": "high",
      "method": "Inspected WebMCP registration and server-rendered affordances",
      "evidence": "Rich HTML/JSON-LD exists but no modelContext/WebMCP tools expose rate lookup or calculator actions.",
      "pathIds": [
        "home",
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/platform-metadata.json",
        "evidence/home-discoverability.json"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "medium",
      "method": "Inspected built-in AI surface and site tasks",
      "evidence": "Although browser LanguageModel/Summarizer APIs exist, this publisher does not present an authored on-device inference feature whose correctness can be judged.",
      "reason": "On-device inference is optional and no site-authored inference feature is offered."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "medium",
      "method": "Compared baseline and post heap summaries after repeated calculator tab/purity clicks",
      "evidence": "After repeated interaction, self size changed only +3,262 bytes (<0.01%); no meaningful retained growth was observed.",
      "pathIds": [
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/calculator-heap-baseline.heapsnapshot",
        "evidence/calculator-heap-post.heapsnapshot"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "high",
      "method": "Captured baseline heap summary on interactive calculator",
      "evidence": "Baseline was ~630k nodes and 37.31MB self size, disproportionate for a small calculator surface.",
      "pathIds": [
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/calculator-heap-baseline.heapsnapshot"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "Compared constructor/type populations before and after repeated interaction",
      "evidence": "No Detached* constructor appeared among retained populations and heap self size remained flat.",
      "pathIds": [
        "gold-calculator"
      ],
      "artifacts": [
        "evidence/calculator-heap-baseline.heapsnapshot",
        "evidence/calculator-heap-post.heapsnapshot"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F02",
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05",
        "F06"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F06",
        "F07"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08",
        "F09",
        "F10"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F12",
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F14",
        "F03",
        "F10",
        "F08"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F15",
        "F16"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F17",
        "F08"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F18",
        "F19"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F19",
        "F11"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F15",
        "F13",
        "F19"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F23"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and market/news dashboard; global navigation, consent, performance, privacy, discoverability, preferences, and responsive behavior.",
      "url": "https://www.goodreturns.in/",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "keyboard focus",
        "raw HTML/no-JS comparison"
      ],
      "result": "issues"
    },
    {
      "id": "news-listing",
      "description": "News listing archetype; represents section/list templates and listing-to-detail navigation.",
      "url": "https://www.goodreturns.in/news/",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "Current news article archetype; represents editorial detail, long reading, metadata, dates, and crawler visibility.",
      "url": "https://www.goodreturns.in/news/us-stock-market-crashes-as-oil-boils-above-101-dow-jones-nasdaq-fall-500-600-pts-s-p-500-tech-stocks-1524065.html",
      "conditions": [
        "viewport: 360x800",
        "raw HTML/no-JS comparison"
      ],
      "result": "issues"
    },
    {
      "id": "gold-rates",
      "description": "Gold rates data page; represents rate/data-rich utility templates.",
      "url": "https://www.goodreturns.in/gold-rates/",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "gold-calculator",
      "description": "Gold calculator primary interactive journey; controls, validation, accessibility, task completion, and repeated-interaction memory test.",
      "url": "https://www.goodreturns.in/gold-rates/calculator.html",
      "conditions": [
        "viewport: 360x800",
        "empty input",
        "keyboard semantics",
        "10x repeated interactions"
      ],
      "result": "issues"
    },
    {
      "id": "error-state",
      "description": "Nonexistent route; HTTP and recovery-state resilience.",
      "url": "https://www.goodreturns.in/nonexistent-audit-test-404",
      "conditions": [
        "browser navigation",
        "direct HTTP request"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Consent dialog obscures every primary page on load",
      "evidence": "Desktop and mobile screenshots show a full-page dimming layer and modal before the user can read the homepage, article, rates, or calculator.",
      "suggestedFix": "Delay non-essential consent UI until it is needed, keep content readable, and use a compact, accessible dialog with immediate equal-weight choices.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/article-mobile.png"
      ]
    },
    {
      "id": "F08",
      "severity": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Mobile pages omit the viewport meta tag and render a scaled desktop canvas",
      "evidence": "At a 360x800 emulation, layout reported hasViewportMeta=false and a 980-1003 CSS-pixel layout viewport, causing the browser to scale down desktop content.",
      "suggestedFix": "Add <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"> and rework mobile breakpoints around the real device width.",
      "effort": "small",
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/article-layout-mobile.json",
        "evidence/home-mobile.png"
      ]
    },
    {
      "id": "F10",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Keyboard focus is invisible across primary navigation controls",
      "evidence": "Programmatically focused links and buttons reported outline style none and no box-shadow; axe also found missing landmarks and heading-order errors.",
      "suggestedFix": "Add a strong :focus-visible style, preserve logical focus order, and correct heading/landmark structure.",
      "effort": "small",
      "artifacts": [
        "evidence/preferences-focus.json",
        "evidence/axe-home.json"
      ]
    },
    {
      "id": "F11",
      "severity": "high",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-system-state-and-recovery",
      "guidanceId": "accessible-error-announcement",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Failure and invalid states do not explain what happened or how to recover",
      "evidence": "Clearing calculator weight produced ₹0 with no :invalid state, aria-invalid, or alert; a nonexistent URL rendered homepage content in-browser while direct HTTP returned 403, with no useful not-found recovery.",
      "suggestedFix": "Validate after interaction, announce actionable errors, preserve valid input, and serve a clear 404 page with recovery links and the correct status.",
      "effort": "medium",
      "artifacts": [
        "evidence/calculator-invalid-state.json",
        "evidence/404-state.json",
        "evidence/404-headers.txt"
      ]
    },
    {
      "id": "F12",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "identify-inp-causes",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Lab LCP is far outside the good threshold",
      "evidence": "Lighthouse measured LCP 13.9 s, Speed Index 7.1 s, and time-to-interactive 17.0 s; performance score was 0.64.",
      "suggestedFix": "Profile the LCP dependency chain, prioritise the real LCP resource, and defer advertising/analytics until after critical content.",
      "effort": "large",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "id": "F13",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Third-party and unused JavaScript dominate delivery and main-thread cost",
      "evidence": "HAR recorded 183 requests and 3.05 MB transferred, including 152 third-party requests and 2.70 MB third-party bytes; Lighthouse estimated 570 KiB unused JavaScript and TBT 210 ms.",
      "suggestedFix": "Consolidate analytics, gate ad auctions on consent/visibility, remove duplicate tags, and conditionally load non-critical scripts.",
      "effort": "large",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-summary.json",
        "evidence/home.har"
      ]
    },
    {
      "id": "F14",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Icon controls and links lack accessible names",
      "evidence": "axe found 10 unnamed buttons and 3 unnamed links on the homepage, plus 5 unnamed buttons and 3 unnamed links on the calculator.",
      "suggestedFix": "Give every icon-only control a correct accessible name and ensure names match the action.",
      "effort": "small",
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-calculator.json"
      ]
    },
    {
      "id": "F18",
      "severity": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Key browser security headers and cookie protections are missing",
      "evidence": "Headers audit found no CSP, X-Content-Type-Options, X-Frame-Options/frame-ancestors, Referrer-Policy, or Permissions-Policy. Cookie audit found 11 cookies flagged insecure and SameSite=None. HSTS was present.",
      "suggestedFix": "Deploy a nonce/hash-based CSP, nosniff, frame-ancestors, strict referrer/permissions policies, and Secure cookies with the narrowest SameSite setting.",
      "effort": "medium",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ]
    },
    {
      "id": "F19",
      "severity": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Tracking and advertising activate with an excessive third-party footprint",
      "evidence": "Tracker evidence found 57 third-party origins and 14 known tracker domains; HAR captured 152 third-party requests and 2.70 MB before any consent choice.",
      "suggestedFix": "Prevent non-essential requests until affirmative consent, minimise vendors, batch analytics, and document a strict third-party budget.",
      "effort": "large",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/home-desktop.png"
      ]
    },
    {
      "id": "F02",
      "severity": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Reduced-motion preference does not stop auto-running animation",
      "evidence": "Under prefers-reduced-motion: reduce, getAnimations() still reported a running 38,000 ms animation.",
      "suggestedFix": "Disable auto-advance and non-essential animation inside prefers-reduced-motion: reduce.",
      "effort": "small",
      "artifacts": [
        "evidence/preferences-focus.json"
      ]
    },
    {
      "id": "F03",
      "severity": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "High-contrast support and baseline contrast are incomplete",
      "evidence": "CSS inspection found no prefers-contrast or forced-colors treatment; axe found 3 homepage and 6 calculator contrast failures.",
      "suggestedFix": "Add forced-colors and prefers-contrast adaptations and correct the failing text/control color pairs to WCAG AA.",
      "effort": "small",
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-calculator.json"
      ]
    },
    {
      "id": "F06",
      "severity": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Modal UI is built from custom divs rather than native dialog/popover primitives",
      "evidence": "DOM inspection found four DIV role=dialog overlays and no native dialog or popover element.",
      "suggestedFix": "Use <dialog> for modal consent and popover for transient menus, preserving accessible labels and platform dismissal behavior.",
      "effort": "medium",
      "artifacts": [
        "evidence/css-platform-signals.json"
      ]
    },
    {
      "id": "F07",
      "severity": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "improve-text-layout-and-legibility",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Dense navigation, ad slots, and repeated market chrome compete with content",
      "evidence": "Representative screenshots show two navigation/market rows, large advertisement slots, and dense card grids before or beside core content.",
      "suggestedFix": "Reduce persistent chrome, reserve fewer ad slots above the fold, and prioritise the article/calculator content.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/article-mobile.png",
        "evidence/calculator-mobile.png"
      ]
    },
    {
      "id": "F15",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Image markup wastes bytes and omits intrinsic sizing",
      "evidence": "Image audit found 61/63 images without dimensions, 33 below-fold images not lazy, 30 oversized, 48 without srcset, and 55 legacy-format images.",
      "suggestedFix": "Emit width/height, responsive srcset/sizes, modern formats, and lazy loading for below-fold images.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-images.json"
      ]
    },
    {
      "id": "F16",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "DevTools reports platform hygiene issues",
      "evidence": "Lighthouse best-practices score was 0.58 and Inspector Issues reported cookie problems; Chrome also reported an out-of-bounds source map during the run.",
      "suggestedFix": "Resolve DevTools Inspector Issues, fix source maps, and remove stale or misconfigured integrations.",
      "effort": "medium",
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "id": "F17",
      "severity": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Some navigation is not crawlable or descriptive",
      "evidence": "Lighthouse found javascript:void(0) anchors for menu/city choices and nine generic “See more” links; the viewport meta tag is absent.",
      "suggestedFix": "Use buttons for actions, real href URLs for navigation, descriptive link text, and a valid viewport meta tag.",
      "effort": "small",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-layout-mobile.json"
      ]
    },
    {
      "id": "F20",
      "severity": "medium",
      "principleId": "be-resilient",
      "principleCheckId": "network-and-http-failure-states",
      "guidanceId": "persistent-toast-notifications",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Unknown URLs do not produce a clear recoverable not-found state",
      "evidence": "The browser received normal homepage content at a nonexistent route, while a direct request returned Cloudflare 403; neither presented a useful 404 explanation.",
      "suggestedFix": "Return 404 consistently and render a small recovery page with search and links to primary sections.",
      "effort": "medium",
      "artifacts": [
        "evidence/404-state.json",
        "evidence/404-headers.txt"
      ]
    },
    {
      "id": "F23",
      "severity": "medium",
      "principleId": "be-memory-efficient",
      "principleCheckId": "bounded-footprint",
      "guidanceId": "manage-recurring-intervals",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Calculator baseline memory footprint is high for a simple tool",
      "evidence": "Heap summary contained about 630k nodes and 37.31 MB self size before interaction, driven by a large native/code footprint, despite the primary tool being a small calculator.",
      "suggestedFix": "Load advertising and account integrations on demand, clear recurring work, and profile retained native/code allocations.",
      "effort": "large",
      "artifacts": [
        "evidence/calculator-heap-baseline.heapsnapshot"
      ],
      "pathId": "gold-calculator",
      "url": "https://www.goodreturns.in/gold-rates/calculator.html"
    },
    {
      "id": "F04",
      "severity": "low",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Route and state changes have no View Transition treatment",
      "evidence": "Live CSS inspection found no view-transition declarations on this multi-page site.",
      "suggestedFix": "Use cross-document View Transitions for article/list navigation and same-document transitions for calculator state changes, with reduced-motion opt-out.",
      "effort": "medium",
      "artifacts": [
        "evidence/css-platform-signals.json"
      ]
    },
    {
      "id": "F05",
      "severity": "low",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "scroll-progress-indicator",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Long pages provide no scroll-state or progress guidance",
      "evidence": "The article is several screens long, but CSS inspection found no scroll-state query or scroll-timeline/progress treatment.",
      "suggestedFix": "Add a lightweight article progress indicator or scroll-state-aware header using declarative CSS.",
      "effort": "small",
      "artifacts": [
        "evidence/article-mobile.png",
        "evidence/css-platform-signals.json"
      ]
    },
    {
      "id": "F09",
      "severity": "low",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Reusable cards do not use container-level responsiveness",
      "evidence": "Computed stylesheet inspection found no @container or container-type rules despite cards being reused in varied widths.",
      "suggestedFix": "Give reusable card/list regions containment and adapt them with size container queries.",
      "effort": "medium",
      "artifacts": [
        "evidence/css-platform-signals.json"
      ]
    },
    {
      "id": "F21",
      "severity": "low",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Styles are not prepared for alternate writing directions",
      "evidence": "The document declares language, but stylesheet inspection found no logical inline/block properties and no explicit dir.",
      "suggestedFix": "Set dir where appropriate and replace directional layout properties with logical equivalents.",
      "effort": "medium",
      "artifacts": [
        "evidence/css-platform-signals.json",
        "evidence/article-metadata.json"
      ]
    },
    {
      "id": "F22",
      "severity": "low",
      "principleId": "be-agent-ready",
      "principleCheckId": "structured-agent-capabilities",
      "guidanceId": "webmcp",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Public financial tools have no structured agent capability surface",
      "evidence": "The page is server-rendered and richly structured, but the live probe found no WebMCP/modelContext registration for calculator or rate lookup actions.",
      "suggestedFix": "Expose narrowly scoped, user-confirmed WebMCP tools for rate lookup and calculator actions while retaining normal HTML controls.",
      "effort": "medium",
      "artifacts": [
        "evidence/platform-metadata.json",
        "evidence/home-discoverability.json"
      ]
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Delay non-essential consent UI until it is needed, keep content readable, and use a compact, accessible dialog with immediate equal-weight choices.",
      "priority": 1,
      "findingIds": [
        "F01"
      ],
      "guidanceId": "light-dismiss-a-dialog",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Add <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"> and rework mobile breakpoints around the real device width.",
      "priority": 2,
      "findingIds": [
        "F08"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Add a strong :focus-visible style, preserve logical focus order, and correct heading/landmark structure.",
      "priority": 3,
      "findingIds": [
        "F10"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Validate after interaction, announce actionable errors, preserve valid input, and serve a clear 404 page with recovery links and the correct status.",
      "priority": 4,
      "findingIds": [
        "F11"
      ],
      "guidanceId": "accessible-error-announcement",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Profile the LCP dependency chain, prioritise the real LCP resource, and defer advertising/analytics until after critical content.",
      "priority": 5,
      "findingIds": [
        "F12"
      ],
      "guidanceId": "identify-inp-causes",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Consolidate analytics, gate ad auctions on consent/visibility, remove duplicate tags, and conditionally load non-critical scripts.",
      "priority": 6,
      "findingIds": [
        "F13"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Give every icon-only control a correct accessible name and ensure names match the action.",
      "priority": 7,
      "findingIds": [
        "F14"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Deploy a nonce/hash-based CSP, nosniff, frame-ancestors, strict referrer/permissions policies, and Secure cookies with the narrowest SameSite setting.",
      "priority": 8,
      "findingIds": [
        "F18"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Prevent non-essential requests until affirmative consent, minimise vendors, batch analytics, and document a strict third-party budget.",
      "priority": 9,
      "findingIds": [
        "F19"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Disable auto-advance and non-essential animation inside prefers-reduced-motion: reduce.",
      "priority": 10,
      "findingIds": [
        "F02"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Add forced-colors and prefers-contrast adaptations and correct the failing text/control color pairs to WCAG AA.",
      "priority": 11,
      "findingIds": [
        "F03"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T12",
      "title": "Use <dialog> for modal consent and popover for transient menus, preserving accessible labels and platform dismissal behavior.",
      "priority": 12,
      "findingIds": [
        "F06"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T13",
      "title": "Reduce persistent chrome, reserve fewer ad slots above the fold, and prioritise the article/calculator content.",
      "priority": 13,
      "findingIds": [
        "F07"
      ],
      "guidanceId": "improve-text-layout-and-legibility",
      "status": "open"
    },
    {
      "id": "T14",
      "title": "Emit width/height, responsive srcset/sizes, modern formats, and lazy loading for below-fold images.",
      "priority": 14,
      "findingIds": [
        "F15"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T15",
      "title": "Resolve DevTools Inspector Issues, fix source maps, and remove stale or misconfigured integrations.",
      "priority": 15,
      "findingIds": [
        "F16"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T16",
      "title": "Use buttons for actions, real href URLs for navigation, descriptive link text, and a valid viewport meta tag.",
      "priority": 16,
      "findingIds": [
        "F17"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T17",
      "title": "Return 404 consistently and render a small recovery page with search and links to primary sections.",
      "priority": 17,
      "findingIds": [
        "F20"
      ],
      "guidanceId": "persistent-toast-notifications",
      "status": "open"
    },
    {
      "id": "T18",
      "title": "Load advertising and account integrations on demand, clear recurring work, and profile retained native/code allocations.",
      "priority": 18,
      "findingIds": [
        "F23"
      ],
      "guidanceId": "manage-recurring-intervals",
      "status": "open"
    },
    {
      "id": "T19",
      "title": "Use cross-document View Transitions for article/list navigation and same-document transitions for calculator state changes, with reduced-motion opt-out.",
      "priority": 19,
      "findingIds": [
        "F04"
      ],
      "guidanceId": "same-document-transitions",
      "status": "open"
    },
    {
      "id": "T20",
      "title": "Add a lightweight article progress indicator or scroll-state-aware header using declarative CSS.",
      "priority": 20,
      "findingIds": [
        "F05"
      ],
      "guidanceId": "scroll-progress-indicator",
      "status": "open"
    },
    {
      "id": "T21",
      "title": "Give reusable card/list regions containment and adapt them with size container queries.",
      "priority": 21,
      "findingIds": [
        "F09"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    },
    {
      "id": "T22",
      "title": "Set dir where appropriate and replace directional layout properties with logical equivalents.",
      "priority": 22,
      "findingIds": [
        "F21"
      ],
      "guidanceId": "translator",
      "status": "open"
    },
    {
      "id": "T23",
      "title": "Expose narrowly scoped, user-confirmed WebMCP tools for rate lookup and calculator actions while retaining normal HTML controls.",
      "priority": 23,
      "findingIds": [
        "F22"
      ],
      "guidanceId": "webmcp",
      "status": "open"
    }
  ],
  "budget": {
    "wallClockSeconds": 420,
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-23T23-33-11-314Z"
}
