# PRiME homepage — manual accessibility review and header retest

Date: 13 September 2026  
Reference baseline: production commit `8fd085b`, followed by local header corrections.  
Target: WCAG 2.2 AA, including applicable 2.0 and 2.1 requirements.  
Conclusion: **Not yet verified conformant.** This is an engineering audit, not a legal opinion or accessibility certification.

## What was actually tested

The live homepage was inspected through browser interaction, rendered styles,
layout measurements, semantic snapshots, and source review. Local diagnostic
controls were used for axe and WCAG text-spacing overrides, then removed.
No newsletter subscription or other external form submission was made.

Browser checks used desktop 1440 × 900 and narrow 320 × 800 states. Viewport
dimensions were measured in the page rather than assumed from requested sizes.
A semantic snapshot is **not** the spoken output of a screen reader.

| Check | Evidence / result |
| --- | --- |
| Skip navigation | Enter on the skip link moves focus to `main-content`; the next Tab reaches Explore Global Hubs. |
| Biography dialog | Molly Shoichet’s dialog has a name, enters native modal mode, and starts at Close. Shift+Tab wraps to the source link; Tab wraps to Close. Escape removes the dialog and restores the originating button. This is a representative retest of the shared component, not seven separate new screen-reader tests. |
| Research controls | Keyboard focus selects Nanomedicine, changes its pressed state, reveals the full description after its transition, and shows a gold focus outline. The description measured 41px content height and 41px displayed height in the settled desktop state. |
| Research pause | A persistent Pause/Resume highlights control is present and keyboard operable. This does not establish that every decorative animation is paused. |
| Newsletter | The email field has an associated visible label, email type, autocomplete, and required validation. Empty submission remained invalid and moved focus to the field. Spoken error announcement and the external signup journey remain untested. |
| Decorative graphics | Seven canvas elements are hidden from assistive technology; the global-hubs scene retains a semantic text heading. |
| Document identity | English document language, descriptive page title, one primary heading, named navigation groups, and labelled person buttons are present. |
| Final-hub exit | The prior fix was verified with PageDown into leadership and PageUp back, plus four regression tests of the bounded 800ms hold. This is not a physical-device trackpad or screen-reader test. |
| Narrow reflow | No horizontal document overflow in the sampled normal-spacing 320px view. A hero overlap was found and corrected with the header work; see below. This is not a 400% browser-zoom certification. |
| Text spacing | Applied line height 1.5, paragraph spacing 2em, letter spacing .12em and word spacing .16em in a local diagnostic view. Sampled desktop research descriptions and people-name boxes did not lose text. Coverage was partial; not an all-section/all-width pass. Changing and restoring spacing also left scroll-reveal timings stale in one diagnostic run, hiding Join content until reload. Retest this with real user styles before release. |

## Confirmed concerns still requiring work

### High priority — content depends on scrolling before it becomes discoverable

On a fresh desktop load, Scientific leadership, its person headings, Impact,
Join PRiME, Newsletter and membership content have `visibility: hidden` from
scroll-reveal animation. They are missing from the initial semantic snapshot.
Source uses GSAP `autoAlpha: 0` until each scroll trigger runs. Some leadership
controls were also skipped in a fast Tab walkthrough before the reveal ran.

This is a confirmed semantic-availability issue; its exact impact on VoiceOver
rotor navigation and NVDA browse mode still needs a real AT session. It affects
the intent of 1.3.1, 2.1.1 and 2.4.3. Keep semantic content available from initial
load; animate decorative presentation instead of hiding essential information.
Do not require a user to scroll visually to discover that content exists.

### High priority — continuous motion is not fully controllable

The hero has continuously animated layers and the About PRiME network canvas
has an ongoing render loop. Scene-specific feed, hub and research controls do
not provide a complete page-wide stop mechanism for those layers. Reduced-motion
support exists in source, but it is not equivalent to a user-operated pause.
Inventory all continuous motion, connect it to a persistent stop/pause control,
and retest each scene independently. See WCAG 2.2.2.

### Contrast risk — light editorial options are not universally safe

Pixel analysis covered all 40 local editorial artwork files using the configured
base colours and 62% light / 72% dark veils. For body colour `#294555`, the minimum
computed background contrast across the default Optical folds image was 3.89:1.
Across the 20 light options, minima ranged from 3.76:1 to 5.33:1; 14 had pixels
below 4.5:1. The 20 dark options had minimums of at least 5.35:1 for `#e5eef5`.

