Automated checks are brilliant at what they do and dangerous when we pretend that’s everything. They catch missing alt text, empty buttons, contrast pairs you can compute. They cannot tell you whether a screen-reader user can actually complete the task — because that’s a judgement, not a rule.
What each pass catches
- Automated checks find the deterministic: missing labels, bad contrast, invalid landmarks. Cheap, fast, and worth running on every commit.
- Manual keyboard passes find the interactive: focus order, trapped focus, states that only exist on interaction.
- Screen-reader passes find the semantic: whether the announcement matches the intent, whether the heading structure tells the story.
A checkbox turning green is not the same as a user who can get the thing done.
The uncomfortable truth is that the highest-value passes are the slowest and least automatable — and they’re the first to get cut when a sprint overruns. The fix isn’t a better tool; it’s treating the manual pass as a design activity with the same status as a review.