Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Ios Accessibility

ASecurity

Implement or audit accessibility for SwiftUI, UIKit, and AppKit, including VoiceOver, Dynamic Type, focus, actions, traversal, contrast, motion preferences, keyboard access, and accessibility testing. Use when accessibility behavior or compliance evidence is in scope.

3 stars
0 votes
0 copies
0 views
Added 9/28/2026
developmentswifttestingapidocumentation

Works with

cliapi

Security Analysis

A100/100

Scanned 9/28/2026

Install to Claude Code

$npx -y skills add thiennc-tesoglobal/ios-skills --skill ios-accessibility --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ios Accessibility?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Ios Accessibility
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thiennc-tesoglobal-ios-accessibility/badge)](https://www.skillsdirectory.com/skills/thiennc-tesoglobal-ios-accessibility)

More formats (shields.io, HTML) on the badges page.

Files
SKILL.md
---
name: ios-accessibility
description: "Implement or audit accessibility for SwiftUI, UIKit, and AppKit, including VoiceOver, Dynamic Type, focus, actions, traversal, contrast, motion preferences, keyboard access, and accessibility testing. Use when accessibility behavior or compliance evidence is in scope."
---

# Apple Platform Accessibility

Make essential content and actions perceivable, operable, understandable, and testable across supported assistive technologies.

## Contents

- [Scope and Compatibility](#scope-and-compatibility)
- [Audit Workflow](#audit-workflow)
- [Semantic Rules](#semantic-rules)
- [Layout and Preferences](#layout-and-preferences)
- [Verification](#verification)
- [Common Mistakes](#common-mistakes)
- [Review Checklist](#review-checklist)
- [References](#references)

## Scope and Compatibility

This skill owns semantic labels/values/traits, grouping and traversal, custom actions, focus, Dynamic Type, contrast, motion/transparency preferences, Voice Control, keyboard access, and accessibility verification. Route visual layout implementation to the relevant UI skill and App Store declaration policy to `app-store-review` when submission readiness is the main request.

Inspect deployment target, platform, UI framework, and supported device classes before selecting APIs. Preserve existing interaction behavior unless remediation requires a change, and verify versioned APIs in SDK headers or primary Apple documentation.

## Audit Workflow

1. Identify the screen's essential information, primary actions, state changes, errors, and time-sensitive content.
2. Inspect semantic output rather than inferring accessibility from visual appearance.
3. Test navigation order, labels, values, traits, actions, focus, text scaling, contrast, Reduce Motion, Reduce Transparency, and keyboard/Voice Control paths that apply.
4. Fix the narrowest semantic or layout boundary while preserving ordinary interaction.
5. Re-run automated checks and manually exercise the affected assistive-technology path.

Read [Accessibility Patterns](references/a11y-patterns.md) for SwiftUI/UIKit/AppKit recipes, focus management, rotors, and XCTest examples.

## Semantic Rules

- Prefer native controls because they provide semantics and interaction behavior together.
- Give every essential control an understandable accessible name; avoid labels that merely repeat the control type.
- Expose changing state through value or traits, not only color or animation.
- Combine children only when the combined element remains understandable and actionable.
- Hide decorative content, but never hide information needed to understand state or complete a task.
- Add named accessibility actions when a gesture or context menu is otherwise undiscoverable.
- Announce important asynchronous outcomes without flooding the user with routine updates.
- Keep focus order aligned with reading and task order; restore focus after modal or destructive transitions when needed.

## Layout and Preferences

Support accessibility text sizes without clipping essential content or forcing a fixed horizontal layout. Let controls grow, wrap, or change axis where necessary. Minimum target size is a usability floor, not a substitute for spacing and clear labels.

Respect system preferences including Reduce Motion, Reduce Transparency, Differentiate Without Color, Increased Contrast, and Button Shapes when the UI depends on those channels. Route animation alternatives to `swiftui-animation`, ordinary container construction to `swiftui-layout-components`, and cross-size clipping or reflow fixes to `swiftui-responsive-layout`.

Media work should read [Media Accessibility](references/media-accessibility.md) for captions, audio descriptions, and playback controls.

## Verification

Automated accessibility audits and identifier-based UI tests catch regressions but do not prove usability. Manually test the core task with VoiceOver and the relevant input methods. Use Accessibility Inspector to inspect element hierarchy, names, values, actions, and contrast.

Do not claim App Store accessibility support from implementation alone. Read [Accessibility Nutrition Labels](references/nutrition-labels.md), gather test evidence, and scope declarations to the platforms and features actually verified.

## Common Mistakes

- Using icon-only buttons without an explicit `.accessibilityLabel`.
- Implementing custom tap or swipe gestures without an equivalent `.accessibilityAction`.
- Hardcoding fixed frame heights or widths that truncate text when Dynamic Type is scaled.
- Conveying essential status or validation solely through color without text or symbol indicators.
- Setting misleading accessibility traits (e.g. marking a non-interactive view as a `.isButton`).

## Review Checklist

- [ ] Essential controls have clear labels, values, traits, and hints where needed
- [ ] Meaning is not conveyed by color, shape, position, or motion alone
- [ ] Reading and focus order follows the task
- [ ] Custom gestures have accessible alternatives
- [ ] Dynamic Type works at accessibility sizes without losing essential content
- [ ] Motion/transparency/contrast preferences have appropriate behavior
- [ ] Errors and important completion states are exposed and announced appropriately
- [ ] Keyboard, Voice Control, Switch Control, or Full Keyboard Access paths are tested when in scope
- [ ] Automated audits pass and the primary flow is manually verified
- [ ] Store declarations are backed by current evidence

## References

- [Implementation, focus, rotors, and testing patterns](references/a11y-patterns.md)
- [Media accessibility](references/media-accessibility.md)
- [App Store Accessibility Nutrition Labels](references/nutrition-labels.md)

Attribution

thiennc-tesoglobalthiennc-tesoglobal
View sourceMore from thiennc-tesoglobal →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

284972 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2222 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

10311 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →