{
  "url": "https://www.ninisite.com",
  "auditedAt": "2026-07-26T01:56:25.787Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete audit of four representative templates plus an error-recovery path.",
  "page": {
    "appType": "mpa",
    "framework": "Server-rendered MPA; framework not identified",
    "notes": "Persian editorial/community site with article, forum, account, and advertising surfaces."
  },
  "evidenceUsed": [
    "screenshot",
    "dom+computed-css",
    "layout-metrics",
    "evaluate-probe",
    "trace",
    "lighthouse",
    "images",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "discoverability",
    "heap-summary"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "cross-document-transitions",
    "shrinking-header-on-scroll",
    "light-dismiss-a-dialog",
    "size-aware-styling",
    "performance",
    "optimize-image-priority",
    "identify-heavy-scripts",
    "security",
    "privacy",
    "forms",
    "autofill-sign-up-form",
    "deliver-optimized-decorative-images",
    "efficient-background-processing"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "Homepage at desktop viewport",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "Homepage at 360x800",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F-maximize-content-reduce-noise-no-intrusive-interruptions"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "Homepage under dark preference",
      "condition": "prefers-color-scheme: dark",
      "findingIds": [
        "F-respect-user-preferences-respects-color-scheme"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "Rendered homepage DOM, CSS, and computed styles",
      "findingIds": [
        "F-maximize-content-reduce-noise-semantic-dismissible-primitives"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/dom-summary.json",
      "caption": "Cross-template structural and CSS feature summary",
      "findingIds": [
        "F-implement-natural-interactions-view-transitions",
        "F-adapt-to-the-form-factor-component-level-responsiveness",
        "F-be-inclusive-structure-and-focus",
        "F-be-internationalised-lang-dir-and-logical-properties"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/articles-mobile.png",
      "caption": "Latest-articles listing at mobile viewport",
      "condition": "viewport: 360x800",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/articles-dom.json",
      "caption": "Latest-articles rendered DOM and CSS",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discussion-mobile.png",
      "caption": "Forum listing at mobile viewport",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F-maximize-content-reduce-noise-reduced-chrome"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/discussion-dom.json",
      "caption": "Forum rendered DOM and CSS",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/signup-mobile.png",
      "caption": "Signup flow at mobile viewport",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F-support-core-task-success-primary-flow-completion",
        "F-be-trustworthy-no-dark-patterns",
        "F-be-trustworthy-safe-commercial-and-account-flows"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/signup-dom.json",
      "caption": "Signup DOM, controls, and validation markup",
      "findingIds": [
        "F-be-trustworthy-humane-error-handling"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/404-mobile.png",
      "caption": "Unknown-route recovery state at mobile viewport",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F-be-resilient-resilient-runtime-behaviour"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-mobile.json",
      "caption": "Mobile layout metrics, overflow, CLS, and long tasks",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F-provide-guided-navigation-scroll-state-aware-chrome",
        "F-adapt-to-the-form-factor-responsive-no-horizontal-scroll",
        "F-be-inclusive-zoom-reflow-targets-and-media"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "DevTools performance trace",
      "findingIds": []
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "Compact trace timings and blocking summary",
      "findingIds": []
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "Lighthouse mobile quality report",
      "findingIds": [
        "F-respect-user-preferences-respects-contrast",
        "F-be-fast-and-stable-good-core-web-vitals",
        "F-be-fast-and-stable-trim-unused-and-duplicate-code",
        "F-be-inclusive-names-roles-labels",
        "F-be-inclusive-sufficient-contrast",
        "F-follow-best-practices-no-console-errors",
        "F-be-discoverable-crawlable-and-mobile-friendly",
        "F-be-sustainable-third-party-and-media-budget"
      ]
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "Image dimensions, loading, responsive-source, and format audit",
      "findingIds": [
        "F-be-fast-and-stable-efficient-resource-delivery",
        "F-follow-best-practices-sound-document-and-assets",
        "F-be-sustainable-optimised-assets"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "Security response-header audit",
      "findingIds": [
        "F-be-private-and-secure-secure-transport-and-headers",
        "F-be-private-and-secure-defensive-browser-policies"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "Cookie attribute audit",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "Third-party and tracker-origin audit",
      "findingIds": [
        "F-be-private-and-secure-data-minimisation-and-third-parties",
        "F-be-sustainable-no-wasteful-work"
      ]
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "Client-side secret scan",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "Raw HTML versus rendered discoverability comparison",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "Rendered browser view",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "Crawler view with JavaScript disabled",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "Baseline heap summary",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-scroll-valid.json",
      "caption": "Heap summary after ten scroll cycles",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/reduced-motion-probe.json",
      "caption": "Animation probe under reduced motion",
      "condition": "prefers-reduced-motion: reduce",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/signup-focus-form-probe.json",
      "caption": "Focused-control and signup autocomplete/label probe",
      "findingIds": [
        "F-adapt-to-the-form-factor-input-modality-aware",
        "F-be-private-and-secure-in-context-permissions-and-modern-auth",
        "F-be-trustworthy-trustworthy-input-assistance"
      ]
    }
  ],
  "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": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "The dark-emulated screenshot remains the same white surface as the default screenshot; computed html/body color-scheme is normal and CSS inspection found no prefers-color-scheme rule.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png"
      ],
      "findingIds": [
        "F-respect-user-preferences-respects-color-scheme"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "evaluate probe under prefers-reduced-motion: reduce",
      "evidence": "The emulated preference was active and document.getAnimations() returned no running page animations.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/reduced-motion-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "Lighthouse found 107 color-contrast failures, and the stylesheet has no prefers-contrast treatment while many controls use pale grey text.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F-respect-user-preferences-respects-contrast"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "Representative routes are conventional full navigations; DOM/CSS inspection found no authored transition rules beyond third-party reset declarations.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/dom-summary.json"
      ],
      "findingIds": [
        "F-implement-natural-interactions-view-transitions"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/CSS inspection across representative templates",
      "evidence": "No authored parallax, scrollytelling, or scroll-linked effects were present, so there is no main-thread scroll-animation anti-pattern to replace.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/dom-summary.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "mobile screenshots and DOM/CSS inspection",
      "evidence": "Primary browsing uses native document scrolling and standard links; no custom pointer-driven gesture surface was found.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "The homepage is 14,852 px tall at mobile width, yet screenshots and inspected CSS show static chrome with no progress indicator or authored scroll-state behavior.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json"
      ],
      "findingIds": [
        "F-provide-guided-navigation-scroll-state-aware-chrome"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "pass",
      "confidence": "high",
      "method": "DOM inspection across representative templates",
      "evidence": "No site-owned tooltip, popover, or edge-positioned transient menu requiring anchor positioning was present.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/dom-summary.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "representative route screenshots",
      "evidence": "The active section is visibly highlighted and breadcrumb/list headings orient users on article and forum routes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/articles-mobile.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "Mobile screenshots show fixed bottom ads covering article cards, forum content, signup fields, and the 404 recovery surface; desktop also shows a large floating ad over the hero.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F-maximize-content-reduce-noise-no-intrusive-interruptions"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "DOM inspection found no dialog, popover, or details primitives while injected Yektanet styles create fixed overlays up to z-index 99,999,999 with custom close controls.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F-maximize-content-reduce-noise-semantic-dismissible-primitives"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "Every representative mobile screenshot gives substantial first-viewport area to banner and floating advertising, including overlapping stacked promotions on discussion and signup.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/discussion-mobile.png"
      ],
      "findingIds": [
        "F-maximize-content-reduce-noise-reduced-chrome"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "The 360x800 layout probe reported scrollWidth 366 against a 360 px visual viewport, for 6 px overflow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json"
      ],
      "findingIds": [
        "F-adapt-to-the-form-factor-responsive-no-horizontal-scroll"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "CSS inspection across home, article, forum, and signup templates found no authored @container rules; many ad and card rules use fixed pixel widths and global media queries.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/dom-summary.json"
      ],
      "findingIds": [
        "F-adapt-to-the-form-factor-component-level-responsiveness"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "A focused signup navigation link computed to outline:none and box-shadow:none; Lighthouse also reported 9 insufficiently sized or spaced targets.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/signup-focus-form-probe.json"
      ],
      "findingIds": [
        "F-adapt-to-the-form-factor-input-modality-aware"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "first-viewport screenshots on home, articles, forum, signup",
      "evidence": "Each route communicates its purpose with recognizable navigation and prominent editorial, forum, or registration content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/articles-mobile.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "The signup mobile screenshot shows a large floating video promotion covering password/captcha fields in the primary registration form.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/signup-mobile.png"
      ],
      "findingIds": [
        "F-support-core-task-success-primary-flow-completion"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "invalid-route walkthrough screenshot",
      "evidence": "The unknown route renders a branded 404 explanation and suggested recent content rather than a blank or broken shell.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/404-mobile.png"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "Lighthouse measured FCP 5.5 s, LCP 10.6 s, Speed Index 6.3 s, and Time to Interactive 11.9 s (performance 0.59); a separate trace measured LCP 2.67 s, showing material run variance.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F-be-fast-and-stable-good-core-web-vitals"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "layout observer plus Lighthouse",
      "evidence": "The layout observer recorded CLS 0 and Lighthouse measured CLS 0.004, both within the good range.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "trace and Lighthouse performance evidence",
      "evidence": "Trace recorded one 92 ms long task and 42 ms TBT; Lighthouse measured 80 ms TBT, indicating limited blocking despite slow visual load.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "The images primitive found 89 below-fold images without lazy loading, 73 without srcset, 91 legacy-format images, and 16 oversized images.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json"
      ],
      "findingIds": [
        "F-be-fast-and-stable-efficient-resource-delivery"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "Lighthouse estimated 174 KiB unused JavaScript and 38 KiB unused CSS; the main CSS bundle was 93% unused in the sampled load.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F-be-fast-and-stable-trim-unused-and-duplicate-code"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "Lighthouse found 7 unnamed buttons, 4 unnamed links, one required-children ARIA failure, and two presentation-role conflicts.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F-be-inclusive-names-roles-labels"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "Lighthouse found 107 elements with insufficient foreground/background contrast.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F-be-inclusive-sufficient-contrast"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "All four inspected templates had zero h1 and zero main elements; Lighthouse found seven heading-order failures and no main landmark, while the focus probe showed no visible focus ring.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/dom-summary.json"
      ],
      "findingIds": [
        "F-be-inclusive-structure-and-focus"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "desktop and mobile visual review",
      "evidence": "Persian body and heading text is generally large, line-spaced, and readable in the sampled article and forum views, aside from separately reported contrast issues.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/articles-mobile.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "Lighthouse found 9 target-size failures and the 360 px layout had 6 px horizontal overflow; the viewport meta itself permits scaling.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json"
      ],
      "findingIds": [
        "F-be-inclusive-zoom-reflow-targets-and-media"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "Lighthouse’s errors-in-console audit failed because a resource returned HTTP 404.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F-follow-best-practices-no-console-errors"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "The images primitive found 3 images without dimensions, 16 oversized images, and 73 without responsive sources; Lighthouse also reported a low-resolution mobile logo.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json"
      ],
      "findingIds": [
        "F-follow-best-practices-sound-document-and-assets"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse best-practices audits",
      "evidence": "Lighthouse found no deprecated APIs, BFCache blocker, invalid source maps, paste prevention, or geolocation/notification prompt on load.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "DOM and discoverability probes",
      "evidence": "The homepage and representative routes have descriptive unique titles; the homepage has a matching meta description in raw and rendered HTML.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "Lighthouse SEO reported “Allow /sitemap” on line 4 as syntax not understood; links and viewport otherwise passed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F-be-discoverable-crawlable-and-mobile-friendly"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "DOM, HTTP, and Lighthouse SEO evidence",
      "evidence": "The public homepage returned 200, Lighthouse found a valid canonical, and no accidental noindex was observed; robots syntax is reported separately.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "DOM inspection across representative templates",
      "evidence": "Canonical, Open Graph, and JSON-LD markup are present across all four inspected templates.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/dom-summary.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "HTTPS, HSTS, nosniff, and X-Frame-Options are present, but CSP is missing; all 6 observed first-party cookies lacked Secure and used SameSite=None.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F-be-private-and-secure-secure-transport-and-headers"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "The tracker probe saw 19 third-party origins and known Clarity, Google Tag Manager, and DoubleClick endpoints; Lighthouse found third-party cookies and the screenshots show multiple ad formats.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F-be-private-and-secure-data-minimisation-and-third-parties"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "Lighthouse confirmed no permission prompts on load, but signup/sign-in DOM exposes password fields and no WebAuthn/passkey affordance.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/signup-focus-form-probe.json"
      ],
      "findingIds": [
        "F-be-private-and-secure-in-context-permissions-and-modern-auth"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "The headers probe found no CSP, Referrer-Policy, or Permissions-Policy; HSTS and X-Frame-Options are present.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F-be-private-and-secure-defensive-browser-policies"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "raw-versus-rendered discoverability probe",
      "evidence": "Raw HTML returned 200 with 100% rendered-content coverage, title and description present, and no empty JS shell.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "Fixed Yektanet containers use extreme z-index values and overlap form and error-recovery content at mobile sizes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/404-mobile.png"
      ],
      "findingIds": [
        "F-be-resilient-resilient-runtime-behaviour"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-route recon",
      "evidence": "This is a content/community website rather than an installed app; offline/PWA behavior is contextual and no installability intent was declared.",
      "reason": "This is a content/community website rather than an installed app; offline/PWA behavior is contextual and no installability intent was declared.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "invalid-route walkthrough",
      "evidence": "A nonexistent route renders a useful 404 state with explanation and links to recent content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/404-mobile.png"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "All inspected templates set lang=\"fa\" but neither html nor body declares dir=\"rtl\"; CSS includes many physical left/right declarations despite some logical properties.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/dom-summary.json"
      ],
      "findingIds": [
        "F-be-internationalised-lang-dir-and-logical-properties"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "representative Persian screenshots",
      "evidence": "Rendered timestamps and numeric content use Persian locale presentation consistently in article and forum views.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/articles-mobile.png"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-route recon",
      "evidence": "The sampled public templates expose relative editorial/forum timestamps but no cross-time-zone scheduling or event-coordination task.",
      "reason": "The sampled public templates expose relative editorial/forum timestamps but no cross-time-zone scheduling or event-coordination task.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "Floating promotions cover editorial, forum, registration, and 404 surfaces; some include only tiny branding/close affordances and resemble in-page content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/signup-mobile.png"
      ],
      "findingIds": [
        "F-be-trustworthy-no-dark-patterns"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "Signup markup contains required validation messages but no aria-live or aria-invalid, and several fields lack associated labels.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/signup-dom.json"
      ],
      "findingIds": [
        "F-be-trustworthy-humane-error-handling"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "The telephone field has autocomplete=\"off\" and no associated label; confirm-password and captcha fields also lack associated labels, while password has new-password.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/signup-focus-form-probe.json"
      ],
      "findingIds": [
        "F-be-trustworthy-trustworthy-input-assistance"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "A floating advertisement covers registration fields, and the authentication surface offers passwords without a passkey option.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/signup-mobile.png"
      ],
      "findingIds": [
        "F-be-trustworthy-safe-commercial-and-account-flows"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "Of 93 images, 91 are legacy formats, 73 lack srcset, 89 below-fold images are not lazy, and 16 are oversized.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json"
      ],
      "findingIds": [
        "F-be-sustainable-optimised-assets"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "The tracker probe recorded 19 third-party origins; Lighthouse attributes the largest unused-JS savings to GTM/gtag and measured 174 KiB unused JavaScript overall.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F-be-sustainable-no-wasteful-work"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence review against the mapped Modern Web Guidance",
      "evidence": "Lighthouse transferred 1,535 KiB and two Google tag scripts were among the four largest resources; tracker evidence found 19 third-party origins and multiple simultaneous ad formats.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F-be-sustainable-third-party-and-media-budget"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-route recon",
      "evidence": "No agent-facing intent or transactional agent surface was declared; this emerging capability is an opportunity, not a requirement for this editorial/community audit.",
      "reason": "No agent-facing intent or transactional agent surface was declared; this emerging capability is an opportunity, not a requirement for this editorial/community audit.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-route recon",
      "evidence": "No summarization or generative feature is offered in the sampled experience, so on-device inference is not required.",
      "reason": "No summarization or generative feature is offered in the sampled experience, so on-device inference is not required.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "medium",
      "method": "baseline and post-scroll heap summaries",
      "evidence": "After ten full-page down/up scroll cycles, heap self size rose from 28.1 MB to 30.9 MB and nodes from 500,439 to 532,899; this bounded single-run increase does not establish unbounded retained growth.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-post-scroll-valid.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "heap summary proportionality review",
      "evidence": "Baseline heap self size was 28.1 MB. Although the DOM/ad footprint is large, the sampled heap remained proportionate and did not approach instability.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "before/after heap constructor-summary review",
      "evidence": "No Detached* constructor population appeared among the retained-size leaders before or after the repeated scroll exercise.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-post-scroll-valid.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-respect-user-preferences-respects-color-scheme",
        "F-respect-user-preferences-respects-contrast"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-implement-natural-interactions-view-transitions"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-provide-guided-navigation-scroll-state-aware-chrome"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-maximize-content-reduce-noise-no-intrusive-interruptions",
        "F-maximize-content-reduce-noise-semantic-dismissible-primitives",
        "F-maximize-content-reduce-noise-reduced-chrome"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-adapt-to-the-form-factor-responsive-no-horizontal-scroll",
        "F-adapt-to-the-form-factor-component-level-responsiveness",
        "F-adapt-to-the-form-factor-input-modality-aware"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-support-core-task-success-primary-flow-completion"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-be-fast-and-stable-good-core-web-vitals",
        "F-be-fast-and-stable-efficient-resource-delivery",
        "F-be-fast-and-stable-trim-unused-and-duplicate-code"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-be-inclusive-names-roles-labels",
        "F-be-inclusive-sufficient-contrast",
        "F-be-inclusive-structure-and-focus",
        "F-be-inclusive-zoom-reflow-targets-and-media"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-follow-best-practices-no-console-errors",
        "F-follow-best-practices-sound-document-and-assets"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-be-discoverable-crawlable-and-mobile-friendly"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-be-private-and-secure-secure-transport-and-headers",
        "F-be-private-and-secure-data-minimisation-and-third-parties",
        "F-be-private-and-secure-in-context-permissions-and-modern-auth",
        "F-be-private-and-secure-defensive-browser-policies"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F-be-resilient-resilient-runtime-behaviour"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F-be-internationalised-lang-dir-and-logical-properties"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F-be-trustworthy-no-dark-patterns",
        "F-be-trustworthy-humane-error-handling",
        "F-be-trustworthy-trustworthy-input-assistance",
        "F-be-trustworthy-safe-commercial-and-account-flows"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F-be-sustainable-optimised-assets",
        "F-be-sustainable-no-wasteful-work",
        "F-be-sustainable-third-party-and-media-budget"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "No agent-facing intent or transactional agent surface was declared; this emerging capability is an opportunity, not a requirement for this editorial/community audit. No summarization or generative feature is offered in the sampled experience, so on-device inference is not required."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage/editorial landing: global navigation, hero content, ads, preferences, mobile layout, performance, network, discoverability, and memory.",
      "url": "https://www.ninisite.com/",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce"
      ],
      "result": "issues"
    },
    {
      "id": "articles",
      "description": "Latest-articles listing: representative editorial index/card template.",
      "url": "https://www.ninisite.com/articles/latest",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "discussion",
      "description": "Community/forum listing: high-interaction content archetype and advertising density.",
      "url": "https://www.ninisite.com/discussion",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "signup",
      "description": "Primary account registration form: labels, autofill, focus, task completion, and account safety.",
      "url": "https://www.ninisite.com/imen/signup",
      "conditions": [
        "viewport: 360x800",
        "keyboard focus"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Unknown-route recovery: representative HTTP/application failure state.",
      "url": "https://www.ninisite.com/this-route-does-not-exist-web-uplift",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F-respect-user-preferences-respects-color-scheme",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "The site does not adapt to the user’s dark color-scheme preference.",
      "evidence": "The dark-emulated screenshot remains the same white surface as the default screenshot; computed html/body color-scheme is normal and CSS inspection found no prefers-color-scheme rule.",
      "artifacts": [
        "evidence/home-dark.png"
      ],
      "suggestedFix": "Declare color-scheme and provide preference-driven dark surface, text, control, and ad-container colors.",
      "effort": "medium"
    },
    {
      "id": "F-respect-user-preferences-respects-contrast",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "High-contrast resilience is weak.",
      "evidence": "Lighthouse found 107 color-contrast failures, and the stylesheet has no prefers-contrast treatment while many controls use pale grey text.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Meet WCAG contrast minimums and add forced-colors/prefers-contrast adaptations without suppressing system colors.",
      "effort": "medium"
    },
    {
      "id": "F-implement-natural-interactions-view-transitions",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "high",
      "summary": "Route changes do not use meaningful View Transitions.",
      "evidence": "Representative routes are conventional full navigations; DOM/CSS inspection found no authored transition rules beyond third-party reset declarations.",
      "artifacts": [
        "evidence/dom-summary.json"
      ],
      "suggestedFix": "Add progressive cross-document view transitions for navigation between article, listing, forum, and account templates, while respecting reduced motion.",
      "effort": "small"
    },
    {
      "id": "F-provide-guided-navigation-scroll-state-aware-chrome",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "shrinking-header-on-scroll",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "high",
      "summary": "Long pages provide no scroll-position-aware navigation cue.",
      "evidence": "The homepage is 14,852 px tall at mobile width, yet screenshots and inspected CSS show static chrome with no progress indicator or authored scroll-state behavior.",
      "artifacts": [
        "evidence/home-layout-mobile.json"
      ],
      "suggestedFix": "Use a lightweight sticky header or progress cue that responds to scroll state without covering content.",
      "effort": "small"
    },
    {
      "id": "F-maximize-content-reduce-noise-no-intrusive-interruptions",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Advertising repeatedly obscures primary content and controls.",
      "evidence": "Mobile screenshots show fixed bottom ads covering article cards, forum content, signup fields, and the 404 recovery surface; desktop also shows a large floating ad over the hero.",
      "artifacts": [
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Remove load-time overlays from primary content, reserve non-overlapping ad slots, and require explicit interaction for overlays.",
      "effort": "large"
    },
    {
      "id": "F-maximize-content-reduce-noise-semantic-dismissible-primitives",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Injected promotional overlays use custom high-z-index div/iframe chrome.",
      "evidence": "DOM inspection found no dialog, popover, or details primitives while injected Yektanet styles create fixed overlays up to z-index 99,999,999 with custom close controls.",
      "artifacts": [
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Use semantic dialog/popover primitives for site-owned overlays and constrain third-party ad containers to non-modal, clearly dismissible slots.",
      "effort": "medium"
    },
    {
      "id": "F-maximize-content-reduce-noise-reduced-chrome",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Commercial chrome competes with the editorial experience.",
      "evidence": "Every representative mobile screenshot gives substantial first-viewport area to banner and floating advertising, including overlapping stacked promotions on discussion and signup.",
      "artifacts": [
        "evidence/discussion-mobile.png"
      ],
      "suggestedFix": "Set an ad density budget, eliminate overlapping formats, and prioritize one clear content column and task area.",
      "effort": "large"
    },
    {
      "id": "F-adapt-to-the-form-factor-responsive-no-horizontal-scroll",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "high",
      "summary": "The mobile layout has measurable horizontal overflow.",
      "evidence": "The 360x800 layout probe reported scrollWidth 366 against a 360 px visual viewport, for 6 px overflow.",
      "artifacts": [
        "evidence/home-layout-mobile.json"
      ],
      "suggestedFix": "Remove the overflowing width/margin and use intrinsic sizing with max-inline-size:100%.",
      "effort": "small"
    },
    {
      "id": "F-adapt-to-the-form-factor-component-level-responsiveness",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Components rely on viewport styling rather than container-level adaptation.",
      "evidence": "CSS inspection across home, article, forum, and signup templates found no authored @container rules; many ad and card rules use fixed pixel widths and global media queries.",
      "artifacts": [
        "evidence/dom-summary.json"
      ],
      "suggestedFix": "Add container-type to reusable card/navigation regions and size-aware @container rules for their internal layout.",
      "effort": "medium"
    },
    {
      "id": "F-adapt-to-the-form-factor-input-modality-aware",
      "pathId": "signup",
      "url": "https://www.ninisite.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Keyboard focus is not visibly indicated and several targets are too small.",
      "evidence": "A focused signup navigation link computed to outline:none and box-shadow:none; Lighthouse also reported 9 insufficiently sized or spaced targets.",
      "artifacts": [
        "evidence/signup-focus-form-probe.json"
      ],
      "suggestedFix": "Provide a strong :focus-visible style and raise interactive targets to at least 24x24 CSS px with adequate spacing, preferably 44x44 for primary touch controls.",
      "effort": "large"
    },
    {
      "id": "F-support-core-task-success-primary-flow-completion",
      "pathId": "signup",
      "url": "https://www.ninisite.com/",
      "principleId": "support-core-task-success",
      "principleCheckId": "primary-flow-completion",
      "guidanceId": "forms",
      "guidanceCategory": "forms",
      "severity": "high",
      "confidence": "high",
      "summary": "The signup journey is obstructed by advertising.",
      "evidence": "The signup mobile screenshot shows a large floating video promotion covering password/captcha fields in the primary registration form.",
      "artifacts": [
        "evidence/signup-mobile.png"
      ],
      "suggestedFix": "Exclude account and form journeys from floating ad formats and keep all required fields and the submit action continuously visible.",
      "effort": "large"
    },
    {
      "id": "F-be-fast-and-stable-good-core-web-vitals",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Mobile load performance misses the LCP quality bar.",
      "evidence": "Lighthouse measured FCP 5.5 s, LCP 10.6 s, Speed Index 6.3 s, and Time to Interactive 11.9 s (performance 0.59); a separate trace measured LCP 2.67 s, showing material run variance.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Prioritize the LCP image/content, reduce third-party contention, and validate on representative mobile network/CPU conditions.",
      "effort": "large"
    },
    {
      "id": "F-be-fast-and-stable-efficient-resource-delivery",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Images and noncritical resources are delivered inefficiently.",
      "evidence": "The images primitive found 89 below-fold images without lazy loading, 73 without srcset, 91 legacy-format images, and 16 oversized images.",
      "artifacts": [
        "evidence/images.json"
      ],
      "suggestedFix": "Lazy-load below-fold media, provide responsive srcset/sizes, use modern formats, and explicitly prioritize only the LCP image.",
      "effort": "large"
    },
    {
      "id": "F-be-fast-and-stable-trim-unused-and-duplicate-code",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "The page ships substantial unused JavaScript and CSS.",
      "evidence": "Lighthouse estimated 174 KiB unused JavaScript and 38 KiB unused CSS; the main CSS bundle was 93% unused in the sampled load.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Split template-specific bundles and conditionally load advertising/analytics code only where it provides value.",
      "effort": "medium"
    },
    {
      "id": "F-be-inclusive-names-roles-labels",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Several interactive controls lack accessible names or valid ARIA structure.",
      "evidence": "Lighthouse found 7 unnamed buttons, 4 unnamed links, one required-children ARIA failure, and two presentation-role conflicts.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Use native controls and give every interactive element a visible or programmatic name with valid roles and relationships.",
      "effort": "large"
    },
    {
      "id": "F-be-inclusive-sufficient-contrast",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Text and controls fail contrast requirements at scale.",
      "evidence": "Lighthouse found 107 elements with insufficient foreground/background contrast.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Adjust the color tokens and ad/control states to meet WCAG AA contrast in every template and state.",
      "effort": "large"
    },
    {
      "id": "F-be-inclusive-structure-and-focus",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Document structure and keyboard focus are not robust.",
      "evidence": "All four inspected templates had zero h1 and zero main elements; Lighthouse found seven heading-order failures and no main landmark, while the focus probe showed no visible focus ring.",
      "artifacts": [
        "evidence/dom-summary.json"
      ],
      "suggestedFix": "Add one descriptive h1 and a main landmark per template, repair heading order, and implement persistent :focus-visible styling.",
      "effort": "large"
    },
    {
      "id": "F-be-inclusive-zoom-reflow-targets-and-media",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Small targets and slight overflow undermine reflow usability.",
      "evidence": "Lighthouse found 9 target-size failures and the 360 px layout had 6 px horizontal overflow; the viewport meta itself permits scaling.",
      "artifacts": [
        "evidence/home-layout-mobile.json"
      ],
      "suggestedFix": "Increase target dimensions/spacing and remove overflow, then verify at 200% zoom and narrow reflow widths.",
      "effort": "medium"
    },
    {
      "id": "F-follow-best-practices-no-console-errors",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "The homepage logs a failed network request.",
      "evidence": "Lighthouse’s errors-in-console audit failed because a resource returned HTTP 404.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Fix or remove the broken resource reference and keep console/network error monitoring in release checks.",
      "effort": "medium"
    },
    {
      "id": "F-follow-best-practices-sound-document-and-assets",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Asset markup and responsive image delivery need cleanup.",
      "evidence": "The images primitive found 3 images without dimensions, 16 oversized images, and 73 without responsive sources; Lighthouse also reported a low-resolution mobile logo.",
      "artifacts": [
        "evidence/images.json"
      ],
      "suggestedFix": "Provide intrinsic dimensions, correct aspect ratios, and appropriately sized responsive sources for every image.",
      "effort": "medium"
    },
    {
      "id": "F-be-discoverable-crawlable-and-mobile-friendly",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "severity": "low",
      "confidence": "high",
      "summary": "robots.txt contains an invalid directive.",
      "evidence": "Lighthouse SEO reported “Allow /sitemap” on line 4 as syntax not understood; links and viewport otherwise passed.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Correct robots.txt syntax and reference the sitemap with a valid Sitemap: directive.",
      "effort": "small"
    },
    {
      "id": "F-be-private-and-secure-secure-transport-and-headers",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security-and-privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "Security headers and cookie attributes are incomplete.",
      "evidence": "HTTPS, HSTS, nosniff, and X-Frame-Options are present, but CSP is missing; all 6 observed first-party cookies lacked Secure and used SameSite=None.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Deploy an enforcing CSP and set Secure with the narrowest workable SameSite value on all cookies.",
      "effort": "large"
    },
    {
      "id": "F-be-private-and-secure-data-minimisation-and-third-parties",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "security-and-privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "The page has a broad tracking and advertising footprint.",
      "evidence": "The tracker probe saw 19 third-party origins and known Clarity, Google Tag Manager, and DoubleClick endpoints; Lighthouse found third-party cookies and the screenshots show multiple ad formats.",
      "artifacts": [
        "evidence/trackers.json"
      ],
      "suggestedFix": "Audit necessity, consent, retention, and payloads for each vendor; remove redundant trackers and defer nonessential collection until informed consent.",
      "effort": "large"
    },
    {
      "id": "F-be-private-and-secure-in-context-permissions-and-modern-auth",
      "pathId": "signup",
      "url": "https://www.ninisite.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "security",
      "guidanceCategory": "security-and-privacy",
      "severity": "medium",
      "confidence": "high",
      "summary": "Authentication is password-only and lacks modern phishing-resistant options.",
      "evidence": "Lighthouse confirmed no permission prompts on load, but signup/sign-in DOM exposes password fields and no WebAuthn/passkey affordance.",
      "artifacts": [
        "evidence/signup-focus-form-probe.json"
      ],
      "suggestedFix": "Offer passkey registration and authentication alongside recovery-safe fallback methods.",
      "effort": "medium"
    },
    {
      "id": "F-be-private-and-secure-defensive-browser-policies",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "security-and-privacy",
      "severity": "medium",
      "confidence": "high",
      "summary": "Several browser-enforced defensive policies are absent.",
      "evidence": "The headers probe found no CSP, Referrer-Policy, or Permissions-Policy; HSTS and X-Frame-Options are present.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Add a strict Referrer-Policy and least-privilege Permissions-Policy, and enforce CSP with frame-ancestors.",
      "effort": "medium"
    },
    {
      "id": "F-be-resilient-resilient-runtime-behaviour",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "be-resilient",
      "principleCheckId": "resilient-runtime-behaviour",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Third-party overlays create fragile, obstructed runtime states.",
      "evidence": "Fixed Yektanet containers use extreme z-index values and overlap form and error-recovery content at mobile sizes.",
      "artifacts": [
        "evidence/404-mobile.png"
      ],
      "suggestedFix": "Isolate ad scripts, cap their stacking context, reserve layout space, and ensure close/recovery controls remain reachable.",
      "effort": "medium"
    },
    {
      "id": "F-be-internationalised-lang-dir-and-logical-properties",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Persian pages do not declare document direction.",
      "evidence": "All inspected templates set lang=\"fa\" but neither html nor body declares dir=\"rtl\"; CSS includes many physical left/right declarations despite some logical properties.",
      "artifacts": [
        "evidence/dom-summary.json"
      ],
      "suggestedFix": "Set dir=\"rtl\" at the document root and migrate reusable layout rules to logical properties.",
      "effort": "medium"
    },
    {
      "id": "F-be-trustworthy-no-dark-patterns",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "privacy",
      "guidanceCategory": "security-and-privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "Advertisements are visually intrusive and insufficiently separated from key tasks.",
      "evidence": "Floating promotions cover editorial, forum, registration, and 404 surfaces; some include only tiny branding/close affordances and resemble in-page content.",
      "artifacts": [
        "evidence/signup-mobile.png"
      ],
      "suggestedFix": "Clearly label ads, prohibit overlap with primary UI, make dismissal obvious, and avoid disruptive formats on sensitive account paths.",
      "effort": "large"
    },
    {
      "id": "F-be-trustworthy-humane-error-handling",
      "pathId": "signup",
      "url": "https://www.ninisite.com/",
      "principleId": "be-trustworthy",
      "principleCheckId": "humane-error-handling",
      "guidanceId": "forms",
      "guidanceCategory": "forms",
      "severity": "medium",
      "confidence": "high",
      "summary": "Form errors are not exposed with modern accessible state semantics.",
      "evidence": "Signup markup contains required validation messages but no aria-live or aria-invalid, and several fields lack associated labels.",
      "artifacts": [
        "evidence/signup-dom.json"
      ],
      "suggestedFix": "Validate after interaction, set aria-invalid and aria-describedby, and announce a concise error summary in a live region.",
      "effort": "medium"
    },
    {
      "id": "F-be-trustworthy-trustworthy-input-assistance",
      "pathId": "signup",
      "url": "https://www.ninisite.com/",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "autofill-sign-up-form",
      "guidanceCategory": "forms",
      "severity": "medium",
      "confidence": "high",
      "summary": "Registration input assistance is incomplete.",
      "evidence": "The telephone field has autocomplete=\"off\" and no associated label; confirm-password and captcha fields also lack associated labels, while password has new-password.",
      "artifacts": [
        "evidence/signup-focus-form-probe.json"
      ],
      "suggestedFix": "Use stable names and correct autocomplete tokens (tel, username, new-password) with explicit labels for every field.",
      "effort": "medium"
    },
    {
      "id": "F-be-trustworthy-safe-commercial-and-account-flows",
      "pathId": "signup",
      "url": "https://www.ninisite.com/",
      "principleId": "be-trustworthy",
      "principleCheckId": "safe-commercial-and-account-flows",
      "guidanceId": "forms",
      "guidanceCategory": "forms",
      "severity": "high",
      "confidence": "high",
      "summary": "The account flow is neither distraction-free nor proportionate.",
      "evidence": "A floating advertisement covers registration fields, and the authentication surface offers passwords without a passkey option.",
      "artifacts": [
        "evidence/signup-mobile.png"
      ],
      "suggestedFix": "Remove floating ads from account flows, keep commitments clear, and add phishing-resistant authentication and safe recovery.",
      "effort": "large"
    },
    {
      "id": "F-be-sustainable-optimised-assets",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "The image strategy wastes bandwidth and decoding work.",
      "evidence": "Of 93 images, 91 are legacy formats, 73 lack srcset, 89 below-fold images are not lazy, and 16 are oversized.",
      "artifacts": [
        "evidence/images.json"
      ],
      "suggestedFix": "Generate AVIF/WebP variants, use srcset/sizes, lazy-load below-fold media, and size assets to rendered dimensions.",
      "effort": "large"
    },
    {
      "id": "F-be-sustainable-no-wasteful-work",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "efficient-background-processing",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Background advertising and analytics work is disproportionate.",
      "evidence": "The tracker probe recorded 19 third-party origins; Lighthouse attributes the largest unused-JS savings to GTM/gtag and measured 174 KiB unused JavaScript overall.",
      "artifacts": [
        "evidence/trackers.json"
      ],
      "suggestedFix": "Remove duplicate analytics, batch events, and load ad/analytics work conditionally and at lower priority.",
      "effort": "medium"
    },
    {
      "id": "F-be-sustainable-third-party-and-media-budget",
      "pathId": "home",
      "url": "https://www.ninisite.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "efficient-background-processing",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Third-party code consumes a large share of the page budget.",
      "evidence": "Lighthouse transferred 1,535 KiB and two Google tag scripts were among the four largest resources; tracker evidence found 19 third-party origins and multiple simultaneous ad formats.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Set a third-party byte/request budget, consolidate vendors, and defer media/ads until below the primary content.",
      "effort": "large"
    }
  ],
  "taskList": [
    {
      "id": "T1",
      "title": "Remove overlapping ad formats from content, account, and recovery paths",
      "priority": 1,
      "findingIds": [
        "F-maximize-content-reduce-noise-no-intrusive-interruptions",
        "F-maximize-content-reduce-noise-semantic-dismissible-primitives",
        "F-maximize-content-reduce-noise-reduced-chrome",
        "F-support-core-task-success-primary-flow-completion",
        "F-be-resilient-resilient-runtime-behaviour",
        "F-be-trustworthy-no-dark-patterns",
        "F-be-trustworthy-humane-error-handling",
        "F-be-trustworthy-trustworthy-input-assistance",
        "F-be-trustworthy-safe-commercial-and-account-flows"
      ],
      "guidanceId": "light-dismiss-a-dialog",
      "status": "open"
    },
    {
      "id": "T2",
      "title": "Fix accessible names, landmarks, headings, contrast, focus, and target sizes",
      "priority": 2,
      "findingIds": [
        "F-adapt-to-the-form-factor-input-modality-aware",
        "F-be-inclusive-names-roles-labels",
        "F-be-inclusive-sufficient-contrast",
        "F-be-inclusive-structure-and-focus",
        "F-be-inclusive-zoom-reflow-targets-and-media"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T3",
      "title": "Harden CSP, cookie attributes, privacy policies, and tracker minimisation",
      "priority": 3,
      "findingIds": [
        "F-be-private-and-secure-secure-transport-and-headers",
        "F-be-private-and-secure-data-minimisation-and-third-parties",
        "F-be-private-and-secure-in-context-permissions-and-modern-auth",
        "F-be-private-and-secure-defensive-browser-policies"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T4",
      "title": "Improve mobile LCP and responsive image delivery",
      "priority": 4,
      "findingIds": [
        "F-be-fast-and-stable-good-core-web-vitals",
        "F-be-fast-and-stable-efficient-resource-delivery",
        "F-be-fast-and-stable-trim-unused-and-duplicate-code",
        "F-be-sustainable-optimised-assets",
        "F-be-sustainable-no-wasteful-work",
        "F-be-sustainable-third-party-and-media-budget"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T5",
      "title": "Repair signup labels, validation announcements, autocomplete, and passkey support",
      "priority": 5,
      "findingIds": [
        "F-be-trustworthy-humane-error-handling",
        "F-be-trustworthy-trustworthy-input-assistance",
        "F-be-trustworthy-safe-commercial-and-account-flows"
      ],
      "guidanceId": "forms",
      "status": "open"
    },
    {
      "id": "T6",
      "title": "Introduce preference-driven dark/high-contrast styling",
      "priority": 6,
      "findingIds": [
        "F-respect-user-preferences-respects-color-scheme",
        "F-respect-user-preferences-respects-contrast"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T7",
      "title": "Adopt intrinsic/container-level responsive layout and RTL logical properties",
      "priority": 7,
      "findingIds": [
        "F-adapt-to-the-form-factor-responsive-no-horizontal-scroll",
        "F-adapt-to-the-form-factor-component-level-responsiveness",
        "F-be-internationalised-lang-dir-and-logical-properties"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    },
    {
      "id": "T8",
      "title": "Correct robots.txt and eliminate console/asset errors",
      "priority": 8,
      "findingIds": [
        "F-follow-best-practices-no-console-errors",
        "F-follow-best-practices-sound-document-and-assets",
        "F-be-discoverable-crawlable-and-mobile-friendly"
      ],
      "guidanceId": "performance",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 5,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-26T01-36-36-565Z"
}
