Installable skillMIT + CC-BY-4.0

accesslint-scan

Audit a live page for accessibility issues, locate each WCAG violation precisely, and return a selector-grounded fix worklist without editing.

BY AccessLintUPDATED Oct 27, 2026
INTENDED FOR✳Claude Code>_Codex◈OpenClaw↗Cursor✦GeminiInstall in a listed agent.

instructions.md

---
name: accesslint-scan
description: "Audit a live page for accessibility issues, locate each WCAG violation precisely, and return a selector-grounded fix worklist without editing."
risk: critical
source: "https://github.com/AccessLint/skills"
date_added: "2026-06-02"
---

Audit a live page and report what's broken and where. Locate; don't fix. If no URL in `$ARGUMENTS`, ask for one.

## When to Use
- A supplied page needs an automated contrast, accessible-name, or semantic-markup audit.
- You need selector-grounded findings after a UI change, without modifying the application.
- Manual assistive-technology checks or site-wide conformance assessment are separate work.

## 1. Audit

Use an already reviewed, project-pinned installation of `@accesslint/chrome` and
`@accesslint/cli`; confirm their local binaries and CLI help before execution.
Do not silently download and execute `@latest`. Confirm the URL and whether
browser access could expose authenticated or sensitive content.

For a project whose locked installation exposes these binary names:

```bash
session_file="$(mktemp)"
./node_modules/.bin/accesslint-chrome ensure > "$session_file"
```

Read the complete JSON result once, record `port` and `managed`, and substitute
the returned port in `./node_modules/.bin/accesslint scan "<target>" --port "<returned-port>" --format json`. Never parse arbitrary
stdout chunks as complete JSON. Confirm the actual binary names from the
installed packages; they may differ by version. The current upstream command
shape is `scan <target> --port <port> --format json`.


Flags as needed: `--selector`, `--wait-for "<selector>"`, `--include-aaa`, `--disable <rules>`.

## 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`

Return the worklist without editing. Remediation requires a separate authorized task; current upstream names it `accesslint:accessibility-fix`, which may not be installed in this host.

## 3. Tear down

Stop only the managed browser session created for this audit, using the installed helper's supported session/port-specific stop operation. If it only supports `stop --all`, check for other managed sessions first and do not terminate unrelated audits. Skip teardown of an unmanaged browser.

## Gotchas

- `ensure` always determines the port — never hardcode 9222.
- CLI exit 2 = bad URL or page never loaded; check the dev server.

## Limitations
- Automated rules cannot certify full WCAG conformance; retain human-required findings and record scan failures separately from zero violations.
- Upstream CLI shape checked against [AccessLint scan source](https://github.com/AccessLint/skills/blob/main/plugins/accesslint/skills/accessibility-scan/SKILL.md); this AAS skill does not bundle the CLI or install it.
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
COMPATIBILITY & REFERENCES

Platform guidance

Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.