Agent skill

Accessibility Check

by makifbaysal in makifbaysal/tasktrooper

A skill your agent uses when a task changes any screen, form, dialog, menu or control - Lighthouse/axe scan of the changed screens, a keyboard walk, and the thresholds that fail a task

Apache-2.0Auto-check passedFrontend & Design

Install Accessibility Check

skills CLI
$ npx skills add makifbaysal/tasktrooper --skill accessibility-check -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install makifbaysal/tasktrooper accessibility-check --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/makifbaysal/tasktrooper.git skills-src && mkdir -p .claude/skills && cp -r skills-src/catalog/agents/qa-agent/skills/accessibility-check .claude/skills/accessibility-check && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
accessibility-check
GitHub stars
112
Token cost
~1.1k tokens
SKILL.md length
274 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when a task changes any screen, form, dialog, menu or control - Lighthouse/axe scan of the changed screens, a keyboard walk, and the thresholds that fail a task

  • A task changes any screen
  • SKILL.md covers Thresholds, Scan (public pages), Full axe (pages behind login,… and Keyboard walk (playwright-cli), plus 2 more sections
  • Calls node, npx and jq
  • Control - Lighthouse/axe scan of the changed screens

What it does

Accessibility Check is an agent skill from makifbaysal/tasktrooper. Use when a task changes any screen, form, dialog, menu or control - Lighthouse/axe scan of the changed screens, a keyboard walk, and the thresholds that fail a task

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering Accessibility and Web performance. It works with Playwright. The repository describes itself as: Local-first agent platform: board + role agents + agent CLI runs (Claude Code, Cursor, Antigravity, OpenCode) or local and API models (Ollama, LM Studio), all on your own Mac. The licence is Apache-2.0.

When your agent uses it

  • A task changes any screen
  • Control - Lighthouse/axe scan of the changed screens
  • A keyboard walk
  • The thresholds that fail a task

Example prompts

  • “/accessibility-check”

Requirements

  • Node.js

What it can do on your machine

Read from SKILL.md and the folder at commit c4496d5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • node
    • npx
    • jq
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx and npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Accessibility Check loads about 1.1k tokens when it runs. Until then it costs about 46 tokens; SKILL.md has 274 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~46
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from makifbaysal/tasktrooper at commit c4496d5, republished under its Apache-2.0 licence (© makifbaysal). 274 words, ~1,082 tokens.

Download SKILL.mdSave it as .claude/skills/accessibility-check/SKILL.md (or your agent's skills folder).
name
accessibility-check
description
Use when a task changes any screen, form, dialog, menu or control - Lighthouse/axe scan of the changed screens, a keyboard walk, and the thresholds that fail a task
category
qa
source
wshobson/agents (MIT), microsoft/playwright-cli (Apache-2.0), adapted

Accessibility Check

Thresholds

The same bar the frontend developer builds to (accessibility-basics, ui-quality-floor, responsive-mobile-first) — QA and developer share one bar, not a separate QA opinion:

  • labels on every control, aria-label on icon-only buttons;
  • visible focus on every interactive element;
  • contrast ≥4.5:1 body text / ≥3:1 large text;
  • touch targets ≥44px phone / ≥24px desktop;
  • <input> font ≥16px on phone;
  • exactly one <h1>, lang set on <html>, no user-scalable=no;
  • a dialog traps focus while open, Escape closes it, focus returns to the trigger;
  • submitting with errors moves focus to the first invalid field, which carries aria-invalid.

Scan (public pages)

bash
QA=${TMPDIR:-/tmp}/tt-<task-key>/qa; mkdir -p "$QA"; node -v   # lighthouse@13 needs Node >=22, else lighthouse@12
CHROME_PATH="$CHROME_BIN" npx -y lighthouse@13 "http://localhost:5173/settings" \
  --only-categories=accessibility,best-practices --form-factor=mobile \
  --screenEmulation.mobile --screenEmulation.width=360 --screenEmulation.height=800 --screenEmulation.deviceScaleFactor=2 \
  --chrome-flags="--headless=new" --output=json --output-path="$QA/lh-settings-360.json" --quiet
jq -r '.audits|to_entries[]|select(.value.score==0)|"\(.key)\t\(.value.title)"' "$QA/lh-settings-360.json"  # no jq: node -e 'for (const [k,v] of Object.entries(require(process.argv[1]).audits)) if (v.score===0) console.log(k+"\t"+v.title)' "$QA/lh-settings-360.json"

Run with run_terminal timeout_seconds: 300. errors-in-console in the output doubles as the console check for page load.

Full axe (pages behind login, or when Lighthouse flags something)

Install playwright-core + @axe-core/playwright into $QA, never the workspace:

bash
cd "$QA" && [ -d node_modules/@axe-core/playwright ] || npm i --no-audit --no-fund --silent playwright-core@1.63 @axe-core/playwright@4.13
cat > axe.cjs <<'EOF'
const { chromium } = require('playwright-core');
const { AxeBuilder } = require('@axe-core/playwright');
(async () => {
  const [url, width = '360'] = process.argv.slice(2);
  const browser = await chromium.launch({ executablePath: process.env.CHROME_BIN });
  const page = await browser.newPage({ viewport: { width: Number(width), height: 800 } });
  await page.goto(url);
  const { violations } = await new AxeBuilder({ page })
    .withTags(['wcag2a', 'wcag2aa', 'wcag21a', 'wcag21aa', 'wcag22aa']).analyze();
  for (const v of violations) console.log(`${v.impact}\t${v.id}\t${v.nodes.length}\t${v.nodes[0].target.join(' ')}`);
  console.log(`violations=${violations.length}`);
  await browser.close();
})();
EOF
node axe.cjs http://localhost:5173/settings 360

For a page behind login, add page.fill/page.click lines before the scan.

Keyboard walk (playwright-cli)

bash
cd "$QA"; PW="npx -y @playwright/cli@0.1"; $PW --help | head -5
$PW open --browser=chrome http://localhost:5173/settings
$PW press Tab; $PW --raw eval "(() => { const a = document.activeElement; return a.tagName + '|' + (a.getAttribute('aria-label') || a.textContent.trim().slice(0, 40)) + '|outline=' + getComputedStyle(a).outlineStyle })()"

Repeat Tab through every changed control; order must follow visual order, with no outline=none and no box-shadow silently replacing it. Open the dialog, press Escape, eval activeElement = the trigger.

Verdict and recording

  • A critical or serious violation whose target is inside a changed screen → fail the task (qa-criterion-verdicts rubric).
  • A violation outside the changed screen → a pre-existing-defect note (in_qa), not a fail.
  • Moderate/minor → a note, not a fail.
  • Record as a test case with category: visual and a title prefix a11y: — the category enum has no accessibility value of its own.

Red Flags

  • Quoting the Lighthouse score instead of the failing audits by name.
  • Scanning a page you did not change and failing the task for what it finds there.
  • "Keyboard OK" written with no Tab walk actually run.

© makifbaysal, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in catalog/agents/qa-agent/skills/accessibility-check of makifbaysal/tasktrooper.

Open the folder on GitHubat commit c4496d5

Compare with similar skills

Accessibility Check next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Accessibility Check compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Accessibility Check this skillmakifbaysal/tasktrooper112—~1.1kAutomated safety check: PassApache-2.0
Web Quality Auditaddyosmani/web-quality-skills2.9k—~2.6kAutomated safety check: PassMIT
Web Quality Auditmidudev/100cosas.dev1143 repos~1.7kAutomated safety check: PassMIT
Ibm A11y Route Scanlangflow-ai/langflow155k—~1.6kAutomated safety check: PassMIT
Ibm A11y Testing Guidelangflow-ai/langflow155k—~4.6kAutomated safety check: PassMIT
Control UIcursor/plugins11k2 repos~1.2kAutomated safety check: PassNone

Similar skills

  • Web Quality Audit

    addyosmani/web-quality-skills

    Run an evidence-led web quality audit covering performance, accessibility, SEO, best practices, and agentic browsing.

    2.9k GitHub stars~2.6k tokensUpdated 1 mo ago
    Frontend & DesignAuto-check passed
  • Web Quality Audit

    midudev/100cosas.dev

    Comprehensive web quality audit covering performance, accessibility, SEO, and best practices.

    114 GitHub starsUsed in 3 repos~1.7k tokens
    Frontend & DesignAuto-check passed
  • Ibm A11y Route Scan

    langflow-ai/langflow

    Batch-scan Langflow frontend routes for accessibility issues using the Python IBM Equal Access scanner (scripts/a11y/a11yscan.py) and produce JSON/Markdown/HTML reports.

    155k GitHub stars~1.6k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Ibm A11y Testing Guide

    langflow-ai/langflow

    Reference guide for writing and running Langflow frontend accessibility tests with axe (Jest) and IBM Equal Access (Playwright page.runA11yScan).

    155k GitHub stars~4.6k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Control UI

    cursor/plugins

    Official

    Build or adapt a local browser/CDP harness to drive and inspect a web, IDE, or Electron UI.

    11k GitHub starsUsed in 2 repos~1.2k tokens
    Frontend & DesignAuto-check passed
  • Scout UI Testing

    elastic/kibana

    Official

    A skill your agent uses when creating, updating, debugging, or reviewing Scout UI tests in Kibana (Playwright + Scout fixtures), including page objects, browser authentication, parallel UI tests…

    21k GitHub stars~3.1k tokensUpdated today
    Frontend & DesignAuto-check passed

More from makifbaysal/tasktrooper

All 12 skills in this repo
  • Acceptance Criteria Gwt

    makifbaysal/tasktrooper

    A skill your agent uses when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases

    112 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Access Control And Idor

    makifbaysal/tasktrooper

    A skill your agent uses when the diff adds or changes an endpoint, resolver, RPC, job or query that takes an object id, a role check, a request binding or a tenant filter - BOLA/IDOR, function-level…

    112 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Analiz Gate

    makifbaysal/tasktrooper

    A skill your agent uses when deciding whether a request needs an analiz task before implementation - the conditions that require the architect's analysis versus going straight to implementation

    112 GitHub stars~679 tokensUpdated today
    Auto-check passed
  • Analiz HTML Report

    makifbaysal/tasktrooper

    A skill your agent uses when you write or revise the analiz deliverable - the ONE self-contained HTML report (spec and plan as sections) a human reviews passage by passage

    112 GitHub stars~3.9k tokensUpdated today
    Auto-check passed
  • Analiz Human Review Gate

    makifbaysal/tasktrooper

    A skill your agent uses when you finish an analiz report - the human must approve the analysis before any implementation task is created, via the analizreview column

    112 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Android Compose Patterns

    makifbaysal/tasktrooper

    A skill your agent uses when building native Android with Jetpack Compose - stateless composables, state hoisting, ViewModel-owned state, edge-to-edge, predictive back, adaptive layout, atomic…

    112 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Works with

Questions about Accessibility Check

What does Accessibility Check do?

A skill your agent uses when a task changes any screen, form, dialog, menu or control - Lighthouse/axe scan of the changed screens, a keyboard walk, and the thresholds that fail a task. Accessibility Check is an agent skill from makifbaysal/tasktrooper.

When should I use Accessibility Check?

Accessibility Check fits situations like: A task changes any screen; control - Lighthouse/axe scan of the changed screens; A keyboard walk; the thresholds that fail a task.

How do I install Accessibility Check in Claude Code?

Run `npx skills add makifbaysal/tasktrooper --skill accessibility-check -a claude-code`. Or copy the skill folder (catalog/agents/qa-agent/skills/accessibility-check in makifbaysal/tasktrooper) into .claude/skills/accessibility-check in your project. Claude Code loads it when a task matches its description.

How do I install Accessibility Check in Codex?

Run `npx skills add makifbaysal/tasktrooper --skill accessibility-check -a codex`. Or copy the skill folder (catalog/agents/qa-agent/skills/accessibility-check in makifbaysal/tasktrooper) into .agents/skills/accessibility-check in your project. Codex loads it when a task matches its description.

Can I use Accessibility Check in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add makifbaysal/tasktrooper --skill accessibility-check -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/accessibility-check, .gemini/skills/accessibility-check, .github/skills/accessibility-check and .opencode/skills/accessibility-check in your project.

What does Accessibility Check need to run?

Going by SKILL.md and its folder, Accessibility Check needs the command-line tools its instructions call (node, npx, jq and npm). Our summary lists: Node.js.

Does Accessibility Check access the network?

SKILL.md contains no URLs. Its commands use npx and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Accessibility Check safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Accessibility Check use?

Accessibility Check is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Accessibility Check use?

About 1.1k tokens (SKILL.md is roughly 4.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Accessibility Check?

Skills that share tags, products or a category with Accessibility Check: Web Quality Audit (addyosmani/web-quality-skills, 2.9k stars), Web Quality Audit (midudev/100cosas.dev, 114 stars), Ibm A11y Route Scan (langflow-ai/langflow, 155k stars) and Ibm A11y Testing Guide (langflow-ai/langflow, 155k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Accessibility Check?

makifbaysal (a GitHub user) maintains it in makifbaysal/tasktrooper, which has 112 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 10, 2026.

Source: makifbaysal/tasktrooper on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.