Accessibility statement
We want this usable by everyone, and it is better than it was. It has not been independently audited, so this page tells you what has actually been done and what has not, rather than claiming a conformance level nobody has checked.
What has been built and tested for
- Keyboard operation. Every control is reachable and operable by keyboard. Dialogs can be dismissed with Escape, menus close on Escape and on click-outside, and focus is returned to whatever opened a dialog when it closes.
- It works without JavaScript. Filters, pagination and search are real links and real forms. Turning JavaScript off makes the app slower, not broken — and that is verified by an automated test that disables it and checks filtering still works.
- Colour contrast. Both the light and dark themes are checked by an automated sweep that computes the contrast ratio of every piece of text against its actual background and fails the build on anything unreadable.
- Respecting your system settings. Appearance follows your operating system unless you override it, and
prefers-reduced-motionremoves animation while keeping the information those animations carried. - Screen reader basics. One
h1per page and a sensible heading order; images either carry alt text or are explicitly marked decorative; icons that duplicate adjacent text are hidden from assistive technology rather than read twice; tables use real header cells; the charts carry text descriptions of what they plot. - Zoom and small screens. Layouts are relative, so text can be enlarged without cutting content off, and no page scrolls sideways on a phone — data tables scroll within their own frame, with a visible hint that they do.
Known gaps
These are real and we would rather you heard them from us.
- No independent audit. Everything above is our own testing. We have not had a WCAG 2.2 audit and therefore do not claim a conformance level.
- No screen reader testing with actual users. The markup is built correctly as far as we can tell, but correct markup and a good experience are not the same thing, and only real use finds the difference.
- The charts are visual. Each has a text description and every figure in it also appears in a table you can read directly, but there is no sonification or data-table toggle on the chart itself.
- Payment happens inside Stripe's form. That part of the flow is Stripe's markup, not ours, and its accessibility is theirs. We cannot fix a problem inside it, but please tell us if you hit one and we will raise it with them.
- Date inputs are the browser's own. Their behaviour varies between browsers and some are better than others.
Tell us about a barrier
If something here stops you doing what you came to do, email billing@greenreach.app and say what you were trying to do, what happened, and what you use — browser, assistive technology, anything relevant. We will reply, and we will tell you honestly whether and when we can fix it.
If you need something the site cannot currently give you — a figure, an export, an answer — ask us and we will get it to you another way in the meantime.