<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:thoughtbot="https://thoughtbot.com/feeds/">
  <title>Giant Robots Smashing Into Other Giant Robots</title>
  <subtitle>Written by thoughtbot, your expert partner for design and development.
</subtitle>
  <id>https://robots.thoughtbot.com/</id>
  <link href="https://thoughtbot.com/blog"/>
  <link href="https://feed.thoughtbot.com" rel="self"/>
  <updated>2026-05-01T00:00:00+00:00</updated>
  <author>
    <name>thoughtbot</name>
  </author>
<entry>
  <title>Your carousel might not be accessible: designing for reduced motion</title>
  <link rel="alternate" href="https://thoughtbot.com/blog/your-carousel-might-not-be-accessible"/>
  <author>
    <name>Valeria Graffeo</name>
  </author>
  <id>https://thoughtbot.com/blog/your-carousel-might-not-be-accessible</id>
  <published>2026-05-01T00:00:00+00:00</published>
  <updated>2026-04-30T06:41:47Z</updated>
  <content type="html">&lt;p&gt;On a website I worked on, I noticed some logos stacked vertically on the left
instead of being spread horizontally and evenly spaced, as I expected,
and as the design clearly suggested.&lt;/p&gt;

&lt;p&gt;Opened an issue. Carefully listed browsers and versions.
I investigated like a careful end-user. Not like a developer solutionizing on
it, and looking at the code yet.
I thought I just found a bug while doing something else, I was not there to drop
everything and fix it on the spot.&lt;/p&gt;

&lt;p&gt;Hard reload. Cleared cache. Tried again. Same problem. Oh well, it’s a bug.&lt;/p&gt;

&lt;p&gt;A designer checked and told me it looked fine for them.
So… at that point I was puzzled. 🧐&lt;/p&gt;

&lt;p&gt;Then it clicked.
I have &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@media/prefers-reduced-motion"&gt;Reduce Motion&lt;/a&gt;
enabled in my system settings.&lt;/p&gt;

&lt;p&gt;So yeah, it wasn’t a bug… or was it just a different kind of bug?&lt;/p&gt;

&lt;p&gt;That’s when it hit me: a scrolling set of logos, a carousel, isn’t inherently
accessible. And more importantly, when a user opts into reduced motion for
accessibility reasons, we need to ensure that the layout stays intact, and with
it, the meaning of the content.&lt;/p&gt;

&lt;p&gt;A pretty common UI pattern like a carousel suddenly became… not so inclusive.&lt;/p&gt;

&lt;p&gt;If you’d asked me yesterday whether a carousel of moving items is accessible
design, I would have said, “sure, why not?”&lt;/p&gt;

&lt;p&gt;Today, I’d say: not entirely.
Not unless there’s a proper fallback, a static list of items that preserves
layout and still communicates the same information clearly.&lt;/p&gt;

&lt;p&gt;Because accessibility isn’t just about turning things off.
It’s about making sure the experience still works when things change.&lt;/p&gt;

&lt;p&gt;And the good news is, this is something we can account for.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@media (prefers-reduced-motion: reduce) {
  /* provide a non-animated, stable layout */
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;A small detail, but one that can make the difference between something that
looks fine, and something that actually works for everyone.&lt;/p&gt;

&lt;aside class="related-articles"&gt;&lt;h2&gt;If you enjoyed this post, you might also like:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://thoughtbot.com/blog/better-grids-lessons-learned-from-design-for"&gt;Better Grids: Lessons Learned&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thoughtbot.com/blog/lazy-mans-responsive-web-design"&gt;Lazy Man’s Responsive Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thoughtbot.com/blog/design-101-stop-yelling"&gt;Design 101: Stop Yelling&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/aside&gt;
</content>
  <summary>Accessibility as the key factor for debugging, designing and developing a carousel with logos on a webpage.</summary>
  <thoughtbot:auto_social_share>true</thoughtbot:auto_social_share>
</entry>
</feed>
