Skip to content

danieljamestronca/apple-accessibility

v1.0.0MIT

Design, implement, review, and test accessibility in Apple-platform apps: VoiceOver, Voice Control, Switch Control, Dynamic Type, visual settings, captions, Assistive Access, audits, and Accessibility Nutrition Labels.

Apple Accessibility Skill

An agent skill for designing, implementing, reviewing, and testing accessibility in Apple-platform apps: SwiftUI, UIKit, AppKit, RealityKit, watchOS, tvOS, and visionOS.

Built from Apple's Accessibility framework documentation (a full crawl of about 2,000 public pages across Accessibility, SwiftUI, UIKit, AppKit, XCUIAutomation, MediaAccessibility, AVFAudio, and RealityKit), the Human Interface Guidelines, all nine App Store Connect Accessibility Nutrition Label criteria, and 60+ WWDC sessions and tech talks from WWDC18 through WWDC26. Every recommended API was cross-checked against the Xcode 27.1 SDKs. Research checked October 9, 2026. Inspired by Apple Liquid Glass Skill and Apple iPhone Duo Skill.

Install

Using the Skills CLI:

npx skills add DanielJamesTronca/apple-accessibility-skill -g

In Codex, ask:

Use $skill-installer to install skills/apple-accessibility from
https://github.com/DanielJamesTronca/apple-accessibility-skill.

For manual installation, copy skills/apple-accessibility to ~/.agents/skills/apple-accessibility for user-wide discovery, or .agents/skills/apple-accessibility in a project for repository-scoped discovery. Copy the entire folder, including references and scripts.

To browse it as a Codex plugin, register the repository marketplace:

codex plugin marketplace add DanielJamesTronca/apple-accessibility-skill

Then open the Plugins Directory in the ChatGPT desktop app, select Apple Accessibility Skill, and install Apple Accessibility. Marketplace registration and plugin installation are separate steps.

In Claude Code:

/plugin marketplace add DanielJamesTronca/apple-accessibility-skill
/plugin install apple-accessibility@apple-accessibility-skill

The repo includes a portable plugin.json, Codex and Claude compatibility manifests, and marketplace catalogs. It's distributed through GitHub; inclusion in a public plugin directory is a separate submission. The skill is self-contained and needs no Apple login, local Xcode skill, Python package, or network access to read. Xcode is needed to build Apple-platform code; the optional audit helper uses Python 3.10+.

Use

Use $apple-accessibility to review this screen for VoiceOver and Dynamic Type.

Use $apple-accessibility to make this custom SwiftUI slider and canvas accessible
without changing the design or the iOS 17 deployment target.

Use $apple-accessibility to evaluate our iPhone and Apple TV apps for
Accessibility Nutrition Labels.

The examples above use Codex invocation syntax. In Claude Code, invoke the installed plugin skill as /apple-accessibility:apple-accessibility, followed by your request.

Coverage

AreaIncluded
FoundationsElement model, label writing, traits and values, grouping, order, focus, announcements, modals, representables
Custom controlsAdjustable actions, accessibilityRepresentation, custom actions, passthrough, direct touch, zoom, drag and drop, hover and gestures
Navigation and readingRotors, Mac containers, custom content, long-form text, text navigation, page turning, UITextInput, speech attributes, math
Dynamic TypeText styles, custom fonts, reflow, scrolling, images, Large Content Viewer, tvOS 27 Large Text, watchOS, games
Visual settingsContrast, Increase Contrast, Dark Mode, color, transparency, Liquid Glass, Smart Invert, Reduce Motion, flashing, animated images
Input alternativesVoice Control, Switch Control, Full Keyboard Access, AssistiveTouch, Dwell, Pointer Control, targets, timing, Guided Access, kiosks
CognitiveDesign principles, Assistive Access scene and plist keys, Guided Access restrictions
Media and speechCaptions, iOS 27 generated subtitles and style preview, audio descriptions, Music Haptics, speech synthesis, Personal Voice, hearing devices
Charts and dataSwift Charts, audio graphs (AXChart), data tables, braille maps and translation
PlatformsmacOS/Catalyst, watchOS, tvOS, visionOS and RealityKit, widgets, web content, Unity and native games
TestingTest matrix, VoiceOver and Voice Control basics, Accessibility Inspector, audits in UI tests, iOS 27 VoiceOver automation
Nutrition LabelsDecision rule, all nine criteria, implementation latitude, App Store Connect steps

Start with SKILL.md; details load only when relevant. The API catalog separates iOS 27, 26.x, 18, and 17 additions and lists corrections to Apple session sample code that doesn't compile against the current SDK. The research ledger documents coverage, conflicts, and limits.

Read-only audit

python3 skills/apple-accessibility/scripts/audit_accessibility.py /path/to/app
python3 skills/apple-accessibility/scripts/audit_accessibility.py /path/to/app --json

Findings are review candidates, not proven bugs. The helper scans Swift and Objective-C without editing them; ignores comments, string contents, generated dependency folders, and symlinks; and reports file/line context. Rules cover fixed font sizes, single-line limits, gesture-only interactions, tap gestures without button semantics, unlabeled asset images and icon-only buttons, role words or test IDs in labels, hidden elements, hard-coded colors, repeating or parallax motion without a Reduce Motion check, timed dismissal, custom drawing without accessibility, if in rotor builders, invalid session APIs, and assistive-technology gating. It's a lexical aid, not a Swift parser.

Validation

python3 -m unittest discover -s tests -v
python3 scripts/validate_package.py
./scripts/check_examples.sh  # macOS with Xcode 27.1 selected

Original examples are type-checked in Swift 6 for iOS 17 (with availability gates), Mac Catalyst 17, macOS 14 (AppKit), and an iOS 17 UI-test target. Compile checks don't verify spoken output, focus behavior, or rendered layout; those need assistive-technology testing in the consuming app. The behavioral evaluation scenarios exercise the skill's decisions without asserting its wording.

Contribute

See CONTRIBUTING.md for updating evidence and validation. Report SDK or OS behavior with the exact Xcode and OS build.

MIT licensed. Independent community skill; not affiliated with or endorsed by Apple. Linked Apple materials retain their own rights.