UCDL Accessibility Use Case Definition Language
Contents

Writing Accessibility Use Case Tests with @afixt/usecase-runner

Some flows only work with a mouse. A tooltip that appears on hover, or a carousel that advances on pointer-over, is unusable for anyone navigating without a pointing device — and a test that hovers will happily pass anyway, because Playwright can hover even when a real user cannot.

Run with a profile to catch that:

node bin/usecase-runner.js run ./usecases --profile no-pointer

Under no-pointer, any hover or hover_out step fails before it touches the page, with failure_reason: 'profile_forbidden' so the report distinguishes "this flow needs a pointer" from "this assertion did not hold". The same flag works on generate, and the generated spec raises the same failure — the two modes never disagree.

The name says what it enforces. It is not keyboard-only: it forbids pointer verbs, it does not navigate the page by keyboard.