Building Accessible React apps
Submitted by Vikas Parashar (@vicodin) via Zainab Bawa (@zainabbawa) on Thursday, 10 October 2019
Duration: 40 mins full talk
As web developers, we all have a responsibility to develop accessible sites/apps, but for most of us it’s another checkbox to tick. This talk will be about how accessibility and good user experience goes hand in hand, and are not mutually exclusive.
In this talk, we will talk about what is accessibility and how we raised awareness about it in HackerRank. We will talk about the process to integrate accessibility first mindset and various ways in which we improved accessibility and ingrained it in our development process which helped the company grow.
Key takeaways from case study:
- Why should we care about accessibility.
- How to improve accessibility of react apps.
- How to use test react apps for accessibility(Resources)
- Unit testing
- Browser testing
- Keyboard testing
- Screen reader testing
- Linters in code editor
What is accessibility
- General accessibility
- Web accessibility
Why we did it(Making HackerRank websites accessible)
- Business reasons
- UX improvement
- Inclusion/Increase in user base(more people can user our site)
- Corporate Social Responsibility
- More enterprise customer(some customer requires product accessibility compliance in contract)
- Legal reasons(accessibility compliance laws in various countries, latest Apple and Dominos fiasco)
- Others(Empathy, WCAG, ATAG)
- Business reasons
How we did it
- Updating existing reusable UI components(will have examples of few major components with code and demo)
- Custom components specific to accessibility(HOC to detect keyboard navigation with code and demo)
- Showing minimum contrast pass/fail on internal colour library(code and demo)
- Setting up Unit testing(code and examples)
- Setting up Dev tools warning(code and demo)
- Dark mode.(Strategy/code and demo, and screenshots of feature requests from visually impaired users)
eslint-plugin-jsx-a11yto catch issues while coding(screenshots/demo)
- ChromeVox/VoiceOver for screen reader testing(demo)
What’s next/We’re still doing it
- Accessibility is a process and not a project.
- Integrating reach router functionality with react router 5
- CI/CD integration.
- Positive and exciting feedback from users on dark mode and on user experience.
- As of now, there is no way to track screenreader users or distinguish different users with disabilities from the rest.
- Idea of web accessibility is to remove discrimination from web and any attempt towards that helps the cause.
- Levelling the field for candidates as now they don’t need to disclose their disability and ask for special treatment. We are closer to make our site accessible for everyone which removes the dependency from customer support team.
Vikas Parashar is frontend engineer and web accessibility evangelist at HackerRank. He has also co-organised InOut hackathons in the past.