-
-
Notifications
You must be signed in to change notification settings - Fork 7.1k
Open
Labels
Description
Environment
Vuetify Version: 3.11.7
Vue Version: 3.5.27
OS: Linux undefined (current)
Steps to reproduce
- Add a
v-data-tablecomponent to any page - Run WAVE accessibility checker on the page or accessibility checker from Inspect (F12), i used Brave in my case.
- Inspect the "Items per page" select in the table footer
Expected Behavior
- The input should either:
- Have only
aria-label(removearia-labelledby), OR - Have
aria-labelledbypointing to an existing element ID
- Have only
- The hidden
<select>should have an associated label for screen readers
Actual Behavior
The generated HTML contains:
<input
role="combobox"
type="text"
aria-labelledby="input-v-64-label" <!-- β ID doesn't exist -->
aria-label="Items per page:" <!-- β
This works -->
value="10"
>
<select hidden=""> <!-- β Missing label -->
<option value="5"></option>
<option selected="" value="10"></option>
<option value="15"></option>
</select>Issues Detected
- Broken ARIA Reference:
aria-labelledby="input-v-64-label"points to an element that doesn't exist in the DOM - Missing Label: The hidden
<select>element has no<label>oraria-labelassociated with it
Reproduction Link
https://play.vuetifyjs.com/#...
Screenshot from Brave/Chromium