All 141 tools / Accessibility checks
Find pointer-only designs in your code: hover reveals, drag, swipe, tiny targets and motion actuation
Input modality checkFreeFor developers and designers
25/day
free runs a day, no sign-in.
Before: what you give it
The example input, as typed in. You paste text, CSS, markup or notes.
<style>.menu:hover .sub{display:block}.card:hover .tip{opacity:1}.card:focus-within .tip{opacity:1}.icon-btn{width:16px;height:16px}</style><div class="menu" onmouseover="open()"><button aria-label="Open the menu">Menu</button></div><ul><li draggable="true">One</li></ul><script>el.addEventListener('touchmove',swipe);el.addEventListener('pointerdown',go);window.addEventListener('devicemotion',shake)</script>
After: what comes back
The first lines of a real run on that input. Nothing here is edited by hand.
INPUT MODALITY CHECK Looked for pointer-only designs: hover, drag, path gestures, down-events, motion, tiny targets. Findings: 3 high, 4 medium, 0 low, 0 info [HIGH] WCAG 2.1.1 Keyboard (A); 1.4.13 Content on Hover or Focus (AA): 1 hover rule reveal content with no focus twin Touch and keyboard users cannot hover. Content shown on hover also has to be dismissible, hoverable and persistent under 1.4.13. Seen in: .menu:hover .sub Fix: Mirror each :hover with :focus-visible or :focus-within, and put important content in the page, not only in a hover layer. [HIGH] WCAG 2.1.1 Keyboard (A): Mouse-enter or mouseover handler with no focus equivalent Keyboard, touch and switch users never trigger it. Seen in: <div.menu> Fix: Handle focus and blur alongside, or use click or press to toggle. ... full output on the tool page
What you get
Findings mapped to WCAG 2.5.x, 2.1.1 and 1.4.13 with severity and the code pattern found
What it cannot do
Static scan of the HTML, CSS and script you paste; it cannot tell whether an alternative exists elsewhere on the page.
Who it is for
- Developers
- Designers
Free and Pro
| Free | 25 runs a day per IP address, up to 100,000 characters a run. |
|---|---|
| Pro | No daily limit, 300 requests a minute, up to 200,000 characters a run. |
Use it from your assistant
The tool is called check_input_modality. Connect the server once, then ask for it by name or just describe the job. Install steps for each app.
claude mcp add --transport http designers https://designers.allthepossibles.com/mcp
curl -X POST https://designers.allthepossibles.com/api/input-modality -H 'content-type: application/json' -d '{"source":"<style>.menu:hover .sub{display:block}.card:hover .tip{opacity:1}.card:focus-within .tip{opacity:1}.icon-btn{width:16px;height:16px}</style><div class=\"menu\" onmouseover=\"open()\"><button aria-label=\"Open the menu\">Menu</button></div><ul><li draggable=\"true\">One</li></ul><script>el.addEventListener('\''touchmove'\'',swipe);el.addEventListener('\''pointerdown'\'',go);window.addEventListener('\''devicemotion'\'',shake)</script>"}'
Try it here
The form starts with the same example input, so you can run it first and then swap in your own.
More in accessibility checks
- Page accessibility
Scan one page's HTML for accessibility problems and see the WCAG criterion behind each one.
- Touch targets
Check button and control sizes against WCAG 2.5.8, iOS and web 44, and Android 48 targets.
- Screen reader script
Read a page as a linear script of what a screen reader would announce, with problems flagged inline.
- Reflow and resize check
Find what breaks at 400 percent zoom or 320px wide: blocked zoom, fixed widths and clipped boxes.
- Form audit
Audit a form's markup for labels, autocomplete, input types and error wiring, and review its error messages.
- Alt text quality
Catch missing, file-name and filler alt text on a page, and weak og:image alt, before it ships