{
  "url": "https://outlook.live.com",
  "auditedAt": "2026-07-27T21:50:42.081Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete audit of the unauthenticated entry, redirected product page, related product/pricing templates and sign-in journey up to the credential boundary. Authenticated mailbox content and account-management internals were not covered.",
  "page": {
    "appType": "hybrid",
    "framework": "Microsoft Outlook boot shell redirecting to Microsoft 365 product templates; Microsoft identity sign-in",
    "notes": "Unauthenticated outlook.live.com attempts silent auth, then redirects to a localized public Microsoft 365 Outlook page. The target therefore spans an app boot/redirect plus a marketing MPA. Not covered: authenticated inbox/calendar, message compose, subscription cancellation after login, other locales beyond en-GB, and native apps."
  },
  "evidenceUsed": [
    "screenshot",
    "transition-video",
    "layout-metrics",
    "dom",
    "evaluate-probe",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "lighthouse",
    "Modern Web Guidance 0.0.172"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "component-specific-light-dark-theme",
    "adapt-scrollbar-to-contrast-preferences",
    "interactive-content-reveal",
    "scroll-snap-realtime-feedback",
    "scroll-snap-state-sync",
    "stack-drill-down",
    "carousel-slide-effects",
    "swipe-to-remove",
    "position-aware-tooltips",
    "pull-to-reveal",
    "navigation-drawer",
    "scroll-target-on-load",
    "declarative-dialog-popover-control",
    "html",
    "persistent-app-tours",
    "css-layout",
    "forms",
    "scroll-position-aware-elements",
    "css",
    "required-field-feedback",
    "validate-input-after-interaction",
    "accessible-error-announcement",
    "autofill-sign-up-form",
    "identify-heavy-scripts",
    "break-up-long-tasks",
    "performance",
    "optimize-script-priority",
    "efficient-background-processing",
    "defer-rendering-heavy-content",
    "security",
    "export-html-media-from-canvas",
    "privacy",
    "search-hidden-content",
    "passkey-reauthentication",
    "passkey-authentication",
    "passkey-management",
    "passkey-registration",
    "coordinate-global-events",
    "calculate-event-differentials",
    "capture-location-agnostic-data",
    "support-global-calendar-systems",
    "stabilize-reactive-state",
    "autofill-payment-form",
    "autofill-sign-in-form",
    "deliver-optimized-decorative-images",
    "optimize-preload-priority",
    "agentic-forms",
    "summarizer",
    "agentic-javascript-tools",
    "webmcp",
    "language-model",
    "defer-work-until-scroll-ends",
    "persistent-top-layer-ui",
    "move-dom-element-without-losing-state",
    "manage-recurring-intervals",
    "improve-text-layout-and-legibility",
    "light-dismiss-a-dialog",
    "deprioritize-background-fetches"
  ],
  "artifacts": [
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies.json",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/dark.png",
      "caption": "dark.png",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/desktop.png",
      "caption": "desktop.png",
      "findingIds": [
        "F01",
        "F04",
        "F05",
        "F06",
        "F07"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-crawler.png",
      "caption": "discoverability crawler.png",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-rendered.png",
      "caption": "discoverability rendered.png",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability.json",
      "caption": "discoverability.json",
      "findingIds": [
        "F20",
        "F24"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/dom.json",
      "caption": "dom.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/list.json",
      "caption": "guidance/list.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-accessibility.md",
      "caption": "guidance/retrieve accessibility.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-break-up-long-tasks.md",
      "caption": "guidance/retrieve break up long tasks.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-custom-button-actions.md",
      "caption": "guidance/retrieve custom button actions.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-dark-mode.md",
      "caption": "guidance/retrieve dark mode.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-deliver-optimized-decorative-images.md",
      "caption": "guidance/retrieve deliver optimized decorative images.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-flicker-free-client-side-ab-testing.md",
      "caption": "guidance/retrieve flicker free client side ab testing.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-forms.md",
      "caption": "guidance/retrieve forms.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-identify-heavy-scripts.md",
      "caption": "guidance/retrieve identify heavy scripts.md",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/guidance/retrieve-improve-text-layout-and-legibility.md",
      "caption": "guidance/retrieve improve text layout and legibility.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-light-dismiss-a-dialog.md",
      "caption": "guidance/retrieve light dismiss a dialog.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-manage-recurring-intervals.md",
      "caption": "guidance/retrieve manage recurring intervals.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-navigation-drawer.md",
      "caption": "guidance/retrieve navigation drawer.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-passkeys.md",
      "caption": "guidance/retrieve passkeys.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-performance.md",
      "caption": "guidance/retrieve performance.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-privacy.md",
      "caption": "guidance/retrieve privacy.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-same-document-transitions.md",
      "caption": "guidance/retrieve same document transitions.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-security.md",
      "caption": "guidance/retrieve security.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-size-aware-styling.md",
      "caption": "guidance/retrieve size aware styling.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-translator.md",
      "caption": "guidance/retrieve translator.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieve-webmcp.md",
      "caption": "guidance/retrieve webmcp.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/search-01.json",
      "caption": "guidance/search 01.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/search-02.json",
      "caption": "guidance/search 02.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/search-03.json",
      "caption": "guidance/search 03.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/search-04.json",
      "caption": "guidance/search 04.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/search-05.json",
      "caption": "guidance/search 05.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/search-06.json",
      "caption": "guidance/search 06.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/search-07.json",
      "caption": "guidance/search 07.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/search-08.json",
      "caption": "guidance/search 08.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/search-09.json",
      "caption": "guidance/search 09.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/search-10.json",
      "caption": "guidance/search 10.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/search-11.json",
      "caption": "guidance/search 11.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/search-12.json",
      "caption": "guidance/search 12.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/search-13.json",
      "caption": "guidance/search 13.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/search-14.json",
      "caption": "guidance/search 14.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/search-15.json",
      "caption": "guidance/search 15.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/search-16.json",
      "caption": "guidance/search 16.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/search-17.json",
      "caption": "guidance/search 17.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers.json",
      "findingIds": [
        "F19"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.heapsnapshot",
      "caption": "heap baseline.heapsnapshot",
      "findingIds": [
        "F25"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-valid.heapsnapshot",
      "caption": "heap post valid.heapsnapshot",
      "findingIds": [
        "F25",
        "F26"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.heapsnapshot",
      "caption": "heap post.heapsnapshot",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/high-contrast.png",
      "caption": "high contrast.png",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile-rejected.png",
      "caption": "home mobile rejected.png",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-rejected.png",
      "caption": "home rejected.png",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "images.json",
      "findingIds": [
        "F11",
        "F14",
        "F21"
      ]
    },
    {
      "type": "video",
      "path": "evidence/interaction.mp4",
      "caption": "interaction.mp4",
      "findingIds": [
        "F02",
        "F03"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/layout-mobile.json",
      "caption": "layout mobile.json",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-summary.json",
      "caption": "lighthouse summary.json",
      "findingIds": [
        "F08",
        "F10",
        "F12",
        "F13",
        "F15",
        "F16",
        "F18",
        "F22"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "lighthouse.json",
      "findingIds": [
        "F08"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/mobile.png",
      "caption": "mobile.png",
      "findingIds": []
    },
    {
      "type": "har-summary",
      "path": "evidence/network-summary.json",
      "caption": "network summary.json",
      "findingIds": [
        "F09",
        "F10",
        "F18",
        "F21",
        "F22",
        "F23",
        "F26"
      ]
    },
    {
      "type": "har",
      "path": "evidence/network.har",
      "caption": "network.har",
      "findingIds": [
        "F09"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/outlook-web-detail.png",
      "caption": "outlook web detail.png",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/plans.png",
      "caption": "plans.png",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/quality-probe.json",
      "caption": "quality probe.json",
      "findingIds": [
        "F11",
        "F17",
        "F23"
      ]
    },
    {
      "type": "other",
      "path": "evidence/recon-evaluate.json",
      "caption": "recon evaluate.json",
      "findingIds": [
        "F02",
        "F05",
        "F07",
        "F12",
        "F16",
        "F24"
      ]
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets.json",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/sign-in-error.png",
      "caption": "sign in error.png",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/sign-in-probe.json",
      "caption": "sign in probe.json",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/sign-in.png",
      "caption": "sign in.png",
      "findingIds": []
    },
    {
      "type": "trace-summary",
      "path": "evidence/trace-summary.json",
      "caption": "trace summary.json",
      "findingIds": []
    },
    {
      "type": "trace",
      "path": "evidence/trace.json",
      "caption": "trace.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers.json",
      "findingIds": [
        "F18"
      ]
    }
  ],
  "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": "Active evidence review for respects-color-scheme",
      "evidence": "Desktop captures under default and prefers-color-scheme: dark are pixel-identical in the visible consent and navigation surface; both remain light.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/desktop.png",
        "evidence/dark.png"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "evaluate under prefers-reduced-motion: reduce plus CSS inspection",
      "evidence": "The emulated preference matched; getAnimations() returned none and loaded CSS contains repeated prefers-reduced-motion rules.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/quality-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "forced-colors screenshot and CSS inspection",
      "evidence": "Controls, text and consent choices remain visible under forced-colors: active; CSS includes forced-colors handling.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/high-contrast.png",
        "evidence/recon-evaluate.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for view-transitions",
      "evidence": "The interaction video records a product-tab change and smooth scroll but no transition connecting the old and new tab state; the CSS feature probe found no view-transition usage.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/interaction.mp4",
        "evidence/recon-evaluate.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "No parallax, scrollytelling or scroll-linked reveal behavior was present on the representative public paths, so there is no scroll animation implementation to assess.",
      "reason": "No parallax, scrollytelling or scroll-linked reveal behavior was present on the representative public paths, so there is no scroll animation implementation to assess."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "interaction video and DOM review",
      "evidence": "Observed scrolling and tabs use native scroll/button behavior; no hostile custom drag or pointer-only interaction was found on the public paths.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/interaction.mp4",
        "evidence/recon-evaluate.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "medium",
      "method": "Active evidence review for scroll-state-aware-chrome",
      "evidence": "The mobile layout is 16,783 CSS px tall, while the interaction video and CSS probe show no progress indicator or scroll-state-aware page chrome.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/layout-mobile.json",
        "evidence/interaction.mp4"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "No tooltip, context menu or edge-positioned transient overlay was encountered on the representative paths; the consent surface is assessed under semantic overlays instead.",
      "reason": "No tooltip, context menu or edge-positioned transient overlay was encountered on the representative paths; the consent surface is assessed under semantic overlays instead."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "interaction video and keyboard-focus probe",
      "evidence": "Tab selection and in-page destinations provide labelled controls and visible focus; the page includes a skip link and “Back to tabs” return links.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/interaction.mp4",
        "evidence/quality-probe.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for no-intrusive-interruptions",
      "evidence": "The first desktop screenshot shows the cookie choice taking roughly two thirds of the viewport, followed immediately by navigation and another announcement banner; core Outlook content is not visible.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/desktop.png"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for semantic-dismissible-primitives",
      "evidence": "The rendered DOM probe found 0 dialog, 0 popover and 0 details elements while the initial surface presents cookie controls and dismissible announcement UI.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/recon-evaluate.json",
        "evidence/desktop.png"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for reduced-chrome",
      "evidence": "The initial desktop viewport contains consent copy, three consent controls, two navigation rows and an announcement bar, with no product heading or primary Outlook action visible.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/desktop.png"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "layout at 360x800 plus mobile screenshot",
      "evidence": "Layout reported scrollWidth=clientWidth=360 and 0 horizontal overflow with a viewport meta present.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/layout-mobile.json",
        "evidence/mobile.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "pass",
      "confidence": "high",
      "method": "desktop/mobile layout comparison",
      "evidence": "The same product template reflows to 360 px without overflow and uses mobile-specific hero content; behavior is adaptive even though container-query use was not observed.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/layout-mobile.json",
        "evidence/home-mobile-rejected.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "pass",
      "confidence": "high",
      "method": "programmatic focus walk and mobile layout",
      "evidence": "Visible controls produced dotted/auto focus outlines up to 3 px, and the narrow layout retained usable controls.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/quality-probe.json",
        "evidence/mobile.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for clear-purpose-and-primary-action",
      "evidence": "The entry screenshot exposes no Outlook heading, sign-in or account-creation action before consent, global navigation and an announcement; the product H1 exists lower in the DOM.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/desktop.png",
        "evidence/recon-evaluate.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "journey walkthrough to credential boundary",
      "evidence": "Entry navigation exposes Sign in and Create free account, and the sign-in page presents one email field and a clear Next action without a detour.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/recon-evaluate.json",
        "evidence/sign-in.png",
        "evidence/sign-in-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "sign-in state walkthrough",
      "evidence": "Sign-in keeps the task in context and exposes “Forgot your username?” and “Create an account” recovery paths; focus is placed in the email field.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/sign-in.png",
        "evidence/sign-in-probe.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for good-core-web-vitals",
      "evidence": "Lighthouse measured FCP 11.4 s, LCP 24.4 s, TBT 2,970 ms, CLS 0.53, and time to interactive 35.2 s; performance score was 0.05.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for visual-stability",
      "evidence": "Lighthouse measured FCP 11.4 s, LCP 24.4 s, TBT 2,970 ms, CLS 0.53, and time to interactive 35.2 s; performance score was 0.05.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for efficient-main-thread",
      "evidence": "Lighthouse measured FCP 11.4 s, LCP 24.4 s, TBT 2,970 ms, CLS 0.53, and time to interactive 35.2 s; performance score was 0.05.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for efficient-resource-delivery",
      "evidence": "HAR captured 151 requests and 9,016,578 transferred bytes: 77 scripts (4.03 MB), 27 stylesheets, 1.12 MB fonts and a 1.65 MB media file, plus many parser-inserted VeryHigh-priority stylesheets.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/network-summary.json",
        "evidence/network.har"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for trim-unused-and-duplicate-code",
      "evidence": "Lighthouse estimated 951 KiB unused JavaScript and 342 KiB unused CSS; individual bundles were 55-73% unused and global CSS files were 81-98% unused.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/network-summary.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for names-roles-labels",
      "evidence": "The images primitive found 15 images without alt text, and the quality probe found the visible search input had no associated label or ARIA label.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/quality-probe.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse a11y and forced-colors screenshot",
      "evidence": "Lighthouse color-contrast audit passed and forced-colors rendering preserved visible controls and text.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/high-contrast.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for structure-and-focus",
      "evidence": "The DOM probe found four identical H1 elements; Lighthouse reported invalid heading order where plan-card text jumps to H6. Keyboard focus indicators themselves were visible.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/recon-evaluate.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "desktop/mobile screenshots and layout review",
      "evidence": "Visible text uses readable sizing, spacing and contrast; the 360 px layout does not clip or overflow horizontally.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/desktop.png",
        "evidence/home-mobile-rejected.png",
        "evidence/layout-mobile.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "pass",
      "confidence": "high",
      "method": "mobile reflow, viewport probes and Lighthouse",
      "evidence": "The marketing viewport allows normal scaling, login explicitly allows user-scalable zoom to 2x, and mobile layout has no horizontal overflow.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/layout-mobile.json",
        "evidence/sign-in-probe.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for no-console-errors",
      "evidence": "Lighthouse captured repeated SyntaxError exceptions: LocalStorageUtil and OneCloudUtil identifiers were declared more than once.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for sound-document-and-assets",
      "evidence": "The images primitive found all 100 img elements lacked width/height attributes, three were over 2x their display width, six lacked responsive sources, and one used a legacy format.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/images.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for browser-platform-hygiene",
      "evidence": "Lighthouse reported unload listeners in both the Outlook mini-index and Microsoft telemetry code, one actionable BFCache failure, and two deprecation warnings.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "DOM metadata and Lighthouse SEO",
      "evidence": "Rendered page has a descriptive Outlook title and meta description; both Lighthouse audits passed.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/recon-evaluate.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for crawlable-and-mobile-friendly",
      "evidence": "Lighthouse found six anchors using javascript:void(0) and 26 links labelled only “Learn more”; the rendered page otherwise has a viewport meta and robots.txt is valid.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/recon-evaluate.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "DOM metadata, status and Lighthouse SEO",
      "evidence": "The public page returned 200, declares index/follow and a canonical URL, and robots.txt passed Lighthouse.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/recon-evaluate.json",
        "evidence/discoverability.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for structured-and-shareable-metadata",
      "evidence": "The quality probe found five Open Graph tags but zero JSON-LD blocks on a public software/product page.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/quality-probe.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "pass",
      "confidence": "high",
      "method": "header, cookie and secret scan",
      "evidence": "HTTPS, HSTS, CSP, nosniff, strict-origin referrer policy, frame-ancestors and Trusted Types are present; scanned cookies are Secure and no client secrets were found.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json",
        "evidence/secrets.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for data-minimisation-and-third-parties",
      "evidence": "HAR attributed 143 of 151 requests and 8.80 MB to origins other than outlook.live.com; requests include Microsoft telemetry and a third-party video origin. Lighthouse also observed 15 third-party cookies.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/network-summary.json",
        "evidence/trackers.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "pass",
      "confidence": "high",
      "method": "initial-load review and sign-in DOM probe",
      "evidence": "No browser permission prompt appeared on load; sign-in uses autocomplete=\"username webauthn\", indicating conditional WebAuthn support.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/sign-in-probe.json",
        "evidence/sign-in.png"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for defensive-browser-policies",
      "evidence": "Headers include HTTPS, HSTS, nosniff, strict-origin referrer policy, frame-ancestors and Trusted Types; however Permissions-Policy is absent and style-src allows unsafe-inline.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for progressive-enhancement",
      "evidence": "Discoverability captured 1% raw-to-rendered content coverage: raw HTML had 35 text characters and no title, H1 or meta description while the rendered page had 6,605 characters and 327 content tokens.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/discoverability.json",
        "evidence/discoverability-rendered.png",
        "evidence/discoverability-crawler.png"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "mobile/desktop walkthrough and interaction video",
      "evidence": "The tested tabs, navigation and consent controls stayed usable without clipping at desktop and 360 px.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/interaction.mp4",
        "evidence/layout-mobile.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "The audited unauthenticated surface is a public marketing/sign-in entry, not the mailbox app; installability and offline mailbox behavior require an authenticated application audit.",
      "reason": "The audited unauthenticated surface is a public marketing/sign-in entry, not the mailbox app; installability and offline mailbox behavior require an authenticated application audit."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "The selected public pages expose static marketing and an external credential boundary rather than an in-page data operation with a representative retry/stale-data state.",
      "reason": "The selected public pages expose static marketing and an external credential boundary rather than an in-page data operation with a representative retry/stale-data state."
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "DOM probes across marketing and sign-in",
      "evidence": "Marketing declares lang=en-GB and dir=ltr; sign-in declares EN-GB/ltr and serves localized copy.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/quality-probe.json",
        "evidence/sign-in-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "No rendered dates, currencies, durations or locale-sensitive numeric data appeared on the representative entry and sign-in surfaces.",
      "reason": "No rendered dates, currencies, durations or locale-sensitive numeric data appeared on the representative entry and sign-in surfaces."
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "No event time or time-zone-sensitive data is rendered on the unauthenticated marketing/sign-in surfaces.",
      "reason": "No event time or time-zone-sensitive data is rendered on the unauthenticated marketing/sign-in surfaces."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "consent, pricing and sign-in visual review",
      "evidence": "Consent presents Accept, Reject and Manage cookies with equal visual weight; sign-in and account creation are explicit and pricing is separately reachable.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/desktop.png",
        "evidence/plans.png",
        "evidence/sign-in.png"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "pass",
      "confidence": "high",
      "method": "sign-in form and recovery review",
      "evidence": "The credential step uses a labelled email input, keeps recovery adjacent, and does not validate before interaction.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/sign-in.png",
        "evidence/sign-in-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "pass",
      "confidence": "high",
      "method": "sign-in DOM probe",
      "evidence": "The email field is labelled, type=email and autocomplete=\"username webauthn\", supporting password managers and conditional passkeys.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/sign-in-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "high",
      "method": "pricing and account-entry walkthrough",
      "evidence": "Plans are reachable through descriptive pricing links; sign-in, account creation and username recovery are distinct, visible choices.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/plans.png",
        "evidence/sign-in.png",
        "evidence/recon-evaluate.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for optimised-assets",
      "evidence": "The images primitive found three oversized images, six without srcset and one legacy-format asset; the HAR includes a 424 KB PNG delivered at 2000x1283 for a 648 px display slot.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/network-summary.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for no-wasteful-work",
      "evidence": "The 9.0 MB load includes 77 scripts, telemetry, feedback, Outlook app boot code and a video player; Lighthouse estimates 951 KiB of JS and 342 KiB CSS unused.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/network-summary.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for third-party-and-media-budget",
      "evidence": "The quality probe found an autoplay video without controls or captions; HAR transferred 1.65 MB of media and 8.80 MB cross-origin on initial load.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/quality-probe.json",
        "evidence/network-summary.json"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "issues",
      "confidence": "medium",
      "method": "Active evidence review for structured-agent-capabilities",
      "evidence": "The site prominently links Copilot experiences, but DOM/source probes found no WebMCP or agent-tool registration and non-JS content coverage is only 1%.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/recon-evaluate.json",
        "evidence/discoverability.json"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "The public marketing/sign-in surface has no user task where on-device summarization or language-model inference is necessary; Outlook mailbox inference requires authenticated product scope.",
      "reason": "The public marketing/sign-in surface has no user task where on-device summarization or language-model inference is necessary; Outlook mailbox inference requires authenticated product scope."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "issues",
      "confidence": "medium",
      "method": "Active evidence review for no-leak-under-repeated-interaction",
      "evidence": "Baseline summary was 49.5 MB/653,666 nodes; after dismissing consent and exercising tabs ten times it was 59.7 MB/839,165 nodes. The capture includes one-time full-page activation, so it is a risk signal rather than proof of a leak.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post-valid.heapsnapshot"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "high",
      "method": "Active evidence review for bounded-footprint",
      "evidence": "The post-interaction heap summary reports 59.7 MB self size, 839,165 nodes and 3,056,272 edges, alongside a 9.0 MB transfer and duplicated app/marketing code.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/heap-post-valid.heapsnapshot",
        "evidence/network-summary.json"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "heap constructor-summary comparison",
      "evidence": "Neither heap summary reports Detached* constructors among retained top constructors; the Popover constructor remains stable at 167 across captures.",
      "pathIds": [
        "entry"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post-valid.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": "pass"
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08",
        "F09",
        "F10"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F11",
        "F12"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F13",
        "F14",
        "F15"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F16",
        "F17"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F18",
        "F19"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F21",
        "F22",
        "F23"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F25",
        "F26"
      ]
    }
  ],
  "paths": [
    {
      "id": "entry",
      "description": "Entry URL and redirected Outlook marketing/product page; covers discovery, consent, primary calls to action, security, performance and metadata.",
      "url": "https://outlook.live.com",
      "conditions": [
        "desktop 780x493",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "forced-colors: active"
      ],
      "result": "issues"
    },
    {
      "id": "mobile",
      "description": "Narrow viewport rendition of the entry journey; covers reflow, overflow and touch-sized layout.",
      "url": "https://outlook.live.com",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "pass"
    },
    {
      "id": "web-detail",
      "description": "Outlook on the web product-detail archetype discovered from primary navigation.",
      "url": "https://www.microsoft.com/en-gb/microsoft-365/outlook/web-email-login-for-outlook",
      "conditions": [
        "desktop"
      ],
      "result": "issues"
    },
    {
      "id": "plans",
      "description": "Consumer plans/pricing archetype discovered from the product page; reviewed for commercial clarity.",
      "url": "https://www.microsoft.com/en-gb/microsoft-365/outlook/outlook-email-plan",
      "conditions": [
        "desktop"
      ],
      "result": "pass"
    },
    {
      "id": "sign-in",
      "description": "Primary sign-in journey up to the credential boundary; reviewed for labels, autofill, recovery and modern-auth affordances.",
      "url": "https://login.live.com/",
      "conditions": [
        "desktop",
        "keyboard focus"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "modern-web-guidance",
      "summary": "The public Outlook landing experience does not adapt to a dark color-scheme preference.",
      "evidence": "Desktop captures under default and prefers-color-scheme: dark are pixel-identical in the visible consent and navigation surface; both remain light.",
      "suggestedFix": "Declare color-scheme: light dark and retint page, consent, navigation and controls with prefers-color-scheme or light-dark().",
      "artifacts": [
        "evidence/desktop.png",
        "evidence/dark.png"
      ],
      "effort": "medium",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F02",
      "severity": "low",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "interactive-content-reveal",
      "guidanceCategory": "modern-web-guidance",
      "summary": "State changes use abrupt swaps rather than coherent view transitions.",
      "evidence": "The interaction video records a product-tab change and smooth scroll but no transition connecting the old and new tab state; the CSS feature probe found no view-transition usage.",
      "suggestedFix": "Use same-document View Transitions for meaningful tab/panel changes, with reduced-motion handling.",
      "artifacts": [
        "evidence/interaction.mp4",
        "evidence/recon-evaluate.json"
      ],
      "effort": "medium",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F03",
      "severity": "low",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "scroll-position-aware-elements",
      "guidanceCategory": "modern-web-guidance",
      "summary": "The very long product page offers little position-aware guidance.",
      "evidence": "The mobile layout is 16,783 CSS px tall, while the interaction video and CSS probe show no progress indicator or scroll-state-aware page chrome.",
      "suggestedFix": "Add a lightweight scroll progress or section-aware navigation treatment that does not obscure content.",
      "artifacts": [
        "evidence/layout-mobile.json",
        "evidence/interaction.mp4"
      ],
      "effort": "small",
      "confidence": "medium",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F04",
      "severity": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Consent and announcement chrome dominate the initial viewport.",
      "evidence": "The first desktop screenshot shows the cookie choice taking roughly two thirds of the viewport, followed immediately by navigation and another announcement banner; core Outlook content is not visible.",
      "suggestedFix": "Reduce the consent panel footprint, preserve equal Accept/Reject choices, and avoid stacking another banner before primary content.",
      "artifacts": [
        "evidence/desktop.png"
      ],
      "effort": "medium",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F05",
      "severity": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Overlay-like UI is implemented without semantic dialog or popover primitives.",
      "evidence": "The rendered DOM probe found 0 dialog, 0 popover and 0 details elements while the initial surface presents cookie controls and dismissible announcement UI.",
      "suggestedFix": "Use dialog for truly modal consent and popover for transient UI, including declarative dismissal and focus management.",
      "artifacts": [
        "evidence/recon-evaluate.json",
        "evidence/desktop.png"
      ],
      "effort": "medium",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F06",
      "severity": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Application chrome crowds out the product message on entry.",
      "evidence": "The initial desktop viewport contains consent copy, three consent controls, two navigation rows and an announcement bar, with no product heading or primary Outlook action visible.",
      "suggestedFix": "Collapse redundant chrome and ensure the product purpose and primary action remain in the first viewport.",
      "artifacts": [
        "evidence/desktop.png"
      ],
      "effort": "medium",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F07",
      "severity": "medium",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-purpose-and-primary-action",
      "guidanceId": "improve-text-layout-and-legibility",
      "guidanceCategory": "modern-web-guidance",
      "summary": "The page purpose and primary Outlook action are hidden on initial load.",
      "evidence": "The entry screenshot exposes no Outlook heading, sign-in or account-creation action before consent, global navigation and an announcement; the product H1 exists lower in the DOM.",
      "suggestedFix": "Keep necessary consent compact and bring the Outlook purpose plus Sign in/Create account actions into the initial visual hierarchy.",
      "artifacts": [
        "evidence/desktop.png",
        "evidence/recon-evaluate.json"
      ],
      "effort": "medium",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F08",
      "severity": "critical",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Cold-load performance is far outside good Core Web Vitals ranges.",
      "evidence": "Lighthouse measured FCP 11.4 s, LCP 24.4 s, TBT 2,970 ms, CLS 0.53, and time to interactive 35.2 s; performance score was 0.05.",
      "suggestedFix": "Profile the redirect and LCP chain, eliminate nonessential startup work, reserve layout space, and prioritize only the hero-critical resources.",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/lighthouse.json"
      ],
      "effort": "large",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F09",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-preload-priority",
      "guidanceCategory": "modern-web-guidance",
      "summary": "The entry journey transfers an excessive, highly fragmented payload.",
      "evidence": "HAR captured 151 requests and 9,016,578 transferred bytes: 77 scripts (4.03 MB), 27 stylesheets, 1.12 MB fonts and a 1.65 MB media file, plus many parser-inserted VeryHigh-priority stylesheets.",
      "suggestedFix": "Avoid loading both app boot and marketing stacks, shorten redirects and critical CSS chains, subset fonts, and defer media and noncritical modules.",
      "artifacts": [
        "evidence/network-summary.json",
        "evidence/network.har"
      ],
      "effort": "large",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F10",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Large amounts of unused JS and CSS ship on the landing journey.",
      "evidence": "Lighthouse estimated 951 KiB unused JavaScript and 342 KiB unused CSS; individual bundles were 55-73% unused and global CSS files were 81-98% unused.",
      "suggestedFix": "Split page-specific bundles, remove duplicate app/marketing utilities, and conditionally load video, feedback and Outlook-app code after user intent.",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/network-summary.json"
      ],
      "effort": "large",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F11",
      "severity": "medium",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Some rendered images and the global search input lack accessible alternatives.",
      "evidence": "The images primitive found 15 images without alt text, and the quality probe found the visible search input had no associated label or ARIA label.",
      "suggestedFix": "Give meaningful images concise alt text, mark decorative images with alt=\"\", and provide a programmatic label for search.",
      "artifacts": [
        "evidence/images.json",
        "evidence/quality-probe.json"
      ],
      "effort": "medium",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F12",
      "severity": "medium",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Heading structure is repetitive and skips levels.",
      "evidence": "The DOM probe found four identical H1 elements; Lighthouse reported invalid heading order where plan-card text jumps to H6. Keyboard focus indicators themselves were visible.",
      "suggestedFix": "Render one page H1 per active responsive variant and use semantic heading levels based on document hierarchy rather than visual size.",
      "artifacts": [
        "evidence/recon-evaluate.json",
        "evidence/lighthouse-summary.json"
      ],
      "effort": "medium",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F13",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Duplicate scripts throw repeated syntax errors.",
      "evidence": "Lighthouse captured repeated SyntaxError exceptions: LocalStorageUtil and OneCloudUtil identifiers were declared more than once.",
      "suggestedFix": "Deduplicate the OneCloud/local-storage bundles and add a smoke test that fails on uncaught page-load exceptions.",
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "effort": "medium",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F14",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Image markup does not reserve intrinsic space and some images are oversized.",
      "evidence": "The images primitive found all 100 img elements lacked width/height attributes, three were over 2x their display width, six lacked responsive sources, and one used a legacy format.",
      "suggestedFix": "Emit width and height or aspect-ratio for every image and use correctly sized srcset/sizes with modern formats.",
      "artifacts": [
        "evidence/images.json"
      ],
      "effort": "medium",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F15",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Deprecated unload handlers block the back/forward cache.",
      "evidence": "Lighthouse reported unload listeners in both the Outlook mini-index and Microsoft telemetry code, one actionable BFCache failure, and two deprecation warnings.",
      "suggestedFix": "Replace unload with pagehide/visibilitychange and verify BFCache restoration in DevTools.",
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "effort": "medium",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F16",
      "severity": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Several controls are not crawlable links and many link labels are generic.",
      "evidence": "Lighthouse found six anchors using javascript:void(0) and 26 links labelled only “Learn more”; the rendered page otherwise has a viewport meta and robots.txt is valid.",
      "suggestedFix": "Use buttons for actions, real href URLs for navigation, and destination-specific link text.",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/recon-evaluate.json"
      ],
      "effort": "medium",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F17",
      "severity": "low",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "summary": "The product page lacks structured entity metadata.",
      "evidence": "The quality probe found five Open Graph tags but zero JSON-LD blocks on a public software/product page.",
      "suggestedFix": "Add accurate SoftwareApplication/Product and Organization JSON-LD aligned with visible product and plan content.",
      "artifacts": [
        "evidence/quality-probe.json"
      ],
      "effort": "small",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F18",
      "severity": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "modern-web-guidance",
      "summary": "The entry journey has a very large third-party and telemetry footprint before user intent.",
      "evidence": "HAR attributed 143 of 151 requests and 8.80 MB to origins other than outlook.live.com; requests include Microsoft telemetry and a third-party video origin. Lighthouse also observed 15 third-party cookies.",
      "suggestedFix": "Treat Microsoft-owned cross-origin services as supply-chain dependencies: defer telemetry/media until consent or intent, batch events, and reduce origin and cookie count.",
      "artifacts": [
        "evidence/network-summary.json",
        "evidence/trackers.json",
        "evidence/lighthouse-summary.json"
      ],
      "effort": "large",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F19",
      "severity": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "modern-web-guidance",
      "summary": "The security policy is strong but incomplete.",
      "evidence": "Headers include HTTPS, HSTS, nosniff, strict-origin referrer policy, frame-ancestors and Trusted Types; however Permissions-Policy is absent and style-src allows unsafe-inline.",
      "suggestedFix": "Add a least-privilege Permissions-Policy and migrate inline styles toward nonces/hashes where feasible while retaining Trusted Types and frame-ancestors.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "effort": "medium",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F20",
      "severity": "high",
      "principleId": "be-resilient",
      "principleCheckId": "progressive-enhancement",
      "guidanceId": "stabilize-reactive-state",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Core public product content is effectively absent without JavaScript.",
      "evidence": "Discoverability captured 1% raw-to-rendered content coverage: raw HTML had 35 text characters and no title, H1 or meta description while the rendered page had 6,605 characters and 327 content tokens.",
      "suggestedFix": "Server-render the product title, description, primary actions and key sections, then hydrate enhancements rather than shipping a JS shell.",
      "artifacts": [
        "evidence/discoverability.json",
        "evidence/discoverability-rendered.png",
        "evidence/discoverability-crawler.png"
      ],
      "effort": "large",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F21",
      "severity": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Image delivery wastes bytes and omits responsive sizing.",
      "evidence": "The images primitive found three oversized images, six without srcset and one legacy-format asset; the HAR includes a 424 KB PNG delivered at 2000x1283 for a 648 px display slot.",
      "suggestedFix": "Use modern formats and responsive CDN parameters/srcset so each slot receives a near-display-size asset.",
      "artifacts": [
        "evidence/images.json",
        "evidence/network-summary.json"
      ],
      "effort": "medium",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F22",
      "severity": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "efficient-background-processing",
      "guidanceCategory": "modern-web-guidance",
      "summary": "The page performs substantial work unrelated to the first user task.",
      "evidence": "The 9.0 MB load includes 77 scripts, telemetry, feedback, Outlook app boot code and a video player; Lighthouse estimates 951 KiB of JS and 342 KiB CSS unused.",
      "suggestedFix": "Set a route-level resource budget and lazy-load feedback, video, app boot and analytics only when their feature becomes relevant.",
      "artifacts": [
        "evidence/network-summary.json",
        "evidence/lighthouse-summary.json"
      ],
      "effort": "large",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F23",
      "severity": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "deprioritize-background-fetches",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Autoplay media and cross-origin assets dominate the resource budget.",
      "evidence": "The quality probe found an autoplay video without controls or captions; HAR transferred 1.65 MB of media and 8.80 MB cross-origin on initial load.",
      "suggestedFix": "Do not autoplay offscreen promotional media; use a poster and click-to-play control, captions where speech exists, and defer the player bundle.",
      "artifacts": [
        "evidence/quality-probe.json",
        "evidence/network-summary.json"
      ],
      "effort": "medium",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F24",
      "severity": "low",
      "principleId": "be-agent-ready",
      "principleCheckId": "structured-agent-capabilities",
      "guidanceId": "webmcp",
      "guidanceCategory": "modern-web-guidance",
      "summary": "The agent-oriented Outlook/Copilot surface exposes no structured browser capability on the public entry page.",
      "evidence": "The site prominently links Copilot experiences, but DOM/source probes found no WebMCP or agent-tool registration and non-JS content coverage is only 1%.",
      "suggestedFix": "For safe public actions such as sign-in help, plan lookup or product comparison, evaluate declarative agentic forms/WebMCP tools with strict schemas and user confirmation.",
      "artifacts": [
        "evidence/recon-evaluate.json",
        "evidence/discoverability.json"
      ],
      "effort": "large",
      "confidence": "medium",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F25",
      "severity": "medium",
      "principleId": "be-memory-efficient",
      "principleCheckId": "no-leak-under-repeated-interaction",
      "guidanceId": "manage-recurring-intervals",
      "guidanceCategory": "modern-web-guidance",
      "summary": "Heap growth after exercising tabs warrants a stabilized same-session leak investigation.",
      "evidence": "Baseline summary was 49.5 MB/653,666 nodes; after dismissing consent and exercising tabs ten times it was 59.7 MB/839,165 nodes. The capture includes one-time full-page activation, so it is a risk signal rather than proof of a leak.",
      "suggestedFix": "Repeat baseline/target/final snapshots in one stabilized session, force GC between phases, and investigate retained objects only if growth persists after tab cycles return to the same state.",
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post-valid.heapsnapshot"
      ],
      "effort": "medium",
      "confidence": "medium",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    },
    {
      "id": "F26",
      "severity": "medium",
      "principleId": "be-memory-efficient",
      "principleCheckId": "bounded-footprint",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "modern-web-guidance",
      "summary": "The steady loaded footprint is large for a marketing entry page.",
      "evidence": "The post-interaction heap summary reports 59.7 MB self size, 839,165 nodes and 3,056,272 edges, alongside a 9.0 MB transfer and duplicated app/marketing code.",
      "suggestedFix": "Remove duplicate bundles and delay feature graphs so the marketing page creates only objects required for the visible route.",
      "artifacts": [
        "evidence/heap-post-valid.heapsnapshot",
        "evidence/network-summary.json"
      ],
      "effort": "large",
      "confidence": "high",
      "pathId": "entry",
      "url": "https://outlook.live.com"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Collapse the redirect/app boot and ship a fast server-rendered product entry",
      "priority": 1,
      "findingIds": [
        "F08",
        "F09",
        "F10",
        "F20",
        "F22",
        "F26"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Reserve layout space and right-size every image and media asset",
      "priority": 2,
      "findingIds": [
        "F08",
        "F14",
        "F21",
        "F23"
      ],
      "guidanceId": "deliver-optimized-decorative-images",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Reduce third-party telemetry, cookies, autoplay media and origin count",
      "priority": 3,
      "findingIds": [
        "F18",
        "F19",
        "F23"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Make the first viewport content-first while preserving equal consent choices",
      "priority": 4,
      "findingIds": [
        "F04",
        "F05",
        "F06",
        "F07"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Repair labels, alt text and heading hierarchy",
      "priority": 5,
      "findingIds": [
        "F11",
        "F12"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Deduplicate scripts and remove deprecated unload handling",
      "priority": 6,
      "findingIds": [
        "F13",
        "F15"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Improve crawlable links, descriptive labels and structured metadata",
      "priority": 7,
      "findingIds": [
        "F16",
        "F17",
        "F24"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Add preference-aware dark theming and restrained state transitions",
      "priority": 8,
      "findingIds": [
        "F01",
        "F02",
        "F03"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Run a stabilized same-session heap leak comparison",
      "priority": 9,
      "findingIds": [
        "F25",
        "F26"
      ],
      "guidanceId": "manage-recurring-intervals",
      "status": "open"
    }
  ],
  "budget": {
    "wallClockSeconds": 2400,
    "pathCount": 5,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-27T21-50-42-081Z"
}
