debugging accessibility @ craft conf

88
DEBUGGING ACCESSIBILITY SALLY SHEPARD @MOSTGOOD

Upload: sally-shepard

Post on 21-Jan-2018

126 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Debugging Accessibility @ Craft Conf

DEBUGGING ACCESSIBILITY

SALLY SHEPARD @MOSTGOOD

Page 2: Debugging Accessibility @ Craft Conf

-QUICK INTRO TO ACCESSIBILITY -MANUAL DEBUGGING -ACCESSIBILITY INSPECTOR -UI TESTING -ACCESSIBILITY & WORKFLOW

Page 3: Debugging Accessibility @ Craft Conf

QUICK INTRO TO ACCESSIBILITY

Page 4: Debugging Accessibility @ Craft Conf

THE RELATIONSHIP BETWEEN ACCESSIBILITY & DISABILITY

Page 5: Debugging Accessibility @ Craft Conf

“Disability is…a complex phenomenon, reflecting the interaction between features of a person’s body and features of the society in which he or she lives.”

-World Health Organisation, definition of disability

Page 6: Debugging Accessibility @ Craft Conf

PEOPLE HAVE IMPAIRMENTS, IMPAIRMENTS AREN’T THE

SAME AS A DISABILITY.

Page 7: Debugging Accessibility @ Craft Conf

DISABILITY ONLY EXISTS IF THERE IS NO WAY FOR A PERSON TO BE

INCLUDED.

Page 8: Debugging Accessibility @ Craft Conf

Page 9: Debugging Accessibility @ Craft Conf

😀

Page 10: Debugging Accessibility @ Craft Conf

ACCESSIBILITY IS ABOUT ENABLING PEOPLE.

Page 11: Debugging Accessibility @ Craft Conf

ACCESSIBILITY IS ABOUT ENABLING PEOPLE

BY REMOVING BARRIERS.

Page 12: Debugging Accessibility @ Craft Conf

IF YOUR APP ISN’T ACCESSIBLE, YOU ARE CREATING BARRIERS,

YOU’RE MAKING A USERS IMPAIRMENT A DISABILITY.

Page 13: Debugging Accessibility @ Craft Conf

YOU CAN REMOVE BARRIERS BY SUPPORTING ACCESSIBILITY

FEATURES.

Page 14: Debugging Accessibility @ Craft Conf

ACCESSIBILITY IS NOT JUST VOICEOVER.

Page 15: Debugging Accessibility @ Craft Conf

https://www.microsoft.com/en-us/design/inclusive

Page 16: Debugging Accessibility @ Craft Conf

THERE ARE SO MANY ACCESSIBILITY FEATURES!

Page 17: Debugging Accessibility @ Craft Conf

VoiceOver Zoom Invert Colors Greyscale Color Filters Speak Screen Dynamic Type Bold Text Button Shapes Reduce Transparency Darken Colours Reduce White Point Reduce Motion

On/Off Labels Switch Control AssistiveTouch Hold Duration Ignore Repeat Tap Assistance Dictation/Siri Flash for alerts Mono Audio Audio Volume Balance Hearing Aids Phone noise cancellation Subtitles & Captioning

Audio Descriptions Haptic Feedback Guided Access Differentiate without colour Increase Contrast Display contrast Cursor Size Dwell Control Keyboard Access Light Sensitivity Focus Style

ACCESSIBILITY FEATURES ON iOS/macOS/watchOS/tvOS

Page 18: Debugging Accessibility @ Craft Conf

MOST ACCESSIBILITY FEATURES ARE HANDLED BY THE SYSTEM

(NO ADDITIONAL WORK FOR YOU) 🎉 🎉 🎉 🎉 🎉

Page 19: Debugging Accessibility @ Craft Conf

VoiceOver Zoom Invert Colors Greyscale Color Filters Speak Screen Dynamic Type Bold Text Button Shapes Reduce Transparency Darken Colours Reduce White Point Reduce Motion

On/Off Labels Switch Control AssistiveTouch Hold Duration Ignore Repeat Tap Assistance Dictation/Siri Flash for alerts Mono Audio Audio Volume Balance Hearing Aids Phone noise cancellation Subtitles & Captioning

Audio Descriptions Haptic Feedback Guided Access Differentiate without colour Increase Contrast Display contrast Cursor Size Dwell Control Keyboard Access Light Sensitivity Focus Style

ACCESSIBILITY FEATURES ON iOS/macOS/watchOS/tvOS

