JavaScript Element ariaValueMin Property

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

What You’ll Learn

Element.ariaValueMin is an instance property that reflects the aria-valuemin attribute. Learn how it declares the minimum allowed value for a range widget, how it pairs with aria-valuemin and aria-valuenow, 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

Minimum allowed

04

Reflects

aria-valuemin

05

Status

Baseline widely

06

Used on

Slider · range

Introduction

Range widgets—volume sliders, progress bars, day-of-week pickers—have a lowest and highest allowed value. Assistive technologies need the minimum so they can announce the scale (for example “1 to 7”).

aria-valuemin declares that floor. The DOM property ariaValueMin lets you read and update it from JavaScript.

JavaScript
const el = document.getElementById("slider");
console.log(el.ariaValueMin); // "1"
el.ariaValueMin = "2";
💡
Beginner tip

Prefer <input type="range"> when a native control fits. Use ariaValueMin for custom role="slider", progressbar, spinbutton, or scrollbar widgets.

Understanding the Property

MDN: the ariaValueMin property of the Element interface reflects the value of the aria-valuemin attribute, which defines the minimum allowed value for a range widget.

  • Reflected attribute — mirrors aria-valuemin.
  • Get / set — readable and writable string number.
  • Range floor — the lowest allowed value.
  • Baseline — widely available since October 2023 (MDN).

📝 Syntax

JavaScript
ariaValueMin

Value

A string which contains a number (the minimum allowed value).

ItemDetail
Typestring containing a number (e.g. "1")
Reflectsaria-valuemin
Applies toslider, progressbar, spinbutton, scrollbar, and similar ranges
Pair witharia-valuemax, aria-valuenow, optional aria-valuetext
⚠️
Keep the range consistent

Ensure aria-valueminaria-valuenowaria-valuemax. If you raise the min, clamp the current value so it does not sit below the new floor.

📋 MDN Slider Example Shape

MDN starts with a slider marked aria-valuemin="1", then updates ariaValueMin to "2":

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.ariaValueMin); // "1"
el.ariaValueMin = "2";
console.log(el.ariaValueMin); // "2"

This pattern often models days of the week (1–7) with aria-valuetext providing a spoken label like “Sunday.”

⚡ Quick Reference

GoalCode / note
Readel.ariaValueMin
Writeel.ariaValueMin = "2"
HTML attributearia-valuemin="1"
Native cousinmin on <input type="range">
MDN statusBaseline Widely available

🔍 At a Glance

Four facts about Element.ariaValueMin.

Kind
get / set

Instance

Type
string

Number text

Reflects
aria-valuemin

Attribute

Baseline
widely

Oct 2023+

Examples Gallery

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

📚 Getting Started

Read the reflected value and follow MDN’s min update.

Example 1 — Read ariaValueMin

Log the minimum from a custom slider.

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

// HTML includes: aria-valuemin="1"
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 "2"

MDN: change the minimum from 1 to 2.

JavaScript
let el = document.getElementById("slider");
console.log(el.ariaValueMin); // "1"
el.ariaValueMin = "2";
console.log(el.ariaValueMin); // "2"
Try It Yourself

How It Works

Assigning the property updates the reflected aria-valuemin attribute. Also update visuals and clamp aria-valuenow upward if needed.

📈 Clamp Current, Attribute Sync & Snapshot

Practice keeping now within min–max and verify reflection.

Example 3 — Clamp aria-valuenow After Min Change

If the current value sits below the new min, pull it up.

JavaScript
const el = document.createElement("div");
el.setAttribute("role", "slider");
el.setAttribute("aria-valuemin", "0");
el.setAttribute("aria-valuenow", "0");
el.setAttribute("aria-valuemax", "10");
document.body.appendChild(el);

el.ariaValueMin = "3";
const now = Number(el.getAttribute("aria-valuenow"));
const min = Number(el.ariaValueMin);
if (now < min) {
  el.setAttribute("aria-valuenow", String(min));
}
console.log({
  ariaValueMin: el.ariaValueMin,
  ariaValueNow: el.getAttribute("aria-valuenow")
});
Try It Yourself

How It Works

Raising the min without clamping aria-valuenow can leave an invalid range. Keep min ≤ now ≤ max at all times.

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-valuemin", "1");
document.body.appendChild(el);

el.ariaValueMin = "2";
console.log({
  fromProperty: el.ariaValueMin,
  fromAttribute: el.getAttribute("aria-valuemin"),
  same: el.ariaValueMin === el.getAttribute("aria-valuemin")
});
Try It Yourself

How It Works

Prefer ariaValueMin 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: "ariaValueMin" in Element.prototype,
  pairWith: ["aria-valuemax", "aria-valuenow", "aria-valuetext"],
  tip: "Prefer input type=range when a native control fits",
  status: "Baseline Widely available (MDN)"
});
Try It Yourself

How It Works

Do not let the ARIA min disagree with the visual track start—mismatched ranges confuse AT users.

🚀 Common Use Cases

  • Custom volume, brightness, or seek sliders.
  • Progress bars and meters that start at a non-zero floor.
  • Spinbuttons and day/week pickers with a fixed lower bound.
  • Dynamically raising a range floor (for example starting later in a week).
  • Keeping script and markup aligned without manual setAttribute.

🔧 How It Works

1

Define the range

Min and max set the allowed scale.

Bounds
2

ariaValueMin sets the floor

Lowest value the widget may reach.

Min
3

Keep now inside the range

Clamp aria-valuenow when min changes.

Now
4

Assistive tech understands the scale

Users hear min, now, and max together.

📝 Notes

Browser Support

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

String number — reflects aria-valuemin (minimum for a range widget).

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

Bottom line: Use ariaValueMin to get/set aria-valuemin. Keep min ≤ now ≤ max. Prefer native range inputs when possible. Pair with aria-valuemax, aria-valuenow, and optional aria-valuetext.

Conclusion

ariaValueMin reflects aria-valuemin so range widgets can declare their minimum. Use string numbers, keep now within the bounds, and prefer native range inputs when they are enough.

Continue with ariaValueNow, ariaValueMax, or the JavaScript hub.

💡 Best Practices

✅ Do

  • Use string numbers for the minimum
  • Keep min ≤ now ≤ max
  • Clamp now when you raise the min
  • Prefer native type="range" when possible
  • Add aria-valuetext for readable labels

❌ Don’t

  • Leave now below the new minimum
  • Treat the value as a Number type in ARIA APIs
  • Set min above max
  • Rebuild native range inputs with ARIA without need
  • Forget to update visuals when min changes

Key Takeaways

Knowledge Unlocked

Five things to remember about ariaValueMin

Reflected aria-valuemin string for the minimum of a range widget.

5
Core concepts
📝 02

String number

minimum 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-valuemin attribute as a string containing a number that defines the minimum allowed value for a range widget (for example a slider, progressbar, spinbutton, or scrollbar).
No. MDN marks Element.ariaValueMin 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-valuemin with aria-valuemax (maximum), aria-valuenow (current), 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 ariaValueMin for custom range widgets.
Yes. Reading and writing ariaValueMin updates the reflected aria-valuemin attribute.
Did you know?

MDN’s day-of-week slider uses aria-valuemin="1" with aria-valuetext="Sunday"—the number is the machine value; the text is what users hear.

Next: Element ariaValueNow

Learn the reflected aria-valuenow property for the current range value.

ariaValueNow →

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