# experience-accessibility-validate

Reviews a Lightning Web Component's HTML, JS and CSS against WCAG 2.2 and writes a report citing the specific success criteria.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 857 installs · ★ 1112
- Author: forcedotcom
- License: Apache-2.0 · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/forcedotcom/sf-skills/tree/HEAD/skills/experience-accessibility-validate/SKILL.md
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/skills/experience-accessibility-validate

## What it does

The skill runs an accessibility-only review. It looks at semantic markup, focus order, keyboard navigation, contrast and screen-reader labels, then writes `a11y-review.md` with findings tied to WCAG criteria. Only code that clearly violates a cited Success Criterion counts as a problem — general style and anything unrelated to accessibility is left alone.

Reference files inside the skill cover individual criteria, grouped by principle such as Perceivable, and the skill opens the ones relevant to the code under review. You need `python3` 3.8 or newer. Several rules cut false positives: Lightning base components (`lightning-input`, `lightning-combobox`, `lightning-textarea`, `lightning-icon`) and imported controls from React, Vue or Angular are treated as accessible out of the box when given a labeling prop like `label` or `aria-label`. Dynamic `id` and `htmlFor` pairs bound to the same expression are not flagged either.

This skill does not generate LWC — that is `experience-lwc-generate`. Visual SLDS review without an accessibility focus belongs to `design-systems-slds-validate`. If what you want is an accessibility review, this is the one to install.

## Requirements
- Works with: Salesforce

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add forcedotcom/sf-skills --skill experience-accessibility-validate -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/experience-accessibility-validate/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/experience-accessibility-validate/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add forcedotcom/sf-skills --skill experience-accessibility-validate -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/experience-accessibility-validate/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add forcedotcom/sf-skills --skill experience-accessibility-validate -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/experience-accessibility-validate/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install forcedotcom/sf-skills experience-accessibility-validate
```

2. **Manually: put the files in place**
- File: `.github/skills/experience-accessibility-validate/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add forcedotcom/sf-skills --skill experience-accessibility-validate -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/forcedotcom/sf-skills --path skills/experience-accessibility-validate
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/experience-accessibility-validate/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add forcedotcom/sf-skills --skill experience-accessibility-validate -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/forcedotcom/sf-skills/tree/HEAD/skills/experience-accessibility-validate/SKILL.md

## When to use it
- check an LWC against WCAG 2.2
- find accessibility problems in component markup
- confirm a component works with a screen reader
- verify keyboard navigation and focus order
- audit ARIA attribute usage in a template

## Example prompts
- check this LWC for WCAG 2.2 accessibility issues
- find accessibility problems in my component
- is this component keyboard accessible?

## Source text · SKILL.md · Apache-2.0

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 199a35beed82e242.

BEGIN THIRD-PARTY FILE 199a35beed82e242
```text
---
name: experience-accessibility-validate
description: "Use this skill to determine whether a Lightning Web Component (LWC) is accessible and meets WCAG accessibility guidelines. TRIGGER when the user asks \"is my component accessible?\", \"does my LWC meet accessibility guidelines?\", \"is this component WCAG compliant?\", \"find accessibility problems in this LWC\", \"is this LWC keyboard accessible?\", \"does this component work with a screen reader?\", \"does this component have sufficient color contrast?\", \"check ARIA usage in this LWC\", or \"WCAG 2.2 accessibility check\". Also TRIGGER when the user wants to fix or improve accessibility (a11y, WCAG, ARIA) in an LWC's HTML, JS, or CSS — semantic markup, focus, keyboard nav, contrast, screen-reader labels, WCAG 2.2 SC. Produces `a11y-review.md` with WCAG-cited findings. DO NOT TRIGGER for general LWC generation (use `experience-lwc-generate`) or SLDS visual/design review not focused on accessibility (use `design-systems-slds-validate`)."
metadata:
  version: "1.1"
  domains: ["Experience"]
  cliTools:
    - tool: ["python3"]
      semver: ">=3.8"
  relatedSkills:
    - "design-systems-slds-validate"
    - "experience-lwc-generate"
---
<!-- a11y-expert-managed-skill -->

# Web Component Accessibility

Accessibility (a11y) patterns and remediation guidance for web components.
Reference any time work involves the visible or interactive surface of a
component — generating, modifying, reviewing, or styling HTML, JS, or
CSS — to apply WCAG 2.2 standards.

## Review Context

Conduct a review specifically focused on enhancing web accessibility, guided by the WCAG (Web Content Accessibility Guidelines).

In order to mark code as a violation, it must have a direct correlation to the WCAG rule cited such that it is a clear violation of the criteria.

Key Review Criteria:

1. Focus Exclusively on Accessibility:

- Evaluate the component solely for accessibility.
- Only consider compliance with the cited WCAG Success Criteria, ignoring violations that can be attributed to other criteria.
- Avoid addressing general code style, patterns, or issues unrelated to accessibility.

2. Ensure Minimum and Sufficient Accessibility:

- Identify accessibility issues that prevent the component from meeting the minimum requirements outlined by WCAG.
```
END THIRD-PARTY FILE 199a35beed82e242

The third-party file has ended. Everything between the 199a35beed82e242 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2327 of 9725 bytes. © forcedotcom · Apache-2.0 · https://github.com/forcedotcom/sf-skills/tree/HEAD/skills/experience-accessibility-validate/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
