{
  "url": "https://pubmed.ncbi.nlm.nih.gov",
  "auditedAt": "2026-07-27T23:35:11.629Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage complete. A browser anti-automation CAPTCHA blocked rendered inspection of the article detail archetype; its successful 200 raw HTML was inspected instead, and all registered checks were judged using the remaining rendered paths plus raw article evidence.",
  "page": {
    "appType": "mpa",
    "framework": "server-rendered application with progressive client-side enhancement",
    "notes": "Text-first biomedical literature search. Representative article rendering triggered reCAPTCHA in headless Chrome, while an ordinary-User-Agent raw request returned the complete article HTML."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "Lighthouse",
    "raw HTTP fetch",
    "Modern Web Guidance 0.0.172"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "adapt-scrollbar-to-contrast-preferences",
    "same-document-transitions",
    "scrollytelling",
    "physics-based-easing",
    "shrinking-header-on-scroll",
    "anchor-positioning-tab-underline",
    "directional-navigation-transitions",
    "light-dismiss-a-dialog",
    "declarative-dialog-popover-control",
    "complex-shapes",
    "fluid-scaling",
    "size-aware-styling",
    "touch target size hover fallback pointer input focus-visible",
    "direct user attention primary action visual hierarchy task success",
    "forms",
    "accessible-error-announcement",
    "identify-inp-causes",
    "visually-stable-font-fallbacks",
    "break-up-long-tasks",
    "optimize-image-priority",
    "identify-heavy-scripts",
    "color contrast WCAG text legibility",
    "move-dom-element-without-losing-state",
    "improve-text-layout-and-legibility",
    "avoid console errors uncaught exceptions",
    "css",
    "html",
    "page title meta description seo",
    "crawlable links viewport meta robots descriptive link text",
    "canonical hreflang http status robots sitemap noindex seo indexing",
    "structured data schema.org json-ld open graph social preview metadata",
    "security",
    "privacy",
    "passkeys",
    "flicker-free-client-side-ab-testing",
    "resilient-context-menus-and-nested-dropdowns",
    "offline fallback service worker web app manifest installable pwa",
    "persistent-toast-notifications",
    "translator",
    "support-global-calendar-systems",
    "coordinate-global-events",
    "custom-button-actions",
    "autofill-address-form",
    "autofill-payment-form",
    "deliver-optimized-decorative-images",
    "deprioritize-background-fetches",
    "webmcp",
    "language-model",
    "memory leak retained heap growth under repeated interaction long single-page-app session",
    "bounded memory footprint javascript heap size page weight proportionate allocations",
    "manage-recurring-intervals"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/advanced-mobile.png",
      "caption": "advanced mobile",
      "findingIds": [
        "F004"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/advanced-probe.json",
      "caption": "advanced probe",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/article-desktop.png",
      "caption": "article desktop",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-crawler.png",
      "caption": "article discoverability crawler",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-rendered.png",
      "caption": "article discoverability rendered",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/article-discoverability.json",
      "caption": "article discoverability",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/article-images.json",
      "caption": "article images",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/article-raw-probe.json",
      "caption": "article raw probe",
      "findingIds": [
        "F009"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/article-raw.html",
      "caption": "article raw",
      "findingIds": [
        "F009"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies",
      "findingIds": [
        "F010"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/error-404-probe.json",
      "caption": "error 404 probe",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/error-404.png",
      "caption": "error 404",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance-consulted.json",
      "caption": "guidance consulted",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance-dark-patterns.json",
      "caption": "guidance dark patterns",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance-list.json",
      "caption": "guidance list",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers",
      "findingIds": [
        "F010",
        "F012"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.heapsnapshot",
      "caption": "heap baseline",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-interaction.heapsnapshot",
      "caption": "heap post interaction",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.heapsnapshot",
      "caption": "heap post",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-contrast.png",
      "caption": "home contrast",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark",
      "findingIds": [
        "F001"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": []
    },
    {
      "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": [
        "F016"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-recon.json",
      "caption": "home recon",
      "findingIds": []
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-search.json",
      "caption": "lighthouse search",
      "findingIds": [
        "F005",
        "F006",
        "F007",
        "F008"
      ]
    },
    {
      "type": "other",
      "path": "evidence/memory-metrics.json",
      "caption": "memory metrics",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/reduced-motion-probe.json",
      "caption": "reduced motion probe",
      "findingIds": [
        "F001"
      ]
    },
    {
      "type": "other",
      "path": "evidence/robots-txt.txt",
      "caption": "robots txt",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/search-buttons.json",
      "caption": "search buttons",
      "findingIds": [
        "F003"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/search-layout-mobile.json",
      "caption": "search layout mobile",
      "findingIds": [
        "F008"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/search-mobile.png",
      "caption": "search mobile",
      "findingIds": [
        "F004"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/search-probe.json",
      "caption": "search probe",
      "findingIds": [
        "F002",
        "F003",
        "F004",
        "F006",
        "F013",
        "F016"
      ]
    },
    {
      "type": "other",
      "path": "evidence/search-reduced-motion.json",
      "caption": "search reduced motion",
      "findingIds": []
    },
    {
      "type": "har-summary",
      "path": "evidence/search-summary.json",
      "caption": "search summary",
      "findingIds": [
        "F006",
        "F007",
        "F011",
        "F014",
        "F015"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/search-trace-summary.json",
      "caption": "search trace summary",
      "findingIds": [
        "F005"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/search-trace.json",
      "caption": "search trace",
      "findingIds": []
    },
    {
      "type": "har",
      "path": "evidence/search.har",
      "caption": "search",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers",
      "findingIds": [
        "F011",
        "F014"
      ]
    }
  ],
  "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 artifact review against consulted Modern Web Guidance",
      "evidence": "The dark-condition screenshot is visually identical to the normal capture, while the reduced-motion computed probe reports body background rgb(255,255,255) and color-scheme: normal.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/reduced-motion-probe.json"
      ],
      "findingIds": [
        "F001"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "evaluate under reduced motion",
      "evidence": "The search page reported zero active animations under prefers-reduced-motion: reduce, while the normal probe observed animations.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-reduced-motion.json",
        "evidence/search-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "forced-colors/high-contrast screenshot",
      "evidence": "The forced-colors capture preserves visible text, search controls, outlines, and links with system colors.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-contrast.png"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review against consulted Modern Web Guidance",
      "evidence": "The search CSS/DOM probe found no view-transition declarations despite pagination, filters, save panels, and result-state changes.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-probe.json"
      ],
      "findingIds": [
        "F002"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "pass",
      "confidence": "high",
      "method": "CSS and runtime probe",
      "evidence": "No scroll-linked animation is present, so the page does not use main-thread scroll handlers for a visual effect.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-probe.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "visual and DOM inspection",
      "evidence": "Search, pagination, and builder controls use ordinary platform click, scroll, select, and text interactions without custom gesture handling.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-mobile.png",
        "evidence/advanced-probe.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "mobile screenshot and layout inspection",
      "evidence": "The mobile result view keeps search, sort, pagination, and result context clear without an obstructive sticky header.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-mobile.png",
        "evidence/search-layout-mobile.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-page recon",
      "evidence": "No tooltip or viewport-edge anchored overlay was required in the representative core flow; existing menus were judged under semantic overlays.",
      "reason": "No tooltip or viewport-edge anchored overlay was required in the representative core flow; existing menus were judged under semantic overlays."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "mobile screenshot",
      "evidence": "Clear result count, pagination, ordered result numbers, blue titles, and search controls guide attention through the result list.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-mobile.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "pass",
      "confidence": "high",
      "method": "load screenshots",
      "evidence": "Home, search, and advanced pages load without an interstitial or content-obscuring consent wall.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/search-mobile.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review against consulted Modern Web Guidance",
      "evidence": "The search probe found 0 dialog, 0 popover, and 0 details elements while the DOM exposes Save, Email, Send to, citation, RSS, and filter panels with custom trigger/cancel wiring.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-probe.json",
        "evidence/search-buttons.json"
      ],
      "findingIds": [
        "F003"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "visual review",
      "evidence": "The home hero centers the search task and the result view gives most vertical space to citations rather than decorative application chrome.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/search-mobile.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "mobile layout metrics",
      "evidence": "At 360x800, scrollWidth and clientWidth are both 360 with 0 horizontal overflow; the viewport meta is present.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-layout-mobile.json",
        "evidence/search-mobile.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review against consulted Modern Web Guidance",
      "evidence": "The live stylesheet probe found no @container rules. Mobile screenshots show a good viewport adaptation, but reusable result, search, and builder components have no container-query behavior.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-probe.json",
        "evidence/search-mobile.png",
        "evidence/advanced-mobile.png"
      ],
      "findingIds": [
        "F004"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse accessibility and visual inspection",
      "evidence": "Lighthouse accessibility scored 1.0; visible mobile controls are touch-sized and labelled, and desktop controls use native focusable elements.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/lighthouse-search.json",
        "evidence/search-mobile.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "first-viewport screenshots",
      "evidence": "The home page states the biomedical citation scope and prominently presents Search; results retain the query and result count.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/search-mobile.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "search journey",
      "evidence": "A GET search for cancer completed directly from the home search pattern to 5,667,691 results with pagination and citation actions.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/search-mobile.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "404 exercise",
      "evidence": "The dedicated 404 page clearly says page not found and offers NCBI Home, Help Desk, and Search recovery choices.",
      "pathIds": [
        "error"
      ],
      "artifacts": [
        "evidence/error-404.png",
        "evidence/error-404-probe.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review against consulted Modern Web Guidance",
      "evidence": "Lighthouse measured LCP 3.0 s and FCP 2.3 s. A separate trace was faster at LCP 1.54 s, so the slower mobile condition is the actionable case; CLS remained 0.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/lighthouse-search.json",
        "evidence/search-trace-summary.json"
      ],
      "findingIds": [
        "F005"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "mobile layout and Lighthouse",
      "evidence": "Both the layout observer and Lighthouse measured CLS 0 with no recorded shifts.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-layout-mobile.json",
        "evidence/lighthouse-search.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "trace and Lighthouse",
      "evidence": "Trace recorded 10.7 ms total blocking time with only two ~50 ms tasks; Lighthouse TBT was 90 ms, both within a responsive range.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-trace-summary.json",
        "evidence/lighthouse-search.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review against consulted Modern Web Guidance",
      "evidence": "HAR identified five parser-inserted VeryHigh-priority stylesheets; the DOM confirmed several parser scripts lack async/defer, and Lighthouse estimated 990 ms render-blocking savings.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-summary.json",
        "evidence/search-probe.json",
        "evidence/lighthouse-search.json"
      ],
      "findingIds": [
        "F006"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review against consulted Modern Web Guidance",
      "evidence": "Lighthouse estimated 303 KiB unused JavaScript and 39 KiB legacy JavaScript; HAR measured 799,880 transferred script bytes.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/lighthouse-search.json",
        "evidence/search-summary.json"
      ],
      "findingIds": [
        "F007"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse and form probes",
      "evidence": "Lighthouse accessibility scored 1.0; home and advanced search inputs have explicit labels and icon-only controls expose accessible names.",
      "pathIds": [
        "advanced"
      ],
      "artifacts": [
        "evidence/lighthouse-search.json",
        "evidence/home-recon.json",
        "evidence/advanced-probe.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse and forced-colors capture",
      "evidence": "Lighthouse accessibility scored 1.0 and the forced-colors capture preserves readable system-color contrast.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-search.json",
        "evidence/home-contrast.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse and DOM probe",
      "evidence": "Lighthouse accessibility scored 1.0; pages expose h1/h2 hierarchy, main navigation, labelled controls, and a skip link.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/lighthouse-search.json",
        "evidence/search-probe.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "multi-viewport screenshots",
      "evidence": "Home, search results, and advanced builder use readable line lengths, spacing, and unclipped text at desktop and 360px.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/search-mobile.png",
        "evidence/advanced-mobile.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "pass",
      "confidence": "high",
      "method": "mobile screenshot, layout, Lighthouse",
      "evidence": "The viewport permits scaling, mobile content reflows with no overflow, and Lighthouse accessibility scored 1.0; no caption-requiring media was present.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-layout-mobile.json",
        "evidence/lighthouse-search.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse best-practices audit",
      "evidence": "Lighthouse best-practices scored 1.0 and reported no console-error audit failure.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/lighthouse-search.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review against consulted Modern Web Guidance",
      "evidence": "Lighthouse failed the explicit width/height image audit, although the layout observer measured CLS 0 in this run.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/lighthouse-search.json",
        "evidence/search-layout-mobile.json"
      ],
      "findingIds": [
        "F008"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse and DOM probe",
      "evidence": "Lighthouse best-practices scored 1.0; no permission prompt, paste blocking, or deprecation failure appeared in the representative flow.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/lighthouse-search.json",
        "evidence/search-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "DOM and raw article probes",
      "evidence": "Home, search, advanced, and article pages provide unique descriptive titles and meta descriptions.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/search-probe.json",
        "evidence/advanced-probe.json",
        "evidence/article-raw-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "discoverability, robots, DOM",
      "evidence": "Home raw-HTML coverage is 100%, links have real hrefs, viewport metadata is present, and robots.txt allows public content while excluding state-changing endpoints.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/robots-txt.txt",
        "evidence/home-recon.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "raw status and metadata",
      "evidence": "Home and article raw fetches returned 200; article and advanced pages provide canonicals. Search noindex is intentional for query combinations, while article is index,nofollow.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/article-raw-probe.json",
        "evidence/search-probe.json",
        "evidence/robots-txt.txt"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review against consulted Modern Web Guidance",
      "evidence": "The raw 200 article HTML has descriptive title, description, canonical, and Open Graph tags, but contains zero application/ld+json blocks.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-raw-probe.json",
        "evidence/article-raw.html"
      ],
      "findingIds": [
        "F009"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review against consulted Modern Web Guidance",
      "evidence": "The headers primitive found no Content-Security-Policy. Cookie evidence found _ga_DP2X732JSX with secure=false and a 400-day lifetime. HSTS, nosniff, DENY framing, and same-origin referrer policy were present.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F010"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review against consulted Modern Web Guidance",
      "evidence": "HAR measured 43 third-party requests and 942,337 third-party bytes, including 446,606 bytes from Google Tag Manager and 106,887 from Qualtrics; trackers detected GTM and Google Analytics.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-summary.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F011"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "pass",
      "confidence": "high",
      "method": "load inspection",
      "evidence": "No geolocation/notification prompt fired on load. Authentication is external to the unauthenticated literature search and was not required for the core task.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-recon.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review against consulted Modern Web Guidance",
      "evidence": "Headers evidence found no Permissions-Policy and no CSP. HSTS and X-Frame-Options: DENY are correctly present.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F012"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "discoverability and raw HTML",
      "evidence": "Home exposes 100% rendered-content word coverage in raw HTML and the article raw response contains title, abstract description, heading, and metadata without JavaScript.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/article-raw.html",
        "evidence/article-raw-probe.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "responsive flow and error state",
      "evidence": "Home search, results, advanced builder, mobile layout, and custom panels load without clipped core controls; a CAPTCHA prevented automated rendered article inspection but raw article content remained available.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-mobile.png",
        "evidence/advanced-mobile.png",
        "evidence/article-raw-probe.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-page recon",
      "evidence": "PubMed is an intrinsically online literature database rather than an installable offline app; an offline database was not an expected core capability.",
      "reason": "PubMed is an intrinsically online literature database rather than an installable offline app; an offline database was not an expected core capability."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "404 exercise",
      "evidence": "The 404 surface identifies failure and provides home, help, and search recovery links rather than a blank shell.",
      "pathIds": [
        "error"
      ],
      "artifacts": [
        "evidence/error-404.png",
        "evidence/error-404-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review against consulted Modern Web Guidance",
      "evidence": "The probe found html lang=en, but no margin-inline or padding-inline and no dir declaration; this makes future bidirectional/localized layouts more costly.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-probe.json"
      ],
      "findingIds": [
        "F013"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-page recon",
      "evidence": "Representative public pages show bibliographic years and text but no locale-sensitive currency, number, or calendar formatting task.",
      "reason": "Representative public pages show bibliographic years and text but no locale-sensitive currency, number, or calendar formatting task."
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-page recon",
      "evidence": "No event scheduling, time-of-day, recurring interval, or time-zone-sensitive core data appeared on audited pages.",
      "reason": "No event scheduling, time-of-day, recurring interval, or time-zone-sensitive core data appeared on audited pages."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "visual and network flow inspection",
      "evidence": "No consent wall, confirmshaming, upsell, disguised ad, forced continuity, or obstructed cancellation appeared in unauthenticated search and advanced flows.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/search-mobile.png",
        "evidence/advanced-mobile.png"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "pass",
      "confidence": "high",
      "method": "advanced form and 404 inspection",
      "evidence": "Advanced fields are labelled and native required constraints are used in the saved-search panel; 404 recovery language is neutral and actionable.",
      "pathIds": [
        "advanced"
      ],
      "artifacts": [
        "evidence/advanced-probe.json",
        "evidence/error-404-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "pass",
      "confidence": "high",
      "method": "form DOM inspection",
      "evidence": "Search inputs use semantic search controls with labels; unauthenticated forms contain no address, payment, sign-in, or signup fields requiring specialized autocomplete tokens.",
      "pathIds": [
        "advanced"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/advanced-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-page recon",
      "evidence": "No checkout, subscription, payment, cancellation, or authenticated account-management flow was in unauthenticated scope.",
      "reason": "No checkout, subscription, payment, cancellation, or authenticated account-management flow was in unauthenticated scope."
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "pass",
      "confidence": "high",
      "method": "HAR and images primitive",
      "evidence": "Images transfer only 19,213 bytes and are primarily small SVG/data icons; the article page has no img elements requiring responsive raster delivery.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-summary.json",
        "evidence/article-images.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review against consulted Modern Web Guidance",
      "evidence": "The load made 43 third-party requests; GTM, federal analytics, Google Analytics, and Qualtrics scripts together account for most of the 978,202 transferred bytes.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-summary.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F014"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review against consulted Modern Web Guidance",
      "evidence": "Third parties transferred 942,337 of 978,202 bytes (96%); scripts alone transferred 799,880 bytes while the page contains primarily text citations.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/search-summary.json"
      ],
      "findingIds": [
        "F015"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "issues",
      "confidence": "high",
      "method": "Direct artifact review against consulted Modern Web Guidance",
      "evidence": "Discoverability found 100% raw-HTML coverage on the home page, but probes found no agent-tool registration or structured capability surface for search, filters, citation export, or save actions.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/search-probe.json"
      ],
      "findingIds": [
        "F016"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-page recon",
      "evidence": "No page task clearly benefits from mandatory browser-side model inference; server search and static abstracts are appropriate.",
      "reason": "No page task clearly benefits from mandatory browser-side model inference; server search and static abstracts are appropriate."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "medium",
      "method": "baseline/post heap comparison",
      "evidence": "After ten citation-trigger interactions, summarized heap was 21.58 MB versus a 20.30 MB fresh baseline (+6.3%); this bounded one-pass growth does not establish an unbounded leak.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post-interaction.heapsnapshot"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "medium",
      "method": "heap summary and metrics",
      "evidence": "Fresh search heap self-size is 20.30 MB with 348,810 V8 nodes; Performance.memory used heap was 12.53 MB for a 3,249-element result page, proportionate to the feature set.",
      "pathIds": [
        "search"
      ],
      "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": "heap constructor comparison",
      "evidence": "Neither heap summary surfaces a Detached* constructor among top retained constructors; jQuery wrapper count changed only 618 to 620 after interaction.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post-interaction.heapsnapshot"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F001"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F002"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F003"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F004"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F005",
        "F006",
        "F007"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F008"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F009"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F010",
        "F011",
        "F012"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F013"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F014",
        "F015"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F016"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and primary search entry point; represents global header, purpose, and first action.",
      "url": "https://pubmed.ncbi.nlm.nih.gov/",
      "conditions": [
        "desktop",
        "prefers-color-scheme: dark",
        "prefers-contrast: more / forced-colors",
        "prefers-reduced-motion: reduce",
        "no JavaScript crawler"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Cancer search results and primary literature-discovery journey; represents result listing, filters, pagination, citation actions, network/performance, and repeated interaction.",
      "url": "https://pubmed.ncbi.nlm.nih.gov/?term=cancer",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "prefers-reduced-motion: reduce",
        "Lighthouse mobile throttling"
      ],
      "result": "issues"
    },
    {
      "id": "advanced",
      "description": "Advanced Search Builder; represents the complex form archetype and search construction controls.",
      "url": "https://pubmed.ncbi.nlm.nih.gov/advanced/",
      "conditions": [
        "viewport: 360x800",
        "DOM/form inspection"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "Trending article detail; represents scholarly content and share/indexing metadata. Rendered headless access hit reCAPTCHA, so successful 200 raw HTML was inspected.",
      "url": "https://pubmed.ncbi.nlm.nih.gov/42468523/",
      "conditions": [
        "desktop headless browser",
        "raw HTTP with ordinary browser User-Agent",
        "no-JavaScript crawler"
      ],
      "result": "failed"
    },
    {
      "id": "error",
      "description": "404 recovery surface; represents HTTP failure and recovery behavior.",
      "url": "https://pubmed.ncbi.nlm.nih.gov/error/404/",
      "conditions": [
        "desktop"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F001",
      "severity": "medium",
      "confidence": "high",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "modern-web-guidance",
      "summary": "The site does not provide a user-preference-driven dark theme.",
      "evidence": "The dark-condition screenshot is visually identical to the normal capture, while the reduced-motion computed probe reports body background rgb(255,255,255) and color-scheme: normal.",
      "suggestedFix": "Declare color-scheme: light dark and adapt surfaces, text, controls, and browser chrome through prefers-color-scheme or light-dark().",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/reduced-motion-probe.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://pubmed.ncbi.nlm.nih.gov/"
    },
    {
      "id": "F002",
      "severity": "low",
      "confidence": "high",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Search state and panel changes do not use View Transitions.",
      "evidence": "The search CSS/DOM probe found no view-transition declarations despite pagination, filters, save panels, and result-state changes.",
      "suggestedFix": "Add same-document View Transitions to meaningful filter, pagination, and panel state changes, with reduced-motion handling.",
      "artifacts": [
        "evidence/search-probe.json"
      ],
      "effort": "medium",
      "pathId": "search",
      "url": "https://pubmed.ncbi.nlm.nih.gov/?term=cancer"
    },
    {
      "id": "F003",
      "severity": "medium",
      "confidence": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Numerous overlays and action panels use custom controls instead of native dialog or popover primitives.",
      "evidence": "The search probe found 0 dialog, 0 popover, and 0 details elements while the DOM exposes Save, Email, Send to, citation, RSS, and filter panels with custom trigger/cancel wiring.",
      "suggestedFix": "Migrate transient menus to popover and modal tasks to dialog, retaining explicit accessible names and native light-dismiss behavior.",
      "artifacts": [
        "evidence/search-probe.json",
        "evidence/search-buttons.json"
      ],
      "effort": "large",
      "pathId": "search",
      "url": "https://pubmed.ncbi.nlm.nih.gov/?term=cancer"
    },
    {
      "id": "F004",
      "severity": "low",
      "confidence": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Responsive layouts rely on viewport rules rather than component-level adaptation.",
      "evidence": "The live stylesheet probe found no @container rules. Mobile screenshots show a good viewport adaptation, but reusable result, search, and builder components have no container-query behavior.",
      "suggestedFix": "Introduce container-type and targeted @container rules for reusable search/result and builder components where they appear in different widths.",
      "artifacts": [
        "evidence/search-probe.json",
        "evidence/search-mobile.png",
        "evidence/advanced-mobile.png"
      ],
      "effort": "medium",
      "pathId": "search",
      "url": "https://pubmed.ncbi.nlm.nih.gov/?term=cancer"
    },
    {
      "id": "F005",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Throttled mobile LCP is above the good threshold.",
      "evidence": "Lighthouse measured LCP 3.0 s and FCP 2.3 s. A separate trace was faster at LCP 1.54 s, so the slower mobile condition is the actionable case; CLS remained 0.",
      "suggestedFix": "Prioritize the LCP content and shorten critical resource chains while preserving the observed zero CLS.",
      "artifacts": [
        "evidence/lighthouse-search.json",
        "evidence/search-trace-summary.json"
      ],
      "effort": "medium",
      "pathId": "search",
      "url": "https://pubmed.ncbi.nlm.nih.gov/?term=cancer"
    },
    {
      "id": "F006",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-script-priority",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Five stylesheets and synchronous scripts create avoidable critical-path work.",
      "evidence": "HAR identified five parser-inserted VeryHigh-priority stylesheets; the DOM confirmed several parser scripts lack async/defer, and Lighthouse estimated 990 ms render-blocking savings.",
      "suggestedFix": "Consolidate or split critical CSS, defer non-critical CSS, and defer or conditionally load scripts that are not required for initial results.",
      "artifacts": [
        "evidence/search-summary.json",
        "evidence/search-probe.json",
        "evidence/lighthouse-search.json"
      ],
      "effort": "large",
      "pathId": "search",
      "url": "https://pubmed.ncbi.nlm.nih.gov/?term=cancer"
    },
    {
      "id": "F007",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "modern-web-guidance",
      "summary": "The result page ships substantial unused and legacy JavaScript.",
      "evidence": "Lighthouse estimated 303 KiB unused JavaScript and 39 KiB legacy JavaScript; HAR measured 799,880 transferred script bytes.",
      "suggestedFix": "Use coverage to split page-specific bundles and conditionally load analytics, survey, export, and panel code only when needed.",
      "artifacts": [
        "evidence/lighthouse-search.json",
        "evidence/search-summary.json"
      ],
      "effort": "large",
      "pathId": "search",
      "url": "https://pubmed.ncbi.nlm.nih.gov/?term=cancer"
    },
    {
      "id": "F008",
      "severity": "low",
      "confidence": "high",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Some images do not reserve explicit dimensions.",
      "evidence": "Lighthouse failed the explicit width/height image audit, although the layout observer measured CLS 0 in this run.",
      "suggestedFix": "Set intrinsic width and height or aspect-ratio for every content image and icon represented by img.",
      "artifacts": [
        "evidence/lighthouse-search.json",
        "evidence/search-layout-mobile.json"
      ],
      "effort": "small",
      "pathId": "search",
      "url": "https://pubmed.ncbi.nlm.nih.gov/?term=cancer"
    },
    {
      "id": "F009",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "structured data schema.org json-ld open graph social preview metadata",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Article pages provide social metadata but no structured scholarly-article data.",
      "evidence": "The raw 200 article HTML has descriptive title, description, canonical, and Open Graph tags, but contains zero application/ld+json blocks.",
      "suggestedFix": "Add accurate ScholarlyArticle or MedicalScholarlyArticle JSON-LD matching the visible citation, authors, journal, date, identifiers, and abstract.",
      "artifacts": [
        "evidence/article-raw-probe.json",
        "evidence/article-raw.html"
      ],
      "effort": "medium",
      "pathId": "article",
      "url": "https://pubmed.ncbi.nlm.nih.gov/42468523/"
    },
    {
      "id": "F010",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Transport is strong, but CSP is absent and an analytics cookie is set without Secure.",
      "evidence": "The headers primitive found no Content-Security-Policy. Cookie evidence found _ga_DP2X732JSX with secure=false and a 400-day lifetime. HSTS, nosniff, DENY framing, and same-origin referrer policy were present.",
      "suggestedFix": "Deploy a nonce/hash-based CSP in report-only mode then enforce it; ensure every analytics cookie is Secure with the narrowest workable SameSite and lifetime.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://pubmed.ncbi.nlm.nih.gov/"
    },
    {
      "id": "F011",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Analytics and survey dependencies dominate the transferred page weight.",
      "evidence": "HAR measured 43 third-party requests and 942,337 third-party bytes, including 446,606 bytes from Google Tag Manager and 106,887 from Qualtrics; trackers detected GTM and Google Analytics.",
      "suggestedFix": "Minimize measurement to essential events, consolidate tags, load surveys only after contextual eligibility, and require a documented retention and consent basis.",
      "artifacts": [
        "evidence/search-summary.json",
        "evidence/trackers.json"
      ],
      "effort": "large",
      "pathId": "search",
      "url": "https://pubmed.ncbi.nlm.nih.gov/?term=cancer"
    },
    {
      "id": "F012",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "modern-web-guidance",
      "summary": "The response omits Permissions-Policy and CSP-based defenses.",
      "evidence": "Headers evidence found no Permissions-Policy and no CSP. HSTS and X-Frame-Options: DENY are correctly present.",
      "suggestedFix": "Add a restrictive Permissions-Policy and include frame-ancestors plus suitable Trusted Types policy in CSP where compatible.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://pubmed.ncbi.nlm.nih.gov/"
    },
    {
      "id": "F013",
      "severity": "low",
      "confidence": "high",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "guidanceCategory": "modern-web-guidance",
      "summary": "The globally used interface declares English but does not use CSS logical properties in the inspected search bundle.",
      "evidence": "The probe found html lang=en, but no margin-inline or padding-inline and no dir declaration; this makes future bidirectional/localized layouts more costly.",
      "suggestedFix": "Use logical inline/block properties and verify representative pages under dir=rtl; retain accurate language declarations.",
      "artifacts": [
        "evidence/search-probe.json"
      ],
      "effort": "medium",
      "pathId": "search",
      "url": "https://pubmed.ncbi.nlm.nih.gov/?term=cancer"
    },
    {
      "id": "F014",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "deprioritize-background-fetches",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Background analytics and survey code adds substantial work unrelated to the immediate literature task.",
      "evidence": "The load made 43 third-party requests; GTM, federal analytics, Google Analytics, and Qualtrics scripts together account for most of the 978,202 transferred bytes.",
      "suggestedFix": "Delay non-essential analytics and surveys until idle or contextual interaction, batch events, and remove duplicate trackers.",
      "artifacts": [
        "evidence/search-summary.json",
        "evidence/trackers.json"
      ],
      "effort": "large",
      "pathId": "search",
      "url": "https://pubmed.ncbi.nlm.nih.gov/?term=cancer"
    },
    {
      "id": "F015",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "efficient-background-processing",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Third-party JavaScript is disproportionate for a text-first search result page.",
      "evidence": "Third parties transferred 942,337 of 978,202 bytes (96%); scripts alone transferred 799,880 bytes while the page contains primarily text citations.",
      "suggestedFix": "Set a third-party byte/request budget, remove duplicate tag-manager payloads, and lazy-load Qualtrics only when a survey is shown.",
      "artifacts": [
        "evidence/search-summary.json"
      ],
      "effort": "large",
      "pathId": "search",
      "url": "https://pubmed.ncbi.nlm.nih.gov/?term=cancer"
    },
    {
      "id": "F016",
      "severity": "low",
      "confidence": "high",
      "principleId": "be-agent-ready",
      "principleCheckId": "structured-agent-capabilities",
      "guidanceId": "webmcp",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Machine-readable content is strong, but task capabilities are not exposed as structured agent tools.",
      "evidence": "Discoverability found 100% raw-HTML coverage on the home page, but probes found no agent-tool registration or structured capability surface for search, filters, citation export, or save actions.",
      "suggestedFix": "Treat this as an emerging opportunity: expose safe search, citation retrieval, and export actions through structured agent-facing tools with clear confirmation boundaries.",
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/search-probe.json"
      ],
      "effort": "large",
      "pathId": "search",
      "url": "https://pubmed.ncbi.nlm.nih.gov/?term=cancer"
    }
  ],
  "taskList": [
    {
      "id": "T001",
      "title": "Minimize, consolidate, and defer analytics, tag-manager, and Qualtrics dependencies; set a third-party byte/request budget.",
      "priority": 1,
      "findingIds": [
        "F011",
        "F014",
        "F015"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T002",
      "title": "Deploy a nonce/hash CSP, restrictive Permissions-Policy, and secure, narrowly scoped analytics cookies.",
      "priority": 2,
      "findingIds": [
        "F010",
        "F012"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T003",
      "title": "Shorten critical CSS/script chains and split unused/legacy JavaScript from initial search results.",
      "priority": 3,
      "findingIds": [
        "F005",
        "F006",
        "F007"
      ],
      "guidanceId": "optimize-script-priority",
      "status": "open"
    },
    {
      "id": "T004",
      "title": "Replace custom transient panels with native popover and modal tasks with dialog.",
      "priority": 4,
      "findingIds": [
        "F003"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T005",
      "title": "Add a preference-driven dark color scheme across every surface and control.",
      "priority": 5,
      "findingIds": [
        "F001"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T006",
      "title": "Add accurate ScholarlyArticle structured data to article details.",
      "priority": 6,
      "findingIds": [
        "F009"
      ],
      "guidanceId": "structured data schema.org json-ld open graph social preview metadata",
      "status": "open"
    },
    {
      "id": "T007",
      "title": "Adopt component container queries where search/result components are reused at different widths.",
      "priority": 7,
      "findingIds": [
        "F004"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    },
    {
      "id": "T008",
      "title": "Reserve explicit intrinsic dimensions for every img.",
      "priority": 8,
      "findingIds": [
        "F008"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T009",
      "title": "Migrate directional layout rules to CSS logical properties and test RTL.",
      "priority": 9,
      "findingIds": [
        "F013"
      ],
      "guidanceId": "translator",
      "status": "open"
    },
    {
      "id": "T010",
      "title": "Explore safe structured search, citation, and export capabilities for agents.",
      "priority": 10,
      "findingIds": [
        "F016"
      ],
      "guidanceId": "webmcp",
      "status": "open"
    },
    {
      "id": "T011",
      "title": "Use reduced-motion-aware View Transitions for meaningful result and panel state changes.",
      "priority": 11,
      "findingIds": [
        "F002"
      ],
      "guidanceId": "same-document-transitions",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 5,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-27T23-35-11-629Z"
}
