S01 Accessibility and Performance Acceptance Gates

Status: SUPERSEDED for the current UI gate (2026-07-13); historical acceptance plan Date: 2026-02-20
Working directory: docs/modules/ui/v2-rewire

Use the directory currency notice for current navigation and route tests.

Purpose

Define mandatory pass/fail gates for the navigation shell, global scope controls, search, and run-centric release surfaces.

Accessibility gates (must pass)

AreaGatePass criteria
Keyboard entry pointsCtrl+K opens search, Escape closes active search/scope overlaysWorks from any authenticated shell page without focus traps.
Scope controlsRegion, Environment, Time Window controls are keyboard-operable on desktop and tablet/mobileScope panel is reachable via topbar Scope button and supports Tab, Enter, Space, Escape.
Focus visibilityShell controls have visible focus treatmentFocus ring contrast ratio >= 3:1 against adjacent background.
Nav semanticsSidebar and topbar expose valid navigation landmarksScreen readers announce main nav and scope dialog labels correctly.
Status/degraded messagingDegraded state banner is announced and actionableImpact (BLOCKING, DEGRADED, INFO) and retry action are readable by assistive tech.

Performance gates (must pass)

AreaGatePass criteria
Shell route transitionsCanonical root navigation (/dashboard, /releases, /security, /evidence, /topology, /platform)Route-to-render under 500ms median in local CI profile build.
Search interactionDebounced global searchInput-to-result update <= 300ms median for cached responses and <= 800ms for uncached responses.
Scope URL syncContext change URL patchingNo duplicate navigations/loops; one URL update per scope mutation.
Run detail live refreshActive run polling cadencePoll interval 15s with no overlapping requests; terminal runs stop polling.
Mobile shellScope panel renderScope panel opens in <= 200ms and does not trigger layout overflow at <= 1199px width.

Required checks per sprint close

  1. Run unit tests covering updated contracts:
    • src/tests/global_search/global-search.component.spec.ts
    • src/tests/context/platform-context-url-sync.service.spec.ts
    • src/tests/navigation/legacy-route-telemetry.service.spec.ts
    • src/tests/releases/release-detail.live-refresh.spec.ts
  2. Run route integrity checks:
    • src/tests/navigation/nav-model.spec.ts
    • src/tests/navigation/nav-route-integrity.spec.ts
    • src/tests/navigation/legacy-redirects.spec.ts
  3. Execute one manual keyboard walkthrough on desktop and <= 1199px layout for:
    • Scope controls
    • Global search
    • Run detail degraded banner retry action

If any gate fails, sprint closure remains BLOCKED until evidence of fix is logged in docs/implplan/SPRINT_*.md.