docs.rodeo

MDN Web Docs mirror

aria-label

{{AccessibilitySidebar}} 

The aria-label attribute defines a string value that can be used to name an element, as long as the element’s role does not prohibit naming.

Description

Sometimes, the default {{Glossary("accessible_name", "accessible name")}}  of an element is missing or the accessible name does not accurately describe the contents of the element and there is no content visible in the DOM that can be associated with the object to give it meaning. A common example of such an element is a button containing an SVG icon without any text.

In cases where an element that is not part of the prohibited list, has no accessible name or an accessible name is not accurate and there is no content visible in the DOM that can be referenced via the aria-labelledby attribute, the aria-label attribute can be used to define a string that labels the interactive element on which it is set. This provides the element an accessible name.

The code below shows an example of how to use the aria-label attribute to provide an accessible name for a <button> element. The button in this example contains an SVG graphic and lacks textual content, making the aria-label essential for screen reader users to understand its function, which in this case is “Close”.

<button aria-label="Close" onclick="myDialog.close()">
  <svg
    aria-hidden="true"
    focusable="false"
    width="17"
    height="17"
    xmlns="http://www.w3.org/2000/svg">
    <path
      d="m.967 14.217 5.8-5.906-5.765-5.89L3.094.26l5.783 5.888L14.66.26l2.092 2.162-5.766 5.889 5.801 5.906-2.092 2.162-5.818-5.924-5.818 5.924-2.092-2.162Z"
      fill="#000" />
  </svg>
</button>

Note: aria-label is intended for naming elements where the implicit or explicit role does not prohibit naming. It is strongly recommended to prioritize the use of aria-labelledby over aria-label if a visible label exists for the element to reference and receive its name from.

Most content has an accessible name generated from its immediate wrapping element’s text content. Accessible names can also be created by certain attributes or associated elements.

By default, a button’s accessible name is the content between the opening and closing {{HTMLElement('button')}}  tags, an image’s accessible name is the content of its alt attribute, and a form input’s accessible name is the content of the associated {{HTMLElement('label')}}  element.

If none of these options are available or if the default accessible name is not appropriate, use the aria-label attribute to define the accessible name of an element.

[!NOTE] While aria-label can be used on any element that can have an accessible name, in practice however, it is supported only on interactive elements, widgets, landmarks, images, and iframes.

When using aria-label, you also need to consider aria-labelledby:

Keep the following additional guidelines in mind when using aria-label:

Values

Associated interfaces

Associated roles

Used in almost all roles except roles that cannot be provided an accessible name by the author.

The aria-label attribute is NOT supported in:

Specifications

{{Specifications}} 

See also

In this article

View on MDN