Upgrade to Pro — share decks privately, control downloads, hide ads and more …

iOS Accessibility

Luis Abreu
December 09, 2015

iOS Accessibility

A new look at Accessibility, giving it a broader definition and rewards, followed by an Overview of the iOS Accessibility Features, and finally Guidelines for Designers and Developers, including “good” and “bad” examples to better understand how it all works in practice.

Luis Abreu

December 09, 2015
Tweet

More Decks by Luis Abreu

Other Decks in Design

Transcript

  1. –2011 WHO World Report on Disability “15 percent (1 Billion)

    of the world’s population (7 Billion) live with some kind of impairment”
  2. –UN Factsheet on Persons with Disabilities “75% of the FTSE

    100 companies in the UK do not meet basic levels of accessibility, thus missing out on more than £96 ($147) million in revenue.”
  3. Accessibility Takeaways • Accessible apps are Inclusive and Robust •

    Impairments vary in Severity, Nature, and Duration • No Complaints != No Problem or Opportunity
  4. Assistive Technologies Any feature or hardware that informs or helps

    users interact with your app in a way that’s most accessible to them.
  5. LED Flash Alerts Button Shapes Audio Descriptions Hold Duration Reachability

    Ignore Repeat Dictionary Darken Colors Closed Captions SDH Reduce White Point 3D Touch Sensitivity Home Button Speed Grayscale Audio Balance Hearing Aid Mode Inverted Colors Button Shapes Larger Text Reduced Motion Tap Assistance Mono Audio Reduced Transparency Bold Text Switch Labels Speak Selection Zoom Switch Control VoiceOver Assistive Touch A. Hardware Speak Screen
  6. Impairments - Technologies Mild Severe Visual Larger Text Astigmatism VoiceOver

    Blindness Hearing Mono Audio Partial Deafness Captions Deafness Motor Assistive Touch RSI Switch Control Tetraplegia Learning Speak Screen Dyslexia Guided Access Autism
  7. VoiceOver Perceive and Interact without seeing the screen or direct

    manipulation • Move through UI elements sequentially and announce them via Speech or Braille • Perform actions using a single button: whole screen/external Very popular for Vision impairments Doesn’t support 3D games, drawing apps Free (saving thousands), Built-in, High-Quality
  8. Switch Control Interact without touching the screen • Move through

    UI elements sequentially, automatically or manually • Point at elements using a gliding cursor (slower, any app) • Select elements and actions via external switches • Activated with head, chin, mouth, eyes, wrist, finger, etc Very popular for Motor impairments Also free, Built-in, High-Quality
  9. Assistive Hardware Hundreds of supported Input/Output Devices • i.e. Braille

    Displays, Hearing Aids, Sip-and-Puff Zero Design or Development effort
  10. Switches Simple $59 / £39 Chin $199 / £132 Sip-and-Puff

    $389 / £258 Sensitive $79 / £52 Motion $699 / £464
  11. ⚠ Always Remember Don’t assume perfect Vision, Hearing, Physical and

    Motor, Learning and Literacy abilities Abilities can be limited by external conditions such as Sunlight, Noise, Multitasking
  12. Color Blindness Use shape, color, and animation, as well as

    audio cues. Brings your app to life, provides resistance to color impairments.
  13. Shape, it works even without color. Color speeds up recognition,

    but clear shapes, and ultimately, text remove ambiguity.
  14. Assisted Interaction Do use custom UI components and gestures to

    speed interactions but consider severely impaired users.
  15. Gmail doesn’t speak my language. What’s that icon on the

    top right? Why are add contact and attach disabled like the back button? # Gmail $ Mail
  16. Citymapper is localized I can see the price in a

    familiar, local currency, and bus stop identifier letters help me avoid mistakes.
  17. Map View Label Header Slider Page View Switch Text View

    Text Field Table View Collection View Tab Bar Segmented Control Activity Indicator Page Control Stepper Alert Date Picker Picker View Image Picker Document Picker Navigation Bar ToolBar Search Bar Contact Picker Button Generic Picker Media Picker Image View Printer Picker
  18. Nothing is free Talking about an idea isn't free Deciding

    wether to implement isn't free QA won't be free Informing users won't be free Testing won't be free Updating support isn't free Maintaining it isn't free Undoing it won't be free adapted from Intercom’s Product Management book
  19. Accessibility Semantics answer: Purpose Am I relevant for Accessibility? Name

    How do I identify myself? Personality What are my characteristics? Value Do I change with user interaction or time? Interaction How exactly do I work? Location Where am I?
  20. not recommended [Image]; [Do Not Disturb; Button]. Do Not Disturb

    Don’t “Image” is unhelpful, redundant
  21. recommended Do Not Disturb; Button. Do Not Disturb Do Not

    Disturb Do Hide unhelpful, redundant elements.
  22. not recommended 9:00 … 9:00 … 9:00 … 9:00 12

    6 5 4 3 2 1 11 10 9 8 7 12 6 5 4 3 2 1 11 10 9 8 7 12 6 5 4 3 2 1 11 10 9 8 7 12 6 5 4 3 2 1 11 10 9 8 7 Don’t State changes aren’t perceptible
  23. 12 6 5 4 3 2 1 11 10 9

    8 7 12 6 5 4 3 2 1 11 10 9 8 7 12 6 5 4 3 2 1 11 10 9 8 7 12 6 5 4 3 2 1 11 10 9 8 7 recommended 9:00 … 9:08 … 9:30 … 9:41 Do Value changes with time
  24. recommended Reorder Lisbon; Button, Draggable; Double tap and hold, wait

    for the sound, then drag to rearrange. Lisbon San Francisco Do Provides a helpful interaction hint
  25. not recommended Incorrect size and position. Lisbon San Francisco Don’t

    Confusing, which element am I focused on again?
  26. Advanced Accessibility API func accessibilityIncrement / Decrement() (with .Adjustable Trait)

    func accessibilityActivate() -> Bool func accessibilityScroll(_ direction: UIAccessibilityScrollDirection) -> Bool func accessibilityPerformEscape() -> Bool func accessibilityPerformMagicTap() -> Bool var accessibilityActivationPoint: CGPoint var accessibilityElementsHidden: Bool var accessibilityLanguage: String? var accessibilityPath: UIBezierPath? var accessibilityViewIsModal: Bool var shouldGroupAccessibilityChildren: Bool var accessibilityNavigationStyle: UIAccessibilityNavigationStyle var accessibilityCustomActions: [UIAccessibilityCustomAction]? enum UIAccessibilityZoomType: Int struct UIAccessibilityNotifications for Accommodations, Announcement status and Highlight Control struct UIAccessibilitySpeechAttributePunctuation(NSNumber)/Language(NSString)/Pitch(NSNumber) for attr. strings
  27. Accessibility • Shares principles with UX, not a separate effort.

    • More than just severe impairments, sunlight can blind you. • Few accessible apps, make a difference, or business.
  28. Low Effort Accessibility is built-in and robust • Accessible UI

    Elements for display, interaction, navigation • Simple APIs for Custom Accessible UI Components • Free Assistive Technologies • Free Assistive Hardware support
  29. High Reward Easier Testing, Multi-Language/Device/Orientation/Tasking • Shared benefits from using

    Dynamic Text, Auto-Layout, Built-in Components Wider, happier userbase • App works regardless of disability, or situation Radically improve people’s lives by giving them independence • Communication • Entertainment • Business
  30. Guidelines & Examples Design • Perceivable, Operable, Understandable, and Robust

    Development • Relevance, Name, Personality, Value, Interaction, and Location