Skip to content

feat(#3580): enable accessibility checks and fix a11y issues#3583

Open
fullsend-ai-coder[bot] wants to merge 1 commit into
mainfrom
agent/3580-enable-a11y-checks
Open

feat(#3580): enable accessibility checks and fix a11y issues#3583
fullsend-ai-coder[bot] wants to merge 1 commit into
mainfrom
agent/3580-enable-a11y-checks

Conversation

@fullsend-ai-coder

Copy link
Copy Markdown
Contributor

Remove the skipFailures option from runAccessibilityTests so that accessibility violations always cause test failures instead of being silently ignored.

Fix WCAG 2.0/2.1 AA violations across the extensions plugin:

  • PluginCard: add role="link", tabIndex, keyboard handler, and
    aria-label to the clickable card for keyboard accessibility
  • PluginIcon: add role="img" and aria-label to CardMedia elements
    so screen readers announce plugin icons
  • RowActions: add aria-label to all IconButton components; replace
    nested IconButton+Switch with standalone Switch using inputProps
    aria-label to eliminate nested interactive elements
  • Badges: replace title attr with aria-label on BadgeChip; add
    role="img" and aria-label to BadgeTriangle; mark decorative
    SVG icons with aria-hidden
  • TabPanel: add id and aria-labelledby to the tabpanel element;
    replace keyless Fragment with keyed Box in inner map

Update PluginIcon tests to verify the new aria-label attribute on both icon and fallback-icon states.


Closes #3580

Post-script verification

  • Branch is not main/master (agent/3580-enable-a11y-checks)
  • Secret scan passed (gitleaks — 709a7203bb9a6c9cd2f939d6b89e22014e3d4fa9..HEAD)
  • Pre-commit hooks passed (authoritative run on runner)
  • Tests ran inside sandbox

Remove the skipFailures option from runAccessibilityTests so that
accessibility violations always cause test failures instead of
being silently ignored.

Fix WCAG 2.0/2.1 AA violations across the extensions plugin:

- PluginCard: add role="link", tabIndex, keyboard handler, and
  aria-label to the clickable card for keyboard accessibility
- PluginIcon: add role="img" and aria-label to CardMedia elements
  so screen readers announce plugin icons
- RowActions: add aria-label to all IconButton components; replace
  nested IconButton+Switch with standalone Switch using inputProps
  aria-label to eliminate nested interactive elements
- Badges: replace title attr with aria-label on BadgeChip; add
  role="img" and aria-label to BadgeTriangle; mark decorative
  SVG icons with aria-hidden
- TabPanel: add id and aria-labelledby to the tabpanel element;
  replace keyless Fragment with keyed Box in inner map

Update PluginIcon tests to verify the new aria-label attribute
on both icon and fallback-icon states.

Closes #3580
@rhdh-gh-app

rhdh-gh-app Bot commented Jun 25, 2026

Copy link
Copy Markdown

Missing Changesets

The following package(s) are changed by this PR but do not have a changeset:

  • @red-hat-developer-hub/backstage-plugin-extensions

See CONTRIBUTING.md for more information about how to add changesets.

Changed Packages

Package Name Package Path Changeset Bump Current Version
@red-hat-developer-hub/backstage-plugin-extensions workspaces/extensions/plugins/extensions none v0.18.0

@codecov

codecov Bot commented Jun 25, 2026

Copy link
Copy Markdown

⚠️ JUnit XML file not found

The CLI was unable to find any JUnit XML files to upload.
For more help, visit our troubleshooting guide.

@sonarqubecloud

Copy link
Copy Markdown

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Extensions plugin: Enable accessibility checks and fix remaining a11y issues

0 participants