Accessibility
Work these steps on the in-app checklist β account menu β My testing checklist β where every Pass / Fail / Skip is recorded the moment you press it, and Fail files the report for you. This page (and its PDF) is the same list for reading, printing, or working offline; if you used paper, transfer your ticks into the app afterwards.
Keyboard, screen reader, contrast, motion. A keyboard-only pass and a screen-reader pass (VoiceOver on Mac/iPhone, TalkBack on Android, NVDA on Windows).
Each step: Do this, then check You should see.
Keyboard only (unplug the mouse)β
-
A11Y-01 Tab through the login page and sign in. You should see: every control is reachable in a sensible order with a visible focus ring.
-
A11Y-02 Open the sidebar, go to Projects, open a project, open the Data Manager, open a task, label it, submit. You should see: all possible with Tab/Shift+Tab/Enter/Space/arrows and the documented hotkeys; focus never gets trapped or lost.
-
A11Y-03 Open a modal (Choose fields, Share reputation) and press Escape. You should see: focus is trapped inside while open; Escape closes; focus returns to the opener.
-
A11Y-04 Use the floating hotkeys button (β¨). You should see: a readable list of all shortcuts; they match what the tooltips say.
Screen readerβ
-
A11Y-05 Read the menu bar, sidebar and a project card. You should see: icons have names (not 'button'), counts are announced with their meaning, the avatar says whose it is.
-
A11Y-06 Read a labeling interface: labels, regions panel, toolbar. You should see: each label announces its name and hotkey; the region toolbar buttons are named.
-
A11Y-07 Trigger a toast and an error. You should see: the screen reader announces it (live region).
Visualβ
-
A11Y-08 Check text contrast on pills, muted captions, disabled states, dark mode. You should see: at least 4.5:1 for body text, 3:1 for large text/UI boundaries.
-
A11Y-09 Zoom the browser to 200%. You should see: no content is cut off; layouts reflow.
-
A11Y-10 Turn on Reduce motion in the OS. You should see: no large animations; transitions are instant or subtle.
Formsβ
-
A11Y-11 Submit a form with errors (sign-up, settings). You should see: errors are next to the field, announced, and the first invalid field receives focus.
-
A11Y-12 Platform β Users β Delete on any user, keyboard only, then with a screen reader. You should see: focus lands inside the dialog; it is announced with its title; Tab and Shift+Tab stay inside; the radio groups, member picker and the typed-confirmation field have names; Delete user is announced as disabled until the form is complete; Escape closes and focus returns to the row menu.
Touchβ
- A11Y-13 On a phone, use every control on Home, a project and a labeling task. You should see: targets at least ~44 px; the region toolbar docks at the bottom.
Automated (nightly axe scan β see automation/)β
- A11Y-14 Run the automation (GitHub β Actions β Automation, or
npm testinautomation/). You should see: the axe-core scan of the login page, Home, Projects, Organisation β Members, Account and a project's Data Manager reports no serious or critical violations; anything found is filed automatically as an issue tagged source:automation.