what’s new in accessibility · auditing your app’s accessibility turn on voiceover or switch...

118
© 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple. Developing for everyone App Frameworks #WWDC16 Session 202 What’s New in Accessibility Conor Hughes Accessibility Engineer

Upload: others

Post on 03-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

© 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.

Developing for everyone

App Frameworks #WWDC16

Session 202

What’s New in Accessibility

Conor Hughes Accessibility Engineer

Page 2: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility

Page 3: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility

Making a system usable for everyone, regardless of their needs

Page 4: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility

Making a system usable for everyone, regardless of their needs

Page 5: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility

Making a system usable for everyone, regardless of their needs

Page 6: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility

Making a system usable for everyone, regardless of their needs

Page 7: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility

Making a system usable for everyone, regardless of their needs

Page 8: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Agenda

Page 9: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Agenda

New assistive features

Page 10: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Agenda

New assistive featuresAccessibility audit

Page 11: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Agenda

New assistive featuresAccessibility auditApp accessibility API

Page 12: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Agenda

New assistive featuresAccessibility auditApp accessibility APIFixing app accessibility issues

Page 13: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

New Assistive Features

Page 14: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Motor

Page 15: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Switch ControlMotor

Page 16: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Switch ControlMotor

Page 17: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Switch Control on tvOSMotor NEW

Page 18: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Switch Control on tvOSMotor NEW

Page 19: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Dwell ControlMotor NEW

Page 20: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Dwell ControlMotor NEW

Page 21: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Vision

Page 22: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Display AdjustmentsVision NEW

Page 23: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Display AdjustmentsVision NEW

Page 24: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Display AdjustmentsVision NEW

Page 25: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Taptic TimeVision NEW

Page 26: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Taptic TimeVision NEW

Page 27: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

MagnifierVision NEW

Page 28: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

DemoMagnifier

Page 29: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Hearing

Page 30: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

TTYHearing

Page 31: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Software TTYHearing NEW

Page 32: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Learning

Page 33: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Enhanced typing feedbackLearning NEW

Page 34: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

DemoTyping feedback enhancements

Page 35: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility API

Page 36: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Auditing Your App’s Accessibility

Page 37: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Auditing Your App’s Accessibility

Turn on VoiceOver or Switch Control

Page 38: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Auditing Your App’s Accessibility

Turn on VoiceOver or Switch Control• All items exposed

Page 39: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Auditing Your App’s Accessibility

Turn on VoiceOver or Switch Control• All items exposed• All exposed items labeled

Page 40: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Auditing Your App’s Accessibility

Turn on VoiceOver or Switch Control• All items exposed• All exposed items labeled• All interactions supported

Page 41: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Auditing Your App’s Accessibility

Turn on VoiceOver or Switch Control• All items exposed• All exposed items labeled• All interactions supported• Good interface flow

Page 42: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Auditing Your App’s Accessibility

Turn on VoiceOver or Switch Control• All items exposed• All exposed items labeled• All interactions supported• Good interface flow

Page 43: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Auditing Your App’s Accessibility

Turn on VoiceOver or Switch Control• All items exposed• All exposed items labeled• All interactions supported• Good interface flow

Accessibility Inspector

Page 44: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

DemoAccessibility audit

Page 45: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility Audit Results

Page 46: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility Audit Results

Route list cells

Page 47: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility Audit Results

Route list cells• Favorite button has bad label

Page 48: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility Audit Results

Route list cells• Favorite button has bad label• Isn’t clear that table cell can be activated

Page 49: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility Audit Results

Route list cells• Favorite button has bad label• Isn’t clear that table cell can be activated

Ratings graph

Page 50: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility Audit Results

Route list cells• Favorite button has bad label• Isn’t clear that table cell can be activated

Ratings graph• Graph values inaccessible

Page 51: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility Audit Results

Route list cells• Favorite button has bad label• Isn’t clear that table cell can be activated

Ratings graph• Graph values inaccessible

Route step list

Page 52: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility Audit Results

Route list cells• Favorite button has bad label• Isn’t clear that table cell can be activated

Ratings graph• Graph values inaccessible

Route step list• Hazard steps not differentiated

Page 53: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

UIAccessibility

Page 54: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

UIAccessibility

Page 55: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

UIAccessibility

Page 56: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

UIAccessibility

Page 57: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

UIAccessibility

Page 58: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

UIAccessibility

Page 59: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

UIAccessibility

What are you?

Page 60: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

UIAccessibility

What are you?

Button

Page 61: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

UIAccessibility

What are you?

Button

Who are you?

Page 62: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

UIAccessibility

What are you?

Button

Who are you?

Favorite

Page 63: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

UIAccessibility

What are you?

Button

Who are you?

Where are you?

Favorite

Page 64: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

UIAccessibility

What are you?

Button

Who are you?

Where are you?

((317, 106), (50, 50))

Favorite

Page 65: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

UIAccessibility

button.accessibilityTraits

UIAccessibilityTraitButton

button.accessibilityLabel

“Favorite”

button.accessibilityFrame

CGRect(x: 317, y: 106, width: 50, height: 50)

Page 66: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

The basicsUIAccessibility

extension NSObject {

public var isAccessibilityElement: Bool

public var accessibilityLabel: String?

public var accessibilityTraits: UIAccessibilityTraits

public var accessibilityFrame: CGRect

public var accessibilityValue: String?

}

Page 67: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

The basicsUIAccessibility

extension NSObject {

public var isAccessibilityElement: Bool

public var accessibilityLabel: String?

public var accessibilityTraits: UIAccessibilityTraits

public var accessibilityFrame: CGRect

public var accessibilityValue: String?

}

Page 68: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

The basicsUIAccessibility

extension NSObject {

public var isAccessibilityElement: Bool

public var accessibilityLabel: String?

public var accessibilityTraits: UIAccessibilityTraits

public var accessibilityFrame: CGRect

public var accessibilityValue: String?

}

imageView.isAccessibilityElement = true

Page 69: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

The basicsUIAccessibility

extension NSObject {

public var isAccessibilityElement: Bool

public var accessibilityLabel: String?

public var accessibilityTraits: UIAccessibilityTraits

public var accessibilityFrame: CGRect

public var accessibilityValue: String?

}

Page 70: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

The basicsUIAccessibility

extension NSObject {

public var isAccessibilityElement: Bool

public var accessibilityLabel: String?

public var accessibilityTraits: UIAccessibilityTraits

public var accessibilityFrame: CGRect

public var accessibilityValue: String?

}

Page 71: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

The basicsUIAccessibility

myButton.accessibilityLabel = “New Alarm”

extension NSObject {

public var isAccessibilityElement: Bool

public var accessibilityLabel: String?

public var accessibilityTraits: UIAccessibilityTraits

public var accessibilityFrame: CGRect

public var accessibilityValue: String?

}

Page 72: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

The basicsUIAccessibility

extension NSObject {

public var isAccessibilityElement: Bool

public var accessibilityLabel: String?

public var accessibilityTraits: UIAccessibilityTraits

public var accessibilityFrame: CGRect

public var accessibilityValue: String?

}

Page 73: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

The basicsUIAccessibility

extension NSObject {

public var isAccessibilityElement: Bool

public var accessibilityLabel: String?

public var accessibilityTraits: UIAccessibilityTraits

public var accessibilityFrame: CGRect

public var accessibilityValue: String?

}

Page 74: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

The basicsUIAccessibility

myButton.accessibilityTraits |= UIAccessibilityTraitButton

extension NSObject {

public var isAccessibilityElement: Bool

public var accessibilityLabel: String?

public var accessibilityTraits: UIAccessibilityTraits

public var accessibilityFrame: CGRect

public var accessibilityValue: String?

}

Page 75: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

The basicsUIAccessibility

extension NSObject {

public var isAccessibilityElement: Bool

public var accessibilityLabel: String?

public var accessibilityTraits: UIAccessibilityTraits

public var accessibilityFrame: CGRect

public var accessibilityValue: String?

}

Page 76: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

The basicsUIAccessibility

extension NSObject {

public var isAccessibilityElement: Bool

public var accessibilityLabel: String?

public var accessibilityTraits: UIAccessibilityTraits

public var accessibilityFrame: CGRect

public var accessibilityValue: String?

}

Page 77: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

The basicsUIAccessibility

extension NSObject {

public var isAccessibilityElement: Bool

public var accessibilityLabel: String?

public var accessibilityTraits: UIAccessibilityTraits

public var accessibilityFrame: CGRect

public var accessibilityValue: String?

}

Page 78: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

The basicsUIAccessibility

extension NSObject {

public var isAccessibilityElement: Bool

public var accessibilityLabel: String?

public var accessibilityTraits: UIAccessibilityTraits

public var accessibilityFrame: CGRect

public var accessibilityValue: String?

}

Page 79: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

The basicsUIAccessibility

magControl.accessibilityValue = “\(level) times magnification”

extension NSObject {

public var isAccessibilityElement: Bool

public var accessibilityLabel: String?

public var accessibilityTraits: UIAccessibilityTraits

public var accessibilityFrame: CGRect

public var accessibilityValue: String?

}

Page 80: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

extension NSObject {

public var accessibilityElements: [AnyObject]?

}

public class UIAccessibilityElement : NSObject {

public init(accessibilityContainer container: AnyObject)

@available(iOS 10.0, *) public var accessibilityFrameInContainerSpace: CGRect

}

Page 81: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

extension NSObject {

public var accessibilityElements: [AnyObject]?

}

public class UIAccessibilityElement : NSObject {

public init(accessibilityContainer container: AnyObject)

@available(iOS 10.0, *) public var accessibilityFrameInContainerSpace: CGRect

}

Page 82: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

extension NSObject {

public var accessibilityElements: [AnyObject]?

}

public class UIAccessibilityElement : NSObject {

public init(accessibilityContainer container: AnyObject)

@available(iOS 10.0, *) public var accessibilityFrameInContainerSpace: CGRect

}

Page 83: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

extension NSObject {

public var accessibilityElements: [AnyObject]?

}

public class UIAccessibilityElement : NSObject {

public init(accessibilityContainer container: AnyObject)

@available(iOS 10.0, *) public var accessibilityFrameInContainerSpace: CGRect

}

Page 84: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

extension NSObject {

public var accessibilityElements: [AnyObject]?

}

public class UIAccessibilityElement : NSObject {

public init(accessibilityContainer container: AnyObject)

@available(iOS 10.0, *) public var accessibilityFrameInContainerSpace: CGRect

}

NEW

Page 85: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

TakeawaysUIAccessibility

Page 86: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

TakeawaysUIAccessibility

• The UIAccessibility protocol makes interface items accessible

Page 87: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

TakeawaysUIAccessibility

• The UIAccessibility protocol makes interface items accessible• UIKit controls have support baked-in

Page 88: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

TakeawaysUIAccessibility

• The UIAccessibility protocol makes interface items accessible• UIKit controls have support baked-in• Set properties to customize behavior

Page 89: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

TakeawaysUIAccessibility

• The UIAccessibility protocol makes interface items accessible• UIKit controls have support baked-in• Set properties to customize behavior• Use UIAccessibilityElement for non-view elements

Page 90: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

DemoUIAccessibility API

Page 91: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility Audit Results

Page 92: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility Audit Results

Route map

Page 93: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility Audit Results

Route map- VoiceOver users miss route order

Page 94: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility Audit Results

Route map- VoiceOver users miss route order- VoiceOver users can’t easily discover hazards

Page 95: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility Audit Results

Route map- VoiceOver users miss route order- VoiceOver users can’t easily discover hazards

Route step list

Page 96: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Accessibility Audit Results

Route map- VoiceOver users miss route order- VoiceOver users can’t easily discover hazards

Route step list- not “skimmable” for VO users

Page 97: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

The Rotor

Page 98: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

extension NSObject {

@available(iOS 10.0, *)

public var accessibilityCustomRotors: [UIAccessibilityCustomRotor]?

}

public class UIAccessibilityCustomRotor : NSObject {

public init(name: String,

itemSearch itemSearchBlock: UIKit.UIAccessibilityCustomRotorSearch)

}

NEW

Page 99: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

extension NSObject {

@available(iOS 10.0, *)

public var accessibilityCustomRotors: [UIAccessibilityCustomRotor]?

}

public class UIAccessibilityCustomRotor : NSObject {

public init(name: String,

itemSearch itemSearchBlock: UIKit.UIAccessibilityCustomRotorSearch)

}

NEW

Page 100: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

extension NSObject {

@available(iOS 10.0, *)

public var accessibilityCustomRotors: [UIAccessibilityCustomRotor]?

}

public class UIAccessibilityCustomRotor : NSObject {

public init(name: String,

itemSearch itemSearchBlock: UIKit.UIAccessibilityCustomRotorSearch)

}

NEW

Page 101: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

DemoUIAccessibilityCustomRotor API

Page 102: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

A Word on tvOS

Page 103: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

tvOS Header Elements

extension NSObject {

@available(tvOS 9.0, *)

public var accessibilityHeaderElements: [AnyObject]?

}

Page 104: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

tvOS Header Elements

extension NSObject {

@available(tvOS 9.0, *)

public var accessibilityHeaderElements: [AnyObject]?

}

Page 105: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

tvOS Header Elements

Page 106: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility
Page 107: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility
Page 108: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility
Page 109: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Summary

Page 110: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Summary

Accessibility is about everyone

Page 111: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Summary

Accessibility is about everyoneDesign with accessibility in mind

Page 112: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Summary

Accessibility is about everyoneDesign with accessibility in mindUIKit helps your apps become accessible

Page 113: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Summary

Accessibility is about everyoneDesign with accessibility in mindUIKit helps your apps become accessibleAccessible apps make our platforms great!

Page 114: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

More Information

https://developer.apple.com/wwdc16/202

Page 115: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Related Sessions

Inclusive App Design Pacific Heights Tuesday 10:00 AM

Auditing Your Apps For Accessibility Nob Hill Wednesday 10:00 AM

Page 116: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Labs

Accessibility and Speech Lab Frameworks Lab C Wednesday 2:30 PM

Accessibility User Interface by Appointment Lab User Interface Design Lab Tuesday 9:00 AM

Accessibility User Interface by Appointment Lab User Interface Design Lab Wednesday 9:00 AM

Page 117: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility

Other Events

Haben Girma: Disability and Innovation: The Universal Benefits of Accessible Design

Lunch Guest Speaker (Haben Girma)

Tuesday 12:20 PM

Accessibility and Inclusive Design Get-Together Buena Vista Park Wednesday 6:15 PM

Page 118: What’s New in Accessibility · Auditing Your App’s Accessibility Turn on VoiceOver or Switch Control ... • All interactions supported • Good interface flow Accessibility