$30 off During Our Annual Pro Sale. View Details »

Accessibility: When You See It...

Bas Broek
November 02, 2017

Accessibility: When You See It...

Bas Broek

November 02, 2017
Tweet

More Decks by Bas Broek

Other Decks in Programming

Transcript

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

    View Slide

  2. The design of products, devices,
    services, or environments for
    people who experience disabilities.
    — "Wikipedia"
    2 — @basthomas

    View Slide

  3. [..] an extraordinary opportunity
    to deliver a superior mobile
    experience to every customer,
    including those with special
    needs.
    — Apple
    3 — @basthomas

    View Slide

  4. AGENDA
    1. Why?
    2. What?
    3. How?
    4 — @basthomas

    View Slide

  5. 1. WHY?
    5 — @basthomas

    View Slide

  6. 1. WHY?
    > Vision
    > Hearing
    > Physical & Motor Skills
    > Literacy & Learning
    6 — @basthomas

    View Slide

  7. VISION
    7 — @basthomas

    View Slide

  8. 8 — @basthomas

    View Slide

  9. 9 — @basthomas

    View Slide

  10. HEARING
    10 — @basthomas

    View Slide

  11. 11 — @basthomas

    View Slide

  12. PHYSICAL &
    MOTOR SKILLS
    12 — @basthomas

    View Slide

  13. 13 — @basthomas

    View Slide

  14. LITERACY &
    LEARNING
    14 — @basthomas

    View Slide

  15. 15 — @basthomas

    View Slide

  16. 2. WHAT?
    16 — @basthomas

    View Slide

  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

    View Slide

  18. 3. HOW?
    18 — @basthomas

    View Slide

  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

    View Slide

  20. 3. HOW?
    ADD A DESELECTED AND SELECTED STATE FOR ALL YOUR TAB ICONS.
    20 — @basthomas

    View Slide

  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

    View Slide

  22. 3. HOW?
    MAKE IT FUN
    func accessibilityPerformMagicTap() -> Bool
    func accessibilityPerformEscape() -> Bool
    // iOS 11 == Free Dark Mode
    view.accessibilityIgnoresInvertColors = true
    22 — @basthomas

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  26. THANKS!
    DON'T HESITATE REACHING OUT.
    @BASTHOMAS
    26 — @basthomas

    View Slide

  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

    View Slide