verify-keyboard-access SKILL.md skillA
verify-keyboard-access from reticlehq/reticle is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add reticlehq/reticle/verify-keyboard-access@v3.9.0Pins v3.9.0 in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- reticlehq/reticle
- Path
skills/verify-keyboard-access/SKILL.md- Versions recorded
- 9
- Latest version
- v3.9.0, committed Oct 29, 2026
- First version recorded
- Sep 28, 2026
- Size
- 5,663 bytes
- Repository stars
- 1,249
- License
- a license file GitHub does not identify
Verify that every interactive control on a page can take keyboard focus and that its primary action fires from the keyboard rather than only the mouse, and say plainly that Tab order cannot be verified today. Use when a component was hand-tested with a mouse, a custom dropdown/modal/combobox was added, or an accessibility report flags an unreachable control.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# Reachable is not the same as operable A `<div onClick>` styled to look like a button can look reachable (plenty of component libraries hand out `tabindex="0"` for free) and still do nothing when you press Enter on it. Being able to take focus proves a control is reachable, not that it works. **Reticle** can drive both halves in the running app. Not set up? Follow the [`reticle`](https://github.com/reticlehq/reticle/blob/main/skills/reticle/SKILL.md) skill: it installs Reticle, asks the user before `init` changes the app's files, and proves one flow. ## Read this before you start: Tab order cannot be verified today `press` always goes through a synthetic key event, and a synthetic Tab does not move focus. That is true in every mode, including `reticle drive`: there is no mode in which an agent can prove focus order. Do not go looking for one, and do not report a Tab-order result as passed or failed. Report it as **unknown**. What this skill can prove is narrower: that each control can take focus, and that its primary action fires from the keyboard. ## Confirm the session is healthy Confirm a live session exists for the page and can render and observe: ``` …
Read the whole file at its exact version.
How to install
mdr add reticlehq/reticle/verify-keyboard-access@sha256:d3c32e1c0cc47345The line at the top of this page pins the label v3.9.0, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_gmlmp3u25fjk2ljq)
3 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 9 versions of this file, between Sep 28, 2026 and Oct 29, 2026, about one every 4 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| v3.9.0 latest | 2026-10-29 | f2e07e0 | 5,663 B | A | view · diff |
| v3.8.2 | 2026-10-26 | f8a40d5 | 5,663 B | A | view · diff |
| v3.8.1 | 2026-10-26 | a6b11ca | 5,663 B | A | view · diff |
| v3.8.0 | 2026-10-25 | 68dd8a1 | 5,663 B | A | view · diff |
| v3.7.0 | 2026-10-09 | 4019204 | 5,661 B | A | view · diff |
| v3.6.0 | 2026-10-07 | c08be48 | 5,661 B | A | view · diff |
| v3.5.0 | 2026-10-01 | 14085e6 | 5,661 B | A | view · diff |
| v3.4.0 | 2026-09-30 | 2685d9a | 5,661 B | A | view · diff |
| v3.3.0 | 2026-09-28 | 21306a5 | 5,661 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (5663 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
reticlehq/reticle · 1,249 stars · license a license file GitHub does not identify · pushed 2026-11-07 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_gmlmp3u25fjk2ljq GET https://markdownregistry.com/api/v1/resolve?ref=reticlehq/reticle/verify-keyboard-access GET https://markdownregistry.com/api/v1/blob/d3c32e1c0cc473458596b6e51465ec94db2297c2d9085421155fe1d7466961e2
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.