Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks...

97
© 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple. #WWDC14 Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer Chris Dolan Accessibility Engineer

Transcript of Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks...

Page 1: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

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

#WWDC14

Accessibility on OS XNew Accessibility API

Frameworks

Session 207 Patti Hoa Accessibility Engineer

!

Chris Dolan Accessibility Engineer

Page 2: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Agenda

Page 3: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Agenda

Accessibility for everyone

Page 4: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Agenda

Accessibility for everyone

Overview of the new Accessibility API

Page 5: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Agenda

Accessibility for everyone

Overview of the new Accessibility API

Testing of accessibility changes

Page 6: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Agenda

Accessibility for everyone

Overview of the new Accessibility API

Testing of accessibility changes

Demo

Page 7: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 8: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 9: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 10: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 11: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Feature

VoiceOverZoom

Zoom Window

Speak Selection

Closed Captioning

Slow KeysContrast Enhancements

Flash Screen AlertInvert Colors

Subtitles

Sticky Keys

Mouse KeysCursor ScalingSwitch Control

Speak Auto-text

Large Text

Slow

Page 12: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 13: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Flow of Accessibility Information

Application

Page 14: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Flow of Accessibility Information

Assistive Software Application

Page 15: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Flow of Accessibility Information

Assistive Software

Request accessibility information

Application

Page 16: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Flow of Accessibility Information

Assistive Software

Vends accessibility information

Request accessibility information

Application

Page 17: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Flow of Accessibility Information

ApplicationAssistive Software

Page 18: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Flow of Accessibility Information

Accessibility API

ApplicationAssistive Software

Page 19: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

New Accessibility API on OS X

Page 20: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 21: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Goals:

Page 22: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Goal:

Page 23: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Goal:

Simplify

Page 24: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 25: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 26: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 27: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 28: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Button Button Button

Page 29: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 30: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 31: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 32: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 33: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Using AppKit control?

Page 34: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Using AppKit control?

Accessibility for free!

Page 35: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

button

Page 36: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 37: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 38: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Adding Label to an AppKit Control

- (void)awakeFromNib { ........ NSButtonCell *myButtonCell = [myLoopButton cell]; myButtonCell.accessibilityLabel = NSLocalizedString(@"play", nil); ........ }

Page 39: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

play button

Page 40: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Accessibility Properties

Page 41: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Accessibility Properties

Majority of attributes are now properties @property (copy) NSString *accessibilityLabel @property NSRect accessibilityFrame

Page 42: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Accessibility Properties

Majority of attributes are now properties @property (copy) NSString *accessibilityLabel @property NSRect accessibilityFrame

Subclasses no longer needed searchField.accessibilityLabel = NSLocalizedString(@"play", nil); searchField.accessibilityLinkedUIElements = @[content];

Page 43: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 44: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 45: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Accessibility Protocols

Guide developers through implementation

Covers most common types of UI

Page 46: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Pick a Protocol

Button

CheckBox

Group

Image

StaticText

Stepper

Page 47: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Implement the Protocol

@interface MyButtonView : NSView <NSAccessibilityButton> @end

Page 48: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Implement the Protocol

@interface MyButtonView : NSView <NSAccessibilityButton> @end

Page 49: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Implement the Protocol

Page 50: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Implement the Protocol

@implementation MyButtonView - (NSString *)accessibilityLabel { return NSLocalizedStringForKey(@“play”, nil); } - (BOOL)accessibilityPerformPress { [self press]; return YES; } @end !

Page 51: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Implement the Protocol

@implementation MyButtonView - (NSString *)accessibilityLabel { return NSLocalizedStringForKey(@“play”, nil); } - (BOOL)accessibilityPerformPress { [self press]; return YES; } @end !

That is all!

Page 52: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

AppKit Infers More

Page 53: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

AppKit Infers More

Infer isAccessibilityElement

Page 54: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

AppKit Infers More

Infer isAccessibilityElement

Auto-populate some attributes

Page 55: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Protocols

Page 56: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

@protocol NSAccessibilityElement <NSObject> @required - (NSRect)accessibilityFrame; - (id)accessibilityParent; @end

Protocols

Page 57: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

@protocol NSAccessibilityElement <NSObject> @required - (NSRect)accessibilityFrame; - (id)accessibilityParent; @end

@protocol NSAccessibilityButton <NSAccessibilityElement> @required - (NSString *)accessibilityLabel; - (BOOL)accessibilityPerformPress; @end

Protocols

Page 58: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 59: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 60: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 61: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

NSAccessibilityElementUI without backing NSView

Page 62: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

- (NSArray *)accessibilityChildren {

if ( _accessibilityChildren == nil ) {

...

[_accessibilityChildren addObject:imageElement];

}

return _accessibilityChildren;

}

NSAccessibilityElement

NSAccessibilityElement *imageElement = [NSAccessibilityElement new];

NSRect bounds = NSAccessibilityFrameInView(self, [self imageBounds]);

[imageElement setAccessibilityParent:self];

[imageElement setAccessibilityRole:NSAccessibilityImageRole];

[imageElement setAccessibilityLabel:accessibilityLabel];

[imageElement setAccessibilityFrame:bounds];

Page 63: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

- (NSArray *)accessibilityChildren {

if ( _accessibilityChildren == nil ) {

...

[_accessibilityChildren addObject:imageElement];

}

return _accessibilityChildren;

}

NSAccessibilityElement

NSAccessibilityElement *imageElement = [NSAccessibilityElement new];

NSRect bounds = NSAccessibilityFrameInView(self, [self imageBounds]);

[imageElement setAccessibilityParent:self];

[imageElement setAccessibilityRole:NSAccessibilityImageRole];

[imageElement setAccessibilityLabel:accessibilityLabel];

[imageElement setAccessibilityFrame:bounds];

Page 64: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

- (NSArray *)accessibilityChildren {

if ( _accessibilityChildren == nil ) {

...

[_accessibilityChildren addObject:imageElement];

}

return _accessibilityChildren;

}

NSAccessibilityElement

NSAccessibilityElement *imageElement = [NSAccessibilityElement new];

NSRect bounds = NSAccessibilityFrameInView(self, [self imageBounds]);

[imageElement setAccessibilityParent:self];

[imageElement setAccessibilityRole:NSAccessibilityImageRole];

[imageElement setAccessibilityLabel:accessibilityLabel];

[imageElement setAccessibilityFrame:bounds];

Page 65: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

- (NSArray *)accessibilityChildren {

if ( _accessibilityChildren == nil ) {

...

[_accessibilityChildren addObject:imageElement];

}

return _accessibilityChildren;

}

NSAccessibilityElement

NSAccessibilityElement *imageElement = [NSAccessibilityElement new];

NSRect bounds = NSAccessibilityFrameInView(self, [self imageBounds]);

[imageElement setAccessibilityParent:self];

[imageElement setAccessibilityRole:NSAccessibilityImageRole];

[imageElement setAccessibilityLabel:accessibilityLabel];

[imageElement setAccessibilityFrame:bounds];

Page 66: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

- (NSArray *)accessibilityChildren {

if ( _accessibilityChildren == nil ) {

...

[_accessibilityChildren addObject:imageElement];

}

return _accessibilityChildren;

}

NSAccessibilityElement

NSAccessibilityElement *imageElement = [NSAccessibilityElement new];

NSRect bounds = NSAccessibilityFrameInView(self, [self imageBounds]);

[imageElement setAccessibilityParent:self];

[imageElement setAccessibilityRole:NSAccessibilityImageRole];

[imageElement setAccessibilityLabel:accessibilityLabel];

[imageElement setAccessibilityFrame:bounds];

Page 67: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Already implemented accessibility?

Page 68: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Already implemented accessibility?

No extra work!

Page 69: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Binary and source compatible

Page 70: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Agenda

Accessibility for everyone

Overview of the new Accessibility API

Page 71: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Testing

Page 72: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Accessibility Inspector

Page 73: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 74: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 75: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

VoiceOver

Page 76: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 77: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

“Heading”

Page 78: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

“Heading”

“⠓⠑⠁⠙⠊⠝⠛”

Page 79: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 80: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 81: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 82: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

VoiceOver Commands

Page 83: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

VoiceOver Commands

Next Item: control option⌃ ⌥

Page 84: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

VoiceOver Commands

Next Item: control option⌃ ⌥

Previous Item: control option⌃ ⌥

Page 85: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

VoiceOver Commands

Next Item: control option⌃ ⌥

Previous Item: control option⌃ ⌥

Activate Item: control option⌃ ⌥ space

Page 86: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

VoiceOver Commands

Next Item: control option⌃ ⌥

Previous Item: control option⌃ ⌥

Activate Item: control option⌃ ⌥ space

Enter Group: control option⌃ ⌥ shift

Page 87: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

VoiceOver Commands

Next Item: control option⌃ ⌥

Previous Item: control option⌃ ⌥

Activate Item: control option⌃ ⌥ space

Enter Group: control option⌃ ⌥ shift

Leave Group:control option⌃ ⌥ shift

Page 88: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 89: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda
Page 90: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

VoiceOver Commands

Next Item: control option⌃ ⌥

Previous Item: control option⌃ ⌥

Activate Item: control option⌃ ⌥ space

Enter Group: control option⌃ ⌥ shift

Leave Group:control option⌃ ⌥ shift

Page 91: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

DemoTic Tac Toe

Chris Dolan Accessibility Engineer

Page 92: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

http://developer.apple.com

Page 93: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Summary

Brand new, easy to use API

Test with VoiceOver, Accessibility Inspector

Developer examples

Page 94: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

More Information

Jake Behrens App Frameworks Evangelist [email protected]

Documentation http://developer.apple.com

Apple Developer Forums http://devforums.apple.com

Page 95: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

• Accessibility on iOS Russian Hill Tuesday 3:15PM

• Improving the Accessibility and Usability of Complex Web Applications

Marina Friday 9:00AM

Related Sessions

Page 96: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda

Labs

• Accessibility and Speech Lab Frameworks Lab B Wednesday 10:15AM

Page 97: Accessibility on OS X - Apple Inc. · Accessibility on OS X New Accessibility API Frameworks Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer Agenda