JavaScript Element ariaAtomic Property

Beginner
⏱️ 10 min read
📚 Updated: Jul 2026
🎯 5 Examples
🚀 5 Try-it labs
Baseline
Instance property

What You’ll Learn

Element.ariaAtomic is an instance property that reflects the aria-atomic attribute on live regions. Learn the "true" / "false" string values, how it pairs with aria-live and aria-relevant, and how to get or set it from JavaScript—with five examples and try-it labs.

01

Kind

Instance property

02

Type

String

03

Values

"true" / "false"

04

Reflects

aria-atomic

05

Status

Baseline widely

06

Used with

Live regions

Introduction

Live regions (for example a polite status or a timer) tell screen readers when content changes. Sometimes you want only the changed digits announced; sometimes you want the whole region re-read so the update makes sense in context.

That choice is aria-atomic. The DOM property ariaAtomic lets you read and update the same value from JavaScript without calling setAttribute by hand.

JavaScript
const clock = document.getElementById("clock");
console.log(clock.ariaAtomic); // e.g. "true"
clock.ariaAtomic = "false";
💡
Beginner tip

Use aria-atomic="true" when a partial announcement would sound confusing (for example a labeled timer). Use "false" when only the changed bits should be spoken.

Understanding the Property

MDN: the ariaAtomic property of the Element interface reflects the value of the aria-atomic attribute, which indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute.

  • Reflected attribute — mirrors aria-atomic.
  • Get / set — readable and writable string.
  • Live regions — typically used with aria-live.
  • Baseline — widely available since October 2023 (MDN).

📝 Syntax

JavaScript
ariaAtomic

Value

A string with one of the following values:

ValueMeaning (MDN)
"false"Assistive technologies present only the changed node or nodes.
"true"Assistive technologies present the entire changed region as a whole, including an author-defined label if one exists.

📢 Pairing with aria-live

MDN’s example uses a timer live region. Atomic controls how much is spoken; live controls whether / how urgently updates are announced.

JavaScript
<div id="clock" role="timer" aria-live="polite" aria-atomic="true"></div>
Attribute / ideaRole
aria-liveOff / polite / assertive announcement policy
aria-atomic / ariaAtomicWhole region vs only changed parts
aria-relevantWhich kinds of changes matter (additions, text, removals, …)

⚡ Quick Reference

GoalCode / note
Readel.ariaAtomic
Set whole-region announceel.ariaAtomic = "true"
Set changed-parts onlyel.ariaAtomic = "false"
HTML equivalentaria-atomic="true"
Typical partneraria-live="polite" (or assertive)
MDN statusBaseline Widely available

🔍 At a Glance

Four facts about Element.ariaAtomic.

Kind
get / set

Instance

Type
string

true / false

Reflects
aria-atomic

Attribute

Baseline
widely

Oct 2023+

Examples Gallery

Examples follow MDN Element: ariaAtomic. Try-it labs create a small live-region element so you can read and write the property safely.

📚 Getting Started

Read the reflected value and follow MDN’s clock example.

Example 1 — Read ariaAtomic

Log the current reflected value from a live region.

JavaScript
const clock = document.getElementById("clock");
console.log(clock.ariaAtomic);

// HTML: <div id="clock" role="timer" aria-live="polite" aria-atomic="true"></div>
Try It Yourself

How It Works

The property returns the attribute’s string value. If the attribute is absent, many browsers return null.

Example 2 — MDN Update to "false"

Exactly MDN’s get-then-set pattern on the clock element.

JavaScript
let el = document.getElementById("clock");
console.log(el.ariaAtomic); // true
el.ariaAtomic = "false";
console.log(el.ariaAtomic); // false
Try It Yourself

How It Works

Assigning "false" updates both the property and the aria-atomic attribute on the element.

📈 Set True, Attribute Sync & Snapshot

Practice whole-region mode and verify reflection.

Example 3 — Force Whole-Region Announcements

Set ariaAtomic to "true" for a status live region.

JavaScript
const status = document.createElement("div");
status.setAttribute("role", "status");
status.setAttribute("aria-live", "polite");
status.textContent = "Saved";
document.body.appendChild(status);

status.ariaAtomic = "true";
console.log({
  ariaAtomic: status.ariaAtomic,
  attr: status.getAttribute("aria-atomic")
});
Try It Yourself

How It Works

After the assignment, both the IDL property and the content attribute should agree.

Example 4 — Property vs getAttribute

Confirm reflection after writing through the property.

JavaScript
const el = document.createElement("div");
el.setAttribute("aria-live", "polite");
el.setAttribute("aria-atomic", "true");
document.body.appendChild(el);

el.ariaAtomic = "false";
console.log({
  fromProperty: el.ariaAtomic,
  fromAttribute: el.getAttribute("aria-atomic"),
  same: el.ariaAtomic === el.getAttribute("aria-atomic")
});
Try It Yourself

How It Works

Prefer ariaAtomic in script for clarity; the attribute remains the HTML source of truth for markup and CSS attribute selectors.

Example 5 — Support Snapshot

Feature-detect and show current values on a sample node.

JavaScript
const sample = document.createElement("div");
sample.setAttribute("aria-atomic", "true");
console.log({
  supported: "ariaAtomic" in Element.prototype,
  sampleValue: sample.ariaAtomic,
  tip: "Use string \"true\" / \"false\" with live regions (aria-live)",
  status: "Baseline Widely available (MDN)"
});
Try It Yourself

How It Works

Modern browsers expose the property widely. Keep the attribute in HTML for progressive enhancement when you author static markup.

🚀 Common Use Cases

  • Timers and clocks that should be announced as a full labeled phrase.
  • Status messages where only the changed sentence fragment should be spoken.
  • Toggling atomic behavior when a live region’s structure changes.
  • Keeping script and markup in sync without manual setAttribute.
  • Teaching how aria-live, aria-atomic, and aria-relevant work together.

🔧 How It Works

1

Content in a live region updates

Text or nodes change inside an aria-live container.

Change
2

aria-relevant filters the change

Only matching change types are candidates to announce.

Filter
3

aria-atomic chooses how much to speak

Whole region ("true") or only changed nodes ("false").

Scope
4

Assistive tech announces

Users hear a clear update without overload.

📝 Notes

Browser Support

Element.ariaAtomic is Baseline Widely available (MDN: across browsers since October 2023). Logos use the shared browser-image-sprite.png sprite from this project.

Baseline Widely available

Element.ariaAtomic

String "true" / "false" — reflects aria-atomic on live regions.

Baseline Widely available
Google Chrome Supported (ARIA reflection)
Yes
Microsoft Edge Supported (ARIA reflection)
Yes
Mozilla Firefox Supported (ARIA reflection)
Yes
Apple Safari Supported (ARIA reflection)
Yes
Opera Follow Chromium support
Yes
Internet Explorer No ariaAtomic IDL — use setAttribute
No
ariaAtomic Baseline

Bottom line: Use ariaAtomic to get/set aria-atomic as strings. Prefer "true" when the whole live region must be heard; "false" when only changed nodes should be announced. Always design live regions carefully to avoid announcement spam.

Conclusion

ariaAtomic is the JavaScript reflection of aria-atomic: a simple "true" / "false" string that controls whether assistive technologies speak an entire live region or only the parts that changed. Use it with aria-live, and test announcements with real assistive tech.

Continue with ariaAutoComplete, EventTarget, Node, or the JavaScript hub.

💡 Best Practices

✅ Do

  • Use string values "true" and "false"
  • Pair with an appropriate aria-live setting
  • Choose "true" when context/labels must be reheard
  • Test with a screen reader after changing live-region text
  • Keep updates infrequent enough to avoid announcement spam

❌ Don’t

  • Assume boolean true/false is clearer than strings
  • Put everything in assertive live regions by default
  • Change atomic mode without checking how announcements sound
  • Forget aria-relevant when filtering change types
  • Rely on live regions as the only feedback for sighted users

Key Takeaways

Knowledge Unlocked

Five things to remember about ariaAtomic

Reflected aria-atomic string for live regions.

5
Core concepts
💬 02

String

true / false

Type
📢 03

Live regions

with aria-live

Use
04

Baseline

widely available

Status
🎯 05

Scope

whole vs parts

Meaning

❓ Frequently Asked Questions

It reflects the aria-atomic attribute as a string ("true" or "false"), telling assistive technologies whether to present the whole changed live region or only the changed parts.
No. MDN marks Element.ariaAtomic as Baseline Widely available (since October 2023). It is not Deprecated, Experimental, or Non-standard.
The string "false" (present only changed nodes) or "true" (present the entire changed region as a whole, including an author-defined label if one exists).
aria-atomic is usually set on a live region (for example with aria-live="polite"). aria-relevant also shapes which changes are announced; aria-atomic controls how much of the region is spoken when a change is relevant.
Strings. Assign "true" or "false" as text, not the boolean literals true/false (though some engines may coerce—prefer the string form that matches the attribute).
Yes. Reading and writing ariaAtomic updates the reflected aria-atomic attribute, as in MDN’s clock timer example.
Did you know?

A ticking clock with aria-atomic="true" can re-announce the full time string (and label) on each update, which is clearer than hearing only the seconds digit change—but it can also become noisy if the region updates too often.

Next: Element ariaAutoComplete

Learn the reflected aria-autocomplete property for comboboxes.

ariaAutoComplete →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.

5 people found this page helpful