Skip to main content

Accessibility

Ticks are recorded live

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 test in automation/). 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.