Reviewed November 6, 2026
Session Timeouts at Checkout: WCAG 2.2.1 and the Cart That Empties Itself
A shopper who spends twenty minutes choosing, then loses the cart to a timeout, does not blame the timeout. They blame the store. WCAG 2.2.1, Timing Adjustable, requires that a timed session warn the user before it ends and give them a way to extend it, and the carts that empty themselves without warning fail it.
The timeout is usually there for a good reason: a reservation hold, a limited-stock timer, a login session. The failure is not the timer. It is the silence around it, and the shopper who discovers the limit by losing their work.
What the criterion requires
Criterion 2.2.1, at Level A, requires that for any time limit set by the content, the user can turn it off, adjust it, or extend it, with a warning before it expires. The exception is a limit longer than 20 hours, which needs no warning. The rule applies to checkout sessions, login sessions, and any timed step the store adds, including reservation holds and limited-stock timers.
The warning has to be reachable, not just visible. A countdown shown on screen but never announced to a screen reader user is a warning that half the shoppers never get. The extend control has to work by keyboard, and it has to give enough time to act, not a five-second countdown to the same failure.
Where Shopify stores hit it
Cart persistence and login sessions are the usual sources, but the apps add more: reservation holds that release the item, limited-stock timers that empty the cart, countdown banners that expire the offer. A countdown that empties the cart with no warning is the failure, and a visible timer with an extend option is the fix.
The timers that convert are the visible ones. A shopper who sees a deadline and chooses to hurry is making a decision. A shopper whose cart empties without warning is having a decision made for them, and they do not come back to make it again.
The fix that keeps the urgency
Keep the timer, add the warning and the extend control. The urgency that converts is the visible deadline, not the surprise, and a timer with an extend button still creates urgency while giving the shopper a way out. Test with a keyboard: tab to the warning, confirm it is announced, press the extend control, and confirm the session continues.
Related reading
Related reading: Autocomplete on Checkout Fields: The WCAG 1.3.5 Fix That Fills the Form for You, Consistent Help: WCAG 3.2.6 and the Wandering Contact Link, and Dragging Movements Need a Second Way In: WCAG 2.5.7 on Storefronts.
Frequently asked questions
What is a session timeout in WCAG?
It is a time limit the content sets on a session, like a checkout or a login, after which the session ends. Criterion 2.2.1 requires the user to be warned before it ends and given a way to extend it, unless the limit is longer than 20 hours.
How long can a session be before it needs a warning?
Any limit under 20 hours needs a warning and a way to extend it. A limit longer than 20 hours is exempt. Most checkout and login sessions are far shorter than that, so they need the warning.
Do countdown timers violate WCAG?
Not by themselves. A visible countdown with a warning and an extend control is compliant. A countdown that expires the session with no warning, and no way to extend it, fails criterion 2.2.1.
How do I warn users before a timeout?
Show a visible warning before the session ends, announce it to screen readers, and offer an extend control that works by keyboard. Give the shopper enough time to act on the warning, not a countdown that expires while they are reading it.