Skip to content

[Bug Report][3.11.7] [a11y] Broken ARIA reference in v-data-table footer selectΒ #22550

@docpelux

Description

@docpelux

Environment

Vuetify Version: 3.11.7
Vue Version: 3.5.27
OS: Linux undefined (current)

Steps to reproduce

  1. Add a v-data-table component to any page
  2. Run WAVE accessibility checker on the page or accessibility checker from Inspect (F12), i used Brave in my case.
  3. Inspect the "Items per page" select in the table footer

Expected Behavior

  • The input should either:
    • Have only aria-label (remove aria-labelledby), OR
    • Have aria-labelledby pointing to an existing element ID
  • 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

  1. Broken ARIA Reference: aria-labelledby="input-v-64-label" points to an element that doesn't exist in the DOM
  2. Missing Label: The hidden <select> element has no <label> or aria-label associated with it

Reproduction Link

https://play.vuetifyjs.com/#...

Screenshot from Brave/Chromium

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions