Accessibility with React

While life is not the same for everyone, we can always improve it by helping people when they need help. As a developer, you can help people by creating accessible applications so that challenged people can easily make their way around your web apps.

React is one of the most common app development frameworks today, and there is always a possibility to make better apps. Before we find out ways to improve accessibility in React apps, it is better to understand web accessibility.

What is Web Accessibility?

Accessing web applications is not easy for people who are visually challenged or have any disability. When you factor in features that can assist such users to use your apps without issues, it is known as accessibility. Web accessibility is a vast concept, becoming an increasingly important topic across web development.

There is a set of guidelines that every app development project should follow if they want to make their web apps accessible to all. It is known as the Web content accessibility guidelines. Moreover, there is another technical document named Web Accessibility Initiative: Accessible Rich Internet Applications that can help you implement the guidelines in your apps.

Knowing about web accessibility, it is now time to understand how to achieve and improve accessibility in React apps.

How to Improve Web Accessibility in React Apps?

Using semantic elements

Before HTML5 was released, the number of semantic elements was pretty low. Most times, developers would use common elements like input, div, etc., which would not provide native accessibility benefits to apps. To make such apps accessible, a lot of hard work was needed, which was noticed by the World Wide Web Consortium.

The newer version of HTML, which is HTML5, was released with a wide variety of semantic elements. Semantic tags like <header>, <footer>, <main>, <section>, <article>, etc. were introduced, and these tags are often used where you need something related to the tag.

Suppose you are creating content for your website, rather than creating a div and naming it main and then working around screen readers to identify it correctly. Now, you must use the <main> tag. Any wrapped inside such a tag will be easily identified by screen readers and accessibility devices, which may assist visitors in understanding the webpage better.

Mandatorily add alternate text and labels.

Today’s web applications are heavily based on graphics and user experience. While the graphics are good for people who don’t have accessibility challenges, they can be pretty painful for people using screen readers.

When you place an image of a product without any alternate text, no matter how great the image is, it will only help the screen readers if an alternate text is supplied.

Most React developers miss out on providing alternate texts and labels to non-text items on a webpage, resulting in a poor user experience for people using accessibility devices. When building your React apps, follow the WCAG 2.0 guidelines and provide informative labels and alternate texts.

Keyboard navigation

Many people love using a keyboard to navigate a webpage, and screen readers also require keyboard navigation to go over the page. If your applications are not easy to navigate, people using keyboards and accessibility devices will be challenged.

When developing React apps, always add a natural tab index to items in your application. This way, the user can correctly move through the page and take their actions without relying on other people for help.

Modal accessibility

Modals are everywhere, and while customers hate them, almost every website has a modal. Modals are banners that are at the top of your screens when you load or enter a website. They are usually elements that disable everything in the background unless they are addressed.

Modals often provide important information, and to understand that information, the modal should be accessible. Whenever a modal pops up on your screen, it should be brought into focus, and the screen readers should be able to read the modal text upon focus. Moreover, the keyboard navigation should be available to travel within the modal, and it should not move out of the modal into the background untill the time it is shown at the top.

Test with screen readers.

The only way to improve your web app’s accessibility is by testing it regularly. As soon as a new component is developed and integrated, it should be tested for accessibility, and any bugs that arise should be fixed immediately. You can use the NVDA tool for Windows testing and VoiceOver for macOS to test and improve accessibility in React App.


Coming to an end, developing apps that work seamlessly with different screen readers and accessibility apps is hard, but with practice, you can surely achieve great results. Follow the ARIA technical documentation to understand the various ARIA elements available. What to use in which situation and how to stick to the WCAG guidelines to deliver excellent, accessible apps.

Author Name

Biography:- Harikrishna Kundariya, is a marketer, developer, IoT, ChatBot & Blockchain savvy, designer, co-founder, and Director of eSparkBiz  Technologies. His 12+ years of experience enables him to provide digital solutions to new start-ups based on IoT and SaaS applications.