Resource

SwiperJS

My default carousel engine. Touch, keyboard, a11y, prefers-reduced-motion — all in. Used on this site.

My default carousel engine. Touch, keyboard, a11y, prefers-reduced-motion — all in. Used on this site.

Why Swiper

Active maintenance (weekly commits). Real WCAG-friendly defaults (focus management, keyboard nav, ARIA roles). Touch + mouse + keyboard all-in. Honours prefers-reduced-motion with autoplay disabled. Lazy-loadable.

What I configure differently from defaults

  • Autoplay off by default. Carousel autoplay is a known accessibility regression for visitors with cognitive disabilities.
  • Pagination via keyboard-focusable buttons, not dots.
  • Lazy-load via the native IntersectionObserver, not Swiper’s built-in.

License

MIT.