Keyboard navigation — ArrowLeft / ArrowRight to move slides, Home / End to jump to first / last slide
ARIA attributes — role="region" on root, aria-roledescription="carousel", role="group" and aria-roledescription="slide" on each slide, aria-hidden on inactive slides, aria-current on active bullet and gallery thumbnail
Focus behavior — Viewport is focusable (tabIndex={0}) for keyboard users; navigation buttons receive visible focus rings on focus-visible
Reduced motion — Autoplay is disabled when the user's system prefers-reduced-motion setting is set to reduce
The viewport includes an aria-live="polite" region that announces "Slide X of Y" whenever the active slide changes. Inactive slides are marked aria-hidden="true" so they are skipped by screen readers. Bullet indicators use role="tablist" and role="tab" with aria-selected on the active bullet. Gallery thumbnails use aria-current="true" on the active item. The play/pause button uses aria-pressed to communicate its toggled state.