What are ARIA Labels

Learn about ARIA Labels, ARIA Roles, types, best practices, and how to use them effectively

Get Started free
Home Guide What are ARIA Labels

What are ARIA Labels

ARIA labels are extra bits of information added to website parts. They help assistive tools for people with disabilities understand what’s on the screen, making websites easier for visually impaired users to navigate and use.

Overview

ARIA (Accessible Rich Internet Applications) labels are attributes used in HTML to improve the accessibility of web content for users with disabilities.

The Purpose of ARIA Labels is they help screen readers and other assistive technologies interpret and describe elements that are otherwise difficult to understand, such as buttons, forms, and dynamic content.

ARIA labels work by using specific attributes like aria-label to provide textual descriptions for elements, allowing users to interact with them more effectively.

Example: Here, the button’s purpose is described to screen readers, even though it only has an “X” as visible text.

<button aria-label=”Close” onclick=”closeWindow()”>X</button>

What are ARIA Labels?

ARIA labels are special tags added to website elements to help screen readers understand their purpose. This makes websites easier to use for people with disabilities, especially those who are visually impaired. By adding text descriptions, ARIA labels help screen readers explain what different parts of a website do.

How to use ARIA labels?

ARIA labels are added using the “aria-label” tag in HTML.

To use them properly:

  • Add the “aria-label” tag to the part of the website that needs a description.
  • Write a simple, clear description of what that part does.
  • Make sure the description matches what the part actually does.

To illustrate the use of ARIA labels on the bstackdemo website, let’s consider an example of a product card with an “Add to cart” button:

<div class="product-card">

  <img src="product-image.jpg" alt="Smartphone X">

  <h3>Smartphone X</h3>

  <p>High-performance smartphone with advanced features</p>

  <button aria-label="Add Smartphone X to cart">Add to cart</button>

</div>
Copied

In this example, the “Add to cart” button uses an ARIA label to provide more context for screen reader users. The aria-label attribute specifies “Add Smartphone X to cart,” which gives users a clearer understanding of what item they’re adding to their cart.

Examples of ARIA labels

ARIA labels are crucial for making web content accessible, particularly for users who rely on screen readers. They provide additional context about elements, helping assistive technologies describe the function of various parts of a website.

With respect to the bstackdemo website some examples of ARIA labels are:

1. Product Cards

The aria-label on the product card’s “Add to cart” button specifies the product name, making it clear to screen readers which item will be added.

<button aria-label="Add iPhone 12 Pro to cart">Add to cart</button>
Copied

This helps users understand exactly what they are adding to their cart.

2. Search Bar

The aria-label on the search input describes its purpose, ensuring screen readers announce it as a search field.

<input type="search" aria-label="Search for products" placeholder="Search for products">
Copied

It informs users that this input is for searching products on the website.

3. Filter Options

The aria-label on the dropdown explains that it filters products by vendor.

<select aria-label="Filter products by vendor">

  <option value="">All vendors</option>

  <option value="apple">Apple</option>

  <option value="samsung">Samsung</option>

</select>
Copied

This allows users to understand the purpose of the dropdown menu.

Importance of ARIA Labels in Accessibility

Here are the reasons why ARIA Labels in Accessibility is important:

  1. Better for Screen Readers: ARIA labels provide important information that helps screen readers explain what different website elements do to users who can’t see them.
  2. Improved User Experience: By giving clear descriptions of buttons and other interactive elements, ARIA labels make it easier for all users, regardless of ability, to navigate and use websites.
  3. Filling in Visual Gaps: For things like icon buttons or form fields that rely on images, ARIA labels offer helpful context that might be missed by users with visual impairments.
  4. Following Accessibility Rules: Using ARIA labels helps websites meet important accessibility standards, like the Web Content Accessibility Guidelines (WCAG) and the European Accessibility Act (EAA).
  5. Creating Inclusive Designs: By adding ARIA labels, developers make sure their websites are accessible to more people, including those with disabilities.

Pro Tip : When using BrowserStack’s ARIA Testing tool, make sure to focus on the “Workflow Analyzer” feature to review the flow of interactive elements and their accessibility. This tool not only checks if your ARIA labels are implemented correctly but also identifies any missing or incorrect attributes.

