Docsbook
← Back to catalog
analysis

docs-accessibility

Catch a11y issues in your docs before users hit them. Audits markdown for WCAG 2.1 AA violations a screen reader actually cares about — missing alt text, broken heading hierarchy, vague link anchors, captions and code-block language. Returns a prioritized fix list per page.

Install & use this skill

Pick your AI client — install this single skill and call it.

1. Install
npx skills add Docsbook-io/docs-skills --skill docs-accessibility -a claude-code
2. Use
/docs-accessibility

Invoke as a slash command in chat.

Or: runtime discovery via Docsbook MCP

Already connected to the Docsbook MCP server? Skip install — ask your agent to load this skill on demand.

@docsbook find_skill "docs-accessibility"

docs-accessibility — Accessibility Analysis (WCAG 2.1 AA)

Workflow#

  1. Gather the docs — get the list of pages in scope and read their content. If a semantic/graph search tool over the markdown is available (self-hosted markdown-lsp, or a connected Docsbook workspace), prefer it — it's faster and cheaper than scanning files; otherwise read the files directly with grep/find. Prioritize Tier 1 pages (quick-start, pricing, auth, install) first.
  2. Apply checklist — scan each page for the three big categories: alt text, heading hierarchy, and anchor text. Then cover lists, tables, code blocks, video, and text readability.
  3. Produce report — return one JSON issue object per finding, sorted by severity.

Guardrails#

Inputs#

This skill needs two things, by whatever means are available:

Acceleration (optional). Graph/semantic search over the docs makes navigation faster and cheaper than scanning files. You can self-host it with markdown-lsp, or get the same capability in the cloud by connecting a Docsbook workspace. With nothing connected, plain file reads and grep/find work fine.

Checklist#

Images and Alt Text#

Heading Hierarchy#

Lists#

Tables#

Code Blocks#

Video and Media#

Text Readability#

Markdown Hygiene#

What to Look For#

Severity Problem Detection
critical Informative image without alt text ![]() pattern
critical Multiple H1 in page body Count ^# lines
high Alt starts with "image of" / "picture of" Regex on alt text
high "click here" / "read more" anchor text Grep pattern
high Heading level skip (H2 → H4) Parse heading sequence
high Code block without language specifier ``` with no language
high Video without captions/transcript mentioned iframe/video without caption note
medium Generic alt: "Screenshot", "Diagram", "Image" Regex on alt text
medium Long paragraphs (> 6 sentences) Sentence count
medium Color-only meaning in prose "red", "green" as sole indicators
medium Table without header row Parse table structure
low Raw HTML used where markdown equivalent exists <div>, <span> in content
low Emoji used as functional indicator Emoji at start of list items or as status

Output Format#

{
  "file": "docs/guides/setup.md",
  "line": 23,
  "severity": "critical",
  "rule": "image-missing-alt",
  "found": "Line 23: ![](screenshots/settings.png) — informative image with no alt text. Screen readers cannot describe it.",
  "suggestion": "Add descriptive alt: '![Workspace settings page with API key field highlighted at the top](screenshots/settings.png)'. If purely decorative, confirm with empty alt and no surrounding context that depends on it."
}
{
  "file": "docs/api/errors.md",
  "line": 45,
  "severity": "medium",
  "rule": "color-only-meaning",
  "found": "Line 45: 'Red items in the log output indicate errors.' — meaning is conveyed by color only. Users with color blindness cannot distinguish them.",
  "suggestion": "Add a non-color indicator: 'Items prefixed with [ERROR] are shown in red in the log output.' or 'Error items (marked with ✕ and shown in red)...'"
}
{
  "file": "docs/tutorials/first-deploy.md",
  "line": 67,
  "severity": "high",
  "rule": "heading-skip",
  "found": "H2 'Configuration' (line 45) is followed by H4 'Advanced options' (line 67), skipping H3. Screen reader navigation by heading becomes disorienting.",
  "suggestion": "Change H4 to H3, or add an intermediate H3 'Configuration sections' to group the content logically."
}

Acceptance Criteria#

View source on GitHub →Browse full catalog repo →
Keywords
accessibilitya11ywcagalt-textheadingsscreen-reader