Skip to content

dbeaver/pro#10841 Fix accessibility labels and tablist ownership - #4713

Open
sergeyteleshev wants to merge 4 commits into
develfrom
dbeaver/pro#10841-fix-accessibility-labels
Open

sergeyteleshev wants to merge 4 commits into
develfrom
dbeaver/pro#10841-fix-accessibility-labels

Conversation

@sergeyteleshev

@sergeyteleshev sergeyteleshev commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Closes dbeaver/pro#10841

Summary

  • Replace unsupported navigator aria-selected attributes with data-selected while preserving selection styling (item 1).
  • Give the SQL editor content field a localized accessible name (item 2).
  • Keep tab action buttons outside the accessible tablist and use aria-owns to associate only registered tabs, in rendered order (item 3). Preserve the visual layout and dialog-persistent navigation wrapper.
  • Preserve explicit context-menu titles, resolve submenu labels, and provide localized names for navigator, object, and output-log menus (item 4).

The tablist follow-up is limited to three files: the shared tablist integration, a small layout component, and two regression tests. It covers dynamically added/reordered/closed tabs, keyboard activation, panel relationships, independent actions, and dialog-persistent containment.

Enterprise companion: https://github.com/dbeaver/cloudbeaver-ee/pull/2709

Validation

  • CE production bundle passed.
  • Full frontend suite: 759 passed, 27 skipped; affected core-ui suite after the final adjustment: 10 passed.
  • Formatting passed for all three follow-up files; ESLint passed for both new files.
  • Chromium component fixture using the compiled layout and real UI-kit tabs/menus: accessibility tree contains only tabs under the tablist; ArrowRight, Enter, Tab/Shift+Tab, menu Escape/focus return, reordering, and removal checked.
  • axe-core 4.11: original containment reproduces aria-required-children; fixed containment has no violations for aria-required-children, aria-required-parent, aria-allowed-attr, button-name, or nested-interactive.
  • Two-axis review completed; the discovered dialog-persistent containment regression was fixed and re-reviewed.

Existing check limitations

  • Package lint reports pre-existing errors, including the unchanged TabListProps naming rule.
  • Dependency validation fails on existing self-imports/dependency resolution and requires a TTY; its incidental manifest edits were reverted.
  • Full-product screen-reader and integrated slide-dialog testing remain pending. Browser checks above used a component fixture.

Accessibility scope

  • WCAG 1.3.1 / 4.1.2: valid tab ownership, supported navigator state attributes, editor/menu accessible names.
  • WCAG 2.1.1 / 2.4.3: existing keyboard activation and focus behavior retained and checked in the fixture.
  • Timeouts (2.2.1), media, motion, gestures, and input-validation flows are not applicable to these label/tab-ownership changes: none are introduced or modified.

@sergeyteleshev sergeyteleshev self-assigned this Sep 30, 2026
@codacy-production

codacy-production Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 4 complexity

Metric Results
Complexity 4

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@sergeyteleshev
sergeyteleshev marked this pull request as draft October 8, 2026 13:24
@sergeyteleshev sergeyteleshev changed the title dbeaver/pro#10841 Fix navigator and editor accessibility labels dbeaver/pro#10841 Fix accessibility labels and tablist ownership Oct 8, 2026
@sergeyteleshev
sergeyteleshev marked this pull request as ready for review October 9, 2026 12:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant