iOS Accessibility Agent Skill

Скилл по доступности iOS: VoiceOver, Dynamic Type, Voice Control, Switch Control и ручное тестирование в UIKit и SwiftUI

  • 177 ★ репозитория
  • Последний коммит
  • MIT
Скилл

Минимальный доступ

Почему такой уровень

  • Скилл состоит из текстовых справочников и сам ничего не запускает; агент по ним правит подписи и вид экранов в вашем проекте.
Все причины и проверки

dadederk/ios-accessibility-agent-skill

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/ios-accessibility-agent-skill

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Минимальный доступИнструмент ничего не запускает и не ходит в сеть.

  • Скилл состоит из текстовых справочников и сам ничего не запускает; агент по ним правит подписи и вид экранов в вашем проекте.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

iOS Accessibility Agent Skill ведет агента по доступности приложений для iPhone и iPad. Перед советом скилл выясняет, на чем написан проект (UIKit, SwiftUI или смесь) и какова минимальная версия iOS, потому что часть API есть только в новых системах. Решения агент выдает по убыванию уверенности, с плюсами и минусами каждого. Справочники разложены по темам: VoiceOver и Dynamic Type отдельно для UIKit и SwiftUI, Voice Control, Switch Control, Full Keyboard Access, ручное и автоматическое тестирование, общие практики и словарь терминов. В скилле собраны антипаттерны: слово «button» в подписи кнопки, фиксированные размеры шрифта, жестко заданные цвета текста, скрытие интерактивных элементов от VoiceOver, ставка на один `onTapGesture`. Рядом идут нормы вроде области нажатия не меньше 44×44 пунктов.

Для кого. iOS-разработчикам на UIKit и SwiftUI, которые доводят приложение до работы с VoiceOver, Dynamic Type и Switch Control.

Подходит, если

  • VoiceOver дважды произносит «button» на кнопке, потому что слово трейта вписано в подпись, и агент переписывает подписи.
  • Текст не растет при увеличении шрифта, и агент заменяет фиксированные размеры на текстовые стили.
  • Перед релизом готовится план ручной проверки с VoiceOver, Voice Control и Full Keyboard Access наряду с автотестами.
  • В приложении общая дизайн-система, и улучшение вносится в компонент, чтобы оно дошло до всех экранов.

Не подходит, если

  • Приложение веб, Android или десктоп: скилл разбирает только iOS.
  • Нужно юридическое заключение или сертификат соответствия: скилл не заменяет аудит и проверку с живыми пользователями.
  • Вопрос про SwiftUI в целом, без доступности: для него лучше подходят скиллы по самому фреймворку.

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

Используй скилл ios-accessibility и проверь текущий экран на поддержку VoiceOver: подписи, трейты, порядок обхода.

Ограничения

Автор называет скилл незавершенной работой, проверенной не исчерпывающе: решения агента нужно проверять на устройстве с VoiceOver. Единственно верного исправления у проблем доступности обычно нет, поэтому итог остается за разработчиком. Часть API требует свежей iOS, например `AccessibilityFocusState` и `.accessibilityRotor` с iOS 15, `.accessibilityRepresentation` с iOS 16, поэтому на старых целевых версиях совет меняется. Последний коммит репозитория датирован мартом 2026 года.

Как отключить. Удалите скилл тем же CLI, которым ставили, или вручную удалите каталог `ios-accessibility` из каталога скиллов агента.

Частые вопросы

Как вызвать скилл на конкретном экране?

Назовите его в запросе: «Используй скилл ios-accessibility и проверь текущий экран на поддержку VoiceOver». Агент спросит про UIKit или SwiftUI и версию iOS, если из проекта это не видно.

Хватит ли автоматических проверок?

Нет. Скилл прямо говорит, что автоматика ограничена Accessibility Inspector и UI-тестами, а ручная проверка с VoiceOver обязательна. Агент выдает ее рядом с каждым изменением кода.

Какие смежные скиллы по доступности упоминает автор?

В README указан swift-accessibility-skill Pasquale Vittoriosi, вышедший раньше, как дополнение с более сильным покрытием некоторых тем. Скиллы развивались параллельно.

Что скилл говорит о подписи кнопки?

Подпись называет действие, например «Закрыть»; слово «кнопка» VoiceOver добавляет сам, если у элемента трейт кнопки.

Как скилл советует поступать с панелями навигации и вкладками при больших шрифтах?

Элементы панелей навигации, инструментов и вкладок не масштабируют вместе с Dynamic Type. Для них скилл рекомендует Large Content Viewer, доступный с iOS 13.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

Скиллы для разработки под Apple: справочники по SwiftUI, UIKit и Liquid Glass, гайды по Swift 6 и маршрутизатор для задач iOS 26

СкиллМинимальный доступ359Звезды репозитория

Скилл добавляет агенту официальные заметки Apple по SwiftUI, которые установщик достает из вашего Xcode

СкиллРасширенный доступ126Звезды репозитория

Скилл со скриптами для сборки iOS-приложений и управления симулятором через дерево доступности, с экономным выводом для агента

СкиллРасширенный доступ1,3 тыс.Звезды репозитория

