This tutorial aims to introduce you to the implementation of ARIA (Accessible Rich Internet Applications) roles and attributes. ARIA is a specification of the W3C and is used to make web content more accessible to people with disabilities.
By the end of this tutorial, you will learn how to:
- Understand ARIA roles and attributes.
- Implement ARIA roles and attributes in HTML code to enhance web accessibility.
You should have a basic understanding of HTML and CSS. Familiarity with JavaScript can be helpful but is not required.
2.1 ARIA Roles
ARIA roles provide information about how an element is supposed to function in the webpage. These roles help assistive technologies, like screen readers, understand the content better.
2.2 ARIA Attributes
ARIA attributes provide additional information about the elements and their state. For example, aria-disabled
indicates if the element is disabled.
2.3 Best Practices
- Avoid using ARIA roles and attributes where native HTML equivalents exist.
- Test your site with actual screen readers and other assistive technologies.
3.1 Using ARIA Roles
Here, we're using the role
attribute to define a navigation bar.
<nav role="navigation">
<a href="#">Home</a> |
<a href="#">About</a> |
<a href="#">Contact</a>
</nav>
3.2 Using ARIA Attributes
The aria-label
attribute is used when the visual representation of the element isn’t adequately descriptive.
<button aria-label="Close" onclick="myDialog.close()">X</button>
In this example, the screen reader will announce "Close" instead of "X".
In this tutorial, you learned about ARIA roles and attributes and how to use them in your HTML code to make your website more accessible.
To continue your learning journey, you might want to explore more about other ARIA roles and attributes, and how to use them in complex widgets like sliders, drag and drop, etc.
5.1 Exercise 1: Create an HTML form with input fields for name and email. Use ARIA roles and attributes to make this form accessible.
5.2 Exercise 2: Create a navigation bar with links to various sections of a webpage. Use ARIA roles and attributes to make this navigation bar accessible.
Solutions:
5.1 Solution to Exercise 1:
<form role="form">
<label for="name" aria-label="Enter your name">Name:</label><br>
<input type="text" id="name" name="name"><br>
<label for="email" aria-label="Enter your email">Email:</label><br>
<input type="text" id="email" name="email">
</form>
5.2 Solution to Exercise 2:
<nav role="navigation" aria-label="Main">
<a href="#home">Home</a>
<a href="#about">About</a>
<a href="#contact">Contact</a>
</nav>
For further practice, try to implement ARIA roles and attributes in more complex HTML structures like tables or lists.