Accessibility
Built to be used with a keyboard
and a screen reader.
We are not going to print a conformance badge here. This page says what was built, how it was checked, and where the work is not finished yet — because that is more useful to you than a claim we cannot back up.
What's built
Keyboard and screen-reader support, as a property of the shared components.
These are not page-level patches. Every screen is built from the same dialog, field and table primitives, so a fix made once applies everywhere those primitives are used.
Dialogs trap and return focus
Every dialog — confirm, create, approve — traps focus while it is open and returns it to the control that opened it once it closes.
A field's label, hint and error are tied together
The label, the hint text and the error message are all programmatically associated with the input, so a screen reader announces all three, not just the label.
Outcomes are announced
“Leave applied.” “Checked in at 09:02.” An action that succeeds says so out loud, not only with a colour change on the screen.
A data table sits behind every chart and heatmap
The same numbers, as a table, reachable by keyboard — for anyone who cannot read the chart, or would rather not.
A skip link and a real page title, on every screen
Every screen has a skip-to-content link and a page title that names where you are, not the app's name repeated forty times in a tab list.
Focus lands on the heading, never the top of the document
When the control you were on disappears — a row is approved, a modal closes, a tab changes — focus moves to that screen's heading, not back to the top of the page.
Tenant brand colours are clamped to 4.5:1
A workspace can set its own brand colour. Whatever shade is picked, the colour that reaches text and icons is clamped to at least 4.5:1 contrast against its background.
How it was checked
Three checks, run against the real screens — not a sample.
A sampled audit tells you about the pages someone remembered to pick. These three run everywhere.
An 18-task keyboard-only walk
Sign in, check in, apply for leave, open a payslip, claim an expense, raise a ticket, answer a survey, approve a request, complete a review — eighteen everyday tasks, done as an employee and as a manager, using only a keyboard and reading the browser's accessibility tree rather than the screen.
axe-core against WCAG 2.2 A and AA
Every employee and manager screen is run through axe-core against the WCAG 2.2 level A and AA rule set.
A lint rule that fails the build
An accessibility lint rule set runs as part of the build and fails it on an unnamed control or a click-only element.
Known gaps
What this does not cover yet.
Said here so you can decide whether it matters to you, rather than finding out after you have signed.
- Not yet tested by a person using NVDA or VoiceOver.
- Administrator screens received the same shared-component fixes as everywhere else, but not a page-by-page pass of their own.
- The recruitment pipeline's drag-and-drop board has no keyboard equivalent yet.
- The mobile app is not covered by this work.
Report a barrier
Write to hello@zivohr.com with the screen you were on and what happened. We acknowledge every report within two working days.
Book a demo · 30 min
See it on your own numbers.
Thirty minutes, your policies, your payroll edge cases. We will show you the parts that usually break.