When to Use ARIA Labels in Web Development

ARIA labels play a crucial role in making web content accessible, especially when elements don’t provide clear visual cues.

Some key moments where the use of ARIA labels is important in Web Development are listed below. All of the code snippet examples are from the bstackdemo website

1. Icon-only Buttons or Links

For buttons or links that use only icons, ARIA labels provide context for screen readers to explain what the icon represents. Without these labels, users who can’t see the icon may not understand its purpose.

<button aria-label="Open login modal">

  <svg> <!-- Login icon --> </svg>

</button>
Copied

2. Form Inputs Without Visible Labels

If a form input doesn’t have a visible label (due to design constraints), an ARIA label can describe the field’s purpose for screen readers, ensuring accessibility.

<input type="text" aria-label="Enter your email address" placeholder="Email address">
Copied

3. Custom Interactive Elements

When creating custom elements that don’t have built-in HTML roles, ARIA labels can define their purpose for screen readers. This is useful for custom components like sliders, switches, or modals.

<div role="slider" aria-label="Adjust brightness" aria-valuemin="0" aria-valuemax="100" aria-valuenow="50">

  <!-- Custom slider for brightness -->

</div>
Copied

4. Dynamic Content Updates

For areas that update dynamically, such as live status updates or notifications, ARIA labels provide screen readers with context about the changing content.

<div aria-live="polite" aria-label="New message notifications">

  <!-- Dynamic notifications appear here -->

</div>
Copied

5. Improving Navigation for Complex Layouts

When the layout is complex, ARIA labels can clarify the purpose of navigation areas, helping screen reader users understand which section they are in.

<nav aria-label="Main site navigation">

  <ul>

    <li><a href="/home">Home</a></li>

    <li><a href="/about">About</a></li>

  </ul>

</nav>

<nav aria-label="Footer links">

  <ul>

    <li><a href="/privacy">Privacy Policy</a></li>

    <li><a href="/terms">Terms of Service</a></li>

  </ul>

</nav>
Copied

What is the aria-label Attribute?

The aria-label attribute is an ARIA (Accessible Rich Internet Applications) attribute that provides a text label for HTML elements, particularly those without visible text. It enhances accessibility by offering additional information about an element’s purpose or functionality to assistive technologies like screen readers, helping users with disabilities better understand and interact with web content.

Difference Between aria-label and aria-labelledby

Both aria-label and aria-labelledby serve important roles in improving web accessibility, with the choice depending on whether a direct label is needed or an existing element should be referenced.

Featurearia-labelaria-labelledby
PurposeProvides a text description for an element.Refers to another element that provides the text description.
UsageDefines the label text directly within the attribute.References the id of another element that contains the label text.
Example<button aria-label=”Close menu”>X</button><button aria-labelledby=”closeButtonLabel”>X</button><span id=”closeButtonLabel”>Close menu</span>
Best forElements without visible text, like icons or abstract controls.When a visible label element exists elsewhere on the page.
Multiple ReferencesCannot reference multiple elements for a description.Can reference multiple elements (IDs) to combine descriptions.
ReadabilityThe label is defined inline, useful for simple cases.The text is external and flexible, especially for complex descriptions.
Dynamic UpdatesStatic label that does not update automatically.Can update dynamically if the referenced element’s content changes.

How to Improve Accessibility using ARIA Labels?

To make websites more accessible using ARIA labels, keep these important points in mind:

  • Use ARIA labels for elements without visible text: Add ARIA labels to buttons with only icons, form fields without visible labels, or custom interactive elements so screen readers can explain their purpose.
  • Use aria-labelledby for visible text: When an element already has visible text that describes its function, use aria-labelledby to link the text to the element, making sure what’s seen matches what’s heard.
  • Provide clear and simple descriptions: Write ARIA labels that clearly explain what an element does or what action it performs, using simple language that’s easy for users to understand.
  • Use ARIA labels for dynamic content: For parts of the page that change or update, use aria-live along with ARIA labels to help users with assistive tools stay informed about the updates.
  • Test with assistive technologies: Make sure ARIA labels are working properly by testing with screen readers, keyboard navigation, and other assistive tools to ensure they improve the user experience.

ARIA Labels for Different Elements

By using ARIA labels for different elements, web developers can ensure that all users, including those with disabilities, have a more accessible and inclusive experience.

1. Buttons

For buttons that only use icons or have no visible text, ARIA labels provide a description of the action.

For example

<button aria-label="Submit form">

  <svg><!-- Submit icon --></svg>

</button>
Copied

2. Forms

When form inputs don’t have visible labels (due to design or space constraints), ARIA labels ensure screen readers can describe the field’s purpose.

Example:

<input type="text" aria-label="Enter your email" placeholder="Email address">
Copied

3. Images

For images that don’t have descriptive alt text or when an image’s purpose needs further explanation, ARIA labels can provide context.

Example:

<img src="logo.png" aria-label="Company logo">
Copied

4. Videos

When embedding videos, ARIA labels can describe the video’s purpose or provide details on controls for users with disabilities.

Example:

<video aria-label="Tutorial video on accessibility features" controls>

  <source src="video.mp4" type="video/mp4">

</video>
Copied

5. Custom Widgets

Custom interactive elements like sliders or toggles that don’t have standard HTML tags need ARIA labels to describe their function.

For example :

<div role="slider" aria-label="Volume control" aria-valuemin="0" aria-valuemax="100" aria-valuenow="50">

  <!-- Custom slider implementation -->

</div>
Copied

What are ARIA Roles?

ARIA roles are special attributes used in HTML to define the purpose and function of elements on a webpage. These roles provide extra information to assistive technologies, like screen readers, helping users better understand and interact with web content.

ARIA roles are part of the Accessible Rich Internet Applications (ARIA) specification, created by the World Wide Web Consortium (W3C).

Roles are added to HTML elements to describe what they do and how they behave within the structure of a webpage. For instance, they can define elements as buttons, menus, sliders, or lists. They can also label sections of a webpage, like navigation, main content, or banner areas.

Using ARIA roles helps improve the accessibility of complex user interface components, especially those created with JavaScript or custom widgets that don’t have clear HTML meaning.

This ensures that assistive technologies can accurately interpret these elements, making the web more accessible to users with disabilities and enhancing the overall user experience.

Test ARIA Roles for Accessibility

Some examples of ARIA Roles can be found on the StackDemo Site:

1. Navigation

The main menu can be labeled with the role=”navigation” to inform screen readers that it is a navigation area.

Example:

<nav role="navigation">

  <!-- Navigation links -->

</nav>
Copied

2. Main Content

The main content area can use the role=”main” to help screen readers identify it as the primary content of the page.

Example:

<div role="main">

  <!-- Main content of the page -->

</div>
Copied

3. Banner

A header or banner area, like the website’s top section, can be labeled with role=”banner” to make its purpose clear.

Example:

<header role="banner">

  <!-- Site branding or introductory content -->

</header>
Copied

Combining ARIA Labels with ARIA Roles

ARIA labels and roles work together to make web elements more accessible by giving them both meaning and clear descriptions for assistive technologies. When used together, these attributes help create websites that are easier to understand and interact with, especially for users who rely on screen readers or other assistive devices.

By using ARIA roles and labels together, developers can create more accessible and user-friendly web interfaces that provide clear information about element functions and purposes to all users.

In this example, the <div> element is assigned the navigation role, indicating its purpose as a navigation component. The aria-label attribute provides a clear description of “Main menu,” helping users understand the navigation’s context.

The <button> element uses the switch role to indicate it’s a toggle control. The aria-checked attribute represents its current state, while the aria-label describes its function as a “Dark mode toggle.”

This combination ensures that users of assistive technologies can understand both the purpose and current state of the control.

<div role="navigation" aria-label="Main menu">

  <ul>

    <li><a href="#home">Home</a></li>

    <li><a href="#products">Products</a></li>

    <li><a href="#about">About Us</a></li>

    <li><a href="#contact">Contact</a></li>

  </ul>

</div>



<button role="switch" aria-checked="false" aria-label="Dark mode toggle">

  <span class="switch-track"></span>

  <span class="switch-thumb"></span>

</button>
Copied

Using ARIA with Dynamic Content and JavaScript

When content on a webpage updates dynamically (such as loading new information without reloading the page), ARIA can help assistive technologies stay informed about these changes.

The aria-live attribute is especially useful for notifying users when content changes, ensuring they are aware of updates in real time.

For example, when a new message or notification appears on the page dynamically, aria-live=”polite” can be used to announce it to screen readers without interrupting the user’s current activity.

<div id="liveUpdates" aria-live="polite">

  <!-- Dynamic content will appear here -->

</div>



<script>

  // Simulate dynamic content update

  setTimeout(function() {

    document.getElementById('liveUpdates').innerHTML = 'New message received!';

  }, 3000);

</script>
Copied

Testing ARIA Labels for Accessibility

Testing ARIA labels for accessibility is essential to ensure that they effectively communicate the purpose and function of web elements to users with disabilities. Proper testing helps verify that ARIA labels are correctly implemented and provide meaningful descriptions for screen readers and assistive technologies.

The BrowserStack Accessibility Testing Tool allows developers to easily verify if ARIA labels are correctly implemented and functional across different browsers and devices. This tool helps identify accessibility issues, ensuring that web elements are properly described for screen readers and assistive technologies, leading to a more inclusive user experience.

Best Practices for Using ARIA Labels & ARIA Roles

Here are key best practices for using ARIA Labels and ARIA Roles

  • Use native HTML elements first: Choose HTML elements that are already accessible before using ARIA. Only use ARIA if the built-in HTML elements don’t provide enough accessibility features.
  • Apply ARIA labels carefully: Use the aria-label only for elements that don’t have visible text or other attributes that describe them. Make sure labels are short, clear, and explain the element’s purpose from the user’s point of view.
  • Use the right ARIA roles: Assign roles that accurately describe what an element does, especially for custom components. For example, use role=”button” for clickable items that aren’t actual <button> elements, or role=”navigation” for areas of the site that help users navigate.
  • Use ARIA states and properties: Use ARIA states to show changes in the content’s status and properties to give extra details. This helps assistive technologies understand and explain web elements properly.
  • Test ARIA implementation: Check how well ARIA labels and roles work with screen readers, keyboard navigation, and by turning off CSS. This ensures the ARIA features improve accessibility on different devices and in various situations.

BrowserStack Accessibility Banner

Why use BrowserStack Accessibility for Website Accessibility?

BrowserStack Accessibility offers an all-in-one solution for testing website accessibility, making it an essential tool for developers and testers. Here’s why it’s useful:

  • Comprehensive Testing: It provides various testing options, such as automated scans, guided tests, and manual testing with screen readers, to thoroughly check accessibility across web applications.
  • Real Device and Browser Testing: Users can test their websites on actual devices and different browsers to ensure compatibility and accessibility on all platforms.
  • WCAG Compliance: The tool follows WCAG guidelines and helps websites meet standards like ADA, AODA, Section 508, and EN 301 549.
  • Workflow Analyzer: BrowserStack’s active scanner checks accessibility issues across multiple pages in real-time, making it much faster than traditional methods.
  • Automated Reporting: The platform generates detailed reports with screenshots and suggestions for fixing accessibility problems.
  • Seamless Integration: It can be integrated into CI/CD workflows, allowing for automatic accessibility checks every time code is updated.
  • Scalability and Flexibility: It supports both manual and automated testing, making it suitable for different testing needs and team sizes.

Talk to an Expert

Conclusion

Using ARIA labels and roles is essential for improving web accessibility, making sure that websites are usable and inclusive for everyone. By following best practices and using tools like BrowserStack Accessibility, developers can build websites that are easier to navigate and more user-friendly for all users.

Test ARIA Labels for Accessibility

Tags
Accessibility Testing

Get answers on our Discord Community

Join our Discord community to connect with others! Get your questions answered and stay informed.

Join Discord Community
Discord