Insights

How to Fix Elementor Swiper When Reduce Motion Is Enabled

Table of Contents

When “Reduce Motion” is enabled, Elementor’s Swiper may stop working because transitions are blocked. Here’s how to detect it and fix or override it properly.

When the “Reduce Motion” accessibility option is enabled on a user’s device, a specific issue with Elementor’s Swiper can occur. The Carousel may appear completely broken — no autoplay, no swiping, and navigation or pagination clicks do nothing.

Why This Happens

The issue is directly related to CSS transitions.

When prefers-reduced-motion: reduce is active, Elementor removes transition effects. However, transitions are fundamental to how Swiper works. If transitions are disabled, Swiper essentially stops functioning — including:

  • Autoplay
  • Manual swipe gestures
  • Navigation arrows
  • Pagination clicks

Without transitions, the slider cannot move between slides.

The Ideal (But Unrealistic) Solution

The simplest fix would be to disable the Reduce Motion setting.

However, you cannot require visitors to change their accessibility preferences. As developers, we must respect user accessibility choices.

So we need a proper workaround.

Solution 1: Re-style the Carousel / Switch Layout

You can detect the Reduce Motion preference using a CSS media query:

@media (prefers-reduced-motion: reduce) {
     .reduce-motion-off {
          display: none !important;
     }

     .reduce-motion-on {
          display: block !important; 
     }
}

How to Use This

  • Place your Swiper carousel inside a container with class .reduce-motion-off
  • Create an alternative static layout inside a container with class .reduce-motion-on
  • By default, hide .reduce-motion-on
  • When Reduce Motion is enabled, the layout switches automatically

This approach respects accessibility settings and provides a fallback experience. From a professional and UX perspective, this is the most appropriate solution.

Solution 2: Override the Transition

If you prefer to keep Swiper functional even when Reduce Motion is enabled, you can manually restore the transition duration:

@media (prefers-reduced-motion: reduce) {
     .swiper .swiper-wrapper {
          transition-duration: 800ms !important; 
          /* Adjust the duration as needed */
     }
}

The transition is applied to .swiper-wrapper.

If you want this to apply to all Swipers globally, keep the selector as above.
If you want more control, prepend a custom class to scope the override to specific sliders.

Important Consideration

Overriding the transition technically ignores the user’s accessibility preference. While this restores functionality, it may not be ideal from an accessibility compliance standpoint.

For production projects — especially those requiring accessibility standards — the layout-switching solution is recommended.

Picture of Roman Vlčák

Roman Vlčák

An incorrigible perfectionist passionate about pixel-perfect work, who constantly strives to deliver the highest possible quality. Outside of Webgate, he is a caring husband and father to his young son. In his free time, he likes traveling with his family and doing puzzles.

Senior WordPress Developer • Co-founder

Share this artcle

Let's work together!

Get a free consultation with our experts

Subscribe to our quarterly newsletter and receive latest insights.

Topics: Improving B2B websites, AI tools in web development, UX/UI, website marketing trends etc.

By submitting this form you agree to the processing of your personal data according to our .

Contact

Let's work together!

Get a free consulting call with our experts

Book a call with
Webgate founders

Thank you for your interest!

We will contact you soon.