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
Fundamentals
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.
Concept
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).
Foundation
📝 Syntax
JavaScript
ariaValueText
Value
A string (the human-readable alternative to aria-valuenow).
Item
Detail
Type
string (e.g. "Sunday")
Reflects
aria-valuetext
Applies to
slider, progressbar, spinbutton, scrollbar, and similar ranges
Pair with
aria-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.
Pattern
📋 MDN Slider Example Shape
MDN starts with a slider marked aria-valuetext="Sunday", then updates ariaValueText to "Monday":
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)"
});
{
"supported": true,
"pairWith": ["aria-valuenow", "aria-valuemin", "aria-valuemax"],
"tip": "Text explains the number — keep both in sync",
"status": "Baseline Widely available (MDN)"
}
How It Works
Do not leave a stale label after the numeric value changes—mismatched text confuses AT users.
Applications
🚀 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.
Under the Hood
🔧 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.”
Important
📝 Notes
Not Deprecated, Experimental, or Non-standard on MDN (Baseline Widely available).
Value is a string (a readable label), not required to be numeric.
Use with ariaValueNow—text explains the number; it does not replace it.
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).
BaselineWidely available
Google ChromeSupported (ARIA reflection)
Yes
Microsoft EdgeSupported (ARIA reflection)
Yes
Mozilla FirefoxSupported (ARIA reflection)
Yes
Apple SafariSupported (ARIA reflection)
Yes
OperaFollow Chromium support
Yes
Internet ExplorerNo ariaValueText IDL — use setAttribute
No
ariaValueTextBaseline
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.
Wrap Up
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.