Skip to content

[BUG] Widespread Accessibility Defect: Overriding standard button labels with generic "Action button" ARIA labels #684

@just-tanvi

Description

@just-tanvi

Description

I noticed that many buttons use the same accessibility label:

aria-label="Action button"

This becomes a problem when the button already has visible text such as "Submit Project", "Sign In", "Save", or "Next Step".

For screen reader users, the aria-label takes priority over the visible text. Instead of hearing what the button actually does, they only hear "Action button", making navigation much more difficult and reducing the overall accessibility of the application.

Why This Matters

Users relying on screen readers should be able to understand the purpose of a button without guessing. Generic labels make multiple buttons sound identical, even when they perform completely different actions.

This can create confusion and negatively impact accessibility compliance.

Examples

A few places where this appears:

  • src/components/home/ResourcesTabs.tsx
  • src/components/submit/SubmitWizard.tsx
  • src/app/notifications/page.tsx
  • src/app/community/page.tsx
  • src/app/error.tsx
  • src/app/community/view/client.tsx

Current Example

<Button aria-label="Action button">
  Submit Project
</Button>

A screen reader will announce:

"Action button"

instead of:

"Submit Project button"

Suggested Fix

For buttons that already contain descriptive text, remove the generic aria-label entirely and let the visible text act as the accessible name.

<Button>
  Submit Project
</Button>

For icon-only buttons, use a meaningful label that describes the action:

<button aria-label="Close modal">
  <XIcon />
</button>
<button aria-label="Search">
  <SearchIcon />
</button>

Acceptance Criteria

  • Remove unnecessary aria-label="Action button" attributes from buttons with visible text.
  • Add descriptive labels to icon-only buttons where needed.
  • Verify buttons are announced correctly with a screen reader.
  • Ensure no accessibility regressions are introduced.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions