{
  "url": "https://www.biblegateway.com",
  "auditedAt": "2026-07-20T10:14:24.952Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete representative audit. The /learn and /login probes returned a Content Unavailable template; login is recorded as an issue while /learn was excluded as unavailable duplicate error coverage.",
  "page": {
    "appType": "mpa",
    "framework": "Server-rendered MPA with client-enhanced navigation, consent, passage tools, and sidebars",
    "notes": "Public multilingual Bible search/reading service. Representative scope: home, passage, version detail, empty search recovery, and account entry. Excluded checkout/subscription completion, authenticated state, audio playback, and the unavailable /learn page."
  },
  "evidenceUsed": [
    "modern-web-guidance@0.0.172 search/retrieve",
    "screenshot",
    "dom+computed-styles",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability/no-js",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "lighthouse"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "component-specific-light-dark-theme",
    "accessibility",
    "adapt-scrollbar-to-contrast-preferences",
    "same-document-transitions",
    "cross-document-transitions",
    "group-element-transitions",
    "faster-spa-view-transitions",
    "scrollytelling",
    "parallax-scroll-effects",
    "scroll-entry-exit-effects",
    "carousel-slide-effects",
    "physics-based-easing",
    "individual-transform-properties",
    "animate-element-entry-exit",
    "animate-to-from-top-layer",
    "animate-to-intrinsic-sizes",
    "dynamic-sibling-animations",
    "interactive-content-reveal",
    "pull-to-reveal",
    "swipe-to-remove",
    "shrinking-header-on-scroll",
    "scroll-progress-indicator",
    "scroll-position-aware-elements",
    "scroll-snap-realtime-feedback",
    "scroll-snap-state-sync",
    "scroll-target-on-load",
    "soft-edge-content-fade",
    "scrollability-affordance-hints",
    "anchor-positioning-tab-underline",
    "position-aware-tooltips",
    "interest-triggered-tooltips",
    "interest-triggered-action-previews",
    "directional-navigation-transitions",
    "carousel-snap-highlights",
    "navigation-drawer",
    "stack-drill-down",
    "persistent-app-tours",
    "persistent-toast-notifications",
    "light-dismiss-a-dialog",
    "platform-controls-dismiss-dialog",
    "declarative-dialog-popover-control",
    "animated-select-picker",
    "branded-select-styling",
    "brand-consistent-forms",
    "custom-select-picker-layouts",
    "rich-media-picker",
    "complex-shapes",
    "shaped-cutouts",
    "overflow-clipping-control",
    "visually-texture-content",
    "apply-webgl-shaders",
    "interactive-content-in-3d-scenes",
    "highlight-text-ranges",
    "prevent-text-wrapping",
    "customize-scrollbar-color-and-thickness",
    "export-html-media-from-canvas",
    "fluid-scaling",
    "calculate-with-intrinsic-sizes",
    "css-layout",
    "size-aware-styling",
    "content-based-styling",
    "child-state-based-styling",
    "design-token-reactivity",
    "dynamic-sibling-styling",
    "form-fields-automatically-fit-contents",
    "improve-text-layout-and-legibility",
    "forms",
    "accessible-error-announcement",
    "required-field-feedback",
    "validate-input-after-interaction",
    "identify-inp-causes",
    "schedule-tasks-by-priority",
    "optimize-preload-priority",
    "improve-next-page-load-performance",
    "interactions-in-complex-layouts",
    "performance",
    "visually-stable-font-fallbacks",
    "break-up-long-tasks",
    "identify-heavy-scripts",
    "optimize-script-priority",
    "defer-rendering-heavy-content",
    "defer-work-until-scroll-ends",
    "optimize-image-priority",
    "conditional-async-dependencies",
    "expose-canvas-content-to-browser-features",
    "move-dom-element-without-losing-state",
    "precise-text-alignment",
    "visually-stable-mixed-fonts",
    "css",
    "html",
    "reduce-style-repetition",
    "security",
    "privacy",
    "batch-analytics-events",
    "full-session-analytics",
    "calculate-total-foreground-time",
    "passkeys",
    "passkey-registration",
    "passkey-authentication",
    "passkey-reauthentication",
    "passkey-conditional-create",
    "passkey-management",
    "flicker-free-client-side-ab-testing",
    "consistent-cross-document-transitions",
    "stabilize-reactive-state",
    "resilient-context-menus-and-nested-dropdowns",
    "persistent-top-layer-ui",
    "detect-initial-visibility-state",
    "sequence-distributed-events",
    "translator",
    "language-detection",
    "support-global-calendar-systems",
    "capture-location-agnostic-data",
    "format-human-readable-durations",
    "manage-recurring-intervals",
    "calculate-event-differentials",
    "coordinate-global-events",
    "model-partial-time-concepts",
    "search-hidden-content",
    "select-menu-interaction",
    "style-parent-with-has",
    "autofill-address-form",
    "autofill-payment-form",
    "autofill-sign-in-form",
    "autofill-sign-up-form",
    "autofill-highlight-inputs",
    "deliver-optimized-decorative-images",
    "resolution-optimized-pseudo-elements",
    "deprioritize-background-fetches",
    "efficient-background-processing",
    "webmcp",
    "agentic-forms",
    "agentic-javascript-tools",
    "language-model",
    "summarizer"
  ],
  "artifacts": [
    {
      "type": "other",
      "path": "evidence/coverage-manifest.json",
      "caption": "coverage manifest",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance-consultation-plan.json",
      "caption": "guidance consultation plan",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance-list.json",
      "caption": "guidance list",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance-retrieved.json",
      "caption": "guidance retrieved",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance-searches.json",
      "caption": "guidance searches",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.heapsnapshot",
      "caption": "heap baseline",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.heapsnapshot",
      "caption": "heap post",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-cookies.json",
      "caption": "home cookies",
      "findingIds": [
        "F24"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark-contrast-cookie.png",
      "caption": "home dark contrast cookie",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": [
        "F04",
        "F06",
        "F09",
        "F25",
        "F30"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "home discoverability crawler",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "home discoverability rendered",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "home discoverability",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom",
      "findingIds": [
        "F05",
        "F28"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-headers.json",
      "caption": "home headers",
      "findingIds": [
        "F23",
        "F27"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/home-lighthouse-summary.json",
      "caption": "home lighthouse summary",
      "findingIds": [
        "F10",
        "F15",
        "F20"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/home-lighthouse.json",
      "caption": "home lighthouse",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "findingIds": [
        "F04",
        "F28",
        "F30"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-probe.json",
      "caption": "home probe",
      "findingIds": [
        "F02",
        "F05",
        "F07",
        "F08",
        "F09",
        "F16",
        "F21",
        "F31"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-route-probe.json",
      "caption": "home route probe",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-secrets.json",
      "caption": "home secrets",
      "findingIds": []
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": []
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-trackers.json",
      "caption": "home trackers",
      "findingIds": [
        "F25"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/learn-desktop.png",
      "caption": "learn desktop",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/login-desktop.png",
      "caption": "login desktop",
      "findingIds": [
        "F26",
        "F29",
        "F32"
      ]
    },
    {
      "type": "other",
      "path": "evidence/login-probe.json",
      "caption": "login probe",
      "findingIds": [
        "F26",
        "F29",
        "F32"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/memory-metrics.json",
      "caption": "memory metrics",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/passage-blocking-probe.json",
      "caption": "passage blocking probe",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "other",
      "path": "evidence/passage-buttons.json",
      "caption": "passage buttons",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/passage-content.png",
      "caption": "passage content",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/passage-dark.png",
      "caption": "passage dark",
      "findingIds": [
        "F01",
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/passage-desktop.png",
      "caption": "passage desktop",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/passage-discoverability-crawler.png",
      "caption": "passage discoverability crawler",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/passage-discoverability-rendered.png",
      "caption": "passage discoverability rendered",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/passage-discoverability.json",
      "caption": "passage discoverability",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/passage-images.json",
      "caption": "passage images",
      "findingIds": [
        "F11",
        "F14",
        "F18",
        "F33",
        "F34"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/passage-lighthouse-summary.json",
      "caption": "passage lighthouse summary",
      "findingIds": [
        "F10",
        "F11",
        "F13",
        "F14",
        "F15",
        "F16",
        "F18"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/passage-lighthouse.json",
      "caption": "passage lighthouse",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/passage-mobile-layout.json",
      "caption": "passage mobile layout",
      "findingIds": [
        "F03",
        "F10",
        "F11",
        "F17"
      ]
    },
    {
      "type": "other",
      "path": "evidence/passage-probe.json",
      "caption": "passage probe",
      "findingIds": [
        "F02",
        "F03",
        "F07",
        "F08",
        "F17",
        "F21",
        "F22",
        "F31"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/passage-summary.json",
      "caption": "passage summary",
      "findingIds": [
        "F12",
        "F25",
        "F33",
        "F34",
        "F35"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/passage-trace-summary.json",
      "caption": "passage trace summary",
      "findingIds": []
    },
    {
      "type": "trace",
      "path": "evidence/passage-trace.json",
      "caption": "passage trace",
      "findingIds": []
    },
    {
      "type": "har",
      "path": "evidence/passage.har",
      "caption": "passage",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/preferences-probe.json",
      "caption": "preferences probe",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "other",
      "path": "evidence/recon-routes.json",
      "caption": "recon routes",
      "findingIds": [
        "F21"
      ]
    },
    {
      "type": "other",
      "path": "evidence/search-empty-probe.json",
      "caption": "search empty probe",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/search-empty.png",
      "caption": "search empty",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/version-desktop.png",
      "caption": "version desktop",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/version-probe.json",
      "caption": "version probe",
      "findingIds": [
        "F19",
        "F22"
      ]
    }
  ],
  "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 from the listed report artifacts.",
      "evidence": "The preference probe matched dark mode but reported body background rgb(250,248,247), black text, and colorScheme normal; the dark passage screenshot remains light.",
      "findingIds": [
        "F01"
      ],
      "artifacts": [
        "evidence/preferences-probe.json",
        "evidence/passage-dark.png"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "Emulated prefers-reduced-motion: reduce and queried document animations.",
      "evidence": "The emulated preference matched and document.getAnimations() returned no active animations, so no nonessential motion continued.",
      "artifacts": [
        "evidence/preferences-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "medium",
      "method": "Emulated prefers-contrast: more and visually inspected controls.",
      "evidence": "The preference matched and text/consent controls remained visible; separate ordinary contrast failures are recorded under be-inclusive.",
      "artifacts": [
        "evidence/preferences-probe.json",
        "evidence/home-dark-contrast-cookie.png"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "Rendered CSS inspection across home, passage, and version templates found no view-transition rules or API markers; navigation is traditional full-page replacement.",
      "findingIds": [
        "F02"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/passage-probe.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Inspected CSS and page behavior for scroll-linked motion.",
      "evidence": "No parallax, scrollytelling, or entry/exit reveal behavior was present on representative templates.",
      "reason": "There is no scroll-linked motion to implement declaratively.",
      "pathIds": [
        "home",
        "passage"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Inspected representative controls and CSS for gesture surfaces.",
      "evidence": "The audited reading/search templates expose no swipe, pull, carousel, or custom gesture flow.",
      "reason": "No gesture-driven interaction is present on the audited surfaces.",
      "pathIds": [
        "home",
        "passage"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "The passage is a long 2,582px mobile document, while CSS inspection found no scroll-state query or progress-indicator technique.",
      "findingIds": [
        "F03"
      ],
      "artifacts": [
        "evidence/passage-mobile-layout.json",
        "evidence/passage-probe.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Inspected DOM/CSS for tooltips, anchored popovers, and edge-positioned menus.",
      "evidence": "No tooltip/popover surface requiring anchored positioning was observed.",
      "reason": "No anchored overlay use case appeared in the representative paths.",
      "pathIds": [
        "home",
        "passage"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "medium",
      "method": "Visually inspected passage tabs, heading, and navigation state.",
      "evidence": "The selected Passage tab uses a persistent underline and the passage H1 identifies location after navigation.",
      "artifacts": [
        "evidence/passage-dark.png",
        "evidence/passage-probe.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "Desktop and 360px screenshots show a consent surface for 545 partners consuming most of the viewport, followed by a persistent promotion; Scripture/search is not visible initially.",
      "findingIds": [
        "F04"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "DOM evidence found [role=dialog] spanning 780×321px and no native dialog, popover, or details elements across the inspected templates.",
      "findingIds": [
        "F05"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "Screenshots show consent, masthead, a bright sales banner, and a large blank ad slot before the search or passage content.",
      "findingIds": [
        "F06"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/passage-dark.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "Captured 360×800 layout metrics on home and passage.",
      "evidence": "Both paths had viewport metadata and 0px horizontal overflow with scrollWidth exactly 360px.",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/passage-mobile-layout.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "CSS inspection across reusable search, navigation, passage, and version surfaces found no @container or container-type rules.",
      "findingIds": [
        "F07"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/passage-probe.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "The home probe found 11 of 20 visible controls below 24px in one dimension; the passage found 43 of 334. Focus received a visible 1px auto outline.",
      "findingIds": [
        "F08"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/passage-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "The first-view screenshots contain no search field or page heading; the home DOM has no H1. Search becomes clear only after consent and scrolling.",
      "findingIds": [
        "F09"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Executed the representative search journey and loaded a direct verse result.",
      "evidence": "The John 3:16 NIV passage loaded with the expected verse, version selector, H1, and canonical URL.",
      "artifacts": [
        "evidence/passage-probe.json",
        "evidence/passage-discoverability-crawler.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Submitted an impossible keyword search and inspected the resulting empty state.",
      "evidence": "The zero-result page clearly says no results and offers spelling, spacing, fewer-word, and alternate-translation recovery suggestions.",
      "artifacts": [
        "evidence/search-empty-probe.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "Lighthouse measured LCP 5.8s and CLS 0.699 on the passage (performance 49); the home also measured CLS 0.699.",
      "findingIds": [
        "F10"
      ],
      "artifacts": [
        "evidence/passage-lighthouse-summary.json",
        "evidence/home-lighthouse-summary.json",
        "evidence/passage-mobile-layout.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "Lighthouse reported CLS 0.699; the mobile layout observer also recorded a 0.816 shift after late UI changes. All 25 passage images lack width/height attributes.",
      "findingIds": [
        "F11"
      ],
      "artifacts": [
        "evidence/passage-lighthouse-summary.json",
        "evidence/passage-mobile-layout.json",
        "evidence/passage-images.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "Captured traces on home and passage and inspected Lighthouse TBT.",
      "evidence": "Raw-CDP traces recorded zero long tasks and 0ms TBT; Lighthouse TBT was 130ms home and 200ms passage.",
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/passage-trace-summary.json",
        "evidence/passage-lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "HAR identified synchronous head scripts init.min.js and otSDKStub.js; DOM confirmed neither async nor defer. Numerous cover images lacked cache headers.",
      "findingIds": [
        "F12"
      ],
      "artifacts": [
        "evidence/passage-summary.json",
        "evidence/passage-blocking-probe.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "Lighthouse identified about 122KB of OneTrust JavaScript and 19.6KB of consent CSS as largely unused, plus additional unused passage CSS/JS.",
      "findingIds": [
        "F13"
      ],
      "artifacts": [
        "evidence/passage-lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "Lighthouse accessibility scored 84 and failed button-name, aria-prohibited-attr, list semantics, and accessibility-tree checks; the image audit also found a missing alt attribute.",
      "findingIds": [
        "F14"
      ],
      "artifacts": [
        "evidence/passage-lighthouse-summary.json",
        "evidence/passage-images.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "Lighthouse failed color-contrast on both home and passage, with concrete failing nodes recorded in its audit tables.",
      "findingIds": [
        "F15"
      ],
      "artifacts": [
        "evidence/home-lighthouse-summary.json",
        "evidence/passage-lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "The home has no H1 and starts at H3; passage Lighthouse failed heading-order and list structure while finding a visible keyboard outline.",
      "findingIds": [
        "F16"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/passage-lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "medium",
      "method": "Visually inspected reading text and mobile reflow.",
      "evidence": "The verse uses readable sizing, spacing, and a fluid single-column layout without clipping.",
      "artifacts": [
        "evidence/passage-discoverability-crawler.png",
        "evidence/passage-mobile-layout.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "At 360px both tested templates had zero horizontal overflow, yet probes counted 11 small controls on home and 43 on passage.",
      "findingIds": [
        "F17"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/passage-mobile-layout.json",
        "evidence/passage-probe.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Ran Lighthouse best-practices audits on home and passage.",
      "evidence": "The errors-in-console audit passed on both inspected templates.",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/passage-lighthouse.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "All 25 passage images lacked width/height and Lighthouse found an incorrectly displayed image aspect ratio.",
      "findingIds": [
        "F18"
      ],
      "artifacts": [
        "evidence/passage-images.json",
        "evidence/passage-lighthouse-summary.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "pass",
      "confidence": "medium",
      "method": "Reviewed Lighthouse best-practices and entry behavior.",
      "evidence": "No deprecated API, paste prevention, on-load permission prompt, or vulnerable-library failure was reported; home best-practices scored 100.",
      "artifacts": [
        "evidence/home-lighthouse-summary.json",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "The version probe found a descriptive title but no meta description.",
      "findingIds": [
        "F19"
      ],
      "artifacts": [
        "evidence/version-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "Lighthouse SEO scored 92 on home and failed crawlable-anchors, although viewport metadata and most real href links were present.",
      "findingIds": [
        "F20"
      ],
      "artifacts": [
        "evidence/home-lighthouse-summary.json",
        "evidence/home-route-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "Canonical URLs were present, but /sitemap.xml returned HTTP 403 to the browser probe and no hreflang links were found on English pages despite an explicit Spanish version.",
      "findingIds": [
        "F21"
      ],
      "artifacts": [
        "evidence/recon-routes.json",
        "evidence/home-probe.json",
        "evidence/passage-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "The passage has accurate Open Graph fields but no JSON-LD; the version template has only a generic sharing image.",
      "findingIds": [
        "F22"
      ],
      "artifacts": [
        "evidence/passage-probe.json",
        "evidence/version-probe.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "HTTPS and HSTS were present, but the header audit found no CSP, X-Content-Type-Options, clickjacking protection, Referrer-Policy, or Permissions-Policy. Cookie evidence found OptanonConsent on .biblegateway.com with Secure=false, SameSite=Lax, and a 365-day expiry.",
      "findingIds": [
        "F23",
        "F24"
      ],
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "The consent UI describes 545 partners and device-characteristic scanning. The passage transferred 851,512 third-party bytes (78% of 1.09MB), including 413,746 bytes from OneTrust.",
      "findingIds": [
        "F25"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/passage-summary.json",
        "evidence/home-trackers.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "The prominent Log In/Sign Up link resolves to a “Content Unavailable” page with no controls; no permission prompt fired on the inspected entry path.",
      "findingIds": [
        "F26"
      ],
      "artifacts": [
        "evidence/login-desktop.png",
        "evidence/login-probe.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "The response had HSTS but no frame-ancestors/X-Frame-Options, Referrer-Policy, Permissions-Policy, CSP, or nosniff.",
      "findingIds": [
        "F27"
      ],
      "artifacts": [
        "evidence/home-headers.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Compared JS-rendered and crawler/no-JS views.",
      "evidence": "The no-JS passage screenshot contains the search controls and full John 3:16 verse; the page is not a JS shell.",
      "artifacts": [
        "evidence/passage-discoverability.json",
        "evidence/passage-discoverability-crawler.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "At 360×800 the consent UI consumes roughly 650px before site navigation; DOM inspection found custom role=dialog markup rather than native dialog behavior.",
      "findingIds": [
        "F28"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Checked manifest and service-worker state.",
      "evidence": "No manifest or controlling service worker is present.",
      "reason": "BibleGateway is a public content/lookup MPA rather than an install-oriented application; offline installability is contextual.",
      "pathIds": [
        "home",
        "passage"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "The login URL displays only “Content Unavailable” and an apology, with no retry, home link, support link, status detail, or alternate sign-in path.",
      "findingIds": [
        "F29"
      ],
      "artifacts": [
        "evidence/login-desktop.png",
        "evidence/login-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "medium",
      "method": "Inspected language metadata and locale links.",
      "evidence": "Representative pages declare html lang=en and expose a Spanish-language switch; default LTR reading order renders correctly.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-route-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Reviewed representative content for locale-sensitive values.",
      "evidence": "The audited templates contain Scripture text, search controls, and version metadata but no user-facing dates, currencies, durations, events, or time-zone calculations.",
      "reason": "No locale-sensitive numeric/time data appears on these representative paths.",
      "pathIds": [
        "home",
        "passage"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Reviewed representative content for locale-sensitive values.",
      "evidence": "The audited templates contain Scripture text, search controls, and version metadata but no user-facing dates, currencies, durations, events, or time-zone calculations.",
      "reason": "No locale-sensitive numeric/time data appears on these representative paths.",
      "pathIds": [
        "home",
        "passage"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "The full-screen notice names 545 partners, personalized advertising, device-characteristic scanning, and inference of religious or philosophical beliefs on a Bible-reading site. Reject is present, but the breadth and interruption undermine a privacy-minimizing default.",
      "findingIds": [
        "F30"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "pass",
      "confidence": "high",
      "method": "Exercised an invalid search state.",
      "evidence": "The no-results state avoids blame and gives four concrete recovery strategies.",
      "artifacts": [
        "evidence/search-empty-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "Home and passage probes show the newsletter Email field with autocomplete=\"off\" and no visible label in the captured form metadata.",
      "findingIds": [
        "F31"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/passage-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "Log In/Sign Up links users to a noindex “Content Unavailable” page with no sign-in, cancellation, recovery, or support controls.",
      "findingIds": [
        "F32"
      ],
      "artifacts": [
        "evidence/login-desktop.png",
        "evidence/login-probe.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "The passage image audit found 24 legacy JPG/PNG images, 24 below-fold images not lazy-loaded, 25 without dimensions, and nearly all without responsive sources.",
      "findingIds": [
        "F33"
      ],
      "artifacts": [
        "evidence/passage-images.json",
        "evidence/passage-summary.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "The passage made 76 requests, including 24 eager below-fold images and 26 fetch/XHR requests; 413KB of OneTrust resources dominated optional setup.",
      "findingIds": [
        "F34"
      ],
      "artifacts": [
        "evidence/passage-summary.json",
        "evidence/passage-images.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual/objective evidence from the listed report artifacts.",
      "evidence": "The HAR recorded 35 third-party requests and 851,512 third-party bytes out of 1,090,146 total; OneTrust alone used about 414KB.",
      "findingIds": [
        "F35"
      ],
      "artifacts": [
        "evidence/passage-summary.json"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Inspected DOM/source markers and crawler-visible behavior for agent-specific capabilities.",
      "evidence": "No WebMCP tools, agentic form registration, or built-in inference surface is exposed.",
      "reason": "This public reading/search site exposes crawlable content but no declared agent-facing action or on-device inference use case; the emerging capability is not required.",
      "pathIds": [
        "home",
        "passage"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Inspected DOM/source markers and crawler-visible behavior for agent-specific capabilities.",
      "evidence": "No WebMCP tools, agentic form registration, or built-in inference surface is exposed.",
      "reason": "This public reading/search site exposes crawlable content but no declared agent-facing action or on-device inference use case; the emerging capability is not required.",
      "pathIds": [
        "home",
        "passage"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "medium",
      "method": "Compared baseline and post heap summaries around a repeated consent-layer lifecycle sequence.",
      "evidence": "Total self size rose only 211,751 bytes (1.1%); closures decreased from 9,923 to 9,921 and Object/Array counts were essentially stable.",
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post.heapsnapshot"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "Inspected heap totals and DOM count for the passage template.",
      "evidence": "The loaded passage retained about 20MB self size with 363k heap nodes and 3,802 DOM elements, proportionate to the content-rich template.",
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/memory-metrics.json"
      ]
    },
    {
      "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 in either top summary; closures and arrays did not grow across snapshots.",
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post.heapsnapshot"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04",
        "F05",
        "F06"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F07",
        "F08"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F10",
        "F11",
        "F12",
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F14",
        "F15",
        "F16",
        "F17"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F19",
        "F20",
        "F21",
        "F22"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F23",
        "F24",
        "F25",
        "F26",
        "F27"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F28",
        "F29"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F30",
        "F31",
        "F32"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F33",
        "F34",
        "F35"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "This public reading/search site exposes crawlable content but no declared agent-facing action or on-device inference use case; the emerging capability is not required. This public reading/search site exposes crawlable content but no declared agent-facing action or on-device inference use case; the emerging capability is not required."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and primary search entry; represents global navigation, consent, promotions, footer, and search form.",
      "url": "https://www.biblegateway.com/",
      "conditions": [
        "desktop first load",
        "360x800",
        "dark",
        "higher contrast",
        "reduced motion",
        "keyboard focus",
        "no JavaScript"
      ],
      "result": "issues"
    },
    {
      "id": "passage",
      "description": "John 3:16 NIV passage; represents the core reading result, tools, recommendations, and long content template.",
      "url": "https://www.biblegateway.com/passage/?search=John%203%3A16&version=NIV",
      "conditions": [
        "desktop",
        "360x800",
        "dark",
        "no JavaScript",
        "performance trace",
        "HAR",
        "heap interaction cycle"
      ],
      "result": "issues"
    },
    {
      "id": "version",
      "description": "NIV version information; represents a content/detail and Bible-book-list template.",
      "url": "https://www.biblegateway.com/versions/New-International-Version-NIV-Bible/",
      "conditions": [
        "desktop",
        "DOM metadata"
      ],
      "result": "issues"
    },
    {
      "id": "empty-search",
      "description": "Impossible keyword query; represents loading completion, empty state, and recovery guidance.",
      "url": "https://www.biblegateway.com/quicksearch/?quicksearch=notarealbiblequeryxyz&version=NIV",
      "conditions": [
        "desktop",
        "invalid query"
      ],
      "result": "pass"
    },
    {
      "id": "login",
      "description": "Global Log In/Sign Up destination; represents account and authentication entry.",
      "url": "https://www.biblegateway.com/login/",
      "conditions": [
        "desktop",
        "direct navigation"
      ],
      "result": "failed"
    },
    {
      "id": "learn-excluded",
      "description": "News & Knowledge route returned the same Content Unavailable template and was excluded as duplicate error coverage.",
      "url": "https://www.biblegateway.com/learn/",
      "conditions": [
        "desktop"
      ],
      "result": "skipped"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "medium",
      "confidence": "high",
      "summary": "The site ignores the user’s dark color-scheme preference.",
      "evidence": "The preference probe matched dark mode but reported body background rgb(250,248,247), black text, and colorScheme normal; the dark passage screenshot remains light.",
      "suggestedFix": "Declare color-scheme and use prefers-color-scheme or light-dark() tokens for surfaces, text, controls, and browser chrome.",
      "effort": "medium",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/preferences-probe.json",
        "evidence/passage-dark.png"
      ]
    },
    {
      "id": "F02",
      "severity": "low",
      "confidence": "medium",
      "summary": "Page and state changes use abrupt swaps rather than View Transitions.",
      "evidence": "Rendered CSS inspection across home, passage, and version templates found no view-transition rules or API markers; navigation is traditional full-page replacement.",
      "suggestedFix": "Progressively add same-origin cross-document View Transitions and reduced-motion-safe directional cues for primary navigation.",
      "effort": "medium",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/passage-probe.json"
      ]
    },
    {
      "id": "F03",
      "severity": "low",
      "confidence": "medium",
      "summary": "Long reading pages have no scroll-state-aware navigation or reading-position cue.",
      "evidence": "The passage is a long 2,582px mobile document, while CSS inspection found no scroll-state query or progress-indicator technique.",
      "suggestedFix": "Add a lightweight reading progress indicator or scroll-state-aware compact header without obscuring text.",
      "effort": "small",
      "pathId": "passage",
      "url": "https://www.biblegateway.com/passage/?search=John%203%3A16&version=NIV",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "shrinking-header-on-scroll",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/passage-mobile-layout.json",
        "evidence/passage-probe.json"
      ]
    },
    {
      "id": "F04",
      "severity": "high",
      "confidence": "high",
      "summary": "The initial privacy wall and promotion displace the core Bible task.",
      "evidence": "Desktop and 360px screenshots show a consent surface for 545 partners consuming most of the viewport, followed by a persistent promotion; Scripture/search is not visible initially.",
      "suggestedFix": "Reduce consent scope and copy, keep Reject as easy as Accept, and present a compact, accessible consent layer that does not crowd out the primary task.",
      "effort": "medium",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "id": "F05",
      "severity": "medium",
      "confidence": "medium",
      "summary": "The consent experience is implemented as a large role=dialog subtree rather than a native dialog primitive.",
      "evidence": "DOM evidence found [role=dialog] spanning 780×321px and no native dialog, popover, or details elements across the inspected templates.",
      "suggestedFix": "Use a native dialog for truly modal consent and native popover/details for transient disclosures, preserving focus, Escape, and platform dismissal behavior.",
      "effort": "large",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ]
    },
    {
      "id": "F06",
      "severity": "high",
      "confidence": "high",
      "summary": "Application chrome dominates the first viewport.",
      "evidence": "Screenshots show consent, masthead, a bright sales banner, and a large blank ad slot before the search or passage content.",
      "suggestedFix": "Remove or defer low-value promotional chrome and reserve a content-first first viewport around search and Scripture.",
      "effort": "medium",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "reduce-style-repetition",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/passage-dark.png"
      ]
    },
    {
      "id": "F07",
      "severity": "low",
      "confidence": "medium",
      "summary": "Responsive behavior is viewport-driven rather than component-aware.",
      "evidence": "CSS inspection across reusable search, navigation, passage, and version surfaces found no @container or container-type rules.",
      "suggestedFix": "Adopt container queries for reused search/navigation/sidebar components while retaining a viewport fallback where needed.",
      "effort": "medium",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/passage-probe.json"
      ]
    },
    {
      "id": "F08",
      "severity": "medium",
      "confidence": "high",
      "summary": "Many interactive targets are too small even though keyboard focus is visible.",
      "evidence": "The home probe found 11 of 20 visible controls below 24px in one dimension; the passage found 43 of 334. Focus received a visible 1px auto outline.",
      "suggestedFix": "Increase compact icon and link hit areas toward WCAG 2.2 target sizing, preserve visible :focus-visible, and avoid hover-only meaning.",
      "effort": "medium",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/passage-probe.json"
      ]
    },
    {
      "id": "F09",
      "severity": "high",
      "confidence": "high",
      "summary": "The primary Scripture search is hidden below consent, sales, and ad chrome.",
      "evidence": "The first-view screenshots contain no search field or page heading; the home DOM has no H1. Search becomes clear only after consent and scrolling.",
      "suggestedFix": "Put a descriptive heading and the passage/keyword search in the first content viewport, ahead of promotions and ad inventory.",
      "effort": "medium",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-purpose-and-primary-action",
      "guidanceId": "scrollability-affordance-hints",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-probe.json"
      ]
    },
    {
      "id": "F10",
      "severity": "high",
      "confidence": "high",
      "summary": "The passage template misses good lab Core Web Vitals.",
      "evidence": "Lighthouse measured LCP 5.8s and CLS 0.699 on the passage (performance 49); the home also measured CLS 0.699.",
      "suggestedFix": "Reserve dynamic regions, prioritize the actual LCP content, and retest LCP/CLS under mobile throttling until LCP ≤2.5s and CLS ≤0.1.",
      "effort": "large",
      "pathId": "passage",
      "url": "https://www.biblegateway.com/passage/?search=John%203%3A16&version=NIV",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "artifacts": [
        "evidence/passage-lighthouse-summary.json",
        "evidence/home-lighthouse-summary.json",
        "evidence/passage-mobile-layout.json"
      ]
    },
    {
      "id": "F11",
      "severity": "medium",
      "confidence": "high",
      "summary": "Large late shifts make the page visually unstable.",
      "evidence": "Lighthouse reported CLS 0.699; the mobile layout observer also recorded a 0.816 shift after late UI changes. All 25 passage images lack width/height attributes.",
      "suggestedFix": "Reserve dimensions for ads, consent/promo regions, and images; stabilize font and dynamic-slot geometry before paint.",
      "effort": "medium",
      "pathId": "passage",
      "url": "https://www.biblegateway.com/passage/?search=John%203%3A16&version=NIV",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "visual-stability",
      "guidanceId": "visually-stable-font-fallbacks",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/passage-lighthouse-summary.json",
        "evidence/passage-mobile-layout.json",
        "evidence/passage-images.json"
      ]
    },
    {
      "id": "F12",
      "severity": "medium",
      "confidence": "high",
      "summary": "Parser-blocking and poorly cached resources delay content delivery.",
      "evidence": "HAR identified synchronous head scripts init.min.js and otSDKStub.js; DOM confirmed neither async nor defer. Numerous cover images lacked cache headers.",
      "suggestedFix": "Defer non-critical scripts, keep consent bootstrap minimal, avoid duplicate CSS delivery, and apply long-lived immutable caching to versioned images/assets.",
      "effort": "medium",
      "pathId": "passage",
      "url": "https://www.biblegateway.com/passage/?search=John%203%3A16&version=NIV",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-script-priority",
      "guidanceCategory": "performance",
      "artifacts": [
        "evidence/passage-summary.json",
        "evidence/passage-blocking-probe.json"
      ]
    },
    {
      "id": "F13",
      "severity": "medium",
      "confidence": "high",
      "summary": "The passage ships substantial unused consent and template code.",
      "evidence": "Lighthouse identified about 122KB of OneTrust JavaScript and 19.6KB of consent CSS as largely unused, plus additional unused passage CSS/JS.",
      "suggestedFix": "Load consent capabilities on demand, tree-shake template bundles, and split sidebar/premium features from the core verse path.",
      "effort": "medium",
      "pathId": "passage",
      "url": "https://www.biblegateway.com/passage/?search=John%203%3A16&version=NIV",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "artifacts": [
        "evidence/passage-lighthouse-summary.json"
      ]
    },
    {
      "id": "F14",
      "severity": "high",
      "confidence": "high",
      "summary": "The passage has unnamed controls and invalid accessibility semantics.",
      "evidence": "Lighthouse accessibility scored 84 and failed button-name, aria-prohibited-attr, list semantics, and accessibility-tree checks; the image audit also found a missing alt attribute.",
      "suggestedFix": "Give every icon button an accessible name, remove prohibited ARIA, repair list ownership, and provide appropriate alt text or empty alt for decoration.",
      "effort": "medium",
      "pathId": "passage",
      "url": "https://www.biblegateway.com/passage/?search=John%203%3A16&version=NIV",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "artifacts": [
        "evidence/passage-lighthouse-summary.json",
        "evidence/passage-images.json"
      ]
    },
    {
      "id": "F15",
      "severity": "medium",
      "confidence": "high",
      "summary": "Some text and controls fail minimum color contrast.",
      "evidence": "Lighthouse failed color-contrast on both home and passage, with concrete failing nodes recorded in its audit tables.",
      "suggestedFix": "Adjust semantic color tokens to meet WCAG AA in normal, dark, and high-contrast conditions.",
      "effort": "small",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "artifacts": [
        "evidence/home-lighthouse-summary.json",
        "evidence/passage-lighthouse-summary.json"
      ]
    },
    {
      "id": "F16",
      "severity": "medium",
      "confidence": "high",
      "summary": "Heading and list structure does not consistently match reading order.",
      "evidence": "The home has no H1 and starts at H3; passage Lighthouse failed heading-order and list structure while finding a visible keyboard outline.",
      "suggestedFix": "Add one descriptive H1 per template, use sequential heading levels, and keep only li/script/template as direct ul/ol children.",
      "effort": "medium",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/passage-lighthouse-summary.json"
      ]
    },
    {
      "id": "F17",
      "severity": "medium",
      "confidence": "high",
      "summary": "Reflow works, but target sizing remains inadequate.",
      "evidence": "At 360px both tested templates had zero horizontal overflow, yet probes counted 11 small controls on home and 43 on passage.",
      "suggestedFix": "Retain the fluid layout and enlarge hit areas without reducing text zoom or introducing fixed widths.",
      "effort": "medium",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/passage-mobile-layout.json",
        "evidence/passage-probe.json"
      ]
    },
    {
      "id": "F18",
      "severity": "medium",
      "confidence": "high",
      "summary": "Image markup is not dimensionally sound.",
      "evidence": "All 25 passage images lacked width/height and Lighthouse found an incorrectly displayed image aspect ratio.",
      "suggestedFix": "Emit intrinsic width and height (or stable aspect-ratio) and preserve each source image’s native ratio.",
      "effort": "small",
      "pathId": "passage",
      "url": "https://www.biblegateway.com/passage/?search=John%203%3A16&version=NIV",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "artifacts": [
        "evidence/passage-images.json",
        "evidence/passage-lighthouse-summary.json"
      ]
    },
    {
      "id": "F19",
      "severity": "low",
      "confidence": "high",
      "summary": "The version-information template lacks a meta description.",
      "evidence": "The version probe found a descriptive title but no meta description.",
      "suggestedFix": "Generate a concise, unique description from the version name and visible version information.",
      "effort": "trivial",
      "pathId": "version",
      "url": "https://www.biblegateway.com/versions/New-International-Version-NIV-Bible/",
      "principleId": "be-discoverable",
      "principleCheckId": "title-and-description",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "artifacts": [
        "evidence/version-probe.json"
      ]
    },
    {
      "id": "F20",
      "severity": "medium",
      "confidence": "high",
      "summary": "Some homepage links are not crawlable anchors.",
      "evidence": "Lighthouse SEO scored 92 on home and failed crawlable-anchors, although viewport metadata and most real href links were present.",
      "suggestedFix": "Use real href URLs for all navigational links; reserve buttons for same-page actions.",
      "effort": "small",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "artifacts": [
        "evidence/home-lighthouse-summary.json",
        "evidence/home-route-probe.json"
      ]
    },
    {
      "id": "F21",
      "severity": "medium",
      "confidence": "high",
      "summary": "Indexing signals are incomplete across a multilingual public site.",
      "evidence": "Canonical URLs were present, but /sitemap.xml returned HTTP 403 to the browser probe and no hreflang links were found on English pages despite an explicit Spanish version.",
      "suggestedFix": "Serve a crawler-accessible sitemap and add reciprocal hreflang/default annotations for localized equivalents.",
      "effort": "medium",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "artifacts": [
        "evidence/recon-routes.json",
        "evidence/home-probe.json",
        "evidence/passage-probe.json"
      ]
    },
    {
      "id": "F22",
      "severity": "low",
      "confidence": "medium",
      "summary": "Rich public content lacks structured data.",
      "evidence": "The passage has accurate Open Graph fields but no JSON-LD; the version template has only a generic sharing image.",
      "suggestedFix": "Add accurate schema.org JSON-LD for WebSite/SearchAction and appropriate CreativeWork/Article entities, aligned with visible content.",
      "effort": "medium",
      "pathId": "passage",
      "url": "https://www.biblegateway.com/passage/?search=John%203%3A16&version=NIV",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "artifacts": [
        "evidence/passage-probe.json",
        "evidence/version-probe.json"
      ]
    },
    {
      "id": "F23",
      "severity": "high",
      "confidence": "high",
      "summary": "Core browser security headers are missing.",
      "evidence": "HTTPS and HSTS were present, but the header audit found no CSP, X-Content-Type-Options, clickjacking protection, Referrer-Policy, or Permissions-Policy.",
      "suggestedFix": "Deploy a restrictive CSP (including frame-ancestors), nosniff, a privacy-preserving Referrer-Policy, and a minimal Permissions-Policy.",
      "effort": "medium",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "artifacts": [
        "evidence/home-headers.json"
      ]
    },
    {
      "id": "F24",
      "severity": "low",
      "confidence": "high",
      "summary": "The consent cookie is not marked Secure.",
      "evidence": "Cookie evidence found OptanonConsent on .biblegateway.com with Secure=false, SameSite=Lax, and a 365-day expiry.",
      "suggestedFix": "Set Secure on all production cookies and review whether a full-year consent lifetime is necessary.",
      "effort": "trivial",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "artifacts": [
        "evidence/home-cookies.json"
      ]
    },
    {
      "id": "F25",
      "severity": "high",
      "confidence": "high",
      "summary": "The consent and third-party footprint is disproportionate for a text-reading task.",
      "evidence": "The consent UI describes 545 partners and device-characteristic scanning. The passage transferred 851,512 third-party bytes (78% of 1.09MB), including 413,746 bytes from OneTrust.",
      "suggestedFix": "Minimize partner purposes and vendors, load only strictly necessary consent code before choice, and defer optional third parties until explicit consent and user need.",
      "effort": "large",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/passage-summary.json",
        "evidence/home-trackers.json"
      ]
    },
    {
      "id": "F26",
      "severity": "medium",
      "confidence": "high",
      "summary": "The advertised sign-in surface is unavailable, preventing a modern-auth experience.",
      "evidence": "The prominent Log In/Sign Up link resolves to a “Content Unavailable” page with no controls; no permission prompt fired on the inspected entry path.",
      "suggestedFix": "Restore the account path and offer passkey/WebAuthn sign-in with password fallback and correct autocomplete tokens.",
      "effort": "large",
      "pathId": "login",
      "url": "https://www.biblegateway.com/login/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "passkeys",
      "guidanceCategory": "passkeys",
      "artifacts": [
        "evidence/login-desktop.png",
        "evidence/login-probe.json"
      ]
    },
    {
      "id": "F27",
      "severity": "high",
      "confidence": "high",
      "summary": "Browser-enforced defenses beyond HSTS are absent.",
      "evidence": "The response had HSTS but no frame-ancestors/X-Frame-Options, Referrer-Policy, Permissions-Policy, CSP, or nosniff.",
      "suggestedFix": "Add defense-in-depth headers, test embedding requirements, and consider Trusted Types for script-heavy surfaces.",
      "effort": "medium",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "artifacts": [
        "evidence/home-headers.json"
      ]
    },
    {
      "id": "F28",
      "severity": "medium",
      "confidence": "high",
      "summary": "The consent layer is a fragile, oversized custom runtime surface.",
      "evidence": "At 360×800 the consent UI consumes roughly 650px before site navigation; DOM inspection found custom role=dialog markup rather than native dialog behavior.",
      "suggestedFix": "Use a bounded native dialog with robust focus management, overflow scrolling, Escape policy, and content visible around or immediately after dismissal.",
      "effort": "large",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "be-resilient",
      "principleCheckId": "resilient-runtime-behaviour",
      "guidanceId": "resilient-context-menus-and-nested-dropdowns",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-dom.json"
      ]
    },
    {
      "id": "F29",
      "severity": "medium",
      "confidence": "high",
      "summary": "The account failure state offers no recovery action.",
      "evidence": "The login URL displays only “Content Unavailable” and an apology, with no retry, home link, support link, status detail, or alternate sign-in path.",
      "suggestedFix": "Provide actionable recovery: retry, return to reading, support/status link, and a stable error identifier while preserving context.",
      "effort": "small",
      "pathId": "login",
      "url": "https://www.biblegateway.com/login/",
      "principleId": "be-resilient",
      "principleCheckId": "network-and-http-failure-states",
      "guidanceId": "persistent-toast-notifications",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/login-desktop.png",
        "evidence/login-probe.json"
      ]
    },
    {
      "id": "F30",
      "severity": "high",
      "confidence": "high",
      "summary": "Consent asks users to authorize unusually broad sensitive profiling before content.",
      "evidence": "The full-screen notice names 545 partners, personalized advertising, device-characteristic scanning, and inference of religious or philosophical beliefs on a Bible-reading site. Reject is present, but the breadth and interruption undermine a privacy-minimizing default.",
      "suggestedFix": "Default optional purposes off, drastically reduce vendors, separate necessary from advertising purposes, and make privacy-preserving use the effortless path.",
      "effort": "large",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "id": "F31",
      "severity": "low",
      "confidence": "high",
      "summary": "Email input explicitly disables autofill.",
      "evidence": "Home and passage probes show the newsletter Email field with autocomplete=\"off\" and no visible label in the captured form metadata.",
      "suggestedFix": "Use type=email, a persistent label, and autocomplete=email; keep autocomplete off only where the task genuinely requires it.",
      "effort": "trivial",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "autofill-highlight-inputs",
      "guidanceCategory": "forms",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/passage-probe.json"
      ]
    },
    {
      "id": "F32",
      "severity": "high",
      "confidence": "high",
      "summary": "Account entry is a dead end.",
      "evidence": "Log In/Sign Up links users to a noindex “Content Unavailable” page with no sign-in, cancellation, recovery, or support controls.",
      "suggestedFix": "Restore a clear, secure sign-in/account flow with recovery and passkey support, then test end-to-end from the global header.",
      "effort": "large",
      "pathId": "login",
      "url": "https://www.biblegateway.com/login/",
      "principleId": "be-trustworthy",
      "principleCheckId": "safe-commercial-and-account-flows",
      "guidanceId": "passkey-authentication",
      "guidanceCategory": "passkeys",
      "artifacts": [
        "evidence/login-desktop.png",
        "evidence/login-probe.json"
      ]
    },
    {
      "id": "F33",
      "severity": "medium",
      "confidence": "high",
      "summary": "Below-fold imagery is delivered in legacy, unstable markup.",
      "evidence": "The passage image audit found 24 legacy JPG/PNG images, 24 below-fold images not lazy-loaded, 25 without dimensions, and nearly all without responsive sources.",
      "suggestedFix": "Use AVIF/WebP where beneficial, lazy-load below-fold covers, provide srcset/sizes, and emit intrinsic dimensions.",
      "effort": "medium",
      "pathId": "passage",
      "url": "https://www.biblegateway.com/passage/?search=John%203%3A16&version=NIV",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/passage-images.json",
        "evidence/passage-summary.json"
      ]
    },
    {
      "id": "F34",
      "severity": "medium",
      "confidence": "high",
      "summary": "The initial request graph fetches work unrelated to reading one verse.",
      "evidence": "The passage made 76 requests, including 24 eager below-fold images and 26 fetch/XHR requests; 413KB of OneTrust resources dominated optional setup.",
      "suggestedFix": "Defer recommendations, cover art, and nonessential consent/vendor datasets until interaction or idle after core content.",
      "effort": "medium",
      "pathId": "global",
      "url": "https://www.biblegateway.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "deprioritize-background-fetches",
      "guidanceCategory": "performance",
      "artifacts": [
        "evidence/passage-summary.json",
        "evidence/passage-images.json"
      ]
    },
    {
      "id": "F35",
      "severity": "high",
      "confidence": "high",
      "summary": "Third parties consume most transferred bytes.",
      "evidence": "The HAR recorded 35 third-party requests and 851,512 third-party bytes out of 1,090,146 total; OneTrust alone used about 414KB.",
      "suggestedFix": "Set a third-party byte/request budget, self-host or eliminate low-value dependencies, and gate optional media and vendor code behind intent.",
      "effort": "large",
      "pathId": "passage",
      "url": "https://www.biblegateway.com/passage/?search=John%203%3A16&version=NIV",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "efficient-background-processing",
      "guidanceCategory": "performance",
      "artifacts": [
        "evidence/passage-summary.json"
      ]
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Replace the broad consent wall with a privacy-minimizing, content-first consent experience",
      "priority": 1,
      "findingIds": [
        "F04",
        "F05",
        "F25",
        "F30",
        "F35"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Stabilize dynamic slots and optimize passage LCP",
      "priority": 2,
      "findingIds": [
        "F10",
        "F11",
        "F18"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Restore and secure the account/sign-in journey",
      "priority": 3,
      "findingIds": [
        "F26",
        "F29",
        "F32"
      ],
      "guidanceId": "passkey-authentication",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Deploy CSP and the missing defense-in-depth headers",
      "priority": 4,
      "findingIds": [
        "F23",
        "F27",
        "F24"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Repair accessible names, ARIA/list/heading semantics, contrast, and target sizes",
      "priority": 5,
      "findingIds": [
        "F08",
        "F14",
        "F15",
        "F16",
        "F17"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Defer parser-blocking, unused, and below-fold resources",
      "priority": 6,
      "findingIds": [
        "F12",
        "F13",
        "F33",
        "F34"
      ],
      "guidanceId": "deprioritize-background-fetches",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Put search and Scripture ahead of promotional chrome",
      "priority": 7,
      "findingIds": [
        "F06",
        "F09"
      ],
      "guidanceId": "scrollability-affordance-hints",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Complete crawlability, sitemap, hreflang, and structured metadata",
      "priority": 8,
      "findingIds": [
        "F19",
        "F20",
        "F21",
        "F22"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Add preference-aware theming and progressive navigation transitions",
      "priority": 9,
      "findingIds": [
        "F01",
        "F02",
        "F03"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Modernize responsive component and autofill behavior",
      "priority": 10,
      "findingIds": [
        "F07",
        "F31"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-20T10-14-24-952Z"
}
