Guidelines for creating accessible iOS apps.
- Accessibility Domains
- Accessibility Guidelines
- Accessibility Resources
- Accessibility Software for iOS
-
Using Animation - Use of animation should be reduced or disabled altogether where the
isReduceMotionEnabled
flag is set. Overuse of animation can induce headaches in individuals who are particularly sensitive to motion such as those who suffer from a vestibular disorder.Affects: Visual
References:
- Reduce screen motion on your iPhone, iPad, or iPod touch
- Understanding Success Criterion 2.3.3: Animation from Interactions
- Buttons with Images As with
UIImageView
it is important to ensure that theaccessibilityLabel
property is set to a meaningful string otherwise the image's file name will be read out which can be particularly unhelpful, and moreover confusing, to visually-impaired users attempting to discern the content of the image. If theUIButton
is in a XIB or storyboard then Xiblint can be used to detectUIButton
elements where an image has been set and raise a warning if a value for theaccessibilityLabel
property has not been specified.
-
Consistent Placement of Elements Consistent placement of elements onscreen reduces cognitive load by helping users predict where to find information in the interface. Inconsistent placement can result in distraction or even confusion when the user finds that an element is not where expected it to be.
Affects: Cognitive
-
Images Containing Text - Images containing text should be avoiding as the text in these images cannot be read out by VoiceOver nor will it respect the user's text size preference.
Affects: Visual
-
Images Conveying Meaning - Images should not be used as the sole means of conveying information. Solution: Ensure that an accessibility label is set for all images, otherwise VoiceOver will read out the name of the image file.
Affects: Visual
Example:
let wishlistIconImage = UIImage(named: "wishlist-icon")
let wishlistIcon = UIImageView(image: wishlistIconImage)
wishlistIcon.isAccessibilityEnabled = true
wishlistIcon.accessibilityLabel = "This product is currently in your wishlist"
-
Images Without Accessibility Labels - It is particularly important to ensure that
UIImageView
instances have theaccessibilityLabel
property set to a meaningful string otherwise the image's file name will be read out which can be particularly unhelpful, and moreover confusing, to visually-impaired users attempting to discern the content of the image. If theUIImageView
is in a XIB or storyboard then Xiblint can be used to raise a warning if theaccessibilityLabel
property has not been set.Affects: Visual
-
Touch Area for Interactive Elements - The iOS Human Interface Guidelines recommend a minimum tappable area of 44pt x 44pt for all controls. This is because for users with motor or visual impairments accuracy can be more difficult. Accuracy can also be a difficulty for younger users.
-
Hidden or Inactive Elements - These should be hidden from assistive technologies
Sources:
-
Screen Updates - Whenever screen content is updated, the user should be notified via VoiceOver by posting an accessibility notification using
UIAccessibilityPostNotification
as users with a visual impairments may not be aware that the layout has refreshed. This may result in confusion if page elements have changed location or disappeared altogether without warning. Via theUIAccessibility.Notification
argument it is possible to indicate whether content was updated as the result of a page scroll or change in layout.Affects: Visual
-
Blur & Transparency - Use of blur and transparency should be reduced or disabled altogether where the
isReduceTransparencyEnabled
flag is set. For users with low vision conditions, the use of blur and transparency can have a negative impact on the legibility of text and in some cases induce eye strain. Solution: Consider using a faded color in place instead.Affects: Visual
-
Capitalized Text - Capitalized text should be avoided where possible as VoiceOver may occasionally read out a word letter-by-letter when capitalized e.g. A.D.D. (as this stands for Attention deficit hyperactivity disorder) where the word Add may have been intended. Text in all capital letters has been found to be harder to read not only for those with reading difficulties but for the majority of people.
Affects: Visual
Sources:
Solution: Consider using a larger point size to give text prominence over capitalization.
-
Contrast
Affects: Visual
-
Use of Color - Color should not be used as the sole means of conveying information as users with color blindness may not be able to perceive the difference in color.
Affects: Visual
- Accessibility on iOS - Resources and documentation for developers seeking to develop inclusive apps that are compatible with assistive technologies on iOS.
Software enabling iOS developers to implement assistive technologies in their apps.
- Capable - Keep track of accessibility settings and enable users with disabilities to use your app.
- FlexibleRowHeightGridLayout - A UICollectionView grid layout designed to support Dynamic Type by allowing the height of each row to size to fit content.
- TypographyKit - Consistent & accessible visual styling on iOS with support for Dynamic Type.
- Accessibility Inspector - One of the developer tools bundled with Xcode that can be used for inspecting the accessibility properties of the elements which make up your app's UI.
- Xiblint - A tool by Lyft for linting storyboard and XIB files. Able to validate that UIImageViews and UIButtons with images have an accessibility label set.