К основному содержанию
скилл CX Codex

axiom-accessibility — скилл для Claude Code: аудит доступности iOS

Скилл для разбора проблем доступности в приложениях Apple: VoiceOver, Dynamic Type, контраст, размеры целей нажатия, WCAG.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add CharlesWiltgen/Axiom --skill axiom-accessibility -a claude-code
Открыть на GitHub

Что делает axiom-accessibility

Скилл включается, когда вы правите или проверяете доступность в приложении под Apple-платформы. Он разводит задачу по симптомам: подписи и подсказки VoiceOver, масштабирование Dynamic Type, провалы по контрасту, цели нажатия меньше 44x44pt, навигация с клавиатуры, Reduce Motion, Assistive Access. Отдельная ветка — UX-аудит: тупиковые экраны, ловушки закрытия, потерянные CTA, отсутствие состояний загрузки и ошибки. Для watchOS есть свой файл про ротор на Digital Crown, AssistiveTouch и Double Tap.

Внутри — роутер с таблицей симптомов и решающим деревом, которое ведёт к skills/accessibility-diag.md, skills/ux-flow-audit.md или skills/watchos-a11y.md. Автоматический скан отдан отдельным аудиторам: axiom-audit-accessibility проверяет подписи, Dynamic Type, контраст и WCAG, axiom-audit-ux-flow ищет тупики и пропущенные состояния. В Codex эти аудиторы вызываются как скиллы, а не как агенты Claude. Проверки, которые собирают проект, гоняют тесты или симулятор, требуют доступа к шеллу.

Ставить стоит до того, как интерфейс готов: подписи VoiceOver, добавленные в конце, обходятся дороже, и до них поддержку VoiceOver заявить нельзя. Контраст на глаз не оценивается — нужны замеры по WCAG, и скилл как раз на это и опирается.

Какие задачи решает

  • разметить подписи и подсказки VoiceOver для элементов интерфейса
  • найти нарушения масштабирования Dynamic Type
  • проверить контраст по порогам WCAG AA и AAA
  • увеличить цели нажатия до 44x44pt
  • найти тупиковые экраны и ловушки закрытия в UX-потоке

Примеры запросов агенту

  • проверь доступность экрана настроек: подписи VoiceOver и порядок обхода
  • почему у меня ломается Dynamic Type на карточках — прогони диагностику
  • запусти axiom-audit-accessibility по проекту и покажи провалы по контрасту

Как установить axiom-accessibility

1Через Skills CLI (Vercel)

npx skills add CharlesWiltgen/Axiom --skill axiom-accessibility -a claude-code

2Вручную: положить файлы

~/.claude/skills/axiom-accessibility/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/axiom-accessibility/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о axiom-accessibility

Как установить axiom-accessibility в Claude?

Выполните npx skills add CharlesWiltgen/Axiom --skill axiom-accessibility -a claude-code. После этого файл скилла лежит в ~/.claude/skills/axiom-accessibility/SKILL.md.

Что делает axiom-accessibility?

Разбирает задачи доступности в приложениях Apple: VoiceOver, Dynamic Type, контраст, размеры целей нажатия, клавиатурная навигация, WCAG. Часть проверок вынесена в аудиторы axiom-audit-accessibility и axiom-audit-ux-flow.

Чем отличается от обычного сканирования доступности?

Скилл ведёт по симптомам к нужному файлу с диагностикой, а аудиторы дают автоматический скан. Проверки со сборкой, тестами и симулятором требуют доступа к шеллу.

Исходный текст

SKILL.md · MIT
---
name: axiom-accessibility
description: Use when fixing or auditing ANY accessibility issue — VoiceOver, Dynamic Type, color contrast, touch targets, WCAG compliance, App Store accessibility review.
license: MIT
---

# Accessibility

**You MUST use this skill for ANY accessibility work including VoiceOver, Dynamic Type, color contrast, WCAG compliance, and UX flow auditing.**

<!-- AXIOM_AUDITOR_INLINE_BEGIN — rewritten for Codex by scripts/build-codex.ts; do not hand-edit -->
> **Auditors are skills here.** Where this router says "Launch `some-auditor` agent", invoke the
> matching Codex skill instead — same procedure, no Claude Code agent required.
>
> Available: `axiom-audit-accessibility`, `axiom-audit-concurrency`, `axiom-audit-swiftdata`, `axiom-audit-swiftui-nav`, `axiom-audit-ux-flow`.
>
> The ones that shell out — builds, tests, simulators, crash symbolication — need shell access to run.
<!-- AXIOM_AUDITOR_INLINE_END -->

## Quick Reference

| Symptom / Task | Reference |
|----------------|-----------|
| VoiceOver labels, hints, navigation | See `skills/accessibility-diag.md` |
| Dynamic Type scaling violations | See `skills/accessibility-diag.md` |
| Dynamic Type on tvOS (Large Text, tvOS 27) | See `skills/accessibility-diag.md` |
| Long-form reading apps (continuous reading, Speak Screen, text navigation) | See `skills/accessibility-diag.md` |
| Captions & subtitle styling in video players (generated subtitles, style preview) | See `skills/accessibility-diag.md` |
| Custom control technique choice (adjustable, passthrough, direct touch) | See `skills/accessibility-diag.md` |
| Accessibility Nutrition Labels | See `skills/accessibility-diag.md` |
| Color contrast (WCAG AA/AAA) | See `skills/accessibility-diag.md` |
| Touch target sizes (< 44x44pt) | See `skills/accessibility-diag.md` |
| Keyboard navigation (iPadOS/macOS) | See `skills/accessibility-diag.md` |
| Button Shapes, Large Content Viewer, Full Keyboard Access, Switch Control | See `skills/accessibility-diag.md` |
| VoiceOver order broken after resize / column collapse; table & grid semantics | See `skills/accessibility-diag.md` |
| Reduce Motion support | See `skills/accessibility-diag.md` |
| Assistive Access (cognitive, iOS 17+) | See `skills/accessibility-diag.md` |
| Accessibility Inspector workflows | See `skills/accessibility-diag.md` |
| UX dead ends, dismiss traps | See `skills/ux-flow-audit.md` |
| Buried CTAs, missing empty states | See `skills/ux-flow-audit.md` |
| Missing loading/error states | See `skills/ux-flow-audit.md` |
| Deep link dead ends | See `skills/ux-flow-audit.md` |
| Accessibility dead ends (gesture-only) | See `skills/ux-flow-audit.md` |
| watchOS-specific (VoiceOver rotor on Digital Crown, AssistiveTouch, Double Tap) | See `skills/watchos-a11y.md` |

## Cross-Suite Routes

- Full watchOS development context → See axiom-watchos
- Live accessibility validation on the simulator (set toggles, assert announcements) → `simulator-tester` agent + `xcui` — see axiom-tools (skills/xcui-ref.md)
- Asserting VoiceOver speech in an XCUITest (`XCUIDevice.shared.voiceOverService`, `OS27`) → axiom-testing (skills/ui-testing.md Pattern 7)

## Decision Tree

```dot
digraph accessibility {
    start [label="Accessibility issue" shape=ellipse];
    what [label="What type?" shape=diamond];

    start -> what;
    what -> "skills/accessibility-diag.md" [label="VoiceOver/labels/hints"];
    what -> "skills/accessibility-diag.md" [label="Dynamic Type"];
    what -> "skills/accessibility-diag.md" [label="color contrast"];
    what -> "skills/accessibility-diag.md" [label="touch targets"];
    what -> "skills/accessibility-diag.md" [label="keyboard nav"];
    what -> "skills/accessibility-diag.md" [label="resizable window / desktop-class"];
    what -> "skills/accessibility-diag.md" [label="Reduce Motion"];
    what -> "skills/accessibility-diag.md" [label="Assistive Access"];
    what -> "skills/accessibility-diag.md" [label="custom control techniques"];
    what -> "skills/accessibility-diag.md" [label="continuous reading / text navigation"];
    what -> "skills/accessibility-diag.md" [label="captions / subtitle styling"];
    what -> "skills/accessibility-diag.md" [label="App Store prep / Nutrition Labels"];
    what -> "skills/ux-flow-audit.md" [label="UX dead end/dismiss trap"];
    what -> "skills/ux-flow-audit.md" [label="missing states"];
    what -> "skills/watchos-a11y.md" [label="watchOS VoiceOver / AssistiveTouch / Double Tap"];
    what -> "accessibility-auditor" [label="automated scan" shape=box];
}
```

