README.mdMIT
a11y-probe opens your page in a headless browser, presses Tab until focus is back where it started and prints every stop: what was focused, whether you could see it, and the name a screen reader would announce.
Usage
npx a11y-probe https://your-site.com/checkout --width 390
1 a "Skip to content" ring ok
2 a "Northwind home" ring ok
3 button "" NO NAME
4 input "Card number" ring ok
5 div (focus lost) NOT VISIBLE
What it catches
- Controls with no accessible name
- Focus that lands on something invisible or off screen
- Focus traps, and menus you cannot leave with Escape
It exits with code 1 when anything fails, so it can sit in CI next to your tests.
