Skip to content

rwbutler/iOSAccessibilityGuidelines

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iOS Accessibility Guidelines

Guidelines for creating accessible iOS apps.

Accessibility Domains

Auditory

Cognitive

Physical

Speech

Visual

Accessibility Guidelines

Animation

  • 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:

Buttons

  • Buttons with Images As with UIImageView it is important to ensure that the accessibilityLabel 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 the UIButton is in a XIB or storyboard then Xiblint can be used to detect UIButton elements where an image has been set and raise a warning if a value for the accessibilityLabel property has not been specified.

Consistency

  • 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

  • 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 the accessibilityLabel 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 the UIImageView is in a XIB or storyboard then Xiblint can be used to raise a warning if the accessibilityLabel property has not been set.

    Affects: Visual

Interaction

  • 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

    Affects: Physical, Visual

    Sources:

Navigation

  • 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 the UIAccessibility.Notification argument it is possible to indicate whether content was updated as the result of a page scroll or change in layout.

    Affects: Visual

Text & Color

  • 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 Resources

  • Accessibility on iOS - Resources and documentation for developers seeking to develop inclusive apps that are compatible with assistive technologies on iOS.

Accessibility Software for iOS

Software enabling iOS developers to implement assistive technologies in their apps.

Libraries

  • 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.

Tools

  • 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.

About

Guidelines for creating accessible iOS apps.

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published