Upload
duongdiep
View
227
Download
0
Embed Size (px)
Citation preview
© 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.
iOS AccessibilityDeveloping for everyone
Ian Fisch iOS Accessibility
App Frameworks #WWDC15
Session 201
UIAccessibility
UIAccessibilityThe bridge between your app and accessibility
*Tap*
[yourElement accessibilityLabel]
UIAccessibility
UIAccessibilityThe bridge between your app and accessibility
*Tap*
[yourElement accessibilityLabel]
@“Weather”
UIAccessibility
UIAccessibilityThe bridge between your app and accessibility
*Tap*
[yourElement accessibilityLabel]
@“Weather”
UIAccessibility
UIAccessibilityThe bridge between your app and accessibility
*Menu*
[yourElement accessibilityCustomActions]
UIAccessibility
UIAccessibilityThe bridge between your app and accessibility
*Menu*
[yourElement accessibilityCustomActions]
<Move>, <Pass>, <Trade>
UIAccessibility
UIAccessibilityThe bridge between your app and accessibility
*Menu*
[yourElement accessibilityCustomActions]
<Move>, <Pass>, <Trade>
M P T Move Pass Trade
UIAccessibilityDo I serve a purpose?
var isAccessibilityElement: Bool
self.isAccessibilityElement = true
UIAccessibilityWhat’s my name?
var accessibilityLabel: String?
self.accessibilityLabel = “Button to add a clock”
UIAccessibilityWhat’s my name?
var accessibilityLabel: String?
self.accessibilityLabel = “Add”
self.accessibilityLabel = “Button to add a clock”
UIAccessibilityWhat’s my personality?
var accessibilityTraits: UIAccessibilityTraits
self.accessibilityTraits = UIAccessibilityTraitButton
UIAccessibilityWhat is my value?
var accessibilityValue: String?
self.accessibilityValue = “Eleven twenty AM”
UIAccessibilityHow should people interact with me?
var accessibilityHint: String?
self.accessibilityHint = “Drag up or down to change the order”
UIAccessibilityWhere am I?
var accessibilityFrame: CGRect
func UIAccessibilityConvertFrameToScreenCoordinates(CGRect, UIView) -> CGRect
UIAccessibilityBasic API
extension NSObject { var isAccessibilityElement: Bool var accessibilityLabel: String?
var accessibilityHint: String? var accessibilityValue: String? var accessibilityTraits: UIAccessibilityTraits var accessibilityFrame: CGRect }
Building Accessible Apps
Design for accessibilityAudit your appAccessibility inspectorAccessibility features
Building Accessible Apps
Design for accessibilityAudit your appAccessibility inspectorAccessibility features• VoiceOver
Building Accessible Apps
Design for accessibilityAudit your appAccessibility inspectorAccessibility features• VoiceOver• Switch Control
UIAccessibilityBasic API
extension NSObject { var isAccessibilityElement: Bool var accessibilityLabel: String?
var accessibilityHint: String? var accessibilityValue: String? var accessibilityTraits: UIAccessibilityTraits var accessibilityFrame: CGRect }
Accessibility AuditResults
✓Earthquake cell
✓Not accessible
✓Text color
✓Map detail
✓Labels
✓ButtonAdd favorite
Accessibility AuditResults
✓Earthquake cell
✓Not accessible
✓Text color
✓Map detail
✓Labels
✓ButtonAdd favoriteFavorite graph
UIAccessibilityUIAccessibilityElement
class UIAccessibilityElement : NSObject, UIAccessibilityIdentification { init(accessibilityContainer container: AnyObject) unowned(unsafe) var accessibilityContainer: AnyObject? var isAccessibilityElement: Bool var accessibilityLabel: String? var accessibilityHint: String? var accessibilityValue: String? var accessibilityFrame: CGRect var accessibilityTraits: UIAccessibilityTraits }
New APIAccessibility Focus
func accessibilityAssistiveTechnologyFocusedIdentifiers() -> Set<String>?
func UIAccessibilityFocusedElement(assistiveTechnologyIdentifier: String?) -> AnyObject?
New APIAccessibility Focus
let UIAccessibilityElementFocusedNotification: String
let UIAccessibilityFocusedElementKey: String let UIAccessibilityUnfocusedElementKey: String let UIAccessibilityAssistiveTechnologyKey: String
Accessibility AuditResults
✓Earthquake cell
✓Not accessible
✓Text color
✓Map detail
✓Labels
✓Button
✓Add favorite
Accessibility AuditResults
✓Earthquake cell
✓Not accessible
✓Text color
✓Map detail
✓Labels
✓Button
✓Add favorite
✓Favorite graph
More Information
DocumentationUIAccessibilityhttp://developer.apple.com/library/
Technical SupportApple Developer Forumshttp://developer.apple.com/forums
Developer Technical Supporthttp://developer.apple.com/support/technical
General InquiriesPaul Marcos, App Frameworks [email protected]
Related Session and Lab
Apple Watch Accessibility Pacific Heights Tuesday 1:30PM
Accessibility and Speech Lab Frameworks Lab D Tuesday 2:30PM