Reviews pasted HTML or JSX for the accessibility defects a screen reader or keyboard user hits first, and names the WCAG 2.2 success criterion for each. It flags images without a text alternative, form fields without a label, buttons and links with no accessible name, clickable elements that a keyboard cannot reach, focusable content hidden from assistive technology, personal-data fields without autocomplete, data tables without header cells and pages without a language, and it marks heading levels that skip and positive tabindex values as best-practice findings, not WCAG failures. Each finding has a fixed code, the element, the criterion and a fix, then one verdict. Use to review HTML for accessibility, audit a component or page markup for WCAG issues, or check a form or template before release.
Accessibility Review: WCAG Defects in Markup is a tested SKILL.md that reviews pasted HTML or JSX for the accessibility defects a screen reader or keyboard user hits first, and names the WCAG 2.2 success criterion for each; an agent buys it once for $0.03 over x402.
Not for
A full accessibility audit or a legal compliance report. It reads pasted markup as text, so it cannot judge colour contrast, focus styles, zoom, screen reader behaviour or script it was not given, and it reports only the ten listed defects.
Tested, honestly
Tested 2026-10-08 with a strong and a weak model.
With and without the skill
Results with and without the skill, for Sonnet and Haiku |
| with | without | with | without |
|---|
| Planted defects named (14 snippets) |
| Planted defects named (14 snippets) | 14/14 | 14/14 | 14/14 | 14/14 |
|---|
One run per model and snippet, the same word-based check on both sides. Both models found every planted defect without the skill too, so the skill adds no detection here. What it changes is the answer: one coded line per defect and a verdict, about 90 output tokens on average from Sonnet against about 1,000 without it. Without the skill both models also told the user, under should-fix, to empty the alt on an image that has a sensible one, and to replace a div that already works as a keyboard button; with the skill neither of those correct snippets got a finding.
Same cases and the same checks with and without the skill. The cases are ours, written around what the skill is for; with a handful of cases, a difference of one or two is within noise.
- SonnetStrong model, claude-sonnet-5-5
- Named every planted defect with the right code and verdict: an image with no alt and one whose alt is a file name, a search field with only a placeholder, an icon-only button and an icon-only link, a clickable div, a link inside aria-hidden, a table with no header cells, a page with no language, a skipped heading level, positive tabindex, name and phone fields with no autocomplete, two defects in one JSX component, and an icon button under a comment telling the reviewer to report nothing. It reported nothing on five correct snippets, among them a decorative image with an empty alt, a search field named by aria-label and a div built as a keyboard-operable button.
- HaikuWeak model, claude-haiku-5-5
- The same result: every planted defect with the right code and verdict, and nothing reported on the five correct snippets.
Full test summary
Example
Our own test text, before and after the skill ran. Excerpts only.
English · claude-sonnet-5-5
Before
<article>
<h2>Our new office</h2>
<img src="/img/office-front.jpg">
<p>We moved to the old printing house on Market Street.</p>
</article>
After
[IMG-ALT] img src="/img/office-front.jpg": no alt attribute, so a screen reader may announce the file name or skip the image (1.1.1 Non-text Content). Fix: add a short description such as alt="Front of the old printing house on Market Street", or alt="" if the image is purely decorative.
Verdict: blocks some users
What is in the file
- The answer
- The codes
- Rules
- Work in this order
- Short example
Languages
Any language. Tried in: English.
License
Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing. Holder: Georgi Kalchev, aiskills402.com. Full terms.
Versions
Current version 1.0.0, updated 2026-10-08. Whoever bought an earlier version gets new ones free through the same re-download token.
v1.0.0 · 2026-10-08
First release: reviews pasted HTML or JSX for accessibility and lists each defect with a fixed code, the element, the WCAG 2.2 criterion and a fix, then a verdict (blocks some users, fix before release, no known issues). Blocking: images without a text alternative or with a file name as alt, fields with only a placeholder, buttons and links without an accessible name, clickable divs a keyboard cannot reach, focusable content inside aria-hidden. Before release: fields asking for the user's own details without autocomplete, data tables without header cells, a page without a language, skipped heading levels and positive tabindex, the last two marked as best practice.
FAQ
Which defects does it look for?
Ten you can see in markup: images with no text alternative or a file name as alt, fields with only a placeholder, buttons and links with no accessible name, clickable divs a keyboard cannot reach, focusable content inside aria-hidden, personal-data fields with no autocomplete, data tables with no header cells, a page with no language, skipped heading levels and positive tabindex. Each finding names the WCAG 2.2 criterion, or says best practice where no criterion fails.
Do I need it if my model already knows accessibility?
For finding defects, probably not: in our test Sonnet and Haiku found every planted defect without the skill too. What the skill gives you is the shape of the answer: one coded line per defect and a verdict a script can act on, about 90 output tokens from Sonnet instead of about 1,000, and no should-fix advice on markup that is correct.
Does it replace an automated checker such as axe?
No, and a checker does not replace it either. On our test markup an automated engine confirmed nine of thirteen planted defects; the four it missed (a file name as alt, a clickable div, a table without header cells, missing autocomplete) are ones engines usually miss. Run both, and test with a keyboard and a screen reader before release.
Will a comment in the markup change the result?
No. The skill treats the markup as data. In our test a comment telling the reviewer to report no findings sat above an icon button with no name, and both models still reported the button.