1. ANY VoiceOver, Dynamic Type (including tvOS Large Text), contrast, touch target, or WCAG issue → `skills/accessibility-diag.md`
2. Assistive Access (cognitive disabilities, iOS 17+) → `skills/accessibility-diag.md`
3. Accessibility Nutrition Labels, or an App Review note about accessibility → `skills/accessibility-diag.md`
4. Reading app: VoiceOver stops at paragraphs/pages, Speak Screen halts → `skills/accessibility-diag.md`
5. UX dead ends, dismiss traps, buried CTAs, missing states → `skills/ux-flow-audit.md`
6. watchOS-specific accessibility (rotor on Digital Crown, AssistiveTouch, Double Tap) → `skills/watchos-a11y.md`
7. Want automated accessibility scan? → `accessibility-auditor` agent or `axiom-audit-accessibility`

## Automated Scanning

**Accessibility audit** → `axiom-audit-accessibility`
- VoiceOver labels and hints
- Dynamic Type violations
- Color contrast failures
- WCAG compliance scanning

**UX flow audit** → `axiom-audit-ux-flow`
- Dead-end views, dismiss traps
- Buried CTAs, missing empty/loading/error states
- Deep link dead ends, accessibility dead ends

## Critical Patterns

#### Image Accessibility

- Use `Image(decorative: "photo")` for purely decorative images — automatically hidden from VoiceOver (equivalent to `accessibilityHidden(true)` but semantically clearer)
- Use `accessibilityInputLabels()` for buttons with complex or changing labels — improves Voice Control accuracy by providing alternative labels
- Respect `accessibilityDifferentiateWithoutColor` environment value — when active, provide non-color cues (icons, patterns, labels) alongside color indicators

## Anti-Rationalization

| Thought | Reality |
|---------|---------|
| "I'll add VoiceOver labels when I'm done building" | Accessibility is foundational, not polish. Retrofitting labels across a finished app takes far longer, and until they're done VoiceOver support can't be declared. |
| "My app doesn't need accessibility" | All apps need accessibility. It isn't an App Store rule, but people who rely on VoiceOver or Larger Text can't use the app without it, and its Accessibility Nutrition Labels show that before they download. |
| "Dynamic Type just needs .scaledFont" | Dynamic Type has 7 common violations. accessibility-diag catches them all. |
| "Color contrast looks fine to me" | Visual assessment is unreliable. WCAG ratios require measurement. accessibility-diag validates. |
| "UX issues are just polish" | UX dead ends cause 1-star reviews. They're defects, not enhancements. |
| "The dismiss gesture handles it" | fullScreenCover has no dismiss gesture. That's the trap. |

## Example Invocations

User: "My button isn't being read by VoiceOver"
→ See `skills/accessibility-diag.md`

User: "How do I support Dynamic Type?"
→ See `skills/accessibility-diag.md`

User: "Check my app for accessibility issues"
→ See `skills/accessibility-diag.md`

User: "Prepare for App Store accessibility review"
→ See `skills/accessibility-diag.md`

User: "Scan my app for accessibility issues automatically"
→ `axiom-audit-accessibility`

User: "How do I support Assistive Access?"
→ See `skills/accessibility-diag.md`

User: "How do I prepare my tvOS app for Large Text?"
→ See `skills/accessibility-diag.md`

