Claude skills for Accessibility, tested
Skills for accessibility work, measured on accessibility audit tasks. Each was the same task, run twice, once with the skill loaded and once without it, and what is below is what changed. Ranked by how many models the rule found a clear effect on, never by the size of one.
Measured on 3 models (Claude, GPT & Gemini): Claude Haiku 4.5, GPT-5 mini, Gemini 3.1 Flash Lite.
10 fixture web pages, each seeded with known WCAG defects, 48 in total. The model is asked to list the defects it finds; the score is the share of seeded defects it names. 23 defects are verified in the fixtures by mechanical check; 25 are judgement items the check cannot verify and are listed as such. These are the tier 1 pages.
What helped, and on how many models
First
skills/accessibility-audit rampstackco/claude-skills*
Accessibility audit
Helped on Claude Haiku 4.5; no reliable difference on Gemini 3.1 Flash Lite and GPT-5 mini. Measured against no skill loaded, on tier 1, the original pages.
Found 71% of the seeded accessibility defects, against 58% with no skill loaded. Instruction arm: not measured.
Via API
- Claude Haiku 4.5 · helped
- Gemini 3.1 Flash Lite · unclear. The model scored 63% without it.
- GPT-5 mini · unclear. The model scored 69% without it.
In Claude Code
- Claude Opus 5, First run, single attempt · unclear. The model scored 89% without it.
- Claude Fable 5, Second run, every task twice · unclear. The model scored 80% without it.
- Claude Haiku 4.5, Second run, every task twice · helped
- Claude Opus 5, Second run, every task twice · unclear. The model scored 89% without it.
- Claude Sonnet 5, Second run, every task twice · unclear. The model scored 84% without it.
- Claude Fable 5.1, Fable 5.1, single attempt · unclear. The model scored 88% without it.
- Claude Fable 5.1, Wider run, three ways · unclear. The model scored 84% without it.
- Claude Haiku 4.5, Wider run, three ways · unclear. The model scored 43% without it.
- Claude Opus 5, Wider run, three ways · unclear. The model scored 89% without it.
- Claude Sonnet 5, Wider run, three ways · unclear. The model scored 77% without it.
- Claude Fable 5, Fable 5, wider run, three ways · Nothing left to measure. The model scored 91% without the skill.
- Claude Opus 5.5, Opus 5.5 series, wider run, three ways · unclear. The model scored 83% without it.
Cost per task, with the skill loaded: about $0.0063. Adds about 11,700 tokens of context to every request.
Tied for second · shared with 4 others, and the tie is broken by nothing
skills/accessibility-audit rampstackco/claude-skills*
Accessibility audit
No reliable difference on any model tested. The models scored 60% without it. Measured against the same task with a one-line instruction, on tier 1, the original pages.
Found 68% of the seeded accessibility defects, against 60% with no skill loaded. Against 60% with a one-line instruction instead.
Via API
- Gemini 3.1 Flash Lite · unclear. The model scored 63% without it.
- GPT-5 mini · unclear. The model scored 57% without it.
In Claude Code
- Claude Opus 5, First run, single attempt · unclear. The model scored 89% without it.
- Claude Fable 5, Second run, every task twice · unclear. The model scored 80% without it.
- Claude Haiku 4.5, Second run, every task twice · helped
- Claude Opus 5, Second run, every task twice · unclear. The model scored 89% without it.
- Claude Sonnet 5, Second run, every task twice · unclear. The model scored 84% without it.
- Claude Fable 5.1, Fable 5.1, single attempt · unclear. The model scored 88% without it.
- Claude Fable 5.1, Wider run, three ways · unclear. The model scored 84% without it.
- Claude Haiku 4.5, Wider run, three ways · unclear. The model scored 43% without it.
- Claude Opus 5, Wider run, three ways · unclear. The model scored 89% without it.
- Claude Sonnet 5, Wider run, three ways · unclear. The model scored 77% without it.
- Claude Fable 5, Fable 5, wider run, three ways · Nothing left to measure. The model scored 91% without the skill.
- Claude Opus 5.5, Opus 5.5 series, wider run, three ways · unclear. The model scored 83% without it.
Cost per task, with the skill loaded: about $0.003. Adds about 11,300 tokens of context to every request.
Tied for second · shared with 4 others, and the tie is broken by nothing
plugins/accessibility-compliance/skills/wcag-audit-patterns wshobson/agents
Accessibility audit
No reliable difference on any model tested. The models scored 63% without it. Measured against the same task with a one-line instruction, on tier 1, the original pages.
Found 63% of the seeded accessibility defects, against 63% with no skill loaded. Against 58% with a one-line instruction instead.
Via API
- Gemini 3.1 Flash Lite · unclear. The model scored 63% without it.
- GPT-5 mini · unclear. The model scored 64% without it.
In Claude Code
- Claude Fable 5.1, Wider run, three ways · Nothing left to measure. The model scored 94% without the skill.
- Claude Haiku 4.5, Wider run, three ways · unclear. The model scored 49% without it.
- Claude Opus 5, Wider run, three ways · unclear. The model scored 86% without it.
- Claude Sonnet 5, Wider run, three ways · unclear. The model scored 81% without it.
- Claude Fable 5, Fable 5, wider run, three ways · Nothing left to measure. The model scored 91% without the skill.
- Claude Opus 5.5, Opus 5.5 series, wider run, three ways · Nothing left to measure. The model scored 90% without the skill.
Cost per task, with the skill loaded: about $0.00113. Adds about 4,000 tokens of context to every request.
Tied for second · shared with 4 others, and the tie is broken by nothing
engineering-team/a11y-audit/skills/a11y-audit alirezarezvani/claude-skills
Accessibility audit
No reliable difference on any model tested. The models scored 64% without it. Measured against the same task with a one-line instruction, on tier 1, the original pages.
Found 65% of the seeded accessibility defects, against 64% with no skill loaded. Against 62% with a one-line instruction instead.
Via API
- Gemini 3.1 Flash Lite · unclear. The model scored 63% without it.
- GPT-5 mini · unclear. The model scored 64% without it.
In Claude Code
- Claude Fable 5.1, Wider run, three ways · unclear. The model scored 86% without it.
- Claude Haiku 4.5, Wider run, three ways · helped
- Claude Opus 5, Wider run, three ways · unclear. The model scored 86% without it.
- Claude Sonnet 5, Wider run, three ways · unclear. The model scored 79% without it.
- Claude Fable 5, Fable 5, wider run, three ways · unclear. The model scored 86% without it.
- Claude Opus 5.5, Opus 5.5 series, wider run, three ways · unclear. The model scored 84% without it.
Cost per task, with the skill loaded: about $0.00424. Adds about 16,400 tokens of context to every request.
Tied for second · shared with 4 others, and the tie is broken by nothing
skills/accessibility affaan-m/ECC
Accessibility audit
No reliable difference on any model tested. The models scored 58% without it. Measured against no skill loaded, on tier 1, the original pages.
Found 56% of the seeded accessibility defects, against 58% with no skill loaded. Instruction arm: not measured.
Via API
- Claude Haiku 4.5 · unclear. The model scored 39% without it.
- Gemini 3.1 Flash Lite · unclear. The model scored 63% without it.
- GPT-5 mini · unclear. The model scored 71% without it.
In Claude Code
- Claude Opus 5, First run, single attempt · unclear. The model scored 89% without it.
- Claude Fable 5, Second run, every task twice · unclear. The model scored 80% without it.
- Claude Haiku 4.5, Second run, every task twice · unclear. The model scored 45% without it.
- Claude Opus 5, Second run, every task twice · unclear. The model scored 86% without it.
- Claude Sonnet 5, Second run, every task twice · unclear. The model scored 81% without it.
- Claude Fable 5.1, Fable 5.1, single attempt · unclear. The model scored 84% without it.
- Claude Fable 5.1, Wider run, three ways · unclear. The model scored 88% without it.
- Claude Haiku 4.5, Wider run, three ways · unclear. The model scored 45% without it.
- Claude Opus 5, Wider run, three ways · unclear. The model scored 88% without it.
- Claude Sonnet 5, Wider run, three ways · unclear. The model scored 84% without it.
- Claude Fable 5, Fable 5, wider run, three ways · unclear. The model scored 89% without it.
- Claude Opus 5.5, Opus 5.5 series, wider run, three ways · unclear. The model scored 86% without it.
Cost per task, with the skill loaded: about $0.00141. Adds about 2,200 tokens of context to every request.
Tied for second · shared with 4 others, and the tie is broken by nothing
skills/accessibility affaan-m/ECC
Accessibility audit
No reliable difference on any model tested. The models scored 55% without it. Measured against the same task with a one-line instruction, on tier 1, the original pages.
Found 57% of the seeded accessibility defects, against 55% with no skill loaded. Against 64% with a one-line instruction instead.
Via API
- Gemini 3.1 Flash Lite · unclear. The model scored 63% without it.
- GPT-5 mini · unclear. The model scored 48% without it.
In Claude Code
- Claude Opus 5, First run, single attempt · unclear. The model scored 89% without it.
- Claude Fable 5, Second run, every task twice · unclear. The model scored 80% without it.
- Claude Haiku 4.5, Second run, every task twice · unclear. The model scored 45% without it.
- Claude Opus 5, Second run, every task twice · unclear. The model scored 86% without it.
- Claude Sonnet 5, Second run, every task twice · unclear. The model scored 81% without it.
- Claude Fable 5.1, Fable 5.1, single attempt · unclear. The model scored 84% without it.
- Claude Fable 5.1, Wider run, three ways · unclear. The model scored 88% without it.
- Claude Haiku 4.5, Wider run, three ways · unclear. The model scored 45% without it.
- Claude Opus 5, Wider run, three ways · unclear. The model scored 88% without it.
- Claude Sonnet 5, Wider run, three ways · unclear. The model scored 84% without it.
- Claude Fable 5, Fable 5, wider run, three ways · unclear. The model scored 89% without it.
- Claude Opus 5.5, Opus 5.5 series, wider run, three ways · unclear. The model scored 86% without it.
Cost per task, with the skill loaded: about $0.000669. Adds about 2,100 tokens of context to every request.
The numbers
How to read these tables
How to read these tables
- Without the skill
- The score on the task set before any skill was loaded. Where this is already near the top of the scale, there was little room for a skill to show an effect, and the result says so instead of reporting no difference.
- Without -> with
- The score on the task set with no skill loaded, then with the skill loaded. For classes scored against an answer key, this is the share of seeded items found. For classes scored by blind comparison, it is how often a grader preferred the skill's output over the baseline's, with the baseline shown as the complement.
- Effect (range)
- With minus without, averaged over the models tested, with the lowest and highest per-model value in brackets. Per-model intervals are on each skill's page.
- Result
- helped: delta at or above the pass threshold, and the interval excludes zero
- worse: delta at or below the failure floor, and the interval excludes zero
- unclear: the interval spans zero, or the delta sits between the floor and the threshold
- not measured: the cell cannot be classified: sub-case (a) an unbounded scale, or sub-case (b) both arms at the same bound
A fifth value, Decaying, is defined and appears once a skill has been re-tested: a cell previously Stable that has fallen below the pass threshold on a later run.
- Cohort
- The repository that publishes the skill. Rows marked with an asterisk come from the repository the operator of this site maintains, so those are the operator measuring its own work. The rest were chosen by a stated rule and not by preference.
- Commit
- The exact version tested. Later commits are not covered by this verdict.
- Injected context tokens
- How much text the skill adds to the model's context. This is cost, not quality; a bigger number is not a better one. Measured from the input tokens the API reported on the with arm, averaged over that skill's records.
- Tested
- The date. Verdicts age as models change.
Accessibility audit
Each figure is how many points the skill added over no skill on that model, at the tier shown. A ring marks a clear lift. “Nothing left to measure” means the model already scored 90% or more with no skill.
Via API
From one run: harder tasks, each model at its own tier. 2 other runs are in the tables below.
| Skill | GPT-5 mini | Gemini 3.1 Flash Lite |
|---|---|---|
| Accessibility audit | −1 point unclear tier 1 | +3 points unclear tier 2 |
| WCAG audit patterns | +24 points helped tier 1 | +8 points unclear tier 2 |
| A11y audit | +11 points unclear tier 1 | +5 points unclear tier 2 |
| Accessibility | +18 points unclear tier 1 | −2 points unclear tier 2 |
In Claude Code
From one run: harder tasks, each model at its own tier. 6 other runs are in the tables below.
| Skill | Claude Haiku 4.5 | Claude Fable 5.1 | Claude Opus 5 | Claude Sonnet 5 |
|---|---|---|---|---|
| Accessibility audit | +18 points unclear tier 1 | nothing left to measure 97% with no skill, tier 3 | −3 points unclear tier 3 | −2 points unclear tier 2 |
| WCAG audit patterns | +11 points unclear tier 1 | nothing left to measure 90% with no skill, tier 3 | +3 points unclear tier 3 | +13 points unclear tier 2 |
| A11y audit | +14 points unclear tier 1 | nothing left to measure 90% with no skill, tier 3 | +3 points unclear tier 3 | 0 points unclear tier 2 |
| Accessibility | +10 points unclear tier 1 | nothing left to measure 93% with no skill, tier 3 | −3 points unclear tier 3 | +3 points unclear tier 2 |
At each model's own tier
We ran the four skills again on harder pages. Each model got the tier where its score with no skill left room to improve. Compare skills on one model only. The models did different work, so this does not rank one model against another.
A skill clearly helped on one of the 20 tests where the model had room. The one-line instruction did not get half of that gain on any of them.
In Claude Code
| Skill | No skill | One-line instruction | Skill loaded | Skill against no skill | Skill against the instruction | Share of named problems that were real | Look-alikes flagged |
|---|---|---|---|---|---|---|---|
| Accessibility audit | 57% | 60% | 53% | unclear, −3 points (−15 to +8) | unclear, −7 points (−23 to +10) | 44% | 20% |
| Accessibility | 50% | 57% | 47% | unclear, −3 points (−15 to +8) | unclear, −10 points (−20 to 0) | 39% | 20% |
| WCAG audit patterns | 57% | 50% | 60% | unclear, +3 points (−3 to +10) | unclear, +10 points (0 to +20) | 47% | 13% |
| A11y audit | 53% | 60% | 57% | unclear, +3 points (−8 to +15) | unclear, −3 points (−15 to +8) | 46% | 13% |
| Skill | No skill | One-line instruction | Skill loaded | Skill against no skill | Skill against the instruction | Share of named problems that were real |
|---|---|---|---|---|---|---|
| Accessibility audit | 48% | 50% | 45% | unclear, −2 points (−16 to +11) | unclear, −5 points (−19 to +9) | 31% |
| Accessibility | 38% | 55% | 40% | unclear, +3 points (−16 to +21) | unclear, −15 points (−36 to +6) | 24% |
| WCAG audit patterns | 43% | 45% | 55% | unclear, +13 points (+2 to +23) | unclear, +10 points (−5 to +25) | 41% |
| A11y audit | 45% | 50% | 45% | unclear, 0 points (−19 to +19) | unclear, −5 points (−25 to +15) | 30% |
| Skill | No skill | One-line instruction | Skill loaded | Skill against no skill | Skill against the instruction | Share of named problems that were real |
|---|---|---|---|---|---|---|
| Accessibility audit | 44% | 46% | 62% | unclear, +18 points (+6 to +29) | unclear, +16 points (0 to +33) | 60% |
| Accessibility | 43% | 46% | 53% | unclear, +10 points (−7 to +27) | unclear, +6 points (−3 to +15) | 49% |
| WCAG audit patterns | 41% | 50% | 52% | unclear, +11 points (−3 to +25) | unclear, +2 points (−16 to +20) | 48% |
| A11y audit | 46% | 44% | 60% | unclear, +14 points (−6 to +34) | unclear, +16 points (+4 to +28) | 58% |
| Skill | No skill | One-line instruction | Skill loaded | Skill against no skill | Skill against the instruction | Share of named problems that were real | Look-alikes flagged |
|---|---|---|---|---|---|---|---|
| Accessibility audit | 97% | 93% | 93% | at the ceiling, −3 points (−10 to +3) | at the ceiling, 0 points (−10 to +10) | 76% | 3% |
| Accessibility | 93% | 90% | 90% | at the ceiling, −3 points (−10 to +3) | at the ceiling, 0 points (−10 to +10) | 73% | 7% |
| WCAG audit patterns | 90% | 93% | 97% | at the ceiling, +7 points (−2 to +15) | at the ceiling, +3 points (−3 to +10) | 74% | 0% |
| A11y audit | 90% | 87% | 97% | at the ceiling, +7 points (−2 to +15) | at the ceiling, +10 points (0 to +20) | 78% | 0% |
Via API
| Skill | No skill | One-line instruction | Skill loaded | Skill against no skill | Skill against the instruction | Share of named problems that were real |
|---|---|---|---|---|---|---|
| Accessibility audit | 55% | 59% | 55% | unclear, −1 points (−25 to +24) | unclear, −4 points (−23 to +15) | 31% |
| Accessibility | 40% | 66% | 58% | unclear, +18 points (−3 to +38) | unclear, −8 points (−22 to +6) | 33% |
| WCAG audit patterns | 50% | 60% | 73% | helped, +24 points (+5 to +42) | unclear, +13 points (−3 to +29) | 49% |
| A11y audit | 56% | 74% | 67% | unclear, +11 points (−4 to +25) | unclear, −7 points (−22 to +8) | 38% |
| Skill | No skill | One-line instruction | Skill loaded | Skill against no skill | Skill against the instruction | Share of named problems that were real |
|---|---|---|---|---|---|---|
| Accessibility audit | 40% | 43% | 43% | unclear, +3 points (−9 to +14) | unclear, 0 points (−16 to +16) | 40% |
| Accessibility | 40% | 43% | 38% | unclear, −2 points (−7 to +2) | unclear, −5 points (−17 to +7) | 45% |
| WCAG audit patterns | 40% | 43% | 48% | unclear, +8 points (−5 to +20) | unclear, +5 points (−7 to +17) | 54% |
| A11y audit | 40% | 43% | 45% | unclear, +5 points (−5 to +15) | unclear, +3 points (−11 to +16) | 46% |
Tier 1, the original pages
Scores with no skill on tier 1: Claude Opus 5 88%, Claude Sonnet 5 85%, Claude Haiku 4.5 45%, GPT-5 mini 59%, Gemini 3.1 Flash Lite 63%, Claude Fable 5.1 88%.
| Skill | Cohort | Without the skill | Without -> with | Effect (range) | Result | Injected context tokens | Tested |
|---|---|---|---|---|---|---|---|
| No skill loaded First run, with and without the skill | baseline | 58% | 58% | 0 by definition | 0 | 2026-08-30 | |
| One-line instruction instead First run, with and without the skill | baseline | instruction arm: not measured | 0 by definition | 0 | 2026-08-30 | ||
skills/accessibility-audit from rampstackco/claude-skills in the catalog 047924252254 First run, with and without the skill Best result in this test | rampstackco/claude-skills* | 58% | 58% -> 71% | +0.13 [-0.00, +0.29] | unclear on 2 of 3 | 11,729 | 2026-08-30 |
skills/accessibility from affaan-m/ECC d8409a4b0813 First run, with and without the skill | affaan-m/ECC | 58% | 58% -> 56% | -0.02 [-0.10, +0.13] | unclear | 2,206 | 2026-08-30 |
| No skill loaded Wider run, three ways | baseline | 61% | 61% | 0 by definition | 0 | 2026-09-05 | |
| One-line instruction instead Wider run, three ways | baseline | 61% | 0 by definition | 0 | 2026-09-05 | ||
skills/accessibility-audit from rampstackco/claude-skills in the catalog 047924252254 Wider run, three ways Best result in this test | rampstackco/claude-skills* | 60% | 60% -> 68% | +0.08 [+0.05, +0.10] | unclear | 11,295 | 2026-09-05 |
plugins/accessibility-compliance/skills/wcag-audit-patterns from wshobson/agents 38e19c20d2b1 Wider run, three ways | wshobson/agents | 63% | 63% -> 63% | +0.05 [+0.02, +0.09] | unclear | 3,967 | 2026-09-05 |
engineering-team/a11y-audit/skills/a11y-audit from alirezarezvani/claude-skills 19392f7a0826 Wider run, three ways | alirezarezvani/claude-skills | 64% | 64% -> 65% | +0.03 [-0.03, +0.09] | unclear | 16,407 | 2026-09-05 |
skills/accessibility from affaan-m/ECC d8409a4b0813 Wider run, three ways | affaan-m/ECC | 55% | 55% -> 57% | -0.06 [-0.13, +0.01] | unclear | 2,108 | 2026-09-05 |
| Averaged over three models; per-model results on each skill's page. Ranked within this class only. | |||||||
How hard were the tasks
We built two harder versions of this test and asked every model each page six times, with no skill loaded. Each figure is the share of planted problems found, averaged over ten pages, with the range it would likely fall in on another try.
In Claude Code
| Model | Tier 1 | Tier 2 | Tier 3 | Next test uses |
|---|---|---|---|---|
| Claude Opus 5 | 88% (78 to 97%) | 65% (42 to 87%) | 56% (38 to 74%) | Tier 3 |
| Claude Sonnet 5 | 85% (76 to 94%) | 43% (23 to 64%) | 17% (7 to 28%) | Tier 2 |
| Claude Haiku 4.5 | 45% (35 to 54%) | 10% (0 to 19%) | 9% (2 to 15%) | Tier 1 |
| Claude Fable 5.1 | 88% (75 to 100%) | 98% (93 to 100%) | 89% (82 to 97%) | Tier 3, the hardest, though no tier leaves it room |
Via API
| Model | Tier 1 | Tier 2 | Tier 3 | Next test uses |
|---|---|---|---|---|
| GPT-5 mini | 59% (48 to 69%) | 16% (7 to 25%) | 6% (0 to 13%) | Tier 1 |
| Gemini 3.1 Flash Lite | 63% (46 to 81%) | 40% (23 to 57%) | 30% (9 to 51%) | Tier 2 |
Opus 5.5, a later run
A later run asked Opus 5.5 every task on all three tiers, six times each, with no skill loaded. Its figures are its own and are not added to the table above.
| Model | Tier 1 | Tier 2 | Tier 3 | Next test uses |
|---|---|---|---|---|
| Claude Opus 5.5 | 84% (71 to 97%) | 94% (88 to 100%) | 93% (85 to 100%) | Tier 3, the hardest, though no tier leaves it room |
No tier leaves Opus 5.5 room: with no skill loaded it scored above 70% on all three. So it takes the hardest, tier 3, where it scored 93%.
Each model's next tier comes from its own three scores, so these are listed side by side, not ranked.
- Claude Opus 5: Tier 3
- Claude Fable 5.1: Tier 3, the hardest, though no tier leaves it room
- Claude Opus 5.5: Tier 3, the hardest, though no tier leaves it room
Did tier 1 hold up for Opus 5.5
Tier 1 here is the same set of tasks Opus 5.5 answered in its skills test a few days earlier. Its new score, 84% (71 to 97%), landed within the likely range of that earlier one, 86% (74 to 97%). This is a check on the tasks, and it changes no pick.
Each model takes its next skills test at its own tier: the one where its score, with no skill loaded, leaves room to improve. A model that scores high everywhere gets the hardest tier. So a skill's result can be compared with other skills on the same model, but not used to rank one model against another, because the models did different work.
Before this test, the rule picked one tier for each test method from its best model: tier 1 for Claude Code, since no tier put its best model between 40% and 70%, and tier 2 for the API. We changed it after seeing these scores, because how much room there is to improve depends on the model.
Tier 1 is the same ten pages the skills test used, asked again. On 6 of 6 models the new score landed within the likely range of the earlier one.
Ranked within this topic by how many models the rule found a clear effect on, which is a count of verdicts and never the size of one. Two classes are two answer keys on two scales, so no effect here is compared with another. Every class, with its full table.