К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

a11y-debugging — скилл для Claude Code: аудит доступности

Проверяет доступность веб-страниц через Chrome DevTools MCP: семантику, ARIA, фокус, клавиатурную навигацию и контраст.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add ChromeDevTools/chrome-devtools-mcp --skill a11y-debugging -a claude-code
Открыть на GitHub

Что делает a11y-debugging

Скилл запускает аудит Lighthouse, читает сообщения браузера и строит дерево доступности через take_snapshot. По нему он проверяет заголовки, ориентиры страницы, имена кнопок, подписи полей и альтернативный текст изображений.

Для клавиатурной проверки используются press_key и снимки дерева после перехода фокуса. evaluate_script запускает готовые фрагменты для поиска полей без подписей, измерения сенсорных целей и проверки контраста. При сложном фоне можно сделать take_screenshot, но точное соотношение контраста по снимку не измеряется.

Инструменты, работающие со страницей, требуют pageId, который берётся через list_pages или new_page. Без pageId проверка конкретной вкладки не запустится, поэтому это повод сначала выбрать нужную страницу.

Какие задачи решает

  • найти ошибки доступности через Lighthouse
  • обнаружить кнопки без доступного имени
  • проверить порядок заголовков и ориентиры страницы
  • отследить переход фокуса клавишами Tab и Shift+Tab
  • выявить поля формы без связанных подписей

Примеры запросов агенту

  • Проверь текущую страницу на ошибки доступности через Lighthouse и разберись с проваленными проверками.
  • Сними дерево доступности и проверь заголовки, кнопки, поля формы и текст у изображений.
  • Пройди клавишей Tab по диалогу и убедись, что фокус остаётся внутри него.

Как установить a11y-debugging

1Через Skills CLI (Vercel)

npx skills add ChromeDevTools/chrome-devtools-mcp --skill a11y-debugging -a claude-code

2Вручную: положить файлы

~/.claude/skills/a11y-debugging/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/a11y-debugging/

Из того же набора6

Весь набор →
chrome-devtools ChromeDevTools Скилл подключает Chrome DevTools через MCP для отладки страниц, браузерной автоматизации, анализа производительности и сетевых запросов. Claude Code CX Codex Cursor +1 8 600установок chrome-devtools-cli ChromeDevTools Позволяет агенту управлять браузером через Chrome DevTools: кликать по элементам, собирать снимки памяти и профилировать производительность прямо из терминала. Claude Code CX Codex Cursor +1 6 700установок debug-optimize-lcp ChromeDevTools Разбирает Largest Contentful Paint на четыре последовательных этапа и показывает, где именно тормозит загрузка главного контента страницы. Claude Code CX Codex Cursor +1 3 500установок troubleshooting ChromeDevTools Пошагово диагностирует сбои подключения и ошибки инструментов Chrome DevTools MCP в ассистенте. Пригодится, когда не запускается сервер или падают команды управления вкладками. Claude Code CX Codex Cursor +1 3 200установок memory-leak-debugging ChromeDevTools Находит утечки памяти в JavaScript и Node.js через Chrome DevTools MCP. Пригодится для анализа высокого расхода памяти, OOM и heap snapshots. Claude Code CX Codex Cursor +1 3 200установок

Похожие

markdown-to-html официальный github Скилл помогает превращать Markdown в HTML и писать скрипты для такой конвертации. Подойдёт для HTML-документации, статических сайтов и предпросмотра .md-файлов. GitHub Copilot 9 899установок shadcn-svelte huntabyte Скилл помогает работать с shadcn-svelte: добавлять компоненты, составлять интерфейсы, исправлять стили и отлаживать проекты. Нужен, если вы пишете UI на Svelte с использованием shadcn-svelte или планируете начать. Claude Code CX Codex Cursor +1 6 700установок motion-design LottieFiles Скилл помогает проектировать анимации интерфейса: выбирать длительность, easing и последовательность движения. Пригодится для микровзаимодействий, загрузки и переходов между страницами. Claude Code CX Codex Cursor +1 19 700установок extract-design-system arvindrk Скилл находит базовые токены дизайна на веб-странице и создаёт начальные файлы tokens.json и tokens.css. Он полезен для быстрого старта стилизации в новом репозитории. Claude Code CX Codex Cursor +1 130 600установок figma-generate-design официальный openai Собирает и обновляет целые экраны в Figma из кода или описания, используя опубликованную дизайн-систему, а не нарисованные с нуля прямоугольники. Claude Code CX Codex Cursor +1 2 900установок figma-create-design-system-rules официальный openai Генерирует правила дизайн-системы для кодовой базы при переносе макетов из Figma. Помогает агентам соблюдать структуру компонентов и токенов проекта. Claude Code CX Codex Cursor +1 2 900установок frontend-design официальный anthropics Скилл задаёт осмысленное визуальное направление для новых интерфейсов и редизайна. Подойдёт, когда стандартный шаблонный UI не устраивает. Claude Code Claude.ai 1 025 790установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. Claude Code CX Codex Cursor +1 673 100установок

Вопросы о a11y-debugging

Как установить a11y-debugging в Claude Code?

Выполните npx skills add ChromeDevTools/chrome-devtools-mcp --skill a11y-debugging -a claude-code дважды, затем используйте файл ~/.claude/skills/a11y-debugging/SKILL.md.

Что делает a11y-debugging?

Скилл проводит аудит доступности страницы через Chrome DevTools MCP. Он использует Lighthouse, дерево доступности, сообщения браузера и проверки клавиатурного фокуса.

Зачем a11y-debugging нужен pageId?

Инструменты работы с конкретной страницей, включая take_snapshot, press_key и lighthouse_audit, принимают pageId. Его можно получить через list_pages или при создании страницы командой new_page.

Исходный текст

