Announcing Toasts, Loaders, and Counts
Make async UI changes audible.
Announcing Toasts, Loaders, and Counts is a free Web Accessibility Academy lesson on CoddyKit — lesson 3 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Web Accessibility Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Async UI Needs a Voice
Toasts, spinners, and result counts all change the page without a reload. Without a live region, screen reader users miss them entirely.
Toasts Should Announce
A toast is a brief pop-up message. Give its container role status so the screen reader speaks the text as it appears. 🍞
<div role="status">Item added to cart</div>Keep the Toast Region Persistent
Render one empty toast region on load and inject messages into it. Creating a fresh region each time often fails to announce.
<div id="toasts" role="status"></div>Loaders Tell Users to Wait
When data is loading, announce it. A polite status message like Loading results keeps users informed instead of guessing. ⏳
out.textContent = 'Loading results';Then Announce the Finish
When loading ends, update the same region with the outcome. Pairing a start and end message gives a clear sense of progress.
out.textContent = 'Results loaded';Announce Result Counts
After a search or filter, speak how many items matched. A short count message orients users who cannot scan the page visually.
out.textContent = '12 results found';Counts Beat Silence
Updating a results list without a count leaves screen reader users unsure anything changed. One spoken number fixes that.
Keep Messages Short
Live announcements interrupt the reading flow, so keep each message concise. Saved beats Your changes were successfully saved just now.
Make Each Update Distinct
If new text is identical to the old, some screen readers stay silent. Vary the wording or clear the region first to force a re-read.
Do Not Hide With display none
A live region set to display none will not announce. To hide it visually, use a visually-hidden class that keeps it in the accessibility tree.
One Region, Many Messages
You usually need just one polite region for app-wide toasts and counts. Route updates through it instead of scattering many live elements.
Quick Check
Your toast region never announces. The CSS hides it with display none. What is the likely fix?
Recap: Announcing Async UI
You learned to voice toasts, loaders, and counts through a persistent polite region, keeping messages short and never using display none. ✅
Frequently asked questions
Is the “Announcing Toasts, Loaders, and Counts” lesson free?
Yes — the full text of “Announcing Toasts, Loaders, and Counts” is free to read here on the web, and the Web Accessibility Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Web Accessibility Academy course, upgrade to CoddyKit PRO.
What will I learn in “Announcing Toasts, Loaders, and Counts”?
Make async UI changes audible. You practise Web Accessibility Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Web Accessibility Academy?
No prior experience is required. Web Accessibility Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 3 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Announcing Toasts, Loaders, and Counts” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Web Accessibility Academy lesson?
Yes. Every Web Accessibility Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- polite vs assertive: Choosing Urgency
- status, alert, and log Roles
- Announcing Toasts, Loaders, and Counts
- Why Live Regions Fail and How to Fix Them