MCPInstall

experience-accessibility-validate

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).

Installs
865
Last 24h
+8
Trending rank
#9836
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/forcedotcom/sf-skills --skill experience-accessibility-validate
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads experience-accessibility-validate automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

<!-- 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.
  1. Ensure Minimum and Sufficient Accessibility:
  • Identify accessibility issues that prevent the component from meeting the minimum requirements outlined by WCAG.
  • Avoid suggesting enhancements that go beyond the scope of WCAG compliance unless strictly necessary.
  1. WAI-ARIA Usage:
  • Use WAI-ARIA attributes only when strictly required to achieve accessibility that cannot otherwise be addressed with semantic HTML.
  • Avoid unnecessary complexity or potential regressions caused by incorrect or overuse of ARIA attributes.
  1. Component Library Usage
  • Assume that well-known component libraries (e.g., Salesforce Lightning, Material UI, Chakra UI) are accessible out of the box when correctly implemented. Unless they are used specifically in conflict with WCAG, library-provided components can be ignored for this review, as they are implemented in an accessible way beneath the abstraction.
  • Lightning base components (lightning-input, lightning-combobox, lightning-textarea, lightning-icon, and similar components) provide accessible labeling, ARIA, and error handling through dedicated attributes such as label and alternative-text. A label remains programmatic even with variant="label-hidden"; do not require a sibling or wrapper <label> to target the component. Navigation, button-icon, and other self-labeling base components likewise expose supplied label text as their accessible name and treat their internal icon as decorative. Do not report a missing association merely because that implementation is hidden inside the component.
  • The same self-labeling logic applies to imported or custom control components in any framework (React/JSX, Angular, Vue, Web Components), not only Lightning. A capitalized or imported component tag (<Input>, <TextField>, <Button>, <Select>, <Checkbox>, <SearchField>, and design-system wrappers from Material UI, Chakra, Radix, or an internal library) is not a bare HTML element — assume it renders its own accessible label, ARIA, and error handling beneath the abstraction (see the component-library grounding rule). When such a component is given a labeling prop — label, aria-label, aria-labelledby, title, or visible child text/children — treat it as already programmatically labeled and do not flag it for a missing <label>, a missing for/id association, or a missing accessible name. Only flag when no labeling prop or text is supplied, or the supplied value is clearly empty or nonsensical. Do not demand a native <label for> for a component whose internal control you cannot see.
  • Resolve dynamic id / htmlFor / for expressions before judging a label association. When a <label htmlFor={X}> (or for={X}) and its control's id={X} are bound to the same expression — the same variable, prop, useId() value, or template literal (e.g. both htmlFor and id set to the same interpolation such as ${id}-email) — treat the association as matching, even though the literal string cannot be resolved at review time. A dynamic id/htmlFor pair is a mismatch only when the two expressions are demonstrably different. Do not flag identical dynamic id/htmlFor expressions as unmatched or mismatched labels.
  1. Source Interpretation
  • Resolve expressions according to the framework's binding semantics before judging them. Trace a dynamic value to every source available in that context. In React/JSX, an expression may reference local variables, props, hook results, or imported bindings; Vue, Svelte, and Astro expose their own template or script scopes. In an LWC template specifically, {someValue} resolves to a field, property, or getter on the component class (.js or .ts), including @api properties; module-level imported constants are not directly bindable. In Aura markup, follow the expression's value provider, such as v. or c., to the corresponding component attribute or controller logic. Do not conclude that a value is undefined, empty, or missing until you have inspected the applicable source. In a diff, verify which side contains the corrected code rather than assuming that the change introduced the problem.

Focus: Provide actionable feedback to ensure the component meets the necessary WCAG accessibility requirements, avoiding extraneous feedback unrelated to the prompt's scope. Identify issues in code only if there is an immediate fix. You MUST conduct the review, and subsequently suggest the code fix that solves this issue.

Success Criteria Reviewers

Identify which Success Criteria apply to the code under review, then open the reference files relevant to that code. Each reference supplies criterion-specific analysis, examples, and remediation guidance; the review-wide rules above continue to apply.

Perceivable

  • SC 1.1.1 Non-text Content
  • SC 1.3.1 (i) Lists
  • SC 1.3.1 (ii) Tables
  • SC 1.3.1 (iii) Form Labels
  • SC 1.3.1 (iv) Regions
  • SC 1.3.1 (v) Groups
  • SC 1.3.5 Identify Input Purpose
  • SC 1.4.3 Contrast (Minimum)

Operable

  • SC 2.1.1 Keyboard
  • SC 2.4.4 Link Purpose
  • SC 2.4.6 Headings and Labels
  • SC 2.5.1 Pointer Gestures
  • SC 2.5.2 Pointer Cancellation
  • SC 2.5.3 Label in Name
  • SC 2.5.7 Dragging Movements

Understandable

  • SC 3.2.1 On Focus
  • SC 3.2.2 On Input
  • SC 3.3.1 Error Identification
  • SC 3.3.2 Labels or Instructions
  • SC 3.3.3 Error Suggestion

