Desktop A11y Testing Coach
Community-Access/accessibility-agents
Test desktop apps with NVDA, JAWS, Narrator, VoiceOver and UIA tooling.
Generate accessibility infrastructure for VoiceOver, Dynamic Type, and accessibility features.
$ npx skills add rshankras/claude-code-apple-skills --skill accessibility-generator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rshankras/claude-code-apple-skills accessibility-generator --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/rshankras/claude-code-apple-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/generators/accessibility-generator .claude/skills/accessibility-generator && 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 "accessibility-generator" agent skill from https://github.com/rshankras/claude-code-apple-skills/tree/main/skills/generators/accessibility-generator into .claude/skills/accessibility-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-generator", 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/rshankras/claude-code-apple-skills/tree/main/skills/generators/accessibility-generatorType 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 rshankras/claude-code-apple-skills --skill accessibility-generator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rshankras/claude-code-apple-skills accessibility-generator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rshankras/claude-code-apple-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/generators/accessibility-generator .agents/skills/accessibility-generator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "accessibility-generator" agent skill from https://github.com/rshankras/claude-code-apple-skills/tree/main/skills/generators/accessibility-generator into .agents/skills/accessibility-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-generator", 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 rshankras/claude-code-apple-skills --skill accessibility-generator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rshankras/claude-code-apple-skills accessibility-generator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rshankras/claude-code-apple-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/generators/accessibility-generator .cursor/skills/accessibility-generator && 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 "accessibility-generator" agent skill from https://github.com/rshankras/claude-code-apple-skills/tree/main/skills/generators/accessibility-generator into .cursor/skills/accessibility-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-generator", 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/rshankras/claude-code-apple-skills.git --path skills/generators/accessibility-generator--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 rshankras/claude-code-apple-skills --skill accessibility-generator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rshankras/claude-code-apple-skills accessibility-generator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rshankras/claude-code-apple-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/generators/accessibility-generator .gemini/skills/accessibility-generator && 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 "accessibility-generator" agent skill from https://github.com/rshankras/claude-code-apple-skills/tree/main/skills/generators/accessibility-generator into .gemini/skills/accessibility-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-generator", 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 rshankras/claude-code-apple-skills accessibility-generatorInstalls 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 rshankras/claude-code-apple-skills --skill accessibility-generator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/rshankras/claude-code-apple-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/generators/accessibility-generator .github/skills/accessibility-generator && 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 "accessibility-generator" agent skill from https://github.com/rshankras/claude-code-apple-skills/tree/main/skills/generators/accessibility-generator into .github/skills/accessibility-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-generator", 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 rshankras/claude-code-apple-skills --skill accessibility-generator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install rshankras/claude-code-apple-skills accessibility-generator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rshankras/claude-code-apple-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/generators/accessibility-generator .opencode/skills/accessibility-generator && 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 "accessibility-generator" agent skill from https://github.com/rshankras/claude-code-apple-skills/tree/main/skills/generators/accessibility-generator into .opencode/skills/accessibility-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-generator", 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.
accessibility-generatorGenerate accessibility infrastructure for VoiceOver, Dynamic Type, and accessibility features.
Accessibility Generator is an agent skill from rshankras/claude-code-apple-skills. Generate accessibility infrastructure for VoiceOver, Dynamic Type, and accessibility features. Use when improving app accessibility, adding accessibility labels and hints, or auditing compliance.
Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `accessibility-patterns.md`).
It sits in Frontend & Design, covering Accessibility and Text to speech and voice. The repository describes itself as: Claude Code skills for Apple platform development (iOS, macOS, iPadOS) — product validation, code generation, App Store optimization, and more. The licence is MIT.
Read from SKILL.md and the folder at commit 9ffb831. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditGlobGrepBashAskUserQuestionFrom allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are swift and bash).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
developer.apple.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.
Accessibility Generator loads about 1.4k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 459 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 noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestionAutomated 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 rshankras/claude-code-apple-skills at commit 9ffb831, republished under its MIT licence (© rshankras). 459 words, ~1,377 tokens.
.claude/skills/accessibility-generator/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Generate accessibility infrastructure for VoiceOver, Dynamic Type, and accessibility features.
# Check existing accessibility usage
grep -r "accessibilityLabel\|accessibilityHint\|AccessibilityFocused" --include="*.swift" | head -5Image(systemName: "heart.fill")
.accessibilityLabel("Favorite")
.accessibilityHint("Double tap to remove from favorites")Text("Title")
.font(.title) // Scales automatically
.dynamicTypeSize(...DynamicTypeSize.accessibility3) // Limit max size@Environment(\.accessibilityReduceMotion) private var reduceMotion
withAnimation(reduceMotion ? nil : .spring()) {
// Animation
}VStack {
Text("Item Name")
Text("$9.99")
}
.accessibilityElement(children: .combine)| Setting | Threshold / API | What to do |
|---|---|---|
| Contrast | 4.5:1 minimum ("generally the lowest acceptable ratio"); ~7.5:1 for comfort on dark backgrounds | Check text and glyphs against their actual backgrounds |
| Differentiate Without Color | UIAccessibility.shouldDifferentiateWithoutColor | Add shapes/symbols wherever color is the only signal (red/green states) |
| Button Shapes | UIAccessibility.buttonShapesEnabled + its change notification | Show borders/underlines on plain-text buttons when on |
| Increase Contrast | System colors adapt for free; custom colors need a "High Contrast" variant in the asset catalog | Never ship a single hex for both modes |
| Dynamic Type | preferredContentSizeCategory | Never truncate — set line count to 0 so text wraps; reflow layout at accessibility sizes |
| Bold Text | UIAccessibility.isBoldTextEnabled | Free with system text styles; custom fonts must swap weights manually |
| Reduce Motion | isReduceMotionEnabled, prefersCrossFadeTransitions | Gate animations, parallax, and video autoplay; prefer cross-fades over sliding transitions |
| Smart Invert | .accessibilityIgnoresInvertColors() | Apply to photos, videos, and full-color icons so they don't invert |
| Reduce Transparency | UIAccessibility.isReduceTransparencyEnabled | Render blur/vibrancy backgrounds as opaque |
SwiftUI mirrors most of these as environment values (\.accessibilityReduceMotion above, plus \.accessibilityDifferentiateWithoutColor, \.legibilityWeight, \.accessibilityReduceTransparency).
The full recipes live in accessibility-patterns.md:
AXCustomContent (WWDC21 10121).isToggle, zoom, direct touch, block-based setters (WWDC23 10036)UITextInput adoption (WWDC26 219)Sources/Accessibility/
├── AccessibilityModifiers.swift # Custom view modifiers
├── AccessibilityHelpers.swift # Label builders
└── AccessibilityStrings.swift # Localized labelsios/accessibility-audit© rshankras, MIT. 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/generators/accessibility-generator of rshankras/claude-code-apple-skills.
Open the folder on GitHubat commit 9ffb831
Accessibility Generator 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 |
|---|---|---|---|---|---|---|
| Accessibility Generator this skillrshankras/claude-code-apple-skills | 783 | — | ~1.4k | Automated safety check: Notes | MIT | |
| Desktop A11y Testing CoachCommunity-Access/accessibility-agents | 422 | — | ~1.5k | Automated safety check: Pass | MIT | |
| iOS Accessibilitydadederk/iOS-Accessibility-Agent-Skill | 172 | — | ~2.4k | Automated safety check: Pass | MIT | |
| AccessibilityGetStream/stream-chat-react-native | 1.2k | — | ~6.5k | Automated safety check: Pass | Custom licence | |
| Maui Accessibilitydavidortinau/maui-skills | 174 | — | ~974 | Automated safety check: Pass | MIT | |
| iOS Higjohnrogers/claude-swift-engineering | 231 | — | ~705 | Automated safety check: Pass | MIT |
Community-Access/accessibility-agents
Test desktop apps with NVDA, JAWS, Narrator, VoiceOver and UIA tooling.
dadederk/iOS-Accessibility-Agent-Skill
Expert guidance on iOS accessibility best practices, patterns, and implementation.
GetStream/stream-chat-react-native
Maintain VoiceOver/TalkBack-focused accessibility in stream-chat-react-native.
davidortinau/maui-skills
Guide for making .NET MAUI apps accessible — screen reader support via SemanticProperties, heading levels, AutomationProperties visibility control, programmatic focus and announcements, and…
johnrogers/claude-swift-engineering
A skill your agent uses when designing iOS interfaces, implementing accessibility (VoiceOver, Dynamic Type), handling dark mode, ensuring adequate touch targets, providing animation/haptic feedback…
makifbaysal/tasktrooper
A skill your agent uses when building or changing any interactive mobile UI - VoiceOver/TalkBack labels, grouping, headings, focus order, Dynamic Type/font scale, reduce motion, contrast, and the…
rshankras/claude-code-apple-skills
SwiftUI animation patterns including springs, transitions, PhaseAnimator, KeyframeAnimator, SF Symbol effects, scroll-driven effects, mesh gradients, text renderers, and shader effects.
rshankras/claude-code-apple-skills
Generate compelling App Store descriptions that convert browsers into users.
rshankras/claude-code-apple-skills
Generates an app icon for macOS or iOS — a fast CoreGraphics placeholder and/or flat layered source art to finish in Icon Composer (the Liquid Glass / iOS 26+ standard).
rshankras/claude-code-apple-skills
Turn an app idea into validated, App-Store-ready name candidates.
rshankras/claude-code-apple-skills
Revenue beyond the single-app price tag — own-app bundles, Family Sharing as a conversion lever, cross-developer bundles & suites, and institutional licensing via Group Purchases / Apple School &…
rshankras/claude-code-apple-skills
Generate CI/CD configuration for automated builds, tests, and distribution of iOS/macOS apps.
Categories
Generate accessibility infrastructure for VoiceOver, Dynamic Type, and accessibility features. Accessibility Generator is an agent skill from rshankras/claude-code-apple-skills. Generate accessibility infrastructure for VoiceOver, Dynamic Type, and accessibility features.
Accessibility Generator fits situations like: improving app accessibility; adding accessibility labels and hints; auditing compliance.
Run `npx skills add rshankras/claude-code-apple-skills --skill accessibility-generator -a claude-code`. Or copy the skill folder (skills/generators/accessibility-generator in rshankras/claude-code-apple-skills) into .claude/skills/accessibility-generator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add rshankras/claude-code-apple-skills --skill accessibility-generator -a codex`. Or copy the skill folder (skills/generators/accessibility-generator in rshankras/claude-code-apple-skills) into .agents/skills/accessibility-generator 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 rshankras/claude-code-apple-skills --skill accessibility-generator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/accessibility-generator, .gemini/skills/accessibility-generator, .github/skills/accessibility-generator and .opencode/skills/accessibility-generator in your project.
SKILL.md names no scripts, command-line tools or credentials: Accessibility Generator is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion.
SKILL.md names 1 domain. As links in the text: developer.apple.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Accessibility Generator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.4k tokens (SKILL.md is roughly 5.5k 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 Accessibility Generator: Desktop A11y Testing Coach (Community-Access/accessibility-agents, 422 stars), iOS Accessibility (dadederk/iOS-Accessibility-Agent-Skill, 172 stars), Accessibility (GetStream/stream-chat-react-native, 1.2k stars) and Maui Accessibility (davidortinau/maui-skills, 174 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
rshankras (a GitHub user) maintains it in rshankras/claude-code-apple-skills, which has 783 GitHub stars. The repository holds 41 skills in this directory. The repository was last updated on July 24, 2026.
Source: rshankras/claude-code-apple-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.