Accessibility
boodoo follows common web standards, and can easily be adapted to meet the WCAG 2.1 AA requirements with the proper markup and configuration.
Summary of accessibility features
- Focus visible: boodoo suppresses the focus ring only for mouse users
(
:focus:not(:focus-visible)) and keeps it for keyboard navigation. - Skip link: the docs layout ships with a
visually-hidden-focusable"skip to main content" link. - Reduced motion: all animations and transitions respect
prefers-reduced-motion: reduce. - ARIA roles & states: components set
aria-expanded,aria-selected,aria-busy,aria-labelledby, and userole="alert"/role="dialog"where appropriate. - Keyboard: modals trap focus, dropdowns close with Esc, carousels support arrow keys.
- Color contrast: the default palette meets AA contrast on white, and subtle/emphasis variants are provided.
- Touch: 44px minimum interactive target sizes to satisfy touch accessibility guidelines.
Reduced motion
boodoo includes a media query that disables animations and transitions for users who prefer reduced motion:
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}
Color contrast
Some combinations of colors that make up boodoo's default palette may not have sufficient contrast on certain
backgrounds. You can adjust these via the Sass variables, or use the -subtle background/border helpers
and -emphasis text helpers to tune it per component.
Tip: use the
.visually-hidden helper for content that should be available to assistive
technologies but hidden visually.