Page 20: Debugging Accessibility @ Craft Conf

VoiceOver Zoom Invert Colors Greyscale Color Filters Speak Screen Dynamic Type Bold Text Button Shapes Reduce Transparency Darken Colours Reduce White Point Reduce Motion

On/Off Labels Switch Control AssistiveTouch Hold Duration Ignore Repeat Tap Assistance Dictation/Siri Flash for alerts Mono Audio Audio Volume Balance Hearing Aids Phone noise cancellation Subtitles & Captioning

Audio Descriptions Haptic Feedback Guided Access Differentiate without colour Increase Contrast Display contrast Cursor Size Dwell Control Keyboard Access Light Sensitivity Focus Style

ACCESSIBILITY FEATURES ON iOS/macOS/watchOS/tvOS

Page 21: Debugging Accessibility @ Craft Conf

QUITE A FEW ACCESSIBILITY FEATURES

ONLY APPLY TO SOME APPS.

Page 22: Debugging Accessibility @ Craft Conf

VoiceOver Zoom Invert Colors Greyscale Color Filters Speak Screen Dynamic Type Bold Text Button Shapes Reduce Transparency Darken Colours Reduce White Point Reduce Motion

On/Off Labels Switch Control AssistiveTouch Hold Duration Ignore Repeat Tap Assistance Dictation/Siri Flash for alerts Mono Audio Audio Volume Balance Hearing Aids Phone noise cancellation Subtitles & Captioning

Audio Descriptions Haptic Feedback Guided Access Differentiate without colour Increase Contrast Display contrast Cursor Size Dwell Control Keyboard Access Light Sensitivity Focus Style

ACCESSIBILITY FEATURES ON iOS/macOS/watchOS/tvOS

Page 23: Debugging Accessibility @ Craft Conf

VoiceOver Zoom *Invert Colors* Greyscale Color Filters Speak Screen Dynamic Type Bold Text Button Shapes Reduce Transparency Darken Colours Reduce White Point Reduce Motion

On/Off Labels Switch Control AssistiveTouch Hold Duration Ignore Repeat Tap Assistance Dictation/Siri Flash for alerts *Mono Audio* Audio Volume Balance Hearing Aids Phone noise cancellation *Subtitles & Captioning*

*Audio Descriptions* *Haptic Feedback* *Guided Access* Differentiate without colour Increase Contrast Display contrast Cursor Size Dwell Control Keyboard Access Light Sensitivity Focus Style

ACCESSIBILITY FEATURES ON iOS/macOS/watchOS/tvOS

Page 24: Debugging Accessibility @ Craft Conf

A LOT CAN BE HANDLED IN THE DESIGN PHASE.

Page 25: Debugging Accessibility @ Craft Conf

VoiceOver Zoom *Invert Colors* Greyscale Color Filters Speak Screen Dynamic Type Bold Text Button Shapes Reduce Transparency Darken Colours Reduce White Point Reduce Motion

On/Off Labels Switch Control AssistiveTouch Hold Duration Ignore Repeat Tap Assistance Dictation/Siri Flash for alerts *Mono Audio* Audio Volume Balance Hearing Aids Phone noise cancellation *Subtitles & Captioning*

*Audio Descriptions* *Haptic Feedback* *Guided Access* Differentiate without colour Increase Contrast Display contrast Cursor Size Dwell Control Keyboard Access Light Sensitivity Focus Style

ACCESSIBILITY FEATURES ON iOS/macOS/watchOS/tvOS

Page 26: Debugging Accessibility @ Craft Conf

VoiceOver Zoom *Invert Colors* *Greyscale* Color Filters Speak Screen Dynamic Type *Bold Text* Button Shapes *Reduce Transparency* *Darken Colours* Reduce White Point *Reduce Motion*

On/Off Labels Switch Control AssistiveTouch Hold Duration Ignore Repeat Tap Assistance Dictation/Siri Flash for alerts *Mono Audio* Audio Volume Balance Hearing Aids Phone noise cancellation *Subtitles & Captioning*

*Audio Descriptions* *Haptic Feedback* *Guided Access* *Differentiate without colour* *Increase Contrast* Display contrast Cursor Size Dwell Control Keyboard Access Light Sensitivity Focus Style

ACCESSIBILITY FEATURES ON iOS/macOS/watchOS/tvOS

Page 27: Debugging Accessibility @ Craft Conf

VoiceOver Zoom *Invert Colors* *Greyscale* Color Filters Speak Screen Dynamic Type *Bold Text* Button Shapes *Reduce Transparency* *Darken Colours* Reduce White Point *Reduce Motion*

On/Off Labels Switch Control AssistiveTouch Hold Duration Ignore Repeat Tap Assistance Dictation/Siri Flash for alerts *Mono Audio* Audio Volume Balance Hearing Aids Phone noise cancellation *Subtitles & Captioning*

*Audio Descriptions* *Haptic Feedback* *Guided Access* *Differentiate without colour* *Increase Contrast* Display contrast Cursor Size Dwell Control Keyboard Access Light Sensitivity Focus Style

ACCESSIBILITY FEATURES ON iOS/macOS/watchOS/tvOS

Page 28: Debugging Accessibility @ Craft Conf

RELATIONSHIP BETWEEN VOICEOVER AND SWITCH CONTROL

Page 29: Debugging Accessibility @ Craft Conf

-ACCESSIBILITY API -ACCESSIBILITY ELEMENTS

Page 30: Debugging Accessibility @ Craft Conf

VoiceOver Zoom *Invert Colors* *Greyscale* Color Filters Speak Screen Dynamic Type *Bold Text* Button Shapes *Reduce Transparency* *Darken Colours* Reduce White Point *Reduce Motion*

On/Off Labels *Switch Control* AssistiveTouch Hold Duration Ignore Repeat Tap Assistance Dictation/Siri Flash for alerts *Mono Audio* Audio Volume Balance Hearing Aids Phone noise cancellation *Subtitles & Captioning*

*Audio Descriptions* *Haptic Feedback* *Guided Access* *Differentiate without colour* *Increase Contrast* Display contrast Cursor Size Dwell Control Keyboard Access Light Sensitivity Focus Style

ACCESSIBILITY FEATURES ON iOS/macOS/watchOS/tvOS

Page 31: Debugging Accessibility @ Craft Conf

VoiceOver Zoom *Invert Colors* *Greyscale* Color Filters Speak Screen Dynamic Type *Bold Text* Button Shapes *Reduce Transparency* *Darken Colours* Reduce White Point *Reduce Motion*

On/Off Labels *Switch Control* AssistiveTouch Hold Duration Ignore Repeat Tap Assistance Dictation/Siri Flash for alerts *Mono Audio* Audio Volume Balance Hearing Aids Phone noise cancellation *Subtitles & Captioning*

*Audio Descriptions* *Haptic Feedback* *Guided Access* *Differentiate without colour* *Increase Contrast* Display contrast Cursor Size Dwell Control Keyboard Access Light Sensitivity Focus Style

ACCESSIBILITY FEATURES ON iOS/macOS/watchOS/tvOS

Page 32: Debugging Accessibility @ Craft Conf

~300 MILLION VISUALLY IMPAIRED

DYNAMIC TYPE IS SUPER IMPORTANT TO SUPPORT IN YOUR APPS!

Page 33: Debugging Accessibility @ Craft Conf

WHAT IF WE CAN’T RELY ON OUR DESIGNS TO SUPPORT

ACCESSIBILITY?

Page 34: Debugging Accessibility @ Craft Conf

VoiceOver Zoom *Invert Colors* *Greyscale* Color Filters Speak Screen Dynamic Type *Bold Text* Button Shapes *Reduce Transparency* *Darken Colours* Reduce White Point *Reduce Motion*

On/Off Labels *Switch Control* AssistiveTouch Hold Duration Ignore Repeat Tap Assistance Dictation/Siri Flash for alerts *Mono Audio* Audio Volume Balance Hearing Aids Phone noise cancellation *Subtitles & Captioning*

*Audio Descriptions* *Haptic Feedback* *Guided Access* *Differentiate without colour* *Increase Contrast* Display contrast Cursor Size Dwell Control Keyboard Access Light Sensitivity Focus Style

ACCESSIBILITY FEATURES ON iOS/macOS/watchOS/tvOS

Page 35: Debugging Accessibility @ Craft Conf

DON’T WORRY ABOUT WHAT A USER CAN’T DO. FOCUS ON WHAT THE TECHNOLOGY CAN DO.

Page 36: Debugging Accessibility @ Craft Conf

WHY DO WE TAKE PHOTOS?

Page 37: Debugging Accessibility @ Craft Conf

DON’T WORRY ABOUT WHAT A USER CAN’T DO. FOCUS ON WHAT THE TECHNOLOGY CAN DO.

Page 38: Debugging Accessibility @ Craft Conf

MANUAL TESTING & DEBUGGING

Page 39: Debugging Accessibility @ Craft Conf

MANUAL TESTING ON HARDWARE

Page 40: Debugging Accessibility @ Craft Conf

*DEMO*

Page 41: Debugging Accessibility @ Craft Conf

-FOCUSABLE -LABELED -TRAITS

-ACTIONABLE -STATE -CONTEXT

VOICEOVER

Page 42: Debugging Accessibility @ Craft Conf

MANUAL TESTING IN XCODE-LOG OUT ACCESSIBILITY INFO -DEBUG VIEW HIERARCHY

Page 43: Debugging Accessibility @ Craft Conf

MAKING THE MOST OF MANUAL TESTING

Page 44: Debugging Accessibility @ Craft Conf

RATHER THAN TESTING EVERY ELEMENT ON THE SCREEN,

TEST A FEATURE FROM START TO FINISH.

Page 45: Debugging Accessibility @ Craft Conf

SIMPLIFY ELEMENTS: GROUP ITEMS & MAKE LARGER TAP

TARGETS.

Page 46: Debugging Accessibility @ Craft Conf

NOTHING IS BETTER THAN MANUAL TESTING.

Page 47: Debugging Accessibility @ Craft Conf

MANUAL TESTINGGOOD

✅ COMPREHENSIVEBAD 🕰 SLOW

Page 48: Debugging Accessibility @ Craft Conf

SPEEDING UP MANUAL TESTING

Page 49: Debugging Accessibility @ Craft Conf

KNOW YOUR VOICEOVER GESTURES!

Page 50: Debugging Accessibility @ Craft Conf

http://bit.ly/2nGZLgx

Focus an element Tap

Activate the focused element Double-tap

Double-tap an item Triple-tap

Move focus to the next or previous item Swipe right or left

Adjust a Slider value Swipe up or down

Move through custom actions Swipe up or down

Read all the elements in order, from the top of the screen Two-finger swipe up

Read all the elements in order, from currently focused element

Two-finger swipe down

Stop/resume speaking Two-finger tap

Go back to the previous view or dismiss an alert Two-finger scrub, quickly making a “z”

Scroll by a page in a table view or scroll view Three-finger swipe up or down

Scroll continuously in a table view or scroll view Double-tap and hold until you hear three rising tones, then drag up or down

Go to the next or previous page Three-finger swipe right or left

Speak additional information about the element, such as position within a list or whether text is selected

Three-finger tap

Focus on the first element on the screen Four-finger tap at top of screen

Focus on the last element on the screen Four-finger tap at bottom of screen

Mute or unmute VoiceOver Three-finger double-tap

Magic Tap Two-finger double-tap

Turn Screen Curtain on or off Three-finger triple-tap

Open the Item Chooser Two-finger triple-tap

Change the elements label Two-finger double-tap and hold

Use a standard gesture Double-tap and hold your finger on the screen until you hear three rising tones, then make the gesture. When you lift your finger, VoiceOver gestures resume. For example, to drag a volume slider with your finger instead of swiping up and down, select the slider, double-tap and hold, wait for the three tones, then slide left or right.

Open Notification Center Select any item in the status bar, then swipe down with three fingers

Open Control Center Select any item in the status bar, then swipe up with three fingers

Dismiss Control Center Two-finger scrub, quickly making a “z”

Switch between apps Double-click the Home button to display open apps, swipe left or right with one finger to select an app, then double-tap to switch to it.

Rearrange your Home screen Select an icon on the Home screen, double-tap and hold, then drag. Lift your finger when the icon is in its new location. Drag an icon to the edge of the screen to move it to another Home screen. You can continue to select and move items until you press the Home button.

Page 51: Debugging Accessibility @ Craft Conf

2-FINGER SWIPE UP

READ CONTENTS OF SCREEN IN ORDER

FROM THE TOP

Page 52: Debugging Accessibility @ Craft Conf

COMBINE DISPLAY ACCOMMODATION SETTINGS.Greyscale Dynamic Type Bold Text Reduce Transparency Reduce Motion

Differentiate without colour (macOS) Increase Contrast (macOS)

Page 53: Debugging Accessibility @ Craft Conf

ACCESSIBILITY SHORTCUT!

(AT THE BOTTOM OF THE LIST IN ACCESSIBILITY)

SETTINGS -> GENERAL -> ACCESSIBILITY -> ACCESSIBILITY SHORTCUT

Page 54: Debugging Accessibility @ Craft Conf

SUPPORT.APPLE.COM/ACCESSIBILITY

Page 55: Debugging Accessibility @ Craft Conf

TESTING & DEBUGGING WITH THE ACCESSIBILITY INSPECTOR

Page 56: Debugging Accessibility @ Craft Conf

ACCESSIBILITY INSPECTOR

*NEW IN XCODE 8*

Page 57: Debugging Accessibility @ Craft Conf
Page 58: Debugging Accessibility @ Craft Conf
Page 59: Debugging Accessibility @ Craft Conf

-ACCESSIBILITY ELEMENT INSPECTION -AUDIT -SETTINGS

ACCESSIBILITY INSPECTOR

Page 60: Debugging Accessibility @ Craft Conf

WORKS WITH HARDWARE OR THE SIMULATOR

Page 61: Debugging Accessibility @ Craft Conf

CONTROL SETTINGS ON HARDWARE

Page 62: Debugging Accessibility @ Craft Conf

“SPY” ON OTHER APPS

Page 63: Debugging Accessibility @ Craft Conf

*DEMO*

Page 64: Debugging Accessibility @ Craft Conf

TESTING & DEBUGGING WITH UI TESTING

Page 65: Debugging Accessibility @ Craft Conf

UI TESTING IN XCODE RELIES ON ACCESSIBILITY ELEMENTS.

Page 66: Debugging Accessibility @ Craft Conf

IF YOUR APP IS NOT UI TESTABLE, IT’S BECAUSE IT HAS POOR

ACCESSIBILITY DATA.

Page 67: Debugging Accessibility @ Craft Conf

UI TESTABLE == ACCESSIBLE?

Page 68: Debugging Accessibility @ Craft Conf

UI TESTING DOESN’T GUARANTEE ACCESSIBILITY.

Page 69: Debugging Accessibility @ Craft Conf

UI TESTING CAN BE HELPFUL FOR SUPPORTING VOICEOVER (AND SWITCH CONTROL TO AN EXTENT)

Page 70: Debugging Accessibility @ Craft Conf

BUT ACCESSIBILITY IS NOT JUST VOICEOVER.

Page 71: Debugging Accessibility @ Craft Conf

*DEMO*

Page 72: Debugging Accessibility @ Craft Conf

MAKE ACCESSIBILITY PART OF YOUR WORKFLOW

Page 73: Debugging Accessibility @ Craft Conf

A LOT OF ACCESSIBILITY WORK CAN BE DONE IN THE

DESIGN PHASE.

Page 74: Debugging Accessibility @ Craft Conf

ACCESSIBILITY IS NOT A FEATURE, EVERY FEATURE SHOULD BE

ACCESSIBLE.

Page 75: Debugging Accessibility @ Craft Conf

IF IT’S NOT ACCESSIBLE, IT’S NOT DONE.

Page 76: Debugging Accessibility @ Craft Conf

MAKE TESTING FOR ACCESSIBILITY PART OF

YOUR TEST PLAN.

Page 77: Debugging Accessibility @ Craft Conf

GET REAL USERS INVOLVED!

Page 78: Debugging Accessibility @ Craft Conf

GET BETA TESTERS WHO USE A VARIETY OF

ASSISTIVE TECHNOLOGIES.

Page 79: Debugging Accessibility @ Craft Conf

APPLEVIS.COM @APPLEVIS

Page 80: Debugging Accessibility @ Craft Conf
Page 81: Debugging Accessibility @ Craft Conf

THINGS TO REMEMBER

Page 82: Debugging Accessibility @ Craft Conf

KNOW YOUR VOICEOVER GESTURES!

Page 83: Debugging Accessibility @ Craft Conf

DON’T LET THE SIZE OF WORK DISCOURAGE YOU FROM STARTING IT.

Page 84: Debugging Accessibility @ Craft Conf

REDUCING COSTS•Move most Accessibility work to design phase •Focus on testing the right things •Work incrementally •Prioritise most important features

Page 85: Debugging Accessibility @ Craft Conf

IF IT’S NOT ACCESSIBLE, IT’S NOT DONE.

Page 86: Debugging Accessibility @ Craft Conf

DON’T WORRY ABOUT WHAT A USER CAN’T DO. FOCUS ON WHAT THE TECHNOLOGY CAN DO.

Page 87: Debugging Accessibility @ Craft Conf

THANK YOU!@MOSTGOOD

Page 88: Debugging Accessibility @ Craft Conf

QUESTIONS?@MOSTGOOD