Empty table header on the People administration page

Problem/Motivation

The table at /admin/people contains an empty column header for the bulk-selection checkbox column:

<th class="select-all views-field views-field-user-bulk-form gin--sticky-bulk-select" scope="col"></th>

The header has no text or accessible name. Sighted users can infer the column's purpose from the checkboxes, but assistive technology users are not given an equivalent description.

axe-core reports this as empty-table-header. The issue relates to WCAG 2.2 Success Criterion 1.3.1, Info and Relationships.

Bug ID: MS-25d32bca (instance) / MS-61380df7 (pattern)

X-Path: //table/thead/tr/th[1]

Steps to reproduce

  1. Sign in as a user who can administer users.
  2. Open /admin/people.
  3. Inspect the first &lt;th&gt; in the table.
  4. Run axe-core and observe the empty-table-header failure.

Actual result: The bulk-selection column has an empty header.

Expected result: The header programmatically identifies the column's purpose.

Proposed resolution

Add concise, translatable text to the shared rendering logic for bulk-selection headers. Visually hidden text is preferred:

&lt;th class="select-all views-field views-field-user-bulk-form" scope="col"&gt;
  &lt;span class="visually-hidden"&gt;Select users&lt;/span&gt;
&lt;/th&gt;

If the same code is used by other tables, a generic label such as Select rows may be more appropriate.

Remaining tasks

  • Identify the shared rendering code responsible for the empty header.
  • Confirm whether other bulk-selection tables are affected.
  • Add automated regression coverage.
  • Verify the result with axe-core and a screen reader.

User interface changes

No visible change is expected. Assistive technology users will receive a meaningful name for the selection column.

Introduced terminology

None.

API changes

No public API changes are expected. The rendered HTML will gain an accessible name for the bulk-selection header.

Data model changes

None.

Release notes snippet

Not required.

Issue fork drupal-3612047

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

mgifford created an issue. See original summary.

mgifford’s picture

Issue summary: View changes
mgifford’s picture

Issue summary: View changes
mgifford’s picture

Issue summary: View changes
Issue tags: +wcag131

mgifford’s picture

delete

mgifford’s picture

Issue summary: View changes
mgifford’s picture

Issue summary: View changes