Element.ariaValueNow is an instance property that reflects the aria-valuenow attribute. Learn how it declares the current value for a range widget, how it pairs with aria-valuemin and aria-valuemax, and how to get or set it from JavaScript—with five examples and try-it labs.
01
Kind
Instance property
02
Type
String (number)
03
Meaning
Current value
04
Reflects
aria-valuenow
05
Status
Baseline widely
06
Used on
Slider · range
Fundamentals
Introduction
Range widgets—volume sliders, progress bars, day-of-week pickers—have a lowest and highest allowed value. Assistive technologies need the current value so they can announce where the control sits on that scale (for example “2 of 1 to 7”).
aria-valuenow declares that current position. The DOM property ariaValueNow lets you read and update it from JavaScript.
JavaScript
const el = document.getElementById("slider");
console.log(el.ariaValueNow); // "1"
el.ariaValueNow = "2";
💡
Beginner tip
Prefer <input type="range"> when a native control fits. Use ariaValueNow for custom role="slider", progressbar, spinbutton, or scrollbar widgets.
Concept
Understanding the Property
MDN: the ariaValueNow property of the Element interface reflects the value of the aria-valuenow attribute, which defines the current value for a range widget.
Reflected attribute — mirrors aria-valuenow.
Get / set — readable and writable string number.
Current value — where the widget sits now.
Baseline — widely available since October 2023 (MDN).
Foundation
📝 Syntax
JavaScript
ariaValueNow
Value
A string which contains a number (the current value).
Item
Detail
Type
string containing a number (e.g. "1")
Reflects
aria-valuenow
Applies to
slider, progressbar, spinbutton, scrollbar, and similar ranges
Ensure aria-valuemin ≤ aria-valuenow ≤ aria-valuemax. When you change the current value, keep it inside the min–max range and update aria-valuetext if you use labels.
Pattern
📋 MDN Slider Example Shape
MDN starts with a slider marked aria-valuenow="1", then updates ariaValueNow to "2":
Assigning the property updates the reflected aria-valuenow attribute. Also update visuals and update aria-valuetext when the spoken label should change.
📈 Value Text, Attribute Sync & Snapshot
Practice pairing with valuetext and verify reflection.
Example 3 — Update aria-valuetext With Now
When the day index changes, keep the spoken label in sync.
Prefer ariaValueNow in script; keep the attribute for HTML markup.
Example 5 — Support Snapshot
Feature-detect and remember the min / now / max trio.
JavaScript
console.log({
supported: "ariaValueNow" in Element.prototype,
pairWith: ["aria-valuemin", "aria-valuemax", "aria-valuetext"],
tip: "Prefer input type=range when a native control fits",
status: "Baseline Widely available (MDN)"
});
Element.ariaValueNow 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.ariaValueNow
String number — reflects aria-valuenow (current value for a range widget).
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 ariaValueNow IDL — use setAttribute
No
ariaValueNowBaseline
Bottom line: Use ariaValueNow to get/set aria-valuenow. Keep min ≤ now ≤ max. Prefer native range inputs when possible. Pair with aria-valuemin, aria-valuemax, and optional aria-valuetext.
Wrap Up
Conclusion
ariaValueNow reflects aria-valuenow so range widgets can declare their current value. Use string numbers, keep now within the bounds, and prefer native range inputs when they are enough.
Rebuild native range inputs with ARIA without need
Forget to update visuals when now changes
Summary
Key Takeaways
Knowledge Unlocked
Five things to remember about ariaValueNow
Reflected aria-valuenow string for the current value of a range widget.
5
Core concepts
📄01
Get / set
on Element
Kind
📝02
String number
current value
Type
🔍03
Slider · range
custom widgets
Use
✅04
Baseline
widely available
Status
🎯05
min · now · max
keep in sync
Tip
❓ Frequently Asked Questions
It reflects the aria-valuenow attribute as a string containing a number that defines the current value for a range widget (for example a slider, progressbar, spinbutton, or scrollbar).
No. MDN marks Element.ariaValueNow as Baseline Widely available (since October 2023). It is not Deprecated, Experimental, or Non-standard.
A string that contains a number (for example "1" or "2"), not a JavaScript Number type.
Use aria-valuenow with aria-valuemin (minimum), aria-valuemax (maximum), and optionally aria-valuetext (human-readable label).
Yes when possible. An HTML <input type="range"> already exposes min, max, and value without custom ARIA. Use ariaValueNow for custom range widgets.
Yes. Reading and writing ariaValueNow updates the reflected aria-valuenow attribute.
Did you know?
MDN’s day-of-week slider uses aria-valuenow="1" with aria-valuetext="Sunday"—the number is the machine value; the text is what users hear.