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
160
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
320
Beyond the React Native Benchmark
kulkarniankita09
0
150
Make your React Native apps accessible 🙌
kulkarniankita09
0
300
Let's fight - Redux side-effects showdown
kulkarniankita09
0
260
The Art of Humanizing Pull Requests
kulkarniankita09
0
780
Being Agile - Scrum and Extreme Programming
kulkarniankita09
0
160
Featured
See All Featured
Skip the Path - Find Your Career Trail
mkilby
1
190
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
270
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.1k
For a Future-Friendly Web
brad_frost
183
10k
sira's awesome portfolio website redesign presentation
elsirapls
0
330
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
250
The Invisible Side of Design
smashingmag
301
52k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
The Curse of the Amulet
leimatthew05
2
14k
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