JavaScript Element ariaValueText Property

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

What You’ll Learn

Element.ariaValueText is an instance property that reflects the aria-valuetext attribute. Learn how it provides a human-readable alternative to aria-valuenow, how it pairs with min / now / max, and how to get or set it from JavaScript—with five examples and try-it labs.

01

Kind

Instance property

02

Type

String

03

Meaning

Readable label

04

Reflects

aria-valuetext

05

Status

Baseline widely

06

Pairs with

ariaValueNow

Introduction

A day-of-week slider may store aria-valuenow="1", but users should hear “Sunday,” not just “1.” That spoken label is aria-valuetext.

The DOM property ariaValueText lets you read and update that human-readable alternative from JavaScript.

JavaScript
const el = document.getElementById("slider");
console.log(el.ariaValueText); // "Sunday"
el.ariaValueText = "Monday";
💡
Beginner tip

Keep ariaValueNow as the numeric machine value and ariaValueText as the label people hear. Update both together when the control moves.

Understanding the Property

MDN: the ariaValueText property of the Element interface reflects the value of the aria-valuetext attribute, which defines the human-readable text alternative of aria-valuenow for a range widget.

  • Reflected attribute — mirrors aria-valuetext.
  • Get / set — readable and writable string.
  • Readable label — explains the numeric current value.
  • Baseline — widely available since October 2023 (MDN).

📝 Syntax

JavaScript
ariaValueText

Value

A string (the human-readable alternative to aria-valuenow).

ItemDetail
Typestring (e.g. "Sunday")
Reflectsaria-valuetext
Applies toslider, progressbar, spinbutton, scrollbar, and similar ranges
Pair witharia-valuenow, aria-valuemin, aria-valuemax
⚠️
Text explains the number

Do not use ariaValueText instead of ariaValueNow. Keep the numeric value, and add text when the number alone is unclear.

📋 MDN Slider Example Shape

MDN starts with a slider marked aria-valuetext="Sunday", then updates ariaValueText to "Monday":

JavaScript
<div
  id="slider"
  role="slider"
  aria-valuenow="1"
  aria-valuemin="1"
  aria-valuemax="7"
  aria-valuetext="Sunday"></div>
JavaScript
let el = document.getElementById("slider");
console.log(el.ariaValueText); // "Sunday"
el.ariaValueText = "Monday";
console.log(el.ariaValueText); // "Monday"

Related learning: ariaValueNow, ariaValueMin, and ariaValueMax.

⚡ Quick Reference

GoalCode / note
Readel.ariaValueText
Writeel.ariaValueText = "Monday"
HTML attributearia-valuetext="Sunday"
Pairs withariaValueNow (numeric current value)
MDN statusBaseline Widely available

🔍 At a Glance

Four facts about Element.ariaValueText.

Kind
get / set

Instance

Type
string

Readable label

Reflects
aria-valuetext

Attribute

Baseline
widely

Oct 2023+

Examples Gallery

Examples follow MDN Element: ariaValueText. Labs use a role="slider" so you can safely read and write the property.

📚 Getting Started

Read the reflected label and follow MDN’s Sunday-to-Monday update.

Example 1 — Read ariaValueText

Log the human-readable label from a custom day slider.

JavaScript
const el = document.getElementById("slider");
console.log(el.ariaValueText);

// HTML includes: aria-valuetext="Sunday"
Try It Yourself

How It Works

The property returns the attribute string. If the attribute is missing, many browsers return null.

Example 2 — MDN Update to "Monday"

MDN: change the spoken label from Sunday to Monday.

JavaScript
let el = document.getElementById("slider");
console.log(el.ariaValueText); // "Sunday"
el.ariaValueText = "Monday";
console.log(el.ariaValueText); // "Monday"
Try It Yourself

How It Works

Assigning the property updates the reflected aria-valuetext attribute. Also update ariaValueNow when the underlying numeric index changes.

📈 Pair With Now, Attribute Sync & Snapshot

Practice pairing with ariaValueNow and verify reflection.

Example 3 — Keep ariaValueNow in Sync

When the day index changes, update both the number and the spoken label.

JavaScript
const el = document.createElement("div");
el.setAttribute("role", "slider");
el.setAttribute("aria-valuemin", "1");
el.setAttribute("aria-valuemax", "7");
el.setAttribute("aria-valuenow", "1");
el.setAttribute("aria-valuetext", "Sunday");
document.body.appendChild(el);

const days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
el.ariaValueNow = "2";
el.ariaValueText = days[Number(el.ariaValueNow) - 1];
console.log({
  ariaValueNow: el.ariaValueNow,
  ariaValueText: el.ariaValueText
});
Try It Yourself

How It Works

The number is for machines; the text is for people. Update both when the control moves.

Example 4 — Property vs getAttribute

Confirm the attribute stays in sync after a write.

JavaScript
const el = document.createElement("div");
el.setAttribute("role", "slider");
el.setAttribute("aria-valuetext", "Sunday");
document.body.appendChild(el);

el.ariaValueText = "Monday";
console.log({
  fromProperty: el.ariaValueText,
  fromAttribute: el.getAttribute("aria-valuetext"),
  same: el.ariaValueText === el.getAttribute("aria-valuetext")
});
Try It Yourself

How It Works

Prefer ariaValueText in script; keep the attribute for HTML markup.

Example 5 — Support Snapshot

Feature-detect and remember to pair text with the numeric current value.

JavaScript
console.log({
  supported: "ariaValueText" in Element.prototype,
  pairWith: ["aria-valuenow", "aria-valuemin", "aria-valuemax"],
  tip: "Text explains the number — keep both in sync",
  status: "Baseline Widely available (MDN)"
});
Try It Yourself

How It Works

Do not leave a stale label after the numeric value changes—mismatched text confuses AT users.

🚀 Common Use Cases

  • Day-of-week or month pickers that should announce names, not only indexes.
  • Rating controls that speak “Good” or “Excellent” instead of raw numbers.
  • Volume or brightness labels when a percentage needs clearer wording.
  • Keeping a spoken label in sync whenever ariaValueNow changes.
  • Keeping script and markup aligned without manual setAttribute.

🔧 How It Works

1

Set the numeric value

ariaValueNow stores the machine number.

Now
2

ariaValueText adds the label

A human-readable alternative users can hear.

Text
3

Update both together

When the control moves, refresh now and text.

Sync
4

Assistive tech announces the label

Users hear “Monday,” not only “2.”

📝 Notes

Browser Support

Element.ariaValueText 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.ariaValueText

String — reflects aria-valuetext (human-readable alternative to aria-valuenow).

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 ariaValueText IDL — use setAttribute
No
ariaValueText Baseline

Bottom line: Use ariaValueText to get/set aria-valuetext. Keep it in sync with ariaValueNow. Pair with aria-valuemin and aria-valuemax for full range context.

Conclusion

ariaValueText reflects aria-valuetext so range widgets can offer a human-readable alternative to aria-valuenow. Keep the label and the number in sync whenever the control moves.

Continue with assignedSlot, ariaValueNow, or the JavaScript hub.

💡 Best Practices

✅ Do

  • Use clear spoken labels (“Sunday”, “Good”)
  • Update text whenever ariaValueNow changes
  • Keep min / now / max consistent
  • Prefer native controls when they already speak clearly
  • Test announcements with a screen reader

❌ Don’t

  • Replace ariaValueNow with text alone
  • Leave a stale label after the index changes
  • Use cryptic abbreviations users cannot understand
  • Forget bounds when modeling day or rating pickers
  • Duplicate the same number as both now and text without need

Key Takeaways

Knowledge Unlocked

Five things to remember about ariaValueText

Reflected aria-valuetext string—the human-readable alternative to aria-valuenow.

5
Core concepts
📝 02

String

readable label

Type
🔍 03

Explains now

pairs with number

Use
04

Baseline

widely available

Status
🎯 05

Sync with now

update together

Tip

❓ Frequently Asked Questions

It reflects the aria-valuetext attribute as a string that provides a human-readable text alternative to aria-valuenow for a range widget.
No. MDN marks Element.ariaValueText as Baseline Widely available (since October 2023). It is not Deprecated, Experimental, or Non-standard.
A string (for example "Sunday" or "Monday"), not necessarily a number.
ariaValueNow is the machine/numeric current value. ariaValueText is the spoken or readable label that explains that value (for example 1 → Sunday).
When the raw number is not clear to users — days of the week, ratings like "Good", or values that need clearer speech than the number alone.
Yes. Reading and writing ariaValueText updates the reflected aria-valuetext attribute.
Did you know?

MDN’s day-of-week slider uses aria-valuenow="1" with aria-valuetext="Sunday"—then updates ariaValueText to "Monday" so users hear the day name.

Next: assignedSlot

Learn which Shadow DOM slot a light-DOM child is assigned to.

assignedSlot →

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