User: "VoiceOver reads my screen in the wrong order after the window resizes"
→ See `skills/accessibility-diag.md`

User: "How do I support Button Shapes / the Large Content Viewer in my custom controls?"
→ See `skills/accessibility-diag.md`

User: "VoiceOver stops reading at the end of each page in my book app"
→ See `skills/accessibility-diag.md`

User: "How do I let users restyle subtitles or get generated captions in my video player?"
→ See `skills/accessibility-diag.md`

User: "Check for UX dead ends and dismiss traps"
→ See `skills/ux-flow-audit.md`

User: "My fullScreenCover has no way to dismiss"
→ See `skills/ux-flow-audit.md`

User: "Are there missing empty states in my app?"
→ See `skills/ux-flow-audit.md`

© CharlesWiltgen · MIT · CharlesWiltgen/Axiom

Похожие скиллы

Всё по теме «Мобильная разработка» →
ios-accessibility dadederk Скилл для ИИ-агента, который подсказывает, как делать iOS-приложения доступными: VoiceOver, Dynamic Type, Switch Control и тестирование. CX Codex +1 911установок capacitor-accessibility Cap-go Скилл для ИИ-агента, который разбирает доступность Capacitor-приложений: VoiceOver, TalkBack, Dynamic Type, Switch Control и масштаб шрифта Android. CX Codex +1 1 200установок accessibility affaan-m Проверяет и настраивает доступность интерфейсов по стандарту WCAG 2.2 Level AA для Web, iOS и Android. Пригодится при верстке компонентов, разметке ARIA и адаптации под скринридеры. CX Codex +1 5 100установок accessibility-compliance Seth Hobson Скилл помогает проверять доступность интерфейсов и исправлять проблемы с клавиатурной навигацией, экранными дикторами и формами. Подключайте его при работе с WCAG 2.2. CX Codex 14 596установок accessibility-test-plan Owl-Listener Помогает спланировать тестирование доступности интерфейса с ассистивными технологиями и реальными пользователями. Пригодится перед релизом для покрытия критериев WCAG. CX Codex +1 2 100установок accessibility-audit Owl-Listener Проверяет готовый интерфейс по WCAG и выдаёт проблемы с уровнем серьёзности, влиянием и шагами исправления. CX Codex +1 2 100установок

Из того же набора27

axiom-build Маршрутизирует сбои сборки iOS и macOS, зависания симулятора и ошибки Xcode до разбора кода приложения. CX Codex +1 1 300установок axiom-macos Скилл для macOS-разработки: окна, меню, песочница, распространение, мосты в AppKit и различия SwiftUI на Mac. CX Codex +1 1 300установок axiom-media Скилл-роутер по медиа в Apple-платформах: камера, фото, звук, хаптики, ShazamKit, CarPlay. Подсказывает, какой справочник открыть под конкретную задачу. CX Codex +1 1 300установок axiom-performance Маршрутизирует поиск утечек памяти, зависаний интерфейса и расхода батареи в приложениях под Apple-платформы. Помогает настроить анализ через Instruments и xctrace. CX Codex +1 1 300установок axiom-uikit Маршрутизирует задачи по связке UIKit и SwiftUI, отладке Auto Layout, анимаций, Combine и TextKit. Пригодится при модернизации интерфейсов в iOS. CX Codex +1 1 200установок axiom-security Собирает правила для защиты ключей, шифрования, passkeys, AI-функций и подписи кода. Нужен при разработке защищённых приложений. CX Codex +1 1 200установок axiom-tools Скилл-навигатор по набору Axiom: подсказывает, какой инструмент взять для сборки, логов, символейшена крашей и профилей. Полезен, когда ведёшь iOS/Swift-проект в агенте. CX Codex +1 1 200установок axiom-swift Направляет ИИ-агента при работе с языком Swift и платформенными фичами вроде tvOS или Transferable. Пригодится, когда нейросеть предлагает устаревший код или путается в типах. CX Codex +1 1 200установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой