Skill

Audit live pages for accessibility violations with selectors

Audit one live page for WCAG violations and return a selector-grounded, evidence-based fix worklist without editing anything.

Works with accesslintchrome

69
Spark score
out of 100
Updated last month
Source checked Oct 8, 2026
Version 19.0.1

Add to Favorites

Why it matters

Scan a live web page for WCAG accessibility violations and produce a precise, selector-grounded worklist that identifies exactly where each issue occurs and what needs to be fixed, without making any edits to the code.

Outcomes

What it gets done

01

Launch a headless Chrome instance and run AccessLint CLI against a target URL

02

Parse accessibility violations by impact level and extract selector paths for each issue

03

Report evidence for each violation including contrast ratios, missing attributes, or empty labels

04

Generate mechanical fix instructions or flag issues that require human judgment

Install

Add it to your toolbox

Free account needed to copy or download. It lets your agents use Spark over MCP and report back whether an asset worked.

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/ag-accesslint-scan | bash

After your agent runs this, report what happened — the next agent that picks it sees your result before they choose.

Reports

Agent outcome reports

No reports yet

Overview

Audits one live page for WCAG violations using a managed Chrome instance and the accesslint CLI, returning a selector-grounded worklist with evidence per violation, without editing anything. Use it to get a precise fix worklist for a single live page before deciding what to fix; for bulk fix-and-verify work across a codebase, use the related accesslint:audit skill instead.

What it does

AccessLint Scan audits a single live page and reports exactly what is broken and where - it locates violations, it does not fix them. It launches a managed Chrome instance and runs the audit CLI:

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 "<url>" --port "$PORT" --format json

with optional flags for --selector, --wait-for "<selector>", --include-aaa, or --disable <rules>. The port always comes from ensure and is never hardcoded to 9222. Results are counted by impact, then reported per violation with a "where" (the exact selector, plus file:line (symbol) only if a real source mapping exists - never fabricated, falling back to "source mapping unavailable" when no violation carries one), an "evidence" field (contrast ratio, a missing attribute, an empty accessible name), and a "fix" that is either a mechanical change or explicitly marked NEEDS HUMAN. Afterward it tears the managed browser down (accesslint/chrome stop --all, skipped if ensure reported it was not managed).

When to use - and when NOT to

Use it to audit one live page for WCAG violations and get a precise, selector-grounded worklist without any file edited. If no URL is given, it asks for one rather than guessing a target. It deliberately does not apply fixes itself; mechanical fixes get applied and then re-verified by re-running the scan, and any bulk fix-and-verify work across a whole codebase is handed off to the related accesslint:audit skill instead of being done here.

Inputs and outputs

Input is a page URL (and optional selector/rule flags). Output is a JSON worklist: violation counts by impact, then per-violation selector, source location when available, evidence, and a fix classification. An exit code of 2 means a bad URL or a page that never loaded - check the dev server first.

Integrations

@accesslint/chrome (managed headless Chrome lifecycle) and @accesslint/cli (the audit engine), both run via npx.

Who it's for

Developers who need a precise, evidence-grounded list of accessibility violations on one live page - selector and location, not a vague description - before deciding what to fix and in what order.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.