mcpField
A
accessibility-scan

accessibility-scan

github.com/accesslintTesting & quality1141.1k installsUpdated 9w ago
Repository

About accessibility-scan

An accessibility scanning skill for auditing a live page and reporting detected violations and their locations. It uses the accesslint CLI and focuses on locating issues rather than fixing them.

Key features

  1. 01Scan a URL or configured target
  2. 02Run accesslint rule checks
  3. 03Report violations by impact
  4. 04Include selectors and available source locations
  5. 05Provide evidence and suggested fixes

Use cases

  1. 01Checking a live page for accessibility violations
  2. 02Reviewing a configured development or Storybook target
  3. 03Locating reported issues before a separate remediation pass

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/accesslint/skills --skill accessibility-scan

After installing, type/accessibility-scanin Claude Code to confirm it loaded.

Details

From the project README

Audit a live page and report each violation and where it is. Locate; don't fix.

Shared grounding and honesty conventions: ../shared/methodology.md.

$ARGUMENTS is a URL, a config target name (dev, storybook, …), or empty to audit the default target from accesslint.config.json. If it's empty and no config exists, ask for a URL or suggest npx @accesslint/cli init.

1. Audit

PORT=$(npx -y @accesslint/chrome@latest ensure | node -e 'process.stdin.on("data",d=>process.stdout.write(""+JSON.parse(d).port))')
npx -y @accesslint/cli@latest scan <target> --port "$PORT" --format json

<target> is the URL or config target name from $ARGUMENTS. Omit it (don't pass "") to audit the config's default target. Add flags as needed: --selector, --wait-for "<selector>", --include-aaa, --disable <rules>, or pin them per-target in accesslint.config.json.

2. Report

Counts by impact, then one entry per violation:

  • where: selector verbatim, plus file:line (symbol) if source is present. Don't fabricate. If no violation has source, note "source mapping unavailable; located by selector only".
  • evidence: contrast ratio, missing attribute, empty name.
  • fix: mechanical change, or NEEDS HUMAN.

Don't edit. For fixes, apply the mechanical ones and re-run to verify; for bulk work hand off to accesslint:accessibility-fix.

3. Tear down

npx -y @accesslint/chrome@latest stop --all  # skip if ensure reported "managed":false

Notes

  • ensure determines the port; don't hardcode 9222.
  • CLI exit 2 means a bad URL or target, or the page never loaded; check the dev server. An unknown target name makes the CLI list the available targets from accesslint.config.json.

Comments

Markdown supported