Accessibility

Per master spec §I.4: Target WCAG 2.1 Level AA для MVP.

Текущий статус (Phase 16 baseline)

ARNO — internal tool в active development. Этот документ — baseline для launch readiness audit, не финальный compliance statement.

КатегорияStatusNotes
Color contrast (text)🟡 partialDark theme primary, contrast не tested во всех states
Keyboard navigation (Tab/Enter/Esc)🟡 partialNative HTML elements OK, custom canvas (workflow) — no
ARIA labels🟡 partialButtons OK, complex widgets (composition canvas) — minimal
Focus indicators🔴 не покрытоBrowser defaults relied upon, explicit ring not yet styled
Screen reader🔴 не testedNVDA / VoiceOver runs не запускались
200% text resize🟡 unknownMobile/desktop layouts не tested at 200%
Color-only signals🟡 partialDrift badges используют icon + color (good); some other states color-only

CI enforcement (планируется к launch)

  • axe-core в Playwright E2E — fail on violations. Configured в Phase 16 testing setup.
  • Lighthouse Accessibility score >90 per page — CI gate.

Тестируемые scenarios (для launch audit)

Critical paths (must pass WCAG 2.1 AA)

  1. Sign-up + sign-in flow (/, /app)

    • Tab navigation: works without mouse
    • GitHub OAuth redirect: screen reader announces state changes
    • Error states: announced + visible
  2. Projects list (/app)

    • Cards focusable via Tab
    • "Connect repo" / "Sync now" — clear focus + keyboard activatable
    • Delete confirmation modal — focus trap, Esc closes
  3. MD editor (/app/component?...)

    • Textarea: full keyboard editing
    • Sync badge: status announced via ARIA live region
    • Divergence modal: focus trap, Tab cycles inside, Esc closes
    • Save status: announced
  4. Library panel (/app/screen?...)

    • Component grid: Tab + arrow keys
    • Drift badges: icon + color + tooltip (color-not-sole-signal compliant)

Out of scope для MVP (per master spec §I.4)

  • Workflow canvas full keyboard navigation — complex graph editor. Tab between screens + Enter to drill in OK, full inside-canvas navigation post-MVP
  • High-contrast theme — system theme support only
  • Prototype walkthrough keyboard-only — share viewer mode interactive prototype

Known violations (need fix before public launch)

  1. Focus indicators on custom buttons — must add explicit ring (per WCAG 2.4.7)
    • Files: apps/web/src/components/*.css — add :focus-visible rules
  2. Color contrast в muted text--muted color на dark bg need verification
    • Tool: WebAIM contrast checker
  3. Composition canvas TSX preview drop targets — no ARIA labels
    • File: composition-canvas.tsx
  4. Liveblocks cursor labels — display name only via color, не announced

Tools

ToolPurposeГде использовать
axe-coreAutomated WCAG violationsPlaywright E2E (CI)
LighthouseScore + key issuesManual + CI gate
WAVE browser extensionVisual auditManual review
NVDA (Windows)Screen reader testingManual launch gate
VoiceOver (macOS)Screen reader testingManual launch gate
WebAIM contrast checkerColor contrastManual review

Launch checklist (per master spec §VII.2)

  • axe-core CI passing на all pages
  • Lighthouse Accessibility score >90 per page
  • All "critical paths" pass manual screen reader test (NVDA + VoiceOver)
  • Known violations resolved
  • Accessibility statement published (covers tested scenarios + known limitations)