Screen Reader Announcements for Cart Subtotals and Changes
2026-10-26
A sighted shopper watches the subtotal change when they remove an item. A screen reader user hears nothing, unless the site tells them. That silence is one of the most common and most fixable problems in accessible commerce.
The fix is a small technical pattern with a lot of judgment inside it. Announce too little and the cart is a mystery. Announce too much and every quantity stepper becomes a lecture. Getting the balance right is a design task, not just a coding one.
What deserves an announcement
Announce outcomes: an item was added, an item was removed, a quantity changed, a discount was applied, and the resulting subtotal when money is involved. These are the moments a sighted shopper's eyes move to the total, so the ears should be served at the same moment.
Do not announce intermediate states. While a shopper tabs through options or types a quantity, the cart has not changed yet. Speaking too early reports numbers that are about to be replaced, which is worse than silence.
Polite by default, assertive for errors
Live regions come in two main flavors. Polite announcements wait for a pause and suit routine updates. Assertive ones interrupt, and should be kept for problems: a coupon that failed, a quantity the store cannot fulfill, an item that just went out of stock.
Stores that make every price change assertive train shoppers to dread the cart. Reserve interruption for information the shopper must act on, and the interruptions keep their power when they matter.
Say the total like a person
A good announcement reads like a sentence: quantity updated, two items in your cart, subtotal 84 dollars. A bad one dumps raw markup, currency symbols read character by character, or a number with no label at all.
Test with the actual screen readers your customers use, on the actual totals your store produces, including cents, discounts, and multi currency formats. Number formatting bugs are invisible in code review and obvious the first time you listen.
Keep the visual and spoken carts in sync
Whatever updates visually must update in the announcement, including shipping estimates and taxes when they appear. If the page shows a new total that includes shipping but the announcement repeats the old subtotal, the shopper is misled in a way sighted users never experience.
After any major cart redesign, run one full purchase listening only. It takes twenty minutes and remains the single most revealing test a store can do on its own checkout.
Related reading
These earlier guides go deeper on connected questions: Keyboard Only Carts: Can a Shopper Buy Without Ever Touching a Mouse, Accessible Cart Error Messages: Helping Shoppers Fix Mistakes Without Starting Over, and Session Timeouts at Checkout: Warning Shoppers Before Time Runs Out.
Frequently asked questions
What is a live region in plain terms?
A part of the page marked so that screen readers speak its contents when they change, even though the shopper's focus is elsewhere. Carts use live regions to announce updates like a new subtotal after a quantity change.
Should every cart change be announced?
No. Announce completed outcomes, especially anything that changes the price, and stay quiet during intermediate steps like typing or browsing options. Over announcing is its own barrier because it buries the important updates.
Why do some carts announce totals twice?
Usually because two components both try to announce, or the live region is also being re-rendered by the cart framework. It is a common bug after redesigns and a sign the cart needs a single, owned announcement pattern.
How can I test announcements without expert help?
Turn on a free screen reader, close your eyes, and change quantities, apply a code, and remove an item. If you always know the state of the cart and its cost, the announcements are working. If you feel lost, so do your customers.