These are **asset-and-overlay bounds**, not measured failures beneath particular
rendered letters. Text placement, other layers and viewport mapping matter.
They show why a blanket contrast pass is unjustified. Select a final background
and test actual text/controls against the rendered pixels at each breakpoint.
Increase the protective veil where necessary. See 1.4.3 and 1.4.11.

## Corrections made with the requested header revision

- Replaced the initial colour/recoloured appearance with PRiME’s unmodified
  official reversed signature: the beaver and open-book shapes are white.
  The logo is transparent outside the artwork and served locally.
- Removed the white header surface and used a dark navy treatment.
- Reserved the logo’s actual width in the desktop navigation grid. At 1440px,
  the logo ended at x489.6 and navigation began at x512.6: a 23px gap.
- Added a native collapsible primary menu on smaller screens. Enter opens it;
  Escape closes it and returns focus to its summary. Links remain available.
- Separated mobile logo and controls into rows. The Menu control is at least
  44px tall and no longer sits beneath the logo.
- Corrected the 320px hero facts overlapping the research button. Originally
  facts began at y651.8 while the button continued to y684.2. After correction,
  facts begin 32px after the hero-copy block, in normal document flow.

## Fresh automated result

After the header revision, the local desktop scan reported **zero violations**,
28 passing rule types, and 79 elements requiring manual colour-contrast review.
An earlier pre-header run in this session also had zero violations and 98 contrast
incompletes. Visible state changes these counts. Diagnostic controls were excluded.
These results do not cover every page, scene, browser or assistive technology.

## Verified opaque colour pairs

| Use | Foreground / background | Ratio |
| --- | --- | --- |
| News/event dates on cards | `#5b6b70` / `#f8fbfc` | 5.34:1 |
| News summary on cards | `#58696d` / `#f8fbfc` | 5.52:1 |
| White text on navy | `#ffffff` / `#102d3a` | 14.40:1 |
| Subscribe control | `#071d29` / `#d1ae3b` | 8.08:1 |
| Biography source link | `#164e60` / `#f2f5f1` | 8.33:1 |

All exceed 4.5:1. These pairs do not establish photograph/gradient contrast or
focus-indicator contrast against every neighbouring background.

## Tests not completed — do not mark these as passed

- **Actual VoiceOver/Safari and NVDA/Chrome or Firefox speech:** no real session
  completed. Permission was requested before temporarily enabling VoiceOver;
  system settings were not changed. NVDA is not available in this Mac test setup.
  Check rotor/browse-mode order, dynamic hub announcements, dialog entry/exit,
  disclosures, field errors and the external signup flow.
- **Native browser zoom at 200% and 400%:** attempted zoom shortcuts did not
  change the reported viewport or device-pixel ratio. Narrow reflow tests are
  recorded separately, not substituted for real zoom.
- **Full text-spacing coverage:** only sampled desktop components were checked.
  Test every section, mobile layout, expanded menu and dialog with user styles.
- **Reduced motion / forced colours on real systems:** source support inspected;
  no actual OS preference change or Windows high-contrast session performed.
- **Flash safety:** no frame-by-frame luminance/area analysis of the complete
  star/sun sequence. Visual inspection or a pause control cannot certify 2.3.1.
- **Physical touch/trackpad and user testing:** not performed. Include people
  using assistive technology before institutional acceptance.
- **Full 24px target-spacing audit, all image alternatives, all background
  variants in every scene, and all external destinations:** not completed.

## Standards and brand sources

- [W3C: Pause, Stop, Hide](https://www.w3.org/WAI/WCAG22/Understanding/pause-stop-hide.html)
- [W3C: Reflow](https://www.w3.org/WAI/WCAG22/Understanding/reflow.html)
- [W3C: Text Spacing](https://www.w3.org/WAI/WCAG22/Understanding/text-spacing.html)
- [W3C: Target Size (Minimum)](https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum.html)
- [U of T reverse-signature guidance](https://www.utm.utoronto.ca/communications/brand-resources/utm-signature-usage-guidelines)

44px controls are a useful design target, not the general WCAG 2.2 AA minimum:
2.5.8 uses 24px with specified exceptions; 44px belongs to the enhanced criterion.
