Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Accessibility 360 - Web -> Mobile
Search
Ankita Kulkarni
May 24, 2019
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Accessibility 360 - Web -> Mobile
Ankita Kulkarni
May 24, 2019
More Decks by Ankita Kulkarni
See All by Ankita Kulkarni
5 things you must know to take your Next app to the next level
kulkarniankita09
0
330
Oh Hello Apollo client, Goodbye Redux!
kulkarniankita09
1
540
Lessons learned: Architecting react apps
kulkarniankita09
1
310
Beyond the React Native Benchmark
kulkarniankita09
0
140
Make your React Native apps accessible 🙌
kulkarniankita09
0
290
Let's fight - Redux side-effects showdown
kulkarniankita09
0
250
The Art of Humanizing Pull Requests
kulkarniankita09
0
780
Being Agile - Scrum and Extreme Programming
kulkarniankita09
0
160
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
From π to Pie charts
rasagy
0
240
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
230
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
500
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
440
Building an army of robots
kneath
306
46k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Marketing to machines
jonoalderson
1
5.6k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
190
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Statistics for Hackers
jakevdp
799
230k
Transcript
@kulkarniankita9 Accessibility 360 Web -> Mobile Ankita Kulkarni, Solutions Architect,
Rangle.io
@kulkarniankita9 How many of you have worked with a11y in
web apps? ✋
@kulkarniankita9 How many of you have worked with a11y in
mobile apps? ✋
@kulkarniankita9 Hi, I’m Ankita!
@kulkarniankita9 Today… 2 Dev Common components Design system Examples 3
The takeaway Testing Lessons learned Talk to me 1 The What! How voice over works? Key a11y properties Semantics
@kulkarniankita9 We need to make this native world a better
place for everyone
@kulkarniankita9 From 2009 to 2014, mobile screen reader usage increased
from 12% to 82% of people who use screen readers, a huge increase in just five years.
@kulkarniankita9 How does voiceover work?
@kulkarniankita9 Instagram voice-over
@kulkarniankita9 Key considerations <Text> Lorem ipsum </Text> Text Button States
Keyboards Screen Sizes CONTINUE CONTINUE
@kulkarniankita9 Web Mobile Semantics <p>Heading1</p> <Text>Heading1</Text> <div>{…}</div> <View>{…}</View> <input type=“text”>…</input>
<TextInput>…</TextInput> <button onClick>..</button <Button>…</Button>
@kulkarniankita9 Make components accessible
@kulkarniankita9 export interface IButtonProps { onPress: () => void; accessibilityLabel:
string; accessibilityHint?: string; accessibilityRole: string; text: string; buttonStyle?: any; isDisabled?: boolean; buttonTheme?: any; color: keyof typeof IButtonColors; } Button props
@kulkarniankita9 Native elements
@kulkarniankita9 Build a design system of reusable accessible components
@kulkarniankita9 sooo… is my entire app accessible?
Show me some codeeee..? @kulkarniankita9
@kulkarniankita9 Mobile Web ariaLabel and a11yLabel <p aria-label=“Lorem ipsum”>
Lorem ipsum dolor </p> <Text accessibilityLabel=“Lorem ipsum”> Lorem ipsum dolor </Text>
@kulkarniankita9 Mobile Web accessibilityStates const selected = false; if (checked)
{ selected = true; } <input type="checkbox" tabindex=“0" aria-checked={a11yStates} onClick={() => {}}> <label>Jon Snow</> </> if (disabled) { a11yStates.push('disabled'); } <Touchable accessibilityLabel=“Jon Snow” accessibilityStates={a11yStates} accessibilityRole=“button" disabled={disabled} onPress={() => {}}> <View><Text>Jon Snow</></> </Touchable>
@kulkarniankita9 Mobile Web role & accessibilityRole <Card> <img src=“..” role=“image”
/> <h1 role=“header”> DESTINATION</> <h4 role=“header”> Madison, WI</> <p> Founded in 1829….</> </> <Card> <Image src=“..” accessibilityRole=“image” /> <Text accessibilityRole=“header”> DESTINATION</> <Text accessibilityRole=“header”> Madison, WI</> <Text>Founded in 1829….</> </>
@kulkarniankita9 Mobile Web Touchable <button className=“icon-button" aria-label=“Add to favourites" aria-pressed="false">
</> <TouchableWithoutFeedback accessibilityComponentType= “button” onPress={onPress}> <View> <Image accessibilityLabel= “Add to favourites” /> </> </>
@kulkarniankita9 A lot of companies want to automate accessibility to
hit their target audience
@kulkarniankita9 Web Mobile Testing tools Axe Accessibility Inspector Accessibility Scanner
Wave Voiceover Talkback
@kulkarniankita9 Testing tools
@kulkarniankita9 a11y linter https://github.com/FormidableLabs/eslint-plugin-react-native-a11y https://github.com/evcohen/eslint-plugin-jsx-a11y
@kulkarniankita9 It’s no substitute for real user feedback
@kulkarniankita9 Reakit example
@kulkarniankita9 Animations
@kulkarniankita9 Best practices • Ensure animations don’t flash too much
• There is a setting to disable animations • Slow it down when “reduce motion” setting is activated
@kulkarniankita9 Lessons learned
@kulkarniankita9 a11y properties in open source libraries
@kulkarniankita9 a11y is different in iOS and Android
@kulkarniankita9 Use Storybook for tracking a11y components
@kulkarniankita9 a11y checklist
@kulkarniankita9 a11y audit , • Get an a11y expert to
perform the audit • Automate testing for a11y • Use Lighthouse for web
@kulkarniankita9 This is pretty much the end.. Questions? Comments? Feedback…make
it positive—
@kulkarniankita9 You did it
@kulkarniankita9 Resources Pokemon shock https://kotaku.com/the-banned-pokemon- episode-that-gave-children-seizures-5757570
@kulkarniankita9 Resources Good a11y example https://reakit.io/docs/button/
@kulkarniankita9 Resources a11y checklist https://frontendchecklist.io/#section- accessibility
@kulkarniankita9 Resources Mobile usage https://webaim.org/projects/ screenreadersurvey5/#mobileusage