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.

Install it, pinned
mdr add reticlehq/reticle/verify-keyboard-access@v3.9.0

Pins 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

The exact contents, by fingerprint
mdr add reticlehq/reticle/verify-keyboard-access@sha256:d3c32e1c0cc47345

The 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.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_gmlmp3u25fjk2ljq.svg)](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.

versioncommittedcommitsizeaudit
v3.9.0 latest2026-10-29 f2e07e0 5,663 BA view · diff
v3.8.22026-10-26 f8a40d5 5,663 BA view · diff
v3.8.12026-10-26 a6b11ca 5,663 BA view · diff
v3.8.02026-10-25 68dd8a1 5,663 BA view · diff
v3.7.02026-10-09 4019204 5,661 BA view · diff
v3.6.02026-10-07 c08be48 5,661 BA view · diff
v3.5.02026-10-01 14085e6 5,661 BA view · diff
v3.4.02026-09-30 2685d9a 5,661 BA view · diff
v3.3.02026-09-28 21306a5 5,661 BA view

Audit of the latest version

A  17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
  • 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

GitHub

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.

More from reticlehq/reticle

AGENTS.md AGENTS.md file
reticlehq/reticle · AGENTS.md
git:20261025.68dd8a1 · audit A · 1,249 stars
CLAUDE.md CLAUDE.md file
reticlehq/reticle · CLAUDE.md
git:20261013.dbd2045 · audit A · 1,249 stars
SKILL.md SKILL.md skill
reticlehq/reticle · SKILL.md
git:20261101.329ba9a · audit C · 1,249 stars
AGENTS.md@apps/electron-vue-pinia AGENTS.md file
reticlehq/reticle · apps/electron-vue-pinia/AGENTS.md
git:20260930.f9b1ada · audit B · 1,249 stars
AGENTS.md@apps/examples/next AGENTS.md file
reticlehq/reticle · apps/examples/next/AGENTS.md
git:20261018.27143ad · audit A · 1,249 stars
CLAUDE.md@apps/examples/next CLAUDE.md file
reticlehq/reticle · apps/examples/next/CLAUDE.md
git:20260805.0da5b2e · audit B · 1,249 stars
llms.txt llms.txt file
reticlehq/reticle · llms.txt
git:20261104.e6d3033 · audit B · 1,249 stars
reticle SKILL.md skill
reticlehq/reticle · plugins/reticle/SKILL.md · Install, instrument and verify this running web app from the inside (DOM, network, routing, console and framework…
v3.9.0 · audit B · 1,249 stars
agentic-tdd SKILL.md skill
reticlehq/reticle · skills/agentic-tdd/SKILL.md · Test-driven development for behaviour a unit test cannot reach, by writing the expectation against the running app…
v3.9.0 · audit A · 1,249 stars
audit-my-app SKILL.md skill
reticlehq/reticle · skills/audit-my-app/SKILL.md · Sweep a whole running web app for what is broken, without writing a script or knowing the codebase. Clicks every…
v3.9.0 · audit A · 1,249 stars
debug-broken-ui SKILL.md skill
reticlehq/reticle · skills/debug-broken-ui/SKILL.md · Find out why something in a running web app does not work, when the console is empty and the code looks correct. Reads…
v3.9.0 · audit A · 1,249 stars
design-system-compliance SKILL.md skill
reticlehq/reticle · skills/design-system-compliance/SKILL.md · Check that the UI you actually rendered uses the design system, by reading computed styles in the running app against…
v3.9.0 · audit A · 1,249 stars

Every file in reticlehq/reticle

Browse by kind, by grade A, or by owner.