← Documentation home

Canonical Markdown source · Oct 20, 2018

Public UI/UX A+ program

product/ui-ux-a-plus.md · 170 lines · SHA-256 8ef20fbebaed

Objective

Make the homepage and shared public shell distinctive, comprehensible, accessible,

responsive, fast, and commercially useful without weakening source, rights,

uncertainty, or human-review boundaries.

August 20, 2026 baseline

The canonical production homepage was inspected in Chromium at desktop and

390-by-844 mobile viewports. A cold navigation trace measured 910 ms LCP and

0.00 CLS with no CrUX field data. Lighthouse scored accessibility 100, best

practices 77, SEO 92, and agentic browsing 100. The observed A+ gaps were:

silently hiding the secondary choices;

  • the first-visit analytics dialog covered most of the mobile hero;
  • its two primary consent choices had unequal emphasis;
  • the mobile menu's accessible name omitted its visible `Menu` label;
  • `/en` did not expose a valid localized canonical URL;
  • the hero presented too many competing actions in source, with responsive CSS
  • generic `Begin` and `See the offer` links obscured destination intent;
  • artwork cards became oversized one-column rows at small-tablet widths; and
  • 25 footer links produced an excessively long mobile directory.

Third-party museum images set two cross-site cookies. Those provider-hosted

media URLs remain source-addressable by policy, so this iteration records rather

than disguises that boundary.

Implemented foundation

alternative (`Surprise me`), followed by a separate three-item audience

switcher for daily discovery, saved collections, and professional tools.

policy links separated; the mobile dialog is bounded and scroll-safe.

full-width for faster scanning.

metrics, and support boundaries while removing the internal activation

ledger, prospect profiles, named outreach queue, and other operator-only

material. The mobile page is now eight viewports tall rather than roughly 24,

contains no data table, and has no horizontal overflow at 412 pixels.

hierarchy, descriptive metadata, and action language used by the stronger

public journeys. Stories explicitly labels its formats as previews.

Connections presents one bounded curated episode as a six-turn chain reaction:

both public-domain artworks lead the opening mystery, every work and source is

actionable, every chapter names its from-to bridge, and each ledger row labels

museum fact versus editorial inference and confidence without implying broader

published coverage or historical influence.

reused homepage card. It presents the image beside a compact verified-facts

ledger, attribution, collection/image/rights links, and stable previous/next

dates. Its UTC sequence cycles through every represented provider before

beginning another round; retained tests prove 14-provider and 14-image

coverage across any 14-day window in the verified fallback pool.

before asking for input, uses a live four-answer progress indicator, and

separates its process questions from the decision boundary in an editorial

layout. Each result retains the deterministic recommendation and accountable

next steps while adding an expandable device-local answer receipt. Desktop

and mobile browser-funnel tests accept both the truthful disabled-checkout

state and the live Stripe checkout state, and keep the intentionally disabled

email course out of the DOM.

preserving the tested support and research-kit event boundary.

invalid-session error, announce each state to assistive technology, preserve

the exact USD 29 verification boundary, and provide explicit retry and support

actions. The sandbox support return is visually and semantically successful

while stating that no real payment, donation, or revenue occurred.

Commit `1706b595` is live as Vercel deployment

`dpl_9RMjniY8bz56uADexLVHgTTYfkTm`; canonical mobile probes cover all three

states with the expected status/alert roles, recovery actions, and zero

horizontal overflow. The retained receipt is

`artifacts/ui-ux/payment-return-production-proof-2026-08-20.json`.

terms. A restrained editorial hero leads into three inspectable examples of

public work, a numbered research/review/infrastructure allocation band, and a

two-column offer-and-terms section. The inactive state remains explicit and

useful rather than becoming a dead end; no payment is implied or activated.

Desktop and 390-by-844 browser checks confirm no nested `main` landmark and

zero horizontal overflow.

evaluator dashboard. Its reader-first sequence moves from the fragmented-

catalogue problem through three live product actions, visible source/rights/

interpretation outcomes, accountable technical depth, evidence links, and an

honest adoption boundary. The tour label now matches the 25-second media,

stale test/readiness scores are removed, and the former 404 architecture link

resolves through the manifest-backed `/docs?doc=deployment.md`. Desktop and

390-by-844 checks confirm zero overflow and no nested landmarks.

injected unlabeled tile and navigator image fragments at reflow and mobile

widths. Each deep-zoom mount now has a viewer-group label while a scoped

observer marks generated canvas fragments decorative. The deployed canonical

rerun passes all 105 route-and-viewport cases with zero severe axe violations

