Skip to content

[EuiBasicTable] NVDA duplicate announcements in selection + overflow actions (All actions tooltip) and verbose pagination aria-label #9524

@SoniaSanzV

Description

@SoniaSanzV

Problem Statement

In EuiBasicTable / EuiInMemoryTable, several table-provided controls create noisy / duplicated NVDA announcements:

  • Header selection checkbox (“Select all rows” / “Deselect rows”) is rendered with both aria-label and title set to the same text. With NVDA, this can result in the label being announced twice.
  • Collapsed “All actions” button (overflow actions trigger) is wrapped in an EuiToolTip whose content (“All actions”) overlaps with the button’s accessible name (e.g. “All actions, row N”), which can cause double announcement (button + tooltip).
  • Pagination landmark label verbosity: NVDA announces a long navigation label like “Pagination for table: …” before reading the page links. A11y feedback indicates this extra line is not necessary (adds noise) for frequent table pagination usage.

    Proposed Solution

    • Header checkbox: remove the redundant title attribute (or at least avoid setting title when it duplicates the accessible name).
    • All actions button: prevent tooltip content from being announced by screen readers

    Use Case

    Plugins using EUI tables, like Ingest Pipelines, Index Management, and Snapshot and Restore:

    Do alternatives or workarounds exist?

    Yes, but they are not good:

    • Consumers can re-implement selection/actions/pagination UI (higher maintenance and inconsistent across apps)
    • Consumers can strip title/ARIA post-render via DOM mutation (fragile, not recommended, and violates declarative a11y best practices)

Metadata

Metadata

Assignees

No one assigned

    Labels

    ⚠️ needs validationFor bugs that need confirmation as to whether they're reproducible

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions