Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Accessibility 360 - Web -> Mobile
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Ankita Kulkarni
May 24, 2019
180
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
360
Oh Hello Apollo client, Goodbye Redux!
kulkarniankita09
1
560
Lessons learned: Architecting react apps
kulkarniankita09
1
340
Beyond the React Native Benchmark
kulkarniankita09
0
170
Make your React Native apps accessible 🙌
kulkarniankita09
0
330
Let's fight - Redux side-effects showdown
kulkarniankita09
0
290
The Art of Humanizing Pull Requests
kulkarniankita09
0
810
Being Agile - Scrum and Extreme Programming
kulkarniankita09
0
190
Featured
See All Featured
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Making the Leap to Tech Lead
cromwellryan
135
10k
Mobile First: as difficult as doing things right
swwweet
225
10k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
790
For a Future-Friendly Web
brad_frost
184
10k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Evolving SEO for Evolving Search Engines
ryanjones
0
310
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
GitHub's CSS Performance
jonrohan
1033
470k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
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