Order + name
Did focus reach the expected control, and does that control have a detectable accessible name?
Local keyboard evidence
Record a keyboard path once. Replay it at 200% and 400% browser zoom. Catch clipped dialogs, hidden focus, and controls a generic audit never tried to reach.
Free and open source. No account. No telemetry. Screenshots stay on your machine or CI runner.
The two-command check
This is deliberately smaller than a test platform. One JSON workflow, two zoom levels, one visual report.
Build from source
cargo install --git https://github.com/B-Divyesh/sf-zoom-workflow-check zoomcheck1 · Record (finish with Alt+Shift+S)
zoomcheck record https://app.example.test/cart \
--name "Complete checkout" \
--out .zoomcheck/checkout.json
2 · Replay
zoomcheck check .zoomcheck/checkout.json \
--out artifacts/zoomcheck
CI exits 1 for blocking findings and 2 for invalid input or a failed browser run. Add --json --quiet for scripting.
Seeded report · cart flyout
ResultPasses at 200%
The focused payment button remains fully inside the flyout and viewport.
What the runner observes
Static rules cannot tell you whether a person can finish a named task. The runner samples evidence after every key.
Did focus reach the expected control, and does that control have a detectable accessible name?
Is an outline or box-shadow focus treatment present after the keyboard step?
Is the focus box inside the zoomed viewport and its overflow ancestors, with sampled points unobscured?
Can the document or a containing region scroll when zoom makes the path larger than the available space?