Skip to content

List: expose NoDataText to screen readers when empty (T1329047)#33657

Open
dmlvr wants to merge 3 commits into
DevExpress:26_1from
dmlvr:T1329047_26_1
Open

List: expose NoDataText to screen readers when empty (T1329047)#33657
dmlvr wants to merge 3 commits into
DevExpress:26_1from
dmlvr:T1329047_26_1

Conversation

@dmlvr
Copy link
Copy Markdown
Contributor

@dmlvr dmlvr commented May 21, 2026

No description provided.

Copilot AI review requested due to automatic review settings May 21, 2026 09:42
@dmlvr dmlvr requested review from a team as code owners May 21, 2026 09:42
@dmlvr dmlvr self-assigned this May 21, 2026
@dmlvr dmlvr added the 26_1 label May 21, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses an accessibility gap in dxList where the empty-state message (noDataText) was not being exposed to screen readers via an aria-label on the scroll view content (focus target). It updates the List’s internal empty-message rendering to synchronize aria-label with the empty state and adjusts/extends widget test coverage accordingly.

Changes:

  • Update ListBase to set/clear the focus target’s aria-label based on whether the list is in the empty state, using the empty message text.
  • Export the dx-empty-collection CSS class constant from collection_widget.base.ts for reuse in ListBase.
  • Add/update accessibility tests for List, SelectBox, and Lookup to validate the new aria-label behavior on empty lists.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/devextreme/testing/tests/DevExpress.ui.widgets/listParts/commonTests.js Adds coverage ensuring scrollview content gets aria-label=noDataText in empty-state scenarios (init, runtime changes, clearing).
packages/devextreme/testing/tests/DevExpress.ui.widgets.editors/selectBox.tests.js Updates ARIA assertions to expect the list’s empty-state aria-label on the scrollview content.
packages/devextreme/testing/tests/DevExpress.ui.widgets.editors/lookup.tests.js Updates ARIA assertions to expect the list’s empty-state aria-label and verifies it toggles with data presence.
packages/devextreme/js/__internal/ui/list/list.base.ts Implements empty-state aria-label synchronization on the list focus target (scrollview content).
packages/devextreme/js/__internal/ui/collection/collection_widget.base.ts Exports EMPTY_COLLECTION constant so List can reliably detect empty state via the shared class name.

@pharret31 pharret31 changed the title List - T1329047 - List doesn't expose NoDataText to screen readers when empty List: expose NoDataText to screen readers when empty (T1329047) May 21, 2026
Comment thread packages/devextreme/js/__internal/ui/collection/collection_widget.base.ts Outdated
Comment thread packages/devextreme/js/__internal/ui/list/list.base.ts Outdated
pharret31
pharret31 previously approved these changes May 21, 2026
r-farkhutdinov
r-farkhutdinov previously approved these changes May 21, 2026
Copilot AI review requested due to automatic review settings May 22, 2026 15:28
@dmlvr dmlvr dismissed stale reviews from r-farkhutdinov and pharret31 via 16e3193 May 22, 2026 15:28
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants