https://github.com/cvs-health/ios-swiftui-accessibility-techniques
Demonstrates iOS SwiftUI Accessibility programming techniques using live good and bad examples that can be tested with VoiceOver and other AT. Includes documentation for developers explaining how to code accessible patterns for iOS.
https://github.com/cvs-health/ios-swiftui-accessibility-techniques
a11y accessibility dark-mode ios ios-accessibility ipad iphone mobile swiftui voiceover wcag
Last synced: 11 months ago
JSON representation
Demonstrates iOS SwiftUI Accessibility programming techniques using live good and bad examples that can be tested with VoiceOver and other AT. Includes documentation for developers explaining how to code accessible patterns for iOS.
- Host: GitHub
- URL: https://github.com/cvs-health/ios-swiftui-accessibility-techniques
- Owner: cvs-health
- License: apache-2.0
- Created: 2023-12-01T20:58:08.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-05-30T21:14:27.000Z (about 1 year ago)
- Last Synced: 2025-06-05T14:07:34.081Z (about 1 year ago)
- Topics: a11y, accessibility, dark-mode, ios, ios-accessibility, ipad, iphone, mobile, swiftui, voiceover, wcag
- Language: Swift
- Homepage:
- Size: 2.96 MB
- Stars: 258
- Watchers: 12
- Forks: 27
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# iOS SwiftUI Accessibility Techniques
iOS SwiftUI sample code demonstrating a variety of good and bad accessibility techniques. Learn how to apply WCAG to iOS SwiftUI apps. Good and Bad examples can be tested with VoiceOver and other iOS accessibility features.
[Download iOS app from the AppStore.](https://apps.apple.com/app/accessibility-techniques/id6474141089)
Read the blog post, [Announcing the iOS SwiftUI Accessibility Techniques Open Source Project](https://www.linkedin.com/pulse/announcing-ios-swiftui-accessibility-techniques-open-source-adam-ldahc/).
Review project source code to learn how to apply the accessibility techniques in working SwiftUI code examples.
## Accessibility Techniques Documentation
- [x] = Completed
- [x] [Accessibility Actions](iOSswiftUIa11yTechniques/Documentation/AccessibilityActions.md)
- [x] [Accessibility Detection](iOSswiftUIa11yTechniques/Documentation/AccessibilityDetection.md)
- [x] [Accessibility Hidden](iOSswiftUIa11yTechniques/Documentation/AccessibilityHidden.md)
- [x] [Accessibility Input Labels](iOSswiftUIa11yTechniques/Documentation/AccessibilityInputLabels.md)
- [x] [Accessibility Notifications](iOSswiftUIa11yTechniques/Documentation/AccessibilityNotifications.md)
- [x] [Accessibility Representation](iOSswiftUIa11yTechniques/Documentation/AccessibilityRepresentation.md)
- [x] [Accessibility Responds To User Interaction](iOSswiftUIa11yTechniques/Documentation/AccessibilityRespondsToUserInteraction.md)
- [x] [Accordions](iOSswiftUIa11yTechniques/Documentation/Accordions.md)
- [x] [Adjustable Action](iOSswiftUIa11yTechniques/Documentation/AdjustableAction.md)
- [x] [Alerts](iOSswiftUIa11yTechniques/Documentation/Alerts.md)
- [x] [Assistive Access](iOSswiftUIa11yTechniques/Documentation/AssistiveAccess.md)
- [x] [Attributed Strings](iOSswiftUIa11yTechniques/Documentation/AttributedStrings.md)
- [x] [Buttons](iOSswiftUIa11yTechniques/Documentation/Buttons.md)
- [x] [Cards](iOSswiftUIa11yTechniques/Documentation/Cards.md)
- [x] [Charts](iOSswiftUIa11yTechniques/Documentation/Charts.md)
- [x] [Checkboxes](iOSswiftUIa11yTechniques/Documentation/Checkboxes.md)
- [x] [Combining Focus](iOSswiftUIa11yTechniques/Documentation/CombiningFocus.md)
- [x] [Confirmation Dialogs](iOSswiftUIa11yTechniques/Documentation/ConfirmationDialogs.md)
- [x] [Dark Mode](iOSswiftUIa11yTechniques/Documentation/DarkMode.md)
- [x] [Data Tables](iOSswiftUIa11yTechniques/Documentation/DataTables.md)
- [x] [Date & Time Pickers](iOSswiftUIa11yTechniques/Documentation/DateTimePickers.md)
- [x] [Decorative Images](iOSswiftUIa11yTechniques/Documentation/DecorativeImages.md)
- [x] [Device Orientation](iOSswiftUIa11yTechniques/Documentation/DeviceOrientation.md)
- [x] [Dynamic Type](iOSswiftUIa11yTechniques/Documentation/DynamicType.md)
- [x] [Error Validation](iOSswiftUIa11yTechniques/Documentation/ErrorValidation.md)
- [x] [Escape Action](iOSswiftUIa11yTechniques/Documentation/EscapeAction.md)
- [x] [Focus Management](iOSswiftUIa11yTechniques/Documentation/FocusManagement.md)
- [x] [Functional Images](iOSswiftUIa11yTechniques/Documentation/FunctionalImages.md)
- [x] [Grouping Controls](iOSswiftUIa11yTechniques/Documentation/GroupingControls.md)
- [x] [Headings](iOSswiftUIa11yTechniques/Documentation/Headings.md)
- [x] [Horizontal Scroll Views](iOSswiftUIa11yTechniques/Documentation/HorizontalScrollViews.md)
- [x] [Images](iOSswiftUIa11yTechniques/Documentation/Images.md)
- [x] [Increase Contrast](iOSswiftUIa11yTechniques/Documentation/IncreaseContrast.md)
- [x] [Informative Images](iOSswiftUIa11yTechniques/Documentation/InformativeImages.md)
- [x] [Input Instructions](iOSswiftUIa11yTechniques/Documentation/InputInstructions.md)
- [x] [Language](iOSswiftUIa11yTechniques/Documentation/Language.md)
- [x] [Large Content Viewer](iOSswiftUIa11yTechniques/Documentation/LargeContentViewer.md)
- [x] [Links](iOSswiftUIa11yTechniques/Documentation/Links.md)
- [x] [Lists](iOSswiftUIa11yTechniques/Documentation/Lists.md)
- [x] [Magic Tap](iOSswiftUIa11yTechniques/Documentation/MagicTap.md)
- [x] [Meaningful Accessible Names](iOSswiftUIa11yTechniques/Documentation/MeaningfulAccessibleNames.md)
- [x] [Menus](iOSswiftUIa11yTechniques/Documentation/Menus.md)
- [x] [Navigation](iOSswiftUIa11yTechniques/Documentation/Navigation.md)
- [x] [Page Titles](iOSswiftUIa11yTechniques/Documentation/PageTitles.md)
- [x] [Pickers](iOSswiftUIa11yTechniques/Documentation/Pickers.md)
- [x] [Popovers](iOSswiftUIa11yTechniques/Documentation/Popovers.md)
- [x] [Progress Indicators](iOSswiftUIa11yTechniques/Documentation/ProgressIndicators.md)
- [x] [Radio Buttons](iOSswiftUIa11yTechniques/Documentation/RadioButtons.md)
- [x] [Reading Order](iOSswiftUIa11yTechniques/Documentation/ReadingOrder.md)
- [x] [Reduce Motion](iOSswiftUIa11yTechniques/Documentation/ReduceMotion.md)
- [x] [Reduce Transparency](iOSswiftUIa11yTechniques/Documentation/ReduceTransparency.md)
- [x] Responsive Layouts
- [x] [Rotor](iOSswiftUIa11yTechniques/Documentation/Rotor.md)
- [x] [Scroll Views](iOSswiftUIa11yTechniques/Documentation/ScrollViews.md)
- [x] [Search Suggestions](iOSswiftUIa11yTechniques/Documentation/SearchSuggestions.md)
- [x] [Segmented Controls](iOSswiftUIa11yTechniques/Documentation/SegmentedControls.md)
- [x] [Sheets](iOSswiftUIa11yTechniques/Documentation/Sheets.md)
- [ ] Siri Shortcuts
- [x] [Sliders](iOSswiftUIa11yTechniques/Documentation/Sliders.md)
- [x] [Smart Invert](iOSswiftUIa11yTechniques/Documentation/SmartInvert.md)
- [x] [Steppers](iOSswiftUIa11yTechniques/Documentation/Steppers.md)
- [x] [Tabs](iOSswiftUIa11yTechniques/Documentation/Tabs.md)
- [x] [Text Fields](iOSswiftUIa11yTechniques/Documentation/TextFields.md)
- [x] [Toggles](iOSswiftUIa11yTechniques/Documentation/Toggles.md)
- [x] [Touch Target Size](iOSswiftUIa11yTechniques/Documentation/TouchTargetSize.md)
- [x] [Videos](iOSswiftUIa11yTechniques/Documentation/Videos.md)
- [x] [VoiceOver Pronunciation](iOSswiftUIa11yTechniques/Documentation/VoiceOverPronunciation.md)
## Contributor Guide
1. Before contributing to this CVS Health sponsored project, you will need to sign the associated [Contributor License Agreement](https://forms.office.com/r/tvFjdsisT2).
2. See [contributing](CONTRIBUTING.md) page.
## License
iOS SwiftUI Accessibility Techniques is licensed under under the Apache License, Version 2.0. See LICENSE file for more information.
Copyright 2023-2025 CVS Health and/or one of its affiliates
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
[http://www.apache.org/licenses/LICENSE-2.0]()
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.