Skip to content

Accessibility: icon buttons missing aria-labels, carousel controls, color contrast with neobrutalist style #111

@ryuno2525

Description

@ryuno2525

Hi! This is a fantastic collection of neobrutalism components. Since component libraries are used across many projects, getting accessibility right here has a multiplier effect. I found some areas for improvement.

Issues Found

1. Icon-only buttons missing accessible names

Several icon buttons in the component demos lack aria-label attributes. For example, the toggle button has aria-label="Toggle" which is too generic — it should describe what it toggles (WCAG 4.1.2).

Fix: Each icon button should have a descriptive aria-label (e.g., aria-label="Toggle dark mode", aria-label="Close dialog").

2. Carousel/slider controls lack position announcements

The carousel components should announce the current slide position to screen readers (e.g., "Slide 1 of 5"). The navigation buttons ("Previous slide", "Next slide") should also communicate the change via aria-live regions (WCAG 4.1.2).

3. Collapsible/accordion missing state announcements

Accordion triggers should use aria-expanded to communicate whether content is expanded or collapsed. The controlled content should be linked via aria-controls (WCAG 4.1.2).

4. Color contrast with neobrutalist style

The bold borders and flat colors of neobrutalism can actually be great for accessibility, but some combinations (particularly light text on colored backgrounds) may not meet WCAG AA contrast ratio of 4.5:1. Worth auditing the color combinations (WCAG 1.4.3).

5. No skip navigation on the docs site

The documentation site at neobrutalism.dev lacks a skip-to-content link (WCAG 2.4.1).

6. OTP input slots missing individual accessible names

The OTP input component's individual input slots should each have an accessible label indicating their position (e.g., aria-label="Digit 1 of 6") (WCAG 1.3.1).

WCAG References

For a quick automated scan of the docs site:

npx accessscore https://www.neobrutalism.dev

Or visit https://accessscore.autonomous-claude.com

Happy to help with PRs for the component improvements!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions