HTML <meter> Tag

Beginner
⏱️ 6 min read
📚 Updated: Jun 2026
🎯 3 Examples
Measurements

What You’ll Learn

The <meter> tag is a powerful HTML5 tool for representing scalar measurements within a predefined range. This guide covers syntax, attributes, and real-world gauge patterns.

01

Core Syntax

Set min, max, and value on a <meter> element.

02

Range Attributes

Use low, high, and optimum for color zones.

03

meter vs progress

Gauges vs task completion bars — know which tag to pick.

04

Disk Usage

Display storage levels and capacity at a glance.

05

Accessible Fallback

Include text inside meter for screen readers.

06

Browser Support

Full support in all modern browsers.

What Is the <meter> Tag?

The <meter> element defines a scalar measurement within a known range. It is often used to represent levels such as disk usage, test scores, fuel remaining, or temperature — any value with fixed minimum and maximum bounds.

💡
Gauge, not a progress bar

<meter> shows a measurement at a point in time. For task completion (downloads, form steps), use <progress> instead. Mixing them up is a common beginner mistake.

Browsers render <meter> as a colored bar gauge. The fill color can change based on low, high, and optimum thresholds you define.

📝 Syntax

Use the opening <meter> tag with attributes specifying the minimum, maximum, and current values:

syntax.html
<meter
  min="minValue"
  max="maxValue"
  value="currentValue"
>
  Fallback text
</meter>

Syntax Rules

  • value is required — the current measurement.
  • min defaults to 0; max defaults to 1 if omitted.
  • Include fallback text between tags for accessibility and unsupported browsers.
  • value must fall between min and max.

⚡ Quick Reference

PatternCode SnippetResult
Basic gauge<meter value="0.75">75%
0–100 scalemin="0" max="100" value="75"75%
With optimumlow high optimumColor zones
Disk usagevalue="80"80%
vs progress<progress>Task completion only
Fallback textBetween tagsRequired for a11y

⚖️ <meter> vs <progress>

TagMeaningBest for
<meter>Scalar gauge in a fixed rangeDisk usage, scores, fuel level
<progress>Task completion over timeFile upload, multi-step forms
Color zoneslow, high, optimummeter only
IndeterminateNo value yetprogress only

🧰 Attributes

The <meter> tag supports these key attributes:

min Range

Minimum value of the range. Defaults to 0.

min="0"
max Range

Maximum value of the range. Defaults to 1.

max="100"
value Required

Current measurement within the defined range.

value="75"
low Zone

Upper bound of the “low” range. Below this is considered low.

low="25"
high Zone

Lower bound of the “high” range. Above this is considered high.

high="75"
optimum Zone

Ideal value. Browser colors the gauge green when value is near optimum.

optimum="50"
attributes.html
<meter min="0" max="100" value="75">75%</meter>

Examples Gallery

Basic gauges, level indicators, and disk usage patterns with live native meter rendering.

👀 Live Preview

A simple 0–100 gauge at 75%:

75%

Basic meter Gauge

Set min, max, and value to render a scalar measurement.

basic-meter.html
<meter min="0" max="100" value="75"></meter>
Try It Yourself

📚 Common Use Cases

Use <meter> for gauges and measurements within fixed bounds — completion levels, disk usage, scores, and any scalar value where the min and max are known.

Progress Indication

Indicate a level such as 50% completion of a quota or capacity (use <progress> for ongoing task bars).

progress-indication.html
<meter min="0" max="100" value="50">50%</meter>
Try It Yourself

Disk Usage

Represent disk or storage usage with meaningful fallback text for accessibility.

disk-usage.html
<meter
  min="0"
  max="100"
  value="80"
  low="60"
  high="90"
  optimum="40"
>
  80% Disk Space Used
</meter>
Try It Yourself

Styling <meter> with CSS

Browsers style meter natively, but you can adjust width and use pseudo-elements in WebKit/Blink browsers:

width Bar length
::-webkit-meter-bar Track background
::-webkit-meter-optimum-value Green fill
::-moz-meter-bar Firefox fill
meter-styles.css
/* Responsive gauge width */
meter {
  width: 100%;
  max-width: 320px;
  height: 1.25rem;
}

/* WebKit/Blink color zones */
meter::-webkit-meter-optimum-value {
  background: #22c55e;
}
meter::-webkit-meter-suboptimum-value {
  background: #f59e0b;
}
meter::-webkit-meter-even-less-good-value {
  background: #ef4444;
}

Styled gauge preview

♿ Accessibility

Make gauges understandable for all users:

  • Include fallback text — Put a readable value like 80% Disk Space Used inside the tag.
  • Pair with a visible label — Use <label> or nearby text so sighted users know what is measured.
  • Do not rely on color alone — Show the numeric value in text alongside the gauge.
  • Use progress for tasks — Screen readers announce meter and progress differently; pick the right semantics.

🧠 How <meter> Works

1

Author sets range and value

Define min, max, and the current value on the element.

Markup
2

Browser renders the gauge

A colored bar shows where value falls between min and max.

Rendering
3

Color zones apply

low, high, and optimum shift the fill color to green, yellow, or red.

Semantics
=

Instant visual measurement

Users see a gauge at a glance; fallback text covers accessibility and older browsers.

Browser Support

The <meter> element is an HTML5 tag with full support in all modern browsers and partial support in Internet Explorer 10+.

Baseline · HTML5

Scalar gauges that work everywhere

Chrome, Firefox, Safari, Edge, and Opera all render native meter bars with color zones.

100% Modern support
Google Chrome Full support · Color zones
Full support
Mozilla Firefox Full support · ::-moz-meter-bar
Full support
Apple Safari Full support · macOS & iOS
Full support
Microsoft Edge Full support · Chromium
Full support
Internet Explorer IE 10+ · Partial
Partial
Opera Full support
Full support
<meter> tag 100% modern support

Bottom line: Use <meter> confidently for gauges and scalar measurements in every production environment today.

Conclusion

Mastering the <meter> tag gives you a native HTML way to represent scalar values on your website. Whether showing disk usage, scores, or capacity levels, meter enhances visual appeal and semantic clarity.

Define clear ranges, include accessible fallback text, distinguish meter from progress, and test across browsers for consistent gauge rendering.

💡 Best Practices

✅ Do

  • Define clear min and max values
  • Include meaningful text inside meter
  • Set low, high, optimum for color zones
  • Use progress for task completion bars

❌ Don’t

  • Use meter for file download progress
  • Omit fallback text for screen readers
  • Set value outside min/max range
  • Rely on gauge color alone without a numeric label

Key Takeaways

Knowledge Unlocked

Six truths every developer should know about <meter>

Bookmark these before you add gauges to your pages.

6
Core concepts
⚙️ 02

min / max / value

Three attributes define the gauge bounds.

Attributes
⚖️ 03

Not progress

Gauge ≠ task completion bar.

Comparison
💾 04

Disk Usage

Classic use case for storage gauges.

Use case
05

Fallback Text

Inner text helps screen readers.

A11y
06

Universal Support

HTML5 — all modern browsers.

Compatibility

❓ Frequently Asked Questions

It displays a scalar measurement within a known range, like disk usage or a test score.
meter = gauge at a point in time. progress = task completion over time.
At minimum value. Set min and max for the range. Add low, high, optimum for color zones.
Yes. Fallback text like 80% Disk Space Used improves accessibility.
Yes in all modern browsers. IE 10+ has partial support.

Build Native HTML Gauges

Practice disk usage and level indicators in the Try It editor.

Try Disk Usage Gauge →

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.

6 people found this page helpful