Skip to content

Instantly share code, notes, and snippets.

@JoelJWest
Created August 17, 2016 05:50
Show Gist options
  • Save JoelJWest/9f6811b0663466ae1760aac53232437a to your computer and use it in GitHub Desktop.
Save JoelJWest/9f6811b0663466ae1760aac53232437a to your computer and use it in GitHub Desktop.

VoiceOver Implementation Checklist

  • Explore existing VoiceOver functionality before doing anything
  • Review Android implementation
  • Add accessibilityIdentifier
  • Add accessibilityLabel
  • Change accessibilityLabel if the UI element state changes
  • Add accessibilityHint
  • Enclose icon buttons and associated labels in a container view
  • Set isAccessibilityElement to NO for UI elements which should not be announced
  • Use isAccessibilityElement for container views
  • If there is a UILabel and then a text view associated with it, set the text view's accessibilityLabel equal to the text of the label. Then, set isAccessibilityElement = NO on the label.
  • Modify swipe order if needed using UIAccessibilityContainer methods
  • UITableView - Add UIAccessibilityTraitButton to cells
  • UITableView - Add UIAccessibilityTraitSelected to cells with a checkmark accessoryType
  • UITableView - Cells with UISwitch should announce the switch state.
  • UITableView - Determine if section headers should be an accessibilityElement. In some cases the section header should not be announced.
  • UINavigationController title - To set custom VoiceOver text, set the view controller's navigationItem.accessibilityLabel
  • UISegmentedControl - To set custom VoiceOver text for the segments, set the NSString accessibilityLabel for each segment title.
  • UIActivityIndicatorView - Set hidesWhenStopped = YES to prevent VoiceOver from announcing the activity indicator when it is stopped
  • Change focus to the back button when drilling down
  • Post UIAccessibilityLayoutChangedNotification for UI updates
  • Post UIAccessibilityScreenChangedNotification on screen transitions
  • Unit test accessibilityIdentifier
  • Unit test accessibilityLabel
  • Unit test accessibilityLabel changes
  • Unit test accessibilityHint
  • Unit test isAccessibilityElement
  • Unit test accessibilityTraits
  • UI test - use accessibilityIdentifier where possible. Remember UIBarButtonItem does not implement accessibilityIdentifier properly. Do not use for finding this element.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment