For users of assistive technologies, accessing and interacting with websites can be difficult if the proper structure and cues aren’t in place. This is where ARIA (Accessible Rich Internet Applications) landmarks and roles come in handy. Implementing ARIA landmarks and roles can significantly improve your website’s accessibility, helping users navigate more easily and interact with web elements effectively. If you’re new to ARIA, don’t worry! This guide will walk you through ARIA landmarks and roles, why they matter, and how to implement them step-by-step.
What Is ARIA and Why Is It Important?
ARIA is a set of HTML attributes intended to make webpages easier to navigate for people who rely on assistive technology, such as screen reading software. These attributes help bridge gaps in standard HTML that might not convey sufficient meaning to people with disabilities.
By using ARIA, developers can label, describe, and define the functionality of elements in ways that ensure everyone has a better user experience. Regarding web accessibility, ARIA attributes are recommended in some cases by the Web Content Accessibility Guidelines (WCAG), which provide standards to help websites comply with accessibility requirements.
ARIA landmarks and roles are two essential aspects of making sure your website content is accessible for all users to understand and interact with.
ARIA Landmarks: What Are They?
ARIA landmarks are unique markers you can add to different sections of your webpage to make navigation easier for users with disabilities. These landmarks help people who use screen readers understand the structure of a webpage and quickly jump to different sections. Think of them as signposts, making it clear where key sections—like the header, main content, navigation, and footer—are located.
The major ARIA landmarks include:
<header>
: Identifies the top section of the webpage.<main>
: Indicates the main content of the page.<nav>
: Points to the area that contains navigational links.<footer>
: The bottom section of the webpage.
Why Are ARIA Landmarks Important?
ARIA landmarks are invaluable for users with visual or motor impairments who use the keyboard or screen reader to navigate the web. They allow users to skip repetitive elements (like navigation bars) and jump directly to the content they’re looking for. Without these landmarks, a user would have to listen to every single line of the page to figure out where the main content starts or how to get to the footer. Using ARIA landmarks ensures that your website is easy to navigate for everyone.
How to Implement ARIA Landmarks Step-by-Step
Now that you understand the importance of ARIA landmarks let’s look at how to implement them in your website’s code. The good news? Adding ARIA landmarks is simple and can be done using standard HTML elements.
Adding the Header Landmark
The <header>
element is used to define the global top section of your page, which typically contains things like the website logo, title, or main navigation links. Here’s an example of the correct usage of the HTML5 <header>
region:
<header>
<h1>My Cool Website</h1>
<h1>My Cool Website</h1>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about">About</a></li>
<li><a href="/products">Products</a></li>
</ul>
</nav>
</header>
The Main Landmark
The <main>
element is crucial because it defines the primary content of the page. The <main> element, along with a skip link, can allow users of assistive technology to skip past repetitive content such as the navigation:
<main role="main">
<h2>Main Content</h2>
<p>This is the most important part of the page.</p>
</main>
By using role=”main”, you’re ensuring that screen readers can quickly identify and jump to the core content of your page. Only one main landmark should be used per page.
Using the Navigation Landmark
The navigation area of your website should be easy to identify and skip if necessary. You can use the <nav> element or the ARIA role, but you do not need to use both:
<nav>
<ul>
<li><a href="#section1">Section 1</a></li>
<li><a href="#section2">Section 2</a></li>
</ul>
</nav>
<div role="navigation">
<ul>
<li><a href="/products">Products</a></li>
<li><a href="/about">About Us</a></li>
</ul>
</div>
With the navigation region, you’re clearly marking the section of the page that contains links for navigating to other parts of the site.
Adding the Footer Landmark
Finally, the <footer>
element typically contains secondary content, such as copyright information or additional links. Adding a landmark here helps screen reader users know when they’ve reached the end of the page:
<footer role="contentinfo">
<p>© 2024 Your Company</p>
</footer>
In this case, role= "contentinfo"
tells screen readers that this section provides supplementary information about the website.
ARIA Roles: What Are They?
ARIA roles go beyond marking sections of the page—they describe the functionality of specific elements. By using ARIA roles, you’re defining how an element should behave or be interacted with, especially when using assistive technologies.
Some commonly used ARIA roles include:
- “button”: Makes non-biased elements like
<div>
behave like a button. - “dialog”: Defines a pop-up dialog window.
- “alert”: Marks an element as an important alert that needs immediate attention.
Why Are ARIA Roles Important?
ARIA roles give more meaning to non-standard HTML elements. For example, if you create a custom button using a <div>
instead of the traditional <button>
element, a screen reader might not recognize it as a button. By assigning it an ARIA role, you ensure it’s interpreted correctly, making the interaction more intuitive and accessible.
How to Implement ARIA Roles Step-by-Step
Let’s check out some examples of proper ARIA implementation.
Creating a Custom Button
If you have a custom button element (like a <div>
styled as a button), you can add the role="button"
to make sure it’s recognized as an interactive button by screen readers:
<div role="button" tabindex="0" onclick="submitForm()">Submit</div>
The ARIA role “button” tells assistive technology to announce this element as a button, and the “tabindex” attribute makes the element focusable via the keyboard. However, it’s always best to use the correct semantic HTML5 <button>
tag whenever possible.
Adding a Dialog Role
For models or pop-up windows, you can use the role= "dialog"
to make them accessible:
<div role="dialog" aria-labelledby="dialogTitle" aria-describedby="dialogDescription">
<h2 id="dialogTitle">Confirmation</h2>
<p id="dialogDescription">Are you sure you want to delete this file?</p>
<button onclick="closeDialog()">Cancel</button>
</div>
The aria-labelledby and aria-describedby attributes help give context to the dialog box for users relying on assistive technologies.
Creating an Alert
If you need to display important, time-sensitive information—like an error message or form feedback—you can use the role= "alert"
:
<div role="alert">
<p>Error: The "password" field is required.</p>
</div>
This role makes sure that screen readers announce the alert immediately, ensuring the user doesn’t miss critical information.
Going Beyond ARIA: Continue Your Accessibility Journey
The HTML markup of your website is far more critical than just defining the visual style of the site. It is used by screen reading software, assistive technologies, and keyboard navigation to ensure users have easy access to content. SEO crawlers also use it to determine the accuracy and relevance of your content.
By adding landmarks like header, main, navigation, and footer, and using roles like button, dialog, and alert, you’ll not only meet the accessibility standards outlined by WCAG, but you’ll also create a more user-friendly website for everyone.However, this is just one piece of the web accessibility puzzle.
Team Up with 216digital
At 216digital, we understand that keeping up with ADA compliance and accessibility best practices can be challenging. That’s why we’re here to help. We specialize in helping businesses achieve and maintain ADA compliance with expert guidance and actionable strategies. Schedule an ADA briefing with our experts today to learn more about how we can guide you through the complexities of accessibility, ensuring your website meets legal standards and delivers a great experience for all users.
Let’s make the web more accessible, together—book your ADA briefing today!