Skip to content

Make the trainer usable with a screen reader #10

Description

@RCheesley

Make the trainer genuinely usable with a screen reader. This is the part of
accessibility that automated tooling cannot check, so it needs its own issue and
manual testing.

Axe already runs against every view in both themes in CI. Axe cannot see any of
what follows.

The problem this solves

A typing trainer is close to the worst case for a live region. Announcing every
keystroke produces a firehose that makes the app unusable; announcing nothing
leaves a screen reader user with no idea where they are.

Acceptance criteria

  • Individual keystrokes are not announced.
  • The current word is announced when it changes.
  • Errors are announced.
  • The end-of-drill result is announced once.
  • Progress uses a polite live region; the result uses assertive. Not the
    reverse.
  • The drill surface has an accessible name, and a description stating the next
    key, the finger and the row.
  • Nothing about progress, error state or key state is conveyed by colour alone.
  • prefers-reduced-motion: reduce removes every transition and any
    celebratory animation.

Manual testing required

Tested with at least VoiceOver on macOS and NVDA on Windows. The checklist in
docs/accessibility.md is the acceptance criteria; tick it off in the pull
request and say which assistive technology and version you used.

Tests this unblocks

  • End-to-end: announces the current word and the result, but not every
    keystroke
    . That test can only check the regions and their politeness, not
    whether the result is actually usable. The manual pass is the real test.

Help wanted

If you use a screen reader and would be willing to try this, that feedback is
worth more than anything the tooling can tell us.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    accessibilityBarrier affecting people with disabilitieshelp wantedExtra attention is needed

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions