build and test with empathy - nordic testing days · types of impairments, software people use...

28
Build and test with empathy Sharanya Viswanath Slack Technologies, Inc. Nordic Testing Days 2018 1

Upload: others

Post on 31-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Build and test with empathy

Sharanya ViswanathSlack Technologies, Inc.

Nordic Testing Days 20181

Page 2: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

“The craft of programming begins with empathy, not formatting or languages

or tools or algorithms or data structures.

- Kent Beck, Creator of Extreme Programming

2

Page 3: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

● Understanding accessibility

○ Why should you care?

○ Types of impairments, Software people use

○ Standards/ legislation

○ Doing it right

● Building accessible software

○ For visual, motor, cognitive impairments

● Testing for accessibility

○ Test plan, Manual testing, Automated testing

● Resources

Agenda

3

Page 4: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Understanding A(11)yA(ccessibilit)y

4

Page 5: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Why should you care?

5

Improve Efficiency

Reduce Legal Liability

Increase Market Share

EQUAL WEB ACCESS

Social Responsibility

Page 6: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Disabilities that impact

software use

6

BISUAL

COGNITIVE

VISUAL

MOTOR

AUDITORY

Page 7: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Common Tools

▪ Most OS’ basic support:- Zoom

- Contrast

- VoiceOver

▪ 3rd party softwares:- JAWS(Job Access with Speech)

- NaturalReader- Augmented Reality and AI:

- Aira Glasses by Aira- Seeing AI by Microsoft

7

Page 8: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

● Guidelines:○ W eb Content Accessibility Guidelines (W CAG) by W3C

■ Levels A, AA, AAA

● Legislations:○ European Accessibility Act○ Section 508

● Adoption:○ 1985 - present ○ Over 40 countries

Accessibility Standards

8

Page 9: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

● Understand users ○ Invest in usability testing ○ Meaningful design approaches ○ Survey post release○ Iterate

● Don’t overdo it

● Include early-on

● Not an afterthought!

Doing it right

9

Page 10: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Build(visual, cognitive)

10

Page 11: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Layout

<div class="button"></div> <div class="button" role="button"></div>

Use <button> instead

11

Page 12: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Typography

12

WebAIM: https://webaim.org/techniques/fonts

font-weight font-size line-height font-family

Page 13: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Color

WebAIM:https://webaim.org/resources/contrastchecker/

13

Tip: Do NOT use color to convey information

Page 14: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

BBC Homepage: www.bbc.com - zoom from 25% to 500%

Resize

14

<meta name="viewport" content="width-device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable =no">

Page 15: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Build(motor)

15

Page 16: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Navigation with color contrast friendly focus ring

Navigation

16

tabindex=-1 to tab out of focus

Page 17: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Testing

17

Page 18: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Test plan

Keyboard Nav

Touch Screen

Voiceover Color Contrast Zoom

Browsers • ** • • •

Desktop App • ** • • •

Mobile App * • • • •

18

▪ Build a test matrix▪ Look for items to automate

* - Some mobile users connect their tablets/phones to an external keyboard** - Some users have touch monitors to be able to interact with their browser or desktop app

Page 19: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Manual/Automated Testing

19

Page 20: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Common tools ▪ Manual- aXe - Chrome/Firefox Extension

- JAWS by Freedom Scientific

- Tota11y by Khan academy - Voiceover by Apple

▪ Automation: - aXe - Core integrations - Selenium Webdriver

- Pa11y- Tenon.io

- Mobile: - XCUITest for iOS- Espresso for Android

- Appium for iOS and Android

20

Page 21: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Browser Extensions

aXe Chrome/Firefox Extension: https://axe-core.org/

21

Tota11y: a11y visualizationhttp://khan.github.io/tota11y/

Page 22: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

axe-coreIntegrations

Rspec matcher: https://github.com/dequelabs/axe-matchers/blob/develop/docs/RSpec.md

22

expect(element).to be_accessible.checking_only

:label, :color-contrast

expect(page).to be_accessible.according_to

:wcag2a, :section508

expect(page).to be_accessible.within('.main','.head')

.excluding('.footer')

Page 23: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Webdriver

Focus State, TabIndex, Other associated labels

23

def expect_element_focused(element, focus_selector)

expect(element.element(css: focus_selector)).to existexpect(element.focused).to(be_truthy, "Failed")

expect(element.attribute_value('aria-label').empty?).to be false

expect(element.attribute_value('tabIndex')).to eq '-1'

end

Page 24: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Resources

24

Page 25: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Info▪ HTML5 for web - http://www.html5accessibility.com/

▪ iOS Accessibility guidelines -https://developer.apple.com/accessibility/ios/

▪ Android Accessibility guidelines -

https://developer.android.com/guide/topics/ui/accessibility/

25

Page 26: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Learn more

26

• Designing Slack for everyone - https://slackhq.com/designing-slack-for-everyone-456002920bf2

• “Accessibility for everyone” by Laura Kahlbag -https://abookapart.com/products/accessibility-for-everyone

• Udacity - https://www.udacity.com/course/web-accessibility--ud891

• Conference - CSUN Assistive technology conference -http://www.csun.edu/cod/conference/2018/sessions/

• Global accessibility awareness day - 3rd thursday every May -http://globalaccessibilityawarenessday.org/

Page 27: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

Thanks for your time! …………………………………………………

Sharanya ViswanathSenior Software Engineer

Slack Technologies, Inc…………………………………………………

www.linkedin.com/in/sharanyav [email protected] web-

a11y.slack.com

27

Page 28: Build and test with empathy - Nordic Testing Days · Types of impairments, Software people use Standards/ legislation Doing it right Building accessible software For visual, motor,

VoiceOver

28