Skip to content

Bugfix - NUI-6283: [a11y] role="tab" elements do not have aria-controls pointing to their panel, etc. (WCAG 4.1.2) - #897

Open
kubeska wants to merge 12 commits into
solarwinds:release/v20.0.xfrom
kubeska:bugfix/NUI-6283-a11y-incorrect-aria-controls-on-tab-elements
Open

Bugfix - NUI-6283: [a11y] role="tab" elements do not have aria-controls pointing to their panel, etc. (WCAG 4.1.2)#897
kubeska wants to merge 12 commits into
solarwinds:release/v20.0.xfrom
kubeska:bugfix/NUI-6283-a11y-incorrect-aria-controls-on-tab-elements

Conversation

@kubeska

@kubeska kubeska commented Aug 12, 2026

Copy link
Copy Markdown

Frontend Pull Request Description

This PR improves the accessibility of the tab and tab-panel relationship across the @nova-ui/bits library. The main change is to ensure that tab and panel elements have properly aligned IDs and ARIA attributes. This includes updates to both the implementation and the demos, as well as the addition of tests to verify the correct associations.

Accessibility Improvement:

  • Tab and tab-panel elements now use consistent, accessible IDs (tab-{id} for tabs and panel-{id} for panels), and the ARIA attributes aria-controls and aria-labelledby are set accordingly in both TabComponent and TabHeadingComponent. This ensures screen readers and assistive technologies can correctly associate tabs with their panels.

Code:

  • The tab ID and panel ID prefixes are defined as constants in tabgroup.constants.ts and used throughout the codebase for consistency.
  • Automatic unique ID generation is provided for tabs and headings when an explicit ID is not supplied, ensuring all tabs/panels have valid, unique identifiers.

Documentation:

  • The changelog has been updated to reflect the accessibility fix for tab and tab-panel ID alignment.

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have updated change log
  • I have been following Definition of done
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new lint warnings
  • New and existing unit tests pass locally and on CI with my changes
  • Any dependent changes have been merged and published in downstream modules

Screenshots (if applicable)

Additional Context (if necessary)

@kubeska
kubeska marked this pull request as ready for review August 12, 2026 16:21
ludmilaFialova
ludmilaFialova previously approved these changes Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants