document.ariaNotify() is an instance method that queues text for a screen reader at the document level. Learn priorities, how it compares to ARIA live regions and Element.ariaNotify(), MDN’s shopping-list pattern, and five try-it labs. Support is Limited availability (not Baseline yet).
01
Kind
Instance method
02
Target
Document
03
Priority
normal / high
04
Returns
undefined
05
vs live
No DOM change
06
Status
Limited availability
Fundamentals
Introduction
Accessible status updates often use an ARIA live region: set aria-live on an element and change its text so assistive technology announces it. That only works when DOM content changes—and many apps maintain hidden nodes just to trigger speech.
MDN: Document.ariaNotify() queues a string of text to be announced by a screen reader. You can make announcements at any time, with message text independent of visible DOM content. The same ARIANotifyMixin is also available on Element.
💡
Beginner tip
You will only hear announcements if a screen reader is active. Always feature-detect document.ariaNotify, and keep an aria-live fallback for browsers without the method.
(may announce with high priority: Session expired. Please sign in again.)
How It Works
MDN: high priority speaks immediately, interrupting current speech. Use sparingly.
Example 4 — Combine Messages (MDN Advice)
Prefer one string over back-to-back calls.
JavaScript
// Less reliable across AT (MDN):
// document.ariaNotify("Hello there.");
// document.ariaNotify("The time is now 8 o'clock.");
// Better — one announcement
document.ariaNotify("Hello there. The time is now 8 o'clock.");
MDN: some screen readers may only speak the latest call. Combining keeps the full message together.
Example 5 — MDN shopping list pattern
Announce item added and updated total with document.ariaNotify() (MDN demo).
JavaScript
let total = 0;
form.addEventListener("submit", (e) => {
e.preventDefault();
total += Number(price.value);
updateTotal();
document.ariaNotify(
`Item ${item.value}, price £${price.value}, added to list. Total is now £${total.toFixed(2)}.`,
{ priority: "high" }
);
});
Document.ariaNotify() is Limited availability on MDN (not Baseline). Logos use the shared browser-image-sprite.png sprite from this project. Support is rolling out (for example full support in recent Firefox; partial in some Chromium builds). Always feature-detect.
✓ Limited availability · Not Baseline
Document.ariaNotify()
Standard-track accessibility API. Keep an aria-live fallback until Baseline coverage improves.
LimitedNot Baseline yet
Mozilla FirefoxSupported (from 150+)
Yes
Google ChromePartial / platform-dependent
Partial
Microsoft EdgePartial (Chromium mirror)
Partial
OperaPartial (Chromium mirror)
Partial
Apple SafariNot supported (check updates)
No
Internet ExplorerNot supported
No
ariaNotify()Growing
Bottom line: Use document.ariaNotify() where supported for document-level JS announcements. Feature-detect and fall back to ARIA live regions for broad compatibility.
Wrap Up
Conclusion
document.ariaNotify() queues screen reader announcements at the document level without requiring a DOM text change. Prefer combined messages, use high priority sparingly, and always feature-detect with an aria-live fallback while support remains limited.
Set lang on document.documentElement when language matters
Test with a real screen reader in supporting browsers
❌ Don’t
Spam users with frequent high-priority notifies (MDN)
Assume every browser supports the API yet
Rely on multiple rapid calls being spoken in order (MDN)
Expect a return value or promise
Ignore Permissions Policy aria-notify blocks
Summary
Key Takeaways
Knowledge Unlocked
Five things to remember about document.ariaNotify()
Document-level AT speech from JS—feature-detect and fall back.
5
Core concepts
📝01
Target
document
MDN
🔊02
Queues
AT speech
A11y
⚡03
Priority
normal / high
Urgency
🔍04
Support
limited
Status
🛡05
Fallback
aria-live
Today
❓ Frequently Asked Questions
It queues a string of text to be announced by a screen reader at the document level. You can call it at any time — announcements do not require a DOM content change like classic ARIA live regions (MDN).
No. MDN marks it as Limited availability (not Baseline). It is defined in the WAI-ARIA ARIANotifyMixin specification — not Deprecated, Experimental, or Non-standard.
Both share the same API. MDN's shopping-list demo uses document.ariaNotify() for app-wide status updates. Use Element.ariaNotify() when the announcement should be tied to a specific control or region in the tree.
undefined. There is no promise or status object. Feature-detect the method before calling; blocked Permissions Policy usage fails silently (MDN).
MDN notes that some screen readers may only speak the most recent ariaNotify() call. Combining messages into one string is more reliable than firing several calls in a row.
Fall back to an ARIA live region (update textContent on an aria-live element). Always feature-detect: typeof document.ariaNotify === "function".
Did you know?
MDN’s shopping-list demo calls document.ariaNotify() (not Element.ariaNotify()) when items are added or removed—combining the item name and updated total in one announcement string with priority: "high".