Skip to content
ShiftStub
  • How the math works
  • Pricing
  • Privacy
  • Support

Accessibility

Accessibility, measured rather than claimed.

A number you cannot read is not a number. Most of what is on this page is checked by a test that runs on every build, which is the only kind of accessibility claim worth making.

What we aim at

WCAG 2.2 level AA, for the app and for this website. Some of it we can prove today; some is still being audited before launch, and that is said plainly further down.

What is checked by machine, every build

  • Colour contrast, on every pair of colours in the design. Not a spot check — the design system carries a list of every foreground-on-background combination the product actually uses, with the WCAG floor each one has to clear and the reason it exists. A test re-measures all of them on every run and fails the build if one slips. That list is 85 pairs for the app's palette, and this site re-measures the same list against the CSS it ships plus 14 pairs of its own.
  • Combinations that fail are banned, not adjusted. Building this site found three colour pairings that would not clear the floor. The fix was to stop using them and record why, rather than invent a new colour that passes.
  • Tertiary text is enforced as large-text-only. The one colour that clears the 3:1 large-text floor but not the 4.5:1 body-text floor is prevented by lint from being used at body size.

Text size

  • Dynamic Type up to AX5 on iPhone, and 200% font scale on Android. Every text style scales, and line heights and letter spacing are scaled by hand alongside the font size — because the platform does not do it for you, and a fixed line box clips the moment somebody turns text size up.
  • Money wraps; it never truncates. At the largest sizes the figure wraps its label below rather than shrinking or cutting off with an ellipsis. There is a test for this, because a truncated paycheck is worse than no paycheck.
  • The calendar changes shape rather than shrinking. At large accessibility sizes the month grid becomes a week list, so the cells never become unreadable squares.
  • On this site: everything is in relative units, so browser zoom and your own default font size both work. It has been checked at 200% zoom and down to a 320-pixel-wide screen.

Screen readers

  • Money is announced as words, with its label. The hero figure reads as “Next check, three thousand fifty-one dollars 45, estimate” — not as a string of digits, and never without the word “estimate” when the figure is one.
  • Every ledger row is one thing, not four. A row announces its label, its hours, its rate and its amount together, in that order, rather than as four unrelated fragments.
  • Recomputed totals are announced. On this site, changing the rules in the math section announces the new total.
  • Every screen and every state has been given a name and a role, including empty states.

Colour is never the only signal

Every shift type is a colour and a glyph and a label — a day shift is amber, a sun, and the word Day. The same rule applies to errors, to warnings, and to the difference chips on a paycheck comparison: none of them is distinguishable by hue alone.

Motion

The app bans parallax and scroll-driven effects outright. This site allows a little more — money counts up once, ledger rows print in sequence, the calendar demo paints itself — and all of it stops when you ask it to.

If your system is set to reduce motion: transitions become an 80-millisecond crossfade, figures render at their final value immediately, the calendar demo shows a finished month with no animation at all, and the play control is removed rather than left there doing nothing. This was tested by hand in both themes.

The calendar demo also has a real pause button, and it stops on its own when it scrolls out of view.

Keyboard and pointer

  • Everything on this site is reachable and operable with a keyboard alone.
  • Focus is always visible: a 2-pixel ring, 2 pixels clear of the control, in a colour measured against every background it can appear on.
  • There is a skip link to the main content, and it is the first thing you reach.
  • Interactive targets are at least 44 by 44 pixels.
  • The interactive parts of this site are built from real form controls, so they behave the way your browser and your assistive technology already expect.

Two themes

The dark theme was designed first, because four in the morning is a normal time to open this app, and a face full of white light is not a neutral design decision. There is no pure white surface in the dark theme and no pure black in the light one. The site follows your system setting and remembers it if you override it.

What is not finished

A full accessibility audit is in progress and it gates launch. What is on this page is what is tested and true today. It is not a certification, and it is not a claim that nothing is wrong.

Known gaps we are working through:

  • The app has not yet been through an end-to-end pass with VoiceOver and TalkBack on real hardware with real assistive-technology users. It has been tested by its builders, which is not the same thing.
  • Some screens are specified for the largest text sizes but have not been seen at those sizes on a physical device.
  • Six custom brand glyphs are not drawn yet; every place they will go currently uses a platform symbol that is already labelled.

Tell us what is broken

If something here does not work for you, that is a bug and we would like to know. support@shiftstub.com, with “accessibility” in the subject line.

Tell us what you were trying to do, what assistive technology you use, and what happened. You will get a reply from a person within two business days, and a report about accessibility goes to the front of the queue.

Placeholder That address is not live yet — see the TODO list in the site's README.

Made for people paid by the hour.

  • Privacy
  • Terms
  • Support
  • Accessibility

This site has no cookies, no trackers and no third-party scripts, so there is nothing to ask you to accept.

ShiftStub is a calculation and record-keeping tool. It is not a payroll provider, and nothing here is legal or tax advice. Your employer's own check and your own records govern.

© 2026 ShiftStub. US English, US labour law, v1.