Manifest position 999 · CrUX rank bucket 1000
https://www.apple.com
Coverage complete
Coverage-complete report-mode audit of eight representative routes/templates and conditions.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | issues | high | Under prefers-color-scheme: dark, matchMedia returned true but the root color-scheme remained normal and the body stayed rgb(255,255,255) with rgb(29,29,31) text. The dark-condition screenshot is visually the same light surface. F-001 medium: The public marketing surface does not follow the user’s dark color-scheme preference. |
respect-user-preferencesrespects-reduced-motion | pass | high | Under prefers-reduced-motion: reduce, the only long 3000 ms gallery animation was paused; product CSS contained seven reduced-motion rules. |
respect-user-preferencesrespects-contrast | pass | high | The prefers-contrast: more screenshot retained visible controls and text, and product CSS contained two prefers-contrast/forced-colors rules. |
implement-natural-interactionsview-transitions | issues | high | Live CSS inspection across 1,789,564 bytes on the product detail page found zero view-transition rules, while category-to-detail navigation is a prominent state change. F-002 low: Cross-document product navigation does not use View Transitions. |
implement-natural-interactionsscroll-driven-animations | pass | high | Product-page CSS contained three animation-timeline/scroll-timeline references and the scroll video showed smooth declarative scrollytelling without recorded blocking work. |
implement-natural-interactionsphysical-gestures | pass | high | Product CSS contained 12 scroll-snap references and the recorded scroll journey followed native scrolling without a custom pointer-only requirement. |
provide-guided-navigationscroll-state-aware-chrome | pass | high | The product scroll video shows persistent global/local navigation and page chrome retaining orientation as the narrative advances. |
provide-guided-navigationanchored-positioning | issues | medium | The product CSS probe found zero anchor-name, position-anchor, or position-try rules and counted 35 custom role=dialog/aria-modal surfaces. F-003 low: Overlay positioning uses custom modal plumbing rather than CSS anchor positioning. |
provide-guided-navigationdirects-attention | pass | high | The listing and product pages use clear local navigation, highlighted product identity, directional gallery controls, and stable visual progression into the Buy action. |
maximize-content-reduce-noiseno-intrusive-interruptions | pass | high | Load screenshots show content immediately; the regional selector is compact, dismissible, and does not cover the primary content. |
maximize-content-reduce-noisesemantic-dismissible-primitives | issues | high | Rendered DOM inspection found 35 custom role=dialog/aria-modal surfaces but zero dialog, popover, or details elements on the product page; the homepage global flyout is also custom div chrome. F-004 medium: Rich overlays are implemented as custom ARIA modal structures instead of native dialog or popover primitives. |
maximize-content-reduce-noisereduced-chrome | pass | high | Across homepage, listing, detail, and accessibility templates, primary content dominates the viewport and global chrome remains compact. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | pass | high | All four mobile layout captures reported scrollWidth equal to 360, viewport metadata present, and horizontalOverflowPx 0. |
adapt-to-the-form-factorcomponent-level-responsiveness | issues | high | Live CSS inspection found zero @container rules across 1,789,564 bytes of product-page CSS, despite reusable cards, galleries, local navigation, and commerce modules appearing in multiple widths. F-005 low: Responsive behavior is viewport-driven rather than component-driven. |
adapt-to-the-form-factorinput-modality-aware | pass | high | Lighthouse passed target-size; key links show a 2 px blue focus outline, and global menu controls expose 48 px interaction boxes. |
support-core-task-successclear-purpose-and-primary-action | pass | high | Each first viewport names the product or purpose and exposes a clear Shop, Buy, compare, search, or recovery action. |
support-core-task-successprimary-flow-completion | pass | high | The journey from product narrative to the live Buy iPhone 17 Pro configurator completed without an account wall; model choices, prices, financing, trade-in details, and a progressive Continue control were present. |
support-core-task-successclear-system-state-and-recovery | pass | high | The empty search state says no matches and invites another search; the 404 page names the failure and offers search plus sitemap recovery. |
be-fast-and-stablegood-core-web-vitals | issues | high | Lighthouse measured LCP 11.7 s and CLS 0.166 on the homepage. First-party mobile layout capture measured CLS 0.194 on the product detail page and 0.282 on the accessibility page. F-006 high: Lab Core Web Vitals are outside the good range on key templates. |
be-fast-and-stablevisual-stability | issues | high | The layout observer recorded CLS 0.282 on /accessibility/ and 0.194 on /iphone-17-pro/, both above the good threshold of 0.1, with shifts beginning around 1.5 to 3.4 seconds. F-007 high: Late content causes substantial layout shift on representative pages. |
be-fast-and-stableefficient-main-thread | pass | high | The trace recorded zero long tasks and 0 ms total blocking time; Lighthouse measured 23 ms TBT. Isolated mobile route tasks were short, with the longest observed at 87 ms. |
be-fast-and-stableefficient-resource-delivery | issues | high | The HAR recorded 2.32 MB transferred, including 1.18 MB across seven fonts. It identified nine parser-inserted VeryHigh-priority stylesheets as render-blocking candidates; Lighthouse’s 11.7 s LCP corroborates delayed delivery. F-008 medium: The critical path carries a large font payload and many parser-blocking stylesheets. |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | Lighthouse estimated 117 KiB unused JavaScript and 40 KiB unused CSS. The main home bundle was 83.8% unused in the trace window and several stylesheets were 81% to 92% unused. F-009 medium: The homepage ships substantial unused JavaScript and CSS. |
be-inclusivenames-roles-labels | pass | high | Lighthouse passed image-alt, button-name, and link-name; Buy and search controls expose explicit accessible names in DOM probes. |
be-inclusivesufficient-contrast | issues | high | Lighthouse found action labels with contrast ratios from 1.64:1 to 2.5:1, including “Stream now”, “Play now”, and “Listen now”, below the required 4.5:1 for the rendered text sizes. F-010 high: Entertainment-gallery action labels fail WCAG contrast. |
be-inclusivestructure-and-focus | pass | high | Lighthouse passed heading order and the single-main landmark; representative primary controls expose visible 2 px focus outlines. |
be-inclusivelegible-text | pass | high | Screenshots show large, well-spaced headings, comfortable measure, stable alignment, and no clipped primary copy across desktop, mobile, and RTL routes. |
be-inclusivezoom-reflow-targets-and-media | pass | high | Lighthouse passed zoom policy and target size; 360 px layouts reflow without horizontal overflow. The accessibility template provides a dedicated accessible media context. |
follow-best-practicesno-console-errors | pass | high | Lighthouse reported no browser errors logged to the console. |
follow-best-practicessound-document-and-assets | issues | high | The images primitive found all 47 img elements lacked width and height attributes. Although the homepage layout sample was stable, other templates recorded CLS above 0.19, so relying on CSS and late image state is fragile. F-011 medium: Image elements omit intrinsic dimensions across the homepage. |
follow-best-practicesbrowser-platform-hygiene | pass | high | Lighthouse passed deprecated APIs, BFCache, geolocation-on-start, notification-on-start, and best-practices overall (1.00). |
be-discoverabletitle-and-description | pass | high | The homepage has title “Apple” and a descriptive meta description; Lighthouse passed both title and meta-description audits. |
be-discoverablecrawlable-and-mobile-friendly | issues | high | Lighthouse reported eight non-descriptive links: seven “Learn more” labels across different products and one “here” terms link. The destinations are crawlable, but the link text has little standalone meaning. F-012 medium: Repeated generic link labels weaken page comprehension and search context. |
be-discoverablecanonical-and-indexing-signals | pass | high | The homepage returned 200, declares canonical https://www.apple.com/, publishes extensive hreflang alternates, allows general crawling, and is listed in sitemap.xml. |
be-discoverablestructured-and-shareable-metadata | pass | high | The homepage publishes JSON-LD for Organization, WebSite with SearchAction, and WebPage, aligned with visible Apple content. |
be-private-and-securesecure-transport-and-headers | issues | high | The headers primitive found a CSP that allows both unsafe-inline and unsafe-eval. Cookie inspection found the geo cookie lacked Secure and all six cookies used SameSite=None. F-013 high: Transport is HTTPS, but cookie and CSP settings leave avoidable exposure. |
be-private-and-securedata-minimisation-and-third-parties | issues | high | The HAR and tracker probe recorded two securemetrics.apple.com requests and first-load analytics cookies including s_vi/s_fid. The metrics request included a visitor identifier, page, locale, currency, screen, and viewport fields. F-014 medium: Analytics collection begins on first load before an explicit privacy choice. |
be-private-and-securein-context-permissions-and-modern-auth | pass | high | Lighthouse passed geolocation and notification on-start audits; permission states remained prompt, and the sampled buy journey did not force sign-in before product configuration. |
be-private-and-securedefensive-browser-policies | issues | high | HSTS, nosniff, and X-Frame-Options are present, but Permissions-Policy is absent and Referrer-Policy remains no-referrer-when-downgrade rather than a stricter modern policy. F-015 medium: Defensive response policy coverage is incomplete. |
be-resilientprogressive-enhancement | pass | high | Raw HTML retained 96% of homepage content words and 99% of product-page content words; neither route is a JS shell and crawler screenshots preserve meaningful content. |
be-resilientresilient-runtime-behaviour | pass | high | Global, product, gallery, and commerce controls loaded into usable states across four templates; no console exceptions were reported and the buy configurator preserved clear disabled/active state. |
be-resilientoffline-and-installable | not-applicable | high | No manifest or service-worker registration was present, but this was judged contextual rather than a defect. |
be-resilientnetwork-and-http-failure-states | pass | high | A real unknown route rendered a branded 404 with a precise explanation, search field, and sitemap link rather than a blank shell or infinite spinner. |
be-internationalisedlang-dir-and-logical-properties | pass | high | The UAE Arabic route declares lang=ar-AE and dir=rtl, renders the global navigation in RTL order, and live CSS included 674 logical-property references. |
be-internationalisedlocale-aware-data | pass | high | The site publishes more than 100 hreflang locale alternates and the ar-AE route localises language, regional offer content, numerals, and reading direction rather than presenting the US template unchanged. |
be-internationalisedtime-zone-correctness | not-applicable | high | Representative paths contained no time-zone-sensitive interaction to judge. |
be-trustworthyno-dark-patterns | pass | high | Product and buy screenshots disclose full price, monthly price, term length, trade-in ranges, model differences, and financing details before Continue; no preselected continuity or confirmshaming appeared. |
be-trustworthyhumane-error-handling | pass | high | Search and 404 failures use neutral language, explain what happened, preserve context, and provide immediate recovery controls. |
be-trustworthytrustworthy-input-assistance | not-applicable | high | Form probes listed search inputs only. |
be-trustworthysafe-commercial-and-account-flows | pass | high | The buy flow presents model prices, financing duration, carrier deals, trade-in bounds, help, return questions, and an intentionally disabled Continue until a model is chosen. |
be-sustainableoptimised-assets | issues | high | The image audit found 47 legacy PNG/JPEG images, no modern-format img sources, 29 below-fold images without loading=lazy, 23 without srcset on the img element, and 47 without intrinsic dimensions. F-016 medium: Image delivery misses modern format, lazy-loading, and intrinsic-size opportunities. |
be-sustainableno-wasteful-work | pass | high | The trace recorded no long tasks or background blocking time, and only two low-byte third-party requests were observed; main-thread work remained bounded during the sampled load. |
be-sustainablethird-party-and-media-budget | issues | high | The HAR transferred 2.32 MB in 51 requests before broad page exploration, dominated by 1.18 MB of fonts and 513 KB of images. The page also initializes analytics and media resources during load. F-017 medium: The first-view resource budget is high for a marketing landing page. |
be-agent-readystructured-agent-capabilities | not-applicable | high | Capability probe found no WebMCP or agent tool registration, while raw HTML remains highly crawler-readable. |
be-agent-readyon-device-inference | not-applicable | high | The browser exposes built-in AI APIs, but the page does not present an inference use case. |
be-memory-efficientno-leak-under-repeated-interaction | pass | high | After ten alternating entertainment-gallery interactions, snapshot node count fell from 294,757 to 294,505 and self size fell from 17,420,468 to 17,372,484 bytes; same-session used heap also fell from 4.81 MB to 3.92 MB. |
be-memory-efficientbounded-footprint | pass | high | The homepage retained about 17.4 MB of snapshot self size and 294k heap nodes for a media-rich marketing page, with no growth after representative interaction. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | high | Repeated gallery interaction left DOM element count unchanged at 1,203; heap node/closure/object counts did not grow and no Detached constructor appeared among retained top constructors. |
Provenance
Canonical report: results/atomic/reports/0999-www_apple_com.json
Report SHA-256: 28cbca3a41050c33f3cba94cc488520129439c29c3f4196f3901da9dbefeff3b
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_apple_com/2026-07-24T10-42-33-698Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_apple_com/2026-07-24T10-42-33-698Z
Catalog SHA-256: sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7
Raw screenshots, HARs, traces, heaps, and other browser artifacts are retained at the local evidence root and intentionally are not committed. Artifact paths in the canonical report are relative to that root.