Web Interface Guidelines Reviewer
vercel-labs/openreview
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my…
Reviews already-written Coinbase Design System (CDS) UI for accessibility: verifying documented accessibility props (e.g.
$ npx skills add coinbase/cds --skill cds-accessibility -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install coinbase/cds cds-accessibility --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/coinbase/cds.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cds-accessibility .claude/skills/cds-accessibility && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "cds-accessibility" agent skill from https://github.com/coinbase/cds/tree/master/skills/cds-accessibility into .claude/skills/cds-accessibility/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cds-accessibility", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/coinbase/cds/tree/master/skills/cds-accessibilityType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add coinbase/cds --skill cds-accessibility -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install coinbase/cds cds-accessibility --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coinbase/cds.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/cds-accessibility .agents/skills/cds-accessibility && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cds-accessibility" agent skill from https://github.com/coinbase/cds/tree/master/skills/cds-accessibility into .agents/skills/cds-accessibility/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cds-accessibility", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add coinbase/cds --skill cds-accessibility -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install coinbase/cds cds-accessibility --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coinbase/cds.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/cds-accessibility .cursor/skills/cds-accessibility && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cds-accessibility" agent skill from https://github.com/coinbase/cds/tree/master/skills/cds-accessibility into .cursor/skills/cds-accessibility/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cds-accessibility", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/coinbase/cds.git --path skills/cds-accessibility--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add coinbase/cds --skill cds-accessibility -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install coinbase/cds cds-accessibility --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coinbase/cds.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/cds-accessibility .gemini/skills/cds-accessibility && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cds-accessibility" agent skill from https://github.com/coinbase/cds/tree/master/skills/cds-accessibility into .gemini/skills/cds-accessibility/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cds-accessibility", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install coinbase/cds cds-accessibilityInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add coinbase/cds --skill cds-accessibility -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/coinbase/cds.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/cds-accessibility .github/skills/cds-accessibility && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cds-accessibility" agent skill from https://github.com/coinbase/cds/tree/master/skills/cds-accessibility into .github/skills/cds-accessibility/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cds-accessibility", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add coinbase/cds --skill cds-accessibility -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install coinbase/cds cds-accessibility --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coinbase/cds.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/cds-accessibility .opencode/skills/cds-accessibility && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cds-accessibility" agent skill from https://github.com/coinbase/cds/tree/master/skills/cds-accessibility into .opencode/skills/cds-accessibility/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cds-accessibility", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cds-accessibilityReviews already-written Coinbase Design System (CDS) UI for accessibility: verifying documented accessibility props (e.g.
Cds Accessibility is an agent skill from coinbase/cds. Reviews already-written Coinbase Design System (CDS) UI for accessibility: verifying documented accessibility props (e.g. accessibilityLabel, accessibilityState), confirming the chosen CDS primitives cover the right assistive technology behavior, and checking usage against official CDS documentation—not generic web ARIA tutorials. Use this skill to review CDS UI for screen reader, keyboard, and labeled control requirements after the code has been written.
Its SKILL.md is about 6.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `README.md`).
It sits in Frontend & Design, covering Accessibility. It works with Coinbase. The repository describes itself as: Coinbase Design System. The licence is Apache-2.0.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 46d9e48. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
skills.cbhq.netcds.coinbase.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Cds Accessibility loads about 6.3k tokens when it runs. Until then it costs about 119 tokens; SKILL.md has 3,097 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from coinbase/cds at commit 46d9e48, republished under its Apache-2.0 licence (© coinbase). 3,097 words, ~6,295 tokens.
.claude/skills/cds-accessibility/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Use this skill to review CDS UI for accessibility after it has been written: confirm that documented props and patterns from CDS are applied, and that the chosen CDS components have official docs describing the interaction the code needs. Do not use this file as a generic WCAG or ARIA handbook. Whenever you need official CDS documentation, load it with the cds-docs skill, which is the single source for current CDS component docs (the official docs site is cds.coinbase.com). Do not guess aria-* or RN prop names from third-party blogs.
accessibilityLabel, accessibilityHint, accessibilityState, accessibilityRole, and any CDS-specific props) against the component docs.aria-*, as, role, labels, and field patterns as the CDS web component API exposes in the doc.cds-code: that skill covers building CDS layout, tokens, and imports; this skill reviews CDS accessibility consumption and CDS-appropriate component choice for a11y after the build.cds-code skill is the source; this skill reviews the result of that work for accessibility.For a given change, this review is complete when all three dimensions below are true. If any dimension is not met, the review found a gap (or the gap is out of scope for CDS—continue with docs, add verification, or escalate).
alt / accessibilityLabel (or equivalent) requirements.Text (or equivalent typography) for titles, headings, or body/label copy, as (web) and accessibilityRole (RN) match content intent and the Text (typography) doc; do not use heading semantics on non-heading font styles when that would misrepresent structure (per the Text web/mobile doc loaded via cds-docs). If Text is not in the change, this bullet does not apply.FormField, Modal composition) when they affect the feature.| Dimension | The review is complete when |
|---|---|
| Props | In-scope components use doc-correct CDS a11y props and patterns for the platform. Focus-managed components (Step 5) match doc for focus when applicable. |
| Selection | Component choices match documented a11y behavior; composites are used when the doc prescribes them for the interaction, not guessed primitives. |
| Docs | Relevant CDS doc content (loaded via cds-docs) and cross-links are read and reflected in the code; any verification gap is stated. Text/typography semantics align with the Text doc when Text is in scope. |
Follow these steps in order when reviewing the accessibility of CDS components in already-written code.
cds-code setup (package discovery) establishes this; keep platform consistent so you load the right docs.You do not need to repeat full setup for every small review; repeat when runtime or major CDS version might have changed.
Box/View, note it—you will compare docs in Step 3.For each component in the list:
FormField or Modal).If the doc is thin for your platform, still do not invent a full generic ARIA layer—follow the published doc and, if the gap is blocking, call out that the behavior is not specified in CDS for that component.
Modal or Select over a hand-built stack).cds-code for overall “which component for layout/visuals”; use this step when assistive technology behavior is the differentiator.accessibilityLabel, accessibilityHint, accessibilityState, accessibilityRole, and any other props the CDS component doc names for the use case are set. Do not accept labels copied from old code without re-checking the current prop table.aria-*, as, role, htmlFor / id / field wiring are used only as the CDS web component API and examples show. Prefer the component’s first-class props (e.g. a dedicated label or slot) over ad hoc ARIA on the wrong element.Icon / Image (or media) guidance in the official CDS doc (loaded via cds-docs) is followed.Text and typography, confirm as (web) / accessibilityRole (React Native) per Part 2, Text (typography) and heading semantics and the Text official doc (loaded via cds-docs); skip if the change has no Text (or equivalent) in scope.When to run this step: only if the Step 1 component list includes at least one focus-managed CDS component per the published official doc (loaded via cds-docs)—typically overlays and floating UI (examples: Modal, Tray, Tooltip; also drawer, popover, or others only if the doc describes focus movement, trap, initial/restore focus, or keyboard dismiss). If the change is only static layout, inline fields, or components whose docs do not define focus management, skip this step and go to Step 6: Verify.
aria behavior, and whether focus moves at all are per component doc. Flag any home-grown tabIndex/listener stack when CDS already documents the path.cds-code flow applies, its visual verification pass still stands; this review does not replace that—it adds CDS a11y API correctness.cds-code workflow was used to build the UI, its visual verification is still in place; this review adds CDS a11y consumption and does not replace layout, styling, or import checks from that skill.These patterns are not a substitute for reading each component’s doc. They tell you what to look for in the doc you loaded via cds-docs for the same component.
The consumer is responsible for pairing visual font styles on CDS Text with correct assistive names and roles so structure matches the real page or screen. Source of truth: the Text web and mobile official docs (loaded via cds-docs)—not generic HTML heading blogs.
Web (React):
Text is used for headings (commonly font values such as display or title when they represent section or page titles), as should be set to the appropriate heading element (h1–h6) so the document outline and screen readers match the authoring intent. Follow the Text official doc and examples for which font values pair with which as.font values meant as non-heading copy—typically body, headline (emphasis, not a document heading), label, caption—as should not be a heading (or other semantic) role when that would misrepresent structure (e.g. body text announced as a heading). If the Text doc is updated, the official CDS doc (loaded via cds-docs) wins over this list.h1 per page” or “every screen must include an h1” unless CDS documentation explicitly requires it for a pattern. Prefer logical heading order and product/IA; do not treat headline font as a heading role without checking the Text doc.React Native:
Text, use accessibilityRole="heading" when the string is a heading—this is the primary way to expose heading semantics for typography. Heading level is weaker than on web; if the mobile Text doc exposes accessibilityLevel (or similar), it should be set per the official Text mobile doc.accessibilityRole="heading" should not be set on body, label, caption, or other non-heading uses when that would mis-announce structure; follow the mobile Text doc for which font values may pair with a heading role.as="h1" patterns ported literally—use the mobile Text doc; accessibilityRole="heading" is the best match available on RN for heading-like Text when a heading is intended.accessibilityLabel, accessibilityHint, accessibilityState, accessibilityRole, accessible, and any CDS-prefixed or forwarded props the doc lists.accessibilityState in combination with the component’s own disabled / value props.View list). For Text, heading vs body treatment is covered in Text (typography) and heading semantics above.as and role on Box and similar when the page needs landmark or widget semantics the doc allows.Text / typography and headings (as for real headings, not body/label/caption as headings): see Text (typography) and heading semantics above.<label>, aria-labelledby, aria-label, or component label / Slot patterns exactly as the form control doc specifies.tabIndex or focus-trap blog recipe.Box + ad hoc when the doc for the composite already specifies semantics, focus, and keyboard for that pattern.aria-describedby or RN equivalents as documented). Errors must not be wired only with color if the doc requires text association or announcements.Icon, image, and media components are used per the official CDS doc: decorative vs informative alternatives, and any alt / accessibilityLabel requirements.as, font, heading semantics on web; accessibilityRole on React Native).cds-codecds-code produces CDS-first UI (layout, StyleProps, theming, imports, visualization, visual verification, package discovery). It is used for how to build the screen and for import correctness.cds-accessibility (this skill) reviews that the CDS components are used with the right accessibility props and component choices as documented for web and mobile, after the code has been written. Typical flow on feature work: build with cds-code, then run this skill’s review workflow for a11y consumption (loading docs via cds-docs).| Concern | React Native (see mobile doc) | Web (see web doc) |
|---|---|---|
| Exposed name | Often accessibilityLabel, sometimes with visible Text | accessibilityLabel (when the web doc lists it for name), then aria-label, aria-labelledby, or label / slot props on the field |
| Hint / description | accessibilityHint where doc allows | aria-describedby or description slots per official CDS web doc (loaded via cds-docs) |
| State | accessibilityState + component state props | aria-* state per component table (aria-expanded, aria-selected, etc.) |
| Role / semantics | accessibilityRole and CDS structural components | as, role, semantic elements in doc examples |
| Form errors | Follow CDS form doc | Follow CDS form doc |
Always fill this table from the current CDS component doc (loaded via cds-docs) for the specific component version you use. The table is a search checklist, not a spec.
accessibilityLabel or aria-label strings without reading the current component doc and content guidelines.Box/View when CDS documents a CDS component with defined focus and semantics for that job.cds-code: correct CDS imports, layout, and tokens are still required—this skill does not override missing cds-code requirements.If the official CDS doc (loaded via cds-docs) does not document a behavior you need, do not fabricate a full custom accessibility architecture inside this skill’s name—record the gap, use design/DS follow-up, or external accessibility guidance for non-CDS layers.
© coinbase, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/cds-accessibility of coinbase/cds.
Open the folder on GitHubat commit 46d9e48
Cds Accessibility next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Cds Accessibility this skillcoinbase/cds | 506 | — | ~6.3k | Automated safety check: Pass | Apache-2.0 | |
| Web Interface Guidelines Reviewervercel-labs/openreview | 1.7k | 98 repos | ~308 | Automated safety check: Pass | None | |
| Accessibility Reviewmarkmead/hyperui | 12k | 1 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Web Animation DesignbaptisteArno/typebot.io | 11k | 2 repos | ~2.7k | Automated safety check: Pass | Custom licence | |
| Accessibility Fixeribelick/ui-skills | 9.4k | 4 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Wcag Audit PatternsvmDeshpande/ai-agent-automation | 178 | 10 repos | ~610 | Automated safety check: Pass | Apache-2.0 |
vercel-labs/openreview
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my…
markmead/hyperui
Run a WCAG 2.1 AA accessibility audit on a design or page. An agent skill from markmead/hyperui.
baptisteArno/typebot.io
Guides easing, timing and animation choices for UI motion, based on a web animation course, and reviews existing animations in a before-and-after table.
ibelick/ui-skills
Audits and fixes HTML accessibility problems such as ARIA labels, keyboard navigation, focus management, contrast and form errors with minimal changes.
vmDeshpande/ai-agent-automation
Conduct WCAG 2.2 accessibility audits with automated testing, manual verification, and remediation guidance.
ibelick/ui-skills
Applies a fixed set of UI rules for stack, components, interaction, animation, typography and layout, or reviews a file against them with concrete fixes.
coinbase/cds
A skill your agent uses when a CDS change in cds-web, cds-common, cds-mobile, web-visualization, or mobile-visualization needs a jscodeshift migration in packages/migrator to update callers or…
coinbase/cds
Deprecates a CDS component, hook, or other exported symbol with consistent JSDoc, version tags, and docsite metadata across every public export path (web, mobile, common, visualization), not only…
coinbase/cds
USE THIS when migrating a CDS React Native component to native iOS, or when writing or reviewing SwiftUI in packages/cds-ios or apps/ios-gallery.
coinbase/cds
USE THIS when writing or reviewing Jetpack Compose / Kotlin code in packages/cds-android or apps/android-app - @Composable APIs, Modifier parameters, CompositionLocal, state hoisting, or naming.
coinbase/cds
Turn Figma designs into CDS React (cds-web) or React Native (cds-mobile) code.
coinbase/cds
Retrieve Coinbase Design System (CDS) documentation: setup, installation, theming, tokens, and per-component APIs/examples.
Works with
Categories
Reviews already-written Coinbase Design System (CDS) UI for accessibility: verifying documented accessibility props (e.g. Cds Accessibility is an agent skill from coinbase/cds.g.
Cds Accessibility fits situations like: review CDS UI for screen reader; labeled control requirements after the code has been written.
Run `npx skills add coinbase/cds --skill cds-accessibility -a claude-code`. Or copy the skill folder (skills/cds-accessibility in coinbase/cds) into .claude/skills/cds-accessibility in your project. Claude Code loads it when a task matches its description.
Run `npx skills add coinbase/cds --skill cds-accessibility -a codex`. Or copy the skill folder (skills/cds-accessibility in coinbase/cds) into .agents/skills/cds-accessibility in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add coinbase/cds --skill cds-accessibility -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cds-accessibility, .gemini/skills/cds-accessibility, .github/skills/cds-accessibility and .opencode/skills/cds-accessibility in your project.
SKILL.md names no scripts, command-line tools or credentials: Cds Accessibility is instructions for the agent only.
SKILL.md names 2 domains. As links in the text: skills.cbhq.net and cds.coinbase.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Cds Accessibility is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.3k tokens (SKILL.md is roughly 25k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Cds Accessibility: Web Interface Guidelines Reviewer (vercel-labs/openreview, 1.7k stars), Accessibility Review (markmead/hyperui, 12k stars), Web Animation Design (baptisteArno/typebot.io, 11k stars) and Accessibility Fixer (ibelick/ui-skills, 9.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
coinbase (a GitHub organization) maintains it in coinbase/cds, which has 506 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 6, 2026.
Source: coinbase/cds on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.