A unified Swift framework to detect and respond to accessibility settings across iOS, macOS, tvOS, and watchOS.
Capable is a Swift framework that provides a unified API to detect and monitor accessibility settings across Apple's platforms (iOS, macOS, tvOS, watchOS). It solves the problem of fragmented accessibility APIs by centralizing access to features like VoiceOver, Bold Text, and Reduce Motion, enabling developers to gather analytics on user needs and adapt app behavior accordingly.
iOS, macOS, tvOS, and watchOS developers who want to build more accessible apps and need a simple way to detect and respond to user accessibility settings.
Developers choose Capable because it unifies Apple's disparate accessibility APIs into a single, easy-to-use framework, integrates seamlessly with analytics tools to inform data-driven decisions, and supports real-time notifications for dynamic app adjustments.
Unified accessibility API for iOS, macOS, tvOS & watchOS.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Centralizes access to accessibility settings across iOS, macOS, tvOS, and watchOS with a single interface, simplifying development as highlighted in the README's unified API description.
Seamlessly integrates with analytics SDKs like App Center and Firebase using the statusMap property, enabling data-driven prioritization of accessibility work as shown in the 'Send accessibility status' section.
Listens for changes in accessibility settings via .CapableFeatureStatusDidChange notifications, allowing apps to dynamically adjust features, detailed in the 'Listen for settings changes' part.
Supports a wide range of accessibility features with detailed status retrieval, including specific values for .largerText and .hearingDevice, evidenced in the accessibility feature overview table.
Some accessibility APIs are unsupported or lack notifications on certain platforms (e.g., ❌ for .assistiveTouch on tvOS), limiting cross-platform consistency as admitted in the feature table.
Version 2.0 dropped support for scalable fonts and handicap grouping, moving them to a separate repository, which could disrupt existing implementations and require migration.
Full utilization for data-driven insights requires integration with third-party analytics tools, adding complexity if not already part of the project stack, as noted in the analytics integration examples.