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
Ankita Kulkarni
May 24, 2019
170
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
320
Let's fight - Redux side-effects showdown
kulkarniankita09
0
280
The Art of Humanizing Pull Requests
kulkarniankita09
0
800
Being Agile - Scrum and Extreme Programming
kulkarniankita09
0
190
Featured
See All Featured
Marketing to machines
jonoalderson
1
5.8k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
420
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
GraphQLとの向き合い方2022年版
quramy
50
15k
So, you think you're a good person
axbom
PRO
2
2.2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
260
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Code Reviewing Like a Champion
maltzj
528
40k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
380
The Cult of Friendly URLs
andyhume
79
7k
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