Robust

  • SC 4.1.2 (i) Name
  • SC 4.1.2 (ii) Role
  • SC 4.1.2 (iii) Value

Vision-Assisted Review

When component screenshots or design mocks are available, augment the source-code review with these vision-level reviewers. Each reference covers image-based evaluation for the corresponding Success Criterion — contrast ratios, color dependence, resize/reflow behavior, and non-text content identification from pixels rather than from the DOM.

  • SC 1.1.1 Non-text Content (vision)
  • SC 1.4.1 Use of Color (vision)
  • SC 1.4.3 Contrast (vision)
  • SC 1.4.10 Reflow (vision)
  • SC 1.4.11 Non-text Contrast (vision)

Review Output

For each Success Criterion you evaluated, report violations found. If no violations exist for a criterion, return an empty list for that criterion.

FAQ

What does the experience-accessibility-validate skill do?

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).

How do I install experience-accessibility-validate?

Run npx skills add https://github.com/forcedotcom/sf-skills --skill experience-accessibility-validate in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/experience-accessibility-validate/ (personal) or .claude/skills/experience-accessibility-validate/ (project).

Which AI agents can use experience-accessibility-validate?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is experience-accessibility-validate safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains experience-accessibility-validate?

It is published by forcedotcom in forcedotcom/sf-skills. It has 865 recorded installs.

More from forcedotcom/sf-skills

View all →

platform-apex-generate

forcedotcom/sf-skills

Primary Apex authoring skill for class generation, refactoring, and review. ALWAYS ACTIVATE when the user mentions Apex, .cls, triggers, or asks to create/refactor a class (service, selector, domain, batch, queueable, schedulable, invocable, DTO, utility, interface, abstract, exception, REST resource). Use this skill for requests involving SObject CRUD, mapping collections, fetching related records, scheduled jobs, batch jobs, trigger design, @AuraEnabled controllers, @RestResource endpoints, custom REST APIs, or code review of existing Apex.

platform-apex-test-generate

forcedotcom/sf-skills

Use to generate and validate Apex test classes with TestDataFactory patterns, bulk testing (251+ records), mocking, assertions, and disciplined test-fix loops. Use when creating Apex test classes (for triggers, services, controllers, batch jobs, queueables, and callouts), improving coverage, debugging or fixing failing Apex tests, or running test/coverage analysis. Triggers on Test.cls files, sf apex run test, coverage reports. Do NOT trigger for production Apex (use platform-apex-generate) or Jest/LWC tests.

Testing & QA7.1K installs

platform-apex-test-run

forcedotcom/sf-skills

Apex test execution, coverage analysis, and test-fix loops with 120-point scoring. Use when the user runs Apex tests, checks code coverage, fixes failing tests, or touches Test.cls / Test.cls files. DO NOT TRIGGER when writing Apex production code (use platform-apex-generate), Agentforce agent testing (use agentforce-test), or Jest/LWC tests (use experience-lwc-generate).

Testing & QA7K installs

platform-apex-logs-debug

forcedotcom/sf-skills

Salesforce debug log analysis and troubleshooting with 100-point scoring. TRIGGER when: user analyzes debug logs, hits governor limits, reads stack traces, or touches .log files from Salesforce orgs. DO NOT TRIGGER when: running Apex tests (use platform-apex-test-run), generating or fixing Apex code (use platform-apex-generate), or Agentforce session tracing (use agentforce-observe).

platform-soql-query

forcedotcom/sf-skills

Use when the user needs SOQL/SOSL authoring or optimization: natural-language-to-query generation, relationship queries, aggregates, query-plan/selectivity analysis, and performance or safety improvements. TRIGGER when the user writes, optimizes, or debugs SOQL/SOSL, touches .soql files, or asks about relationship queries, aggregates, or query performance. DO NOT TRIGGER for bulk data operations (use platform-data-manage), Apex DML logic (use platform-apex-generate), or report/dashboard queries.

platform-metadata-deploy

forcedotcom/sf-skills

Salesforce DevOps automation using sf CLI v2. TRIGGER when: user deploys metadata, validates a deploy or does a dry-run, deploys to a Production org, quick-deploys a validated job ID, ships/promotes to prod, creates/manages scratch orgs or sandboxes, sets up CI/CD pipelines, or troubleshoots deployment errors with sf project deploy. DO NOT TRIGGER when: writing Apex code, building LWC components (use experience-lwc-generate), creating metadata definitions (use platform-custom-object-generate), deleting metadata from an org (use platform-destructive-deploy), or querying org data (use platform-data-manage).

DevOps & Cloud6.8K installs

Popular frontend & design skills

View category →

setup-matt-pocock-skills

mattpocock/skills

Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.

Frontend & Design1.1M installs

frontend-design

anthropics/skills

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

OfficialFrontend & Design1M installs

hyperframes-animation

heygen-com/hyperframes

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.

prototype

mattpocock/skills

Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.

Frontend & Design999.2K installs

hyperframes-core

heygen-com/hyperframes

The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

Frontend & Design930.5K installs

vercel-react-best-practices

vercel-labs/agent-skills

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

OfficialFrontend & Design843.1K installs