mcpField
S
scan

scan

github.com/accesslintTesting & quality114398 installsUpdated 9w ago
Repository

About scan

scan is a skill for auditing a live page and reporting accessibility violations with their locations and evidence. It suits developers who need to identify issues without changing the page.

Key features

  1. 01Audits a URL or configured target
  2. 02Reports impact counts and violations
  3. 03Includes selectors and available source locations
  4. 04Suggests mechanical fixes or human review
  5. 05Stops managed Chrome after the audit

Use cases

  1. 01Check a development page for accessibility issues
  2. 02Audit a Storybook target
  3. 03Locate violations before assigning remediation

Install

Copy the command and run it in a terminal.

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

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

Details

From the project README

Audit a live page and report what's broken and where. Locate; don't fix.

$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 to set targets up.

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. 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 + file:line (symbol) if source is present — never 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 mechanical ones then re-run to verify; for bulk work hand off to accesslint:audit.

3. Tear down

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

Gotchas

  • ensure always determines the port — never hardcode 9222.
  • CLI exit 2 = bad URL/target or 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