A small React component library that aims to ease the process of creating accessible design systems, web apps or websites
We find ourselves amidst the age of design systems, where virtually every company, regardless of size, has either established one or contemplated its creation. These systems serve as invaluable resources, equipping us with the means to swiftly construct seamless and uniform user interfaces.
Yet, accessibility remains a challenging endeavor, particularly when integrating frameworks like React. Whether we rely on existing design systems or embark on crafting our own from the ground up, ensuring accessibility often emerges as an afterthought. Regrettably, some companies face constraints in resources and time, making it difficult to prioritize accessibility efforts.
Our objective is to streamline certain aspects of the accessibility journey, focusing on key areas such as focus management, navigation, and announcements.
This library offers comprehensive accessibility features and behaviors in line with the WAI-ARIA Authoring Practices, encompassing support for screen-reader and keyboard navigation.
We refrain from imposing any specific styling methodology or design requirements. Instead, our compact package delivers essential behaviors and interactions, allowing you to concentrate on your design without constraints.
Additionally, we include a straightforward testing tool to simulate a mouse-free environment, facilitating thorough accessibility testing during development.
To integrate React A11y Tools into your React project directory, execute one of the following commands:
$ npm install @feedzai/react-a11y-tools
# or if you use Yarn
$ yarn add @feedzai/react-a11y-tools
Here is a table of the components, custom hooks and their status.
✅ - Released
🛠 - Building
Status | Name |
---|---|
✅ | Messages Announcer |
✅ | Route Announcer |
✅ | Focus Manager |
✅ | Roving Tabindex |
✅ | Keyboard Only |
✅ | Skip Links |
✅ | Semantic Headings |
✅ | Visually Hidden |
✅ | useTabbable |
✅ | useAutoId |
Please file an issue for bugs, missing documentation, or unexpected behaviour.
[See Bugs][bugs]
Please file an issue to suggest new features. Vote on feature requests by adding a 👍. This helps maintainers prioritize what to work on.
[See Feature Requests][requests]
There are three layers of tests written for this library:
- Unit tests: we use vitest
- Component tests: we use cypress
- End-to-end tests: we also use cypress
To run the whole suite of tests, make sure you've done the steps in installation, then:
npm run test
npm run test:unit
npm run test:component-open
npm run test:e2e