skills/predicting-accessibility-risks/SKILL.md
Use this skill to identify accessibility risks in a proposed feature, design, or technical plan before implementation begins. Triggers when planning a new feature, reviewing a design, assessing a technical approach for accessibility impact, or asking what could go wrong for disabled users.
npx skillsauth add mattobee/skills predicting-accessibility-risksInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Identify accessibility risks in a proposed change before implementation begins. The goal is to surface problems that would be expensive to fix later — structural choices, interaction patterns, and data model decisions that affect whether disabled users can use the feature.
This is a planning skill. It does not review implemented code (use reviewing-accessibility for that) and it does not write code. It produces a risk assessment that a developer or coder agent can act on.
Before assessing risks, understand what is being proposed:
For each risk identified, produce:
| Field | Description | |-------|-------------| | Risk | One-sentence description of what could go wrong | | Affected users | Which disability groups are affected and how (screen reader users, keyboard-only users, low vision, cognitive, motor) | | WCAG criteria | The success criteria at stake (e.g., 2.1.1 Keyboard, 1.3.1 Info and Relationships) | | Likelihood | How likely is this to occur without explicit attention? High (almost certain without mitigation), Medium (depends on implementation choices), Low (only if a specific mistake is made) | | Cost to fix later | How expensive is this to retrofit if caught after implementation? High (requires architectural changes), Medium (requires rework of multiple components), Low (localised fix) | | Mitigation | Specific, actionable recommendation to avoid the risk. Identify the pattern or approach ("use the APG dialog pattern", "ensure focus returns to the trigger on close"), not specific markup or API calls — implementation details belong in the coding phase where they can respond to the actual architecture |
Focus on risks that meet at least one of these criteria:
Do not list every conceivable WCAG criterion. A risk assessment that lists 30 items is not actionable. Aim for the 5-10 risks that matter most for this specific change.
Technical risk prediction covers part of the picture. Automated tools and AI-based analysis can assess at most 30% of WCAG success criteria, and none of them fully. The risks identified by this skill are indicators that narrow the scope for human evaluation — they are not definitive accessibility assessments.
"Nothing about us without us" applies directly to software development. Interfaces can pass every automated check yet fail the people who use them. The gap between technical conformance and actual usability can only be closed by involving disabled people.
Involve disabled people at each phase — the earlier it happens, the cheaper it is to act on findings:
Scale the approach to the project. Not every project has a research budget, but every project can get closer to real feedback than technical analysis alone provides.
Solo and small projects — test with a screen reader yourself (VoiceOver, NVDA, or TalkBack are free), ask a disabled friend or colleague to try key flows, post in accessibility communities for informal feedback, or use free single-session options from panel services. Even one person using assistive technology will reveal things automated checks cannot.
Teams with some research capacity — include disabled participants in existing user research. The NHS benchmark of 1 person with access needs in every 5 research participants is a reasonable starting point. Recruit from disability organisations, charities, or internal staff disability networks.
Dedicated accessibility research — panel services like Fable, Access Works (Knowbility), and AbilityNet provide pre-qualified participants with documented assistive technology configurations. This is the most reliable option for structured usability testing across multiple AT setups.
Regardless of scale, recruit based on assistive technology configuration, not diagnosis. What matters is how someone interacts with software (screen reader, switch access, voice control, magnification) rather than their medical history.
The following require human judgment and cannot be evaluated by technical analysis alone:
These are common risk areas, not exhaustive checklists. Use them as prompts to identify risks specific to the proposed change.
<title>) makes it impossible to distinguish tabsh1 elements breaks document structurearia-describedby are invisible to screen readersprefers-reduced-motion consideration## Accessibility Risk Assessment - [feature/change name]
### High Risk
| Risk | Affected users | WCAG | Likelihood | Fix cost | Mitigation |
|------|---------------|------|------------|----------|------------|
| ... | ... | ... | ... | ... | ... |
### Medium Risk
| Risk | Affected users | WCAG | Likelihood | Fix cost | Mitigation |
|------|---------------|------|------------|----------|------------|
| ... | ... | ... | ... | ... | ... |
### Low Risk
| Risk | Affected users | WCAG | Likelihood | Fix cost | Mitigation |
|------|---------------|------|------------|----------|------------|
| ... | ... | ... | ... | ... | ... |
### User research recommendations
- Which risks would benefit most from validation with disabled users
- What disability groups and AT configurations to prioritise in testing based on the risks identified
- At what development phase testing would be most valuable for each risk
### Recommendations
[Ordered list of the most important mitigations to implement, distilled from the table above. These should be concrete enough that a developer can act on them without further research.]
Omit empty risk levels. If there are no high risks, do not include an empty High Risk section.
<button> has built-in keyboard handling, focus management, and role. A <div onClick> has none of these. The more custom the implementation, the higher the risk.role="combobox" aria-expanded="false" aria-haspopup="listbox" to the input wrapper" is implementation detail that belongs in a code review, not a risk assessment. Premature specificity narrows the solution space and carries unearned authority if a developer treats it as reviewed implementation guidance.tools
Use this skill to work through review feedback on a pull request — read the inline review comments, assess each one's validity, make the code changes that are warranted, and reply to every thread with a one-line explanation of what was done (or why it was declined). Triggers when the user asks to address PR feedback, respond to reviewers, work through review comments, handle a code review, action the comments on a PR, or asks "what do the reviewers want changed?" Also triggers when resuming work on a PR that has open review threads.
testing
Use this skill to write Playwright accessibility tests using the two-layer strategy (axe-core scans + targeted assertions). Triggers when adding accessibility test coverage, reviewing test gaps, writing axe scans, or creating Playwright assertions for accessible names, landmarks, ARIA states, focus management, or contrast.
tools
Use this skill to suggest prioritised next steps for a project. Triggers when the user asks what to work on next, wants to resume after a break, or needs help prioritising a backlog.
development
Use this skill to review implemented UI code for WCAG accessibility compliance. Triggers when reviewing components, pages, or templates for accessibility, auditing a feature after implementation, or answering questions about accessible patterns, ARIA, keyboard navigation, or screen reader support.