and zero horizontal-overflow failures.

  • One primary hero journey (`Explore the collection`) and one discovery
  • Specific pathway and commercial action labels.
  • Equal visual treatment for first-level analytics choices, with management and
  • A mobile-menu accessible name whose visible label and spoken name agree.
  • A localized `/en` canonical and Open Graph URL.
  • A concise 18-link footer directory and denser tablet artwork cards.
  • A two-column mobile footer directory with the brand and public promise kept
  • A buyer-facing collection-pilot page that preserves price, scope, success
  • Stories and Connections now share the public page spacing, title/lede
  • Artwork of the Day is now an editorial source-inspection surface rather than a
  • The provenance-path assessment now presents its three possible destinations
  • The Privacy analytics disclosure removes duplicated release wording while
  • Research Kit checkout returns now distinguish verification-pending from an
  • The Support page now explains why support matters before presenting payment
  • The Projects page now reads as a public case study instead of a technical
  • The canonical accessibility matrix found that OpenSeadragon's HTML drawer

Verification contract

`tests/pages/public-ui-a-plus.test.ts` protects the homepage action hierarchy,

canonical URL, consent structure, footer link budget, and specific CTA copy.

Existing public-navigation, analytics-consent, public-source, and discovery tests

must remain green. Browser acceptance requires desktop and mobile screenshots,

zero horizontal overflow, no serious axe failures, and a production Lighthouse

rerun after deployment.

The executable accessibility gate now covers 35 resolved routes at

1280-by-900 desktop, a 640-by-450 reflow viewport equivalent to 200% desktop

zoom, and 390-by-844 mobile (105 route-viewport cases). It fails on WCAG A/AA

critical, serious, or moderate findings and on document horizontal overflow.

Expanding the gate exposed and fixed narrow-layout containment defects in

Insights, the visual ETL mapper, and the Getty workspace. Shared keyboard focus

now uses an explicit three-pixel outline plus halo, and the global

`prefers-reduced-motion` contract removes nonessential animation and transition

timing without hiding content.

The same retained run keyboard-tabs through the first six focus targets on Home,

Explore, Connections, Research Kit, Pilot, and Contact, failing if a target is

missing, outside the viewport, or lacks a computed focus indicator.

The built local production server has a retained six-route performance baseline

at `artifacts/ui-ux/a-plus-performance-baseline-2026-08-20.json`. Desktop LCP

ranges from 120 ms to 1,022 ms with CLS 0.00. Under Fast 4G and 4x CPU slowdown,

mobile LCP ranges from 641 ms to 1,349 ms across Home, Explore, Research Kit, and

Pilot, with CLS 0.00. Opening the mobile menu records 104 ms INP under the same

stress profile. Explore is the slowest route because its collection query

contributes 870–915 ms TTFB; it remains inside the good LCP threshold locally,

but production edge/database behavior must be remeasured after deployment.

The canonical production rerun at Fast 4G, 4x CPU slowdown, and a 390-by-844

mobile viewport now covers the same six critical routes. LCP ranges from 615 ms

to 2,489 ms, every CLS is 0.00, and opening the mobile navigation records 74 ms

INP. All observed values meet the program thresholds, although the representative

artwork detail is only 11 ms inside the LCP gate and remains the performance watch

item. The retained artifact is

`artifacts/ui-ux/a-plus-production-performance-2026-08-20.json`. No CrUX field

data is available, so this is canonical lab evidence rather than a claim about

real-user percentile performance.

Canonical mobile Lighthouse now scores accessibility 100, SEO 100, and agentic

browsing 100. Best practices remains 77 solely because source-addressable

Metropolitan Museum artwork images set two third-party Imperva cookies, which

also creates the associated DevTools issue. There are no first-party Lighthouse

failures; the project retains direct provider media URLs to preserve the existing

source and rights boundary rather than silently proxying museum media.

Remaining A+ work

  1. Finish normalizing cards, forms, empty/error states, and CTA hierarchy across

the remaining highest-traffic public routes; Stories, Connections,

Artwork of the Day, and the provenance assessment now have complete hierarchy.

  1. Complete the production-browser keyboard check; automated focus visibility

and order sampling, reduced-motion behavior, and 200% reflow coverage are now

in place locally.

  1. Continue watching the representative artwork LCP and preserve the documented

third-party image boundary; the current canonical lab gate is green.

  1. Complete five consented non-specialist comprehension sessions and retain the

attributable findings before making the final A+ claim.

The existing privacy-safe PD0 importer now enforces this exact final gate rather

than a generic usability proxy: each session records a homepage exposure of no

more than 5,000 ms plus separate unassisted offer and primary-action results,

and completion requires at least four joint passes among five unique consented

non-specialists. `with-help` is retained but does not pass this gate.