Скиллы с материалами из Xcode помогают агенту проверять SwiftUI, обновлять тесты и учитывать настройки защиты

СкиллРасширенный доступ366Звезды репозитория

Шесть скиллов по скорости iOS-приложений: запуск, профилирование, SwiftUI, конкурентность Swift и ощущаемая скорость.

СкиллМинимальный доступ121Звезды репозитория

Два скилла для SwiftUI: нативный Liquid Glass для iOS 26 и адаптивная верстка под складной iPhone Duo без отдельной версии

СкиллМинимальный доступ468Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйЗвезды репозиторияГлавное отличие
iOS Accessibility Agent Skill (эта карточка)нет177
Accessibility Agentsнет445требования WCAG 2.2 AA в виде скиллов для Claude Code и Copilot; здесь специфика iOS: VoiceOver, Dynamic Type, UIKit и SwiftUI
SwiftUI Proнет6 546общий разбор кода SwiftUI; здесь только доступность на двух фреймворках

Коротко о README

README открывается двумя оговорками: скилл остается незавершенной работой, а доступность не детерминирована и требует живой проверки. Дальше идут установка через skills.sh или вручную, ссылки на каталоги скиллов в Codex, Claude Code и Cursor, границы применения и просьба присылать обратную связь с промптом и примером вывода.

Бейдж для README

Исходный SKILL.md

---
name: ios-accessibility
description: 'Expert guidance on iOS accessibility best practices, patterns, and implementation. Use when developers mention: (1) iOS accessibility, VoiceOver, Dynamic Type, or assistive technologies, (2) accessibility labels, traits, hints, or values, (3) automated accessibility testing, auditing, or manual testing, (4) Switch Control, Voice Control, or Full Keyboard Access, (5) inclusive design or accessibility culture, (6) making apps work for users with disabilities.'
---

# iOS Accessibility

## Overview

This skill provides expert guidance on iOS accessibility, covering VoiceOver, Dynamic Type, assistive technologies, inclusive design practices, and both UIKit and SwiftUI implementations. Use this skill to help developers build apps that work for everyone.

## The Approach

- **Shift-left** — Accessibility is part of the process. It needs to be considered even in prototypes or MVPs.
- **User-centric** — Accessibility is about people. Checklists help, but the goal is not checklist compliance. The goal is to offer a great experience for users with disabilities.
- **Progress over perfection** — Anytime is a good time to start. Focus on iterative and incremental improvements as you go. It goes a long way.
- **Test as you go** — Manual testing is part of development.

## Agent Behavior Contract

1. **Accessibility is non-deterministic.** Propose potential solutions in order of confidence and present with clear pros, cons, and trade-offs.
2. Before proposing fixes, identify the platform (UIKit vs SwiftUI) and the assistive technology, accessibility feature, or design consideration in context.
3. Do not recommend accessibility fixes without considering the user experience impact.
4. Prefer manual testing guidance alongside code changes, together with any automated or semi-automated solutions.
5. Cross-reference multiple assistive technologies when relevant (VoiceOver, Voice Control, Switch Control, Full Keyboard Access).

### Anti-Patterns to Avoid

- **Do not add trait names to labels** — Say "Close", not "Close button" (VoiceOver adds "button" automatically, when using the button trait)
- **Do not use `.accessibilityHidden(true)` on interactive elements** — Users won't be able to access them
- **Do not use fixed font sizes** — Always use text styles for Dynamic Type support
- **Do not use hardcoded colors for text** — Use semantic colors (`.label`, `.secondaryLabel`) for contrast and Dark Mode
- **Do not group UIKit elements without a clear combined label** — If `isAccessibilityElement = true`, set `accessibilityLabel` (and value/traits as needed).
- **Do not group SwiftUI elements without a clear combined label** — If `.accessibilityElement(children: .ignore)` is used, provide label/value/traits manually.
- **Do not add hints unless needed** — It should be clear what a component expresses, and does, by its label/value/traits. Only configure for adding extra clarity or context.
- **Do not rely on `onTapGesture` alone** — Prefer semantic controls like `Button`. If gesture handling is unavoidable, add button traits and clear labels.
- **Do not scale chrome controls with Dynamic Type** — For navigation bars, toolbars, and tab bars, prefer Large Content Viewer (iOS 13+) using [`.accessibilityShowsLargeContentViewer`](https://developer.apple.com/documentation/swiftui/view/accessibilityshowslargecontentviewer(content:)) / [`UILargeContentViewerItem`](https://developer.apple.com/documentation/uikit/uilargecontentvieweritem).

### General Guidance

**Prefer native components:** Whenever possible, use Apple's native components and customize them to your needs instead of building custom components from scratch.

**Design system first:** Whenever the project uses a design system of its own (colors, text styles, component catalog), propose changes in the design system itself so the improvement snowballs everywhere in the app using an improved component.

**Platform parity:** The same accessibility principles apply to both UIKit and SwiftUI, but APIs and implementation details differ.

## Project Settings Intake (Evaluate Before Advising)

Before providing accessibility guidance, determine:

Сообщить о проблеме