Agent skill

Accessibility Generator

by rshankras in rshankras/claude-code-apple-skills

Generate accessibility infrastructure for VoiceOver, Dynamic Type, and accessibility features.

MITAuto-check: notesFrontend & Design

Install Accessibility Generator

skills CLI
$ npx skills add rshankras/claude-code-apple-skills --skill accessibility-generator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install rshankras/claude-code-apple-skills accessibility-generator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
accessibility-generator
GitHub stars
783
Token cost
~1.4k tokens
SKILL.md length
459 words
Files
2
Skills in repo
41
Repo updated
First seen
Licence
MIT

At a glance

Generate accessibility infrastructure for VoiceOver, Dynamic Type, and accessibility features.

  • Improving app accessibility
  • SKILL.md covers When This Skill Activates, Pre-Generation Checks, Key Features and Visual Accessibility: Numbers…, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Adding accessibility labels and hints

What it does

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.

When your agent uses it

  • Improving app accessibility
  • Adding accessibility labels and hints
  • Auditing compliance

Example prompts

  • “/accessibility-generator”

Requirements

  • Pre-approved tools (allowed-tools): Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion

What it can do on your machine

Read from SKILL.md and the folder at commit 9ffb831. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Glob
    • Grep
    • Bash
    • AskUserQuestion

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    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.

  • Network

    Links to these hosts (documentation or services it may open):

    • developer.apple.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~55
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion

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.

SKILL.md

The full file from rshankras/claude-code-apple-skills at commit 9ffb831, republished under its MIT licence (© rshankras). 459 words, ~1,377 tokens.

Download SKILL.mdSave it as .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.
name
accessibility-generator
description
Generate accessibility infrastructure for VoiceOver, Dynamic Type, and accessibility features. Use when improving app accessibility, adding accessibility labels and hints, or auditing compliance.
allowed-tools
Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion
last_verified
2026-07-16
review_by
2027-06-22

Accessibility Generator

Generate accessibility infrastructure for VoiceOver, Dynamic Type, and accessibility features.

When This Skill Activates

  • User wants to improve app accessibility
  • User mentions VoiceOver, Dynamic Type, or accessibility
  • User needs to add accessibility labels and hints
  • User wants to audit accessibility compliance

Pre-Generation Checks

bash
# Check existing accessibility usage
grep -r "accessibilityLabel\|accessibilityHint\|AccessibilityFocused" --include="*.swift" | head -5

Key Features

Accessibility Labels
swift
Image(systemName: "heart.fill")
    .accessibilityLabel("Favorite")
    .accessibilityHint("Double tap to remove from favorites")
Dynamic Type Support
swift
Text("Title")
    .font(.title)  // Scales automatically
    .dynamicTypeSize(...DynamicTypeSize.accessibility3)  // Limit max size
Reduce Motion
swift
@Environment(\.accessibilityReduceMotion) private var reduceMotion

withAnimation(reduceMotion ? nil : .spring()) {
    // Animation
}
VoiceOver Groups
swift
VStack {
    Text("Item Name")
    Text("$9.99")
}
.accessibilityElement(children: .combine)

Visual Accessibility: Numbers and APIs (WWDC20)

SettingThreshold / APIWhat to do
Contrast4.5:1 minimum ("generally the lowest acceptable ratio"); ~7.5:1 for comfort on dark backgroundsCheck text and glyphs against their actual backgrounds
Differentiate Without ColorUIAccessibility.shouldDifferentiateWithoutColorAdd shapes/symbols wherever color is the only signal (red/green states)
Button ShapesUIAccessibility.buttonShapesEnabled + its change notificationShow borders/underlines on plain-text buttons when on
Increase ContrastSystem colors adapt for free; custom colors need a "High Contrast" variant in the asset catalogNever ship a single hex for both modes
Dynamic TypepreferredContentSizeCategoryNever truncate — set line count to 0 so text wraps; reflow layout at accessibility sizes
Bold TextUIAccessibility.isBoldTextEnabledFree with system text styles; custom fonts must swap weights manually
Reduce MotionisReduceMotionEnabled, prefersCrossFadeTransitionsGate 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 TransparencyUIAccessibility.isReduceTransparencyEnabledRender blur/vibrancy backgrounds as opaque

SwiftUI mirrors most of these as environment values (\.accessibilityReduceMotion above, plus \.accessibilityDifferentiateWithoutColor, \.legibilityWeight, \.accessibilityReduceTransparency).

Show full SKILL.md (233 more words)Show less

Deep Patterns (accessibility-patterns.md)

The full recipes live in accessibility-patterns.md:

  • Label-writing rules — context ladder, no control types, succinctness, localize (WWDC19 254)
  • Custom actions doctrine — clutter/speed rationale, hide replaced buttons, widget intents (WWDC19 250, WWDC24 10073)
  • Custom rotors, UIKit and SwiftUI (WWDC20 10116, WWDC21 10119)
  • Data-rich rows via the More Content rotor / AXCustomContent (WWDC21 10121)
  • Announcements with priorities, .isToggle, zoom, direct touch, block-based setters (WWDC23 10036)
  • Custom-control technique selection: adjustable vs passthrough vs custom actions vs direct touch (WWDC26 220)
  • Switch Control grouping and timeout rules (WWDC20 10019); Full Keyboard Access (WWDC21 10120)
  • Reading-app text navigation, page turns, UITextInput adoption (WWDC26 219)

Inclusive Design Principles (WWDC25)

  • About 1 in 7 people has a disability — accessibility features are mainstream features.
  • Provide information through multiple senses: captions for audio, audible/haptic paths for visual cues.
  • Support multiple input methods — touch, keyboard, voice, switch — for every action.
  • Larger Text scales text up to ~3x — layouts must reflow, not clip or overlap.
  • Inclusion is iterative, not one-time — re-audit each release, not just before launch.

Generated Files

Sources/Accessibility/
├── AccessibilityModifiers.swift   # Custom view modifiers
├── AccessibilityHelpers.swift     # Label builders
└── AccessibilityStrings.swift     # Localized labels

Audit Checklist

  • All interactive elements have labels
  • Images have descriptions or are hidden decoratively
  • Color is not the only indicator
  • Touch targets are at least 44×44 points
  • Dynamic Type is supported
  • Reduce Motion is respected
  • VoiceOver order is logical
  • Custom controls expose purpose, value, actions, and feedback (WWDC26 220)
  • Automated audit + Nutrition Label evaluation — see ios/accessibility-audit

References

© rshankras, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/generators/accessibility-generator of rshankras/claude-code-apple-skills.

  • SKILL.md
  • accessibility-patterns.md

Open the folder on GitHubat commit 9ffb831

Compare with similar skills

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.

Accessibility Generator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Accessibility Generator this skillrshankras/claude-code-apple-skills783—~1.4kAutomated safety check: NotesMIT
Desktop A11y Testing CoachCommunity-Access/accessibility-agents422—~1.5kAutomated safety check: PassMIT
iOS Accessibilitydadederk/iOS-Accessibility-Agent-Skill172—~2.4kAutomated safety check: PassMIT
AccessibilityGetStream/stream-chat-react-native1.2k—~6.5kAutomated safety check: PassCustom licence
Maui Accessibilitydavidortinau/maui-skills174—~974Automated safety check: PassMIT
iOS Higjohnrogers/claude-swift-engineering231—~705Automated safety check: PassMIT

Similar skills

  • Desktop A11y Testing Coach

    Community-Access/accessibility-agents

    Test desktop apps with NVDA, JAWS, Narrator, VoiceOver and UIA tooling.

    422 GitHub stars~1.5k tokensUpdated 15 days ago
    Frontend & DesignAuto-check passed
  • iOS Accessibility

    dadederk/iOS-Accessibility-Agent-Skill

    Expert guidance on iOS accessibility best practices, patterns, and implementation.

    172 GitHub stars~2.4k tokensUpdated 7 mo ago
    Frontend & DesignAuto-check passed
  • Accessibility

    GetStream/stream-chat-react-native

    Maintain VoiceOver/TalkBack-focused accessibility in stream-chat-react-native.

    1.2k GitHub stars~6.5k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Maui Accessibility

    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…

    174 GitHub stars~974 tokensUpdated 3 mo ago
    Frontend & DesignAuto-check passed
  • iOS Hig

    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…

    231 GitHub stars~705 tokensUpdated 8 mo ago
    Frontend & DesignAuto-check passed
  • Mobile Accessibility

    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…

    109 GitHub stars~1.4k tokensUpdated today
    MobileAuto-check passed

More from rshankras/claude-code-apple-skills

All 41 skills in this repo
  • Animation Patterns

    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.

    783 GitHub stars~2.1k tokensUpdated 2 mo ago
    Auto-check passed
  • App Description Writer

    rshankras/claude-code-apple-skills

    Generate compelling App Store descriptions that convert browsers into users.

    783 GitHub stars~1.3k tokensUpdated 2 mo ago
    Auto-check passed
  • App Icon Generator

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

    783 GitHub stars~5.1k tokensUpdated 2 mo ago
    Auto-check: notes
  • App Namer

    rshankras/claude-code-apple-skills

    Turn an app idea into validated, App-Store-ready name candidates.

    783 GitHub stars~3.4k tokensUpdated 2 mo ago
    Auto-check passed
  • Bundles And Licensing

    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 &…

    783 GitHub stars~1.8k tokensUpdated 2 mo ago
    Auto-check passed
  • CI CD Setup

    rshankras/claude-code-apple-skills

    Generate CI/CD configuration for automated builds, tests, and distribution of iOS/macOS apps.

    783 GitHub stars~1.5k tokensUpdated 2 mo ago
    Auto-check: notes

Questions about Accessibility Generator

What does Accessibility Generator do?

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.

When should I use Accessibility Generator?

Accessibility Generator fits situations like: improving app accessibility; adding accessibility labels and hints; auditing compliance.

How do I install Accessibility Generator in Claude Code?

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.

How do I install Accessibility Generator in Codex?

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.

Can I use Accessibility Generator in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Accessibility Generator need to run?

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.

Does Accessibility Generator access the network?

SKILL.md names 1 domain. As links in the text: developer.apple.com. This is read from the text; nothing was executed.

Is Accessibility Generator safe to install?

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.

What licence does Accessibility Generator use?

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.

How many tokens does Accessibility Generator use?

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.

What are the alternatives to Accessibility Generator?

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.

Who maintains Accessibility Generator?

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.