Skip to content
easeweb
Search topics

Pulsing buttons, glowing badges and animations that never stop

A call-to-action button is given a pulse to draw the eye, and the pulse is set to repeat without end, so it keeps moving beside everything else on the page for as long as it is open.

WCAG 2.2
SC 2.2.2A
Required by
Section 508 · EN 301 549 (EU)
Broken animation: pulse 1.5s ease-out infinite;
The accessibility problem illustrated: It pulses for as long as the page is open.
01

The problem

People with attention difficulties, and people reading beside the button, keep having their eye pulled back to a pulse that never stops, and nothing on the page stops it.

02

Try it

Watch the button for five seconds, then point at it and press Tab.

The readout counts how long the button has been moving. On the broken side it never stops. "Stop demo" is the Learn page’s own button, not the app’s.

Broken Can you fix this?

Never stops Moving for 0 s, and it will keep going.

A recreated demo. The broken version is intentionally inaccessible.

03

The fix

Let the pulse run a few times and stop within five seconds, keep the button still, or move it only on hover and focus.

  1. 1Nothing decorative moves by itself for more than five seconds.
  2. 2Motion that starts by itself is written inside the no-preference query.
  3. 3Hover and focus start one short animation, never a loop.
Before A button that pulses forever
<a class="cta" href="/signup">Start free trial</a>
After

Three pulses, then still

<a class="cta" href="/signup">Start free trial</a>

Why this fix: Make motion opt-in

Fixing this with an AI coding assistant? Get this guide as Markdown

04

Verify the fix

5 checks.

Test with: Reduced motion, Keyboard, Mouse, Zoom

0 of 5 checked

Record the OS, browser and assistive-technology versions, the build, the date, and the actual result of each step. Repeat after the design, the CSS framework or the animation library changes.

Limits

This is a starting pattern, not a guarantee for every application. It covers movement only: flashing more than three times in any one second is a separate check under 2.3.1, made with a flash analysis tool rather than by eye. Whether an animation is decoration or information, and whether the page is calm enough once it is still, still needs a person to judge.

This is a recreated teaching example, not a finding about a named client. The code is a starting pattern: test it in your own product. No completed assistive-technology test is claimed here.

Keep this fixed as your code changes.

Turn guides like this into rules your coding agents and CI follow, then have the result retested with a keyboard and screen readers.

How retests work