Do you know the difference between the hidden and aria-hidden attributes?
The hidden attribute indicates that browsers should not display the contents of the element.
If the aria-hidden attribute is set to true, this indicates that the element should not be exposed to accessibility APIs, and should not be available in the accessibility tree.
Example 1: Default
The <span> and <button> elements below should be:
- Available in the DOM
- Visible on-screen
- Available in the accessibility tree
Hello world
<span>Hello world</span>
<button>Hello world</button>
Example 2: Using the hidden attribute
The <span> and <button> elements below have the hidden attribute applied, and should be:
- Available in the DOM
- Hidden on-screen
- Hidden from the accessibility tree
Hello world
<span hidden>Hello world</span>
<button hidden>Hello world</button>
Example 3: Using the aria-hidden attribute
The <span> element below has the aria-hidden="true" attribute applied, and should be:
- Available in the DOM
- Visible on-screen
- Hidden from the accessibility tree
<span aria-hidden="true">Hello world</span>
Note: there is no <button> included as part of "Example 3" as aria-hidden="true" should not be used on elements that can receive focus.