SKILL.md · Apache-2.0
---
name: a11y-debugging
description: Uses Chrome DevTools MCP for accessibility (a11y) debugging and auditing based on web.dev guidelines. Use when testing semantic HTML, ARIA labels, focus states, keyboard navigation, tap targets, and color contrast.
---

## Core Concepts

**Page Targeting**: Page-scoped tools (`take_snapshot`, `list_console_messages`, `evaluate_script`, `press_key`, `take_screenshot`, `lighthouse_audit`, etc.) require a `pageId` parameter. Retrieve available page IDs using `list_pages` or from `new_page`.

**Accessibility Tree vs DOM**: Visually hiding an element (e.g., `CSS opacity: 0`) behaves differently for screen readers than `display: none` or `aria-hidden="true"`. The `take_snapshot` tool returns the accessibility tree of the page, which represents what assistive technologies "see", making it the most reliable source of truth for semantic structure.

**Reading web.dev documentation**: If you need to research specific accessibility guidelines (like `https://web.dev/articles/accessible-tap-targets`), you can append `.md.txt` to the URL (e.g., `https://web.dev/articles/accessible-tap-targets.md.txt`) to fetch the clean, raw markdown version. This is much easier to read!

## Workflow Patterns

### 1. Automated Audit (Lighthouse)

Start by running a Lighthouse accessibility audit to get a comprehensive baseline. This tool provides a high-level score and lists specific failing elements with remediation advice.

1.  Run the audit:
    - Set `mode` to `"navigation"` to refresh the page and capture load issues.
    - Omit `outputDirPath` to save reports to the default temporary directory (the exact path to `report.json` is returned under `Reports`), or set `outputDirPath` to a directory within the workspace.
2.  **Analyze the Summary**:
    - In the default text output, category scores use a 0-100 scale (100 is a perfect score), followed by `Passed: N` and `Failed: N` audit counts.
    - If the server was started with `--experimentalStructuredContent`, inspect `summary.scores[].score` (0-1 scale) and `summary.audits.failed` in the structured content instead.
3.  **Review the Report (CRITICAL)**:
    - **Parsing**: Do not read the entire file line-by-line. Use a CLI tool like `jq` or a Node.js one-liner to filter for failures from the report path returned by `lighthouse_audit`:
      ```bash
      # Extract failing audits with their details (replace with report.json path from tool response)
      node -e "const r=require('<path/to/report.json>'); Object.values(r.audits).filter(a=>a.score!==null && a.score<1).forEach(a=>console.log(JSON.stringify({id:a.id, title:a.title, items:a.details?.items})))"
      ```
    - This efficiently extracts the `selector` and `snippet` of failing elements without loading the full report into context.

### 2. Browser Issues & Audits

Chrome automatically checks for common accessibility problems. Use `list_console_messages` to check for these native audits:

- `types`: `["issue"]`
- `includePreservedMessages`: `true` (to catch issues that occurred during page load)

This often reveals missing labels, invalid ARIA attributes, and other critical errors without manual investigation.

### 3. Semantics & Structure

The accessibility tree exposes the heading hierarchy and semantic landmarks.

1.  Navigate to the page.
2.  Use `take_snapshot` to capture the accessibility tree.
3.  **Check Heading Levels**: Ensure heading levels (`h1`, `h2`, `h3`, etc.) are logical and do not skip levels. The snapshot will include heading roles.
4.  **Content Reordering**: Verify that the DOM order (which drives the accessibility tree) matches the visual reading order. Use `take_screenshot` to inspect the visual layout and compare it against the snapshot structure to catch CSS floats or absolute positioning that jumbles the logical flow.

### 4. Labels, Forms & Text Alternatives

1.  Locate buttons, inputs, and images in the `take_snapshot` output.
2.  Ensure interactive elements have an accessible name (e.g., a button should not just say `""` if it only contains an icon).
3.  **Orphaned Inputs**: Verify that all form inputs have associated labels. Use `evaluate_script` with the **"Find Orphaned Form Inputs" snippet** found in [references/a11y-snippets.md](references/a11y-snippets.md).
4.  Check images for `alt` text.

### 5. Focus & Keyboard Navigation

Testing "keyboard traps" and proper focus management without visual feedback relies on tracking the focused element.

1.  Use the `press_key` tool with `"Tab"` or `"Shift+Tab"` to move focus.
2.  Use `take_snapshot` to capture the updated accessibility tree.
3.  Locate the element marked as focused in the snapshot to verify focus moved to the expected interactive element.
4.  If a modal opens, focus must move into the modal and "trap" within it until closed.

### 6. Tap Targets and Visuals

According to web.dev, tap targets should be at least 48x48 pixels with sufficient spacing. Since the accessibility tree doesn't show sizes, use `evaluate_script` with the **"Measure Tap Target Size" snippet** found in [references/a11y-snippets.md](references/a11y-snippets.md).

_Pass the element's `uid` from the snapshot as an argument to `evaluate_script`._

### 7. Color Contrast

To verify color contrast ratios, use the **"Check Color Contrast" snippet** found in [references/a11y-snippets.md](references/a11y-snippets.md) with `evaluate_script`.

### 8. Global Page Checks

Verify document-level accessibility settings often missed in component testing using the **"Global Page Checks" snippet** found in [references/a11y-snippets.md](references/a11y-snippets.md).

## Troubleshooting

If standard a11y queries fail or the `evaluate_script` snippets return unexpected results:

- **Visual Inspection**: If automated scripts cannot determine contrast (e.g., text over gradient images or complex backgrounds), use `take_screenshot` to capture the element. While models cannot measure exact contrast ratios from images, they can visually assess legibility and identify obvious issues.

© ChromeDevTools · Apache-2.0 · ChromeDevTools/chrome-devtools-mcp

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой