Skip to content

Accessibility: several admin controls have no accessible name (blocks/array rows, select fields, document menu, upload, logo link) #18633

Open

Description

@graiparrot

Payload version: 3.90.2 (Next.js 16.3.3, @payloadcms/db-postgres, admin language German)

Several interactive elements in the admin render without an accessible name or state, so screen readers announce them only as "button" (WCAG 4.1.2, 2.4.4, 2.4.6, 3.3.2).

Steps to reproduce: open a document with a blocks or array field containing at least two rows, the media create view and the dashboard; run axe-core or inspect the accessibility tree.

Where Element Actual Expected
Blocks/array row button.popup-button.array-actions__button no name e.g. "Actions for block 2 (Notice)"
Blocks/array row drag handle .collapsible__drag (role="button") no name e.g. "Move block 2 (Notice)"
Blocks/array row .collapsible__toggle same name "Toggle block" on every row, no aria-expanded row number and type in the name, aria-expanded
Blocks/array row .section-title__input (custom row label) only placeholder "Untitled" a label such as "Custom name for block 2"
Blocks field header clipboard popup-button no name "Copy and paste"
Document controls … popup-button no name "More actions"
Select fields (react-select) input[role=combobox] label for points at the wrapper, input has no name aria-labelledby pointing at the field label
Upload .file-details__remove no name "Remove file"
Header a.step-nav__home only title on an inner span aria-label "Dashboard"

All of these could use existing translation keys (general:actions, general:moreOptions etc.) and the row index/block label the components already have.

How we found it: axe-core (tags wcag2a, wcag2aa, wcag21a, wcag21aa, wcag22aa) via @axe-core/playwright plus keyboard-only tests of the admin. Our current workaround is a client provider (admin.components.providers) that patches the missing attributes into the DOM.

Happy to help with a PR if the direction is agreed.

Activity

  1. JessRynkar commented on Oct 9, 2026

    @JessRynkar
    Member

    Thanks for documenting these! We’re currently working through an internal accessibility audit, and these reports overlap with findings we already have tracked and underway. I’ll keep these issues open until that work is complete so we can cross-reference your reports and make sure nothing was missed.

  2. self-assigned this
    on Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions