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

Accessibility: When You See It...

79fe3c13c618a61329298bdd6a86ec42?s=47 Bas Broek
November 02, 2017

Accessibility: When You See It...

79fe3c13c618a61329298bdd6a86ec42?s=128

Bas Broek

November 02, 2017
Tweet

Transcript

  1. ACCESSIBILITY: WHEN YOU SEE IT... BAS BROEK 1 — @basthomas

  2. The design of products, devices, services, or environments for people

    who experience disabilities. — "Wikipedia" 2 — @basthomas
  3. [..] an extraordinary opportunity to deliver a superior mobile experience

    to every customer, including those with special needs. — Apple 3 — @basthomas
  4. AGENDA 1. Why? 2. What? 3. How? 4 — @basthomas

  5. 1. WHY? 5 — @basthomas

  6. 1. WHY? > Vision > Hearing > Physical & Motor

    Skills > Literacy & Learning 6 — @basthomas
  7. VISION 7 — @basthomas

  8. 8 — @basthomas

  9. 9 — @basthomas

  10. HEARING 10 — @basthomas

  11. 11 — @basthomas

  12. PHYSICAL & MOTOR SKILLS 12 — @basthomas

  13. 13 — @basthomas

  14. LITERACY & LEARNING 14 — @basthomas

  15. 15 — @basthomas

  16. 2. WHAT? 16 — @basthomas

  17. 2. WHAT? > Inverted Images (new) > Accessibility Labels &

    Hints > Accessibility Traits > "Magic Tap" & The "Z" gesture > Reduced Motion & Transparency > Dynamic Type > Haptic Feedback 17 — @basthomas
  18. 3. HOW? 18 — @basthomas

  19. 3. HOW? IT'S SUPER EASY TO START SUPPORTING ACCESSIBILITY. >

    Audit your app with VoiceOver > Make it fun (compute accessibility labels, make use of subclassing etc.) 19 — @basthomas
  20. 3. HOW? ADD A DESELECTED AND SELECTED STATE FOR ALL

    YOUR TAB ICONS. 20 — @basthomas
  21. 3. HOW? MAKE CELLS ACCESSIBLE, NOT CELL ELEMENTS // if

    it's a button cell.accessibilityTraits |= UIAccessibilityTraitButton cell.isAccessibilityElement = true cell.accessibilityLabel = cell.contentView.subviews .flatMap { $0.accessibilityLabel } .reduce("") { "\($0).\n\($1)" } 21 — @basthomas
  22. 3. HOW? MAKE IT FUN func accessibilityPerformMagicTap() -> Bool func

    accessibilityPerformEscape() -> Bool // iOS 11 == Free Dark Mode view.accessibilityIgnoresInvertColors = true 22 — @basthomas
  23. 3. HOW? extension Date { private static let visualTimestampFormatter: DateComponentsFormatter

    = { let formatter = DateComponentsFormatter() formatter.allowedUnits = [.day, .hour, .minute, .second] formatter.unitsStyle = .abbreviated formatter.maximumUnitCount = 1 return formatter }() private static let audioTimestampFormatter: DateComponentsFormatter = { let formatter = DateComponentsFormatter() formatter.allowedUnits = [.day, .hour, .minute, .second] formatter.unitsStyle = .full formatter.maximumUnitCount = 1 return formatter }() } 23 — @basthomas
  24. 3. HOW? extension Date { var visualTimestamp: String { let

    now = Date() return Date.visualTimestampFormatter.string(from: self, to: now)! } var audioTimestamp: String { let now = Date() return Date.audioTimestampFormatter.string(from: self, to: now)! } } let past = Date(timeIntervalSinceNow: -100_000) past.visualTimestamp // 1d past.audioTimestamp // 1 day 24 — @basthomas
  25. CONCLUSION > Accessibility is something you need to understand and

    use to be able to implement it > Adding accessibility support is doable in steps, is easy and (you can make it) fun 25 — @basthomas
  26. THANKS! DON'T HESITATE REACHING OUT. @BASTHOMAS 26 — @basthomas

  27. REFERENCES > Accessibility in GitHawk (blogpost) > "Improve Accessibility" in

    GitHawk (issue) > apple.com/accessibility > Accessibility for Developers > What's New in Accessibility (video) > Building Apps with Dynamic Type (video) 27 — @basthomas