Syntax
<progress value="70" max="100"></progress>
<meter value="6" min="0" max="10"></meter>Examples
File Upload Progress
Showing task completion with progress.
<label for="upload">Uploading file...</label>
<progress id="upload" value="45" max="100"></progress>Indeterminate Progress
A progress bar with no known completion percentage yet.
<p>Processing your request...</p>
<progress></progress>Disk Usage Meter
Using meter to represent a static measured value within a range.
<label for="disk">Disk usage:</label>
<meter id="disk" value="7.2" min="0" max="10" low="3" high="8" optimum="0">7.2 out of 10 GB</meter>Attributes
- value (number): The current value
- max (number): The maximum value (progress and meter)
- min (number): The minimum value (meter only, defaults to 0)
- low (number): The upper bound of the low range (meter only)
- high (number): The lower bound of the high range (meter only)
Best practices
- Use <progress> for tasks that are actively completing, like uploads or multi-step processes
- Use <meter> for static measurements within a known range, like ratings, disk usage, or scores — not for task completion
- Omit the value attribute on <progress> to show an indeterminate loading state
- Always pair with a <label> so the purpose of the bar or gauge is clear
Browser compatibility
Support applies to the named feature, not every attribute or behaviour in this article. Versions refer to browsers, not operating systems.
<progress>
Desktop
- Chrome
- Supported
From 6 - Firefox
- Supported
From 6 - Safari
- Supported
From 6 - Edge
- Supported
From 12 - Opera
- Supported
From 11
Mobile
- Safari on iOS
- Supported
From 7 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 6 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature · MDN reference
Support history and limitations
Chrome
- From 6
Firefox
- From 6 · Before Firefox 14, the <progress> element was incorrectly classified as a form element, and therefore had a form attribute. This has been fixed. · Firefox provides the ::-moz-progress-bar pseudo-element, which lets you style the part of the interior of the progress bar representing the amount of work completed so far.
Safari
- From 6
Edge
- From 12
Opera
- From 11
Safari on iOS
- From 7 · Safari on iOS does not support indeterminate progress bars (they are rendered like 0%-completed progress bars).
Chrome for Android
- From 18
Firefox for Android
- From 6 · Before Firefox for Android 14, the <progress> element was incorrectly classified as a form element, and therefore had a form attribute. This has been fixed. · Firefox for Android provides the ::-moz-progress-bar pseudo-element, which lets you style the part of the interior of the progress bar representing the amount of work completed so far.
Samsung Internet
- From 1.0
<meter>
Desktop
- Chrome
- Supported
From 6 - Firefox
- Supported
From 16 - Safari
- Supported
From 6 - Edge
- Supported
From 13 - Opera
- Supported
From 11
Mobile
- Safari on iOS
- Supported
From 10.3 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 16 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature · MDN reference
Support history and limitations
Chrome
- From 6
Firefox
- From 16
Safari
- From 6
Edge
- From 13
Opera
- From 11
Safari on iOS
- From 10.3
Chrome for Android
- From 18
Firefox for Android
- From 16
Samsung Internet
- From 1.0
<progress> value
Desktop
- Chrome
- Supported
From 6 - Firefox
- Supported
From 6 - Safari
- Supported
From 6 - Edge
- Supported
From 12 - Opera
- Supported
From 11
Mobile
- Safari on iOS
- Supported
From 7 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 6 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature
Support history and limitations
Chrome
- From 6
Firefox
- From 6
Safari
- From 6
Edge
- From 12
Opera
- From 11
Safari on iOS
- From 7
Chrome for Android
- From 18
Firefox for Android
- From 6
Samsung Internet
- From 1.0
<meter> value
Desktop
- Chrome
- Supported
From 6 - Firefox
- Supported
From 16 - Safari
- Supported
From 6 - Edge
- Supported
From 13 - Opera
- Supported
From 11
Mobile
- Safari on iOS
- Supported
From 10.3 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 16 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature
Support history and limitations
Chrome
- From 6
Firefox
- From 16
Safari
- From 6
Edge
- From 13
Opera
- From 11
Safari on iOS
- From 10.3
Chrome for Android
- From 18
Firefox for Android
- From 16
Samsung Internet
- From 1.0
<progress> max
Desktop
- Chrome
- Supported
From 6 - Firefox
- Supported
From 6 - Safari
- Supported
From 6 - Edge
- Supported
From 12 - Opera
- Supported
From 11
Mobile
- Safari on iOS
- Supported
From 7 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 6 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature · MDN reference
Support history and limitations
Chrome
- From 6
Firefox
- From 6
Safari
- From 6
Edge
- From 12
Opera
- From 11
Safari on iOS
- From 7
Chrome for Android
- From 18
Firefox for Android
- From 6
Samsung Internet
- From 1.0
<meter> max
Desktop
- Chrome
- Supported
From 6 - Firefox
- Supported
From 16 - Safari
- Supported
From 6 - Edge
- Supported
From 13 - Opera
- Supported
From 11
Mobile
- Safari on iOS
- Supported
From 10.3 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 16 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature · MDN reference
Support history and limitations
Chrome
- From 6
Firefox
- From 16
Safari
- From 6
Edge
- From 13
Opera
- From 11
Safari on iOS
- From 10.3
Chrome for Android
- From 18
Firefox for Android
- From 16
Samsung Internet
- From 1.0
<meter> min
Desktop
- Chrome
- Supported
From 6 - Firefox
- Supported
From 16 - Safari
- Supported
From 6 - Edge
- Supported
From 13 - Opera
- Supported
From 11
Mobile
- Safari on iOS
- Supported
From 10.3 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 16 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature · MDN reference
Support history and limitations
Chrome
- From 6
Firefox
- From 16
Safari
- From 6
Edge
- From 13
Opera
- From 11
Safari on iOS
- From 10.3
Chrome for Android
- From 18
Firefox for Android
- From 16
Samsung Internet
- From 1.0
<meter> low
Desktop
- Chrome
- Supported
From 6 - Firefox
- Supported
From 16 - Safari
- Supported
From 6 - Edge
- Supported
From 13 - Opera
- Supported
From 11
Mobile
- Safari on iOS
- Supported
From 10.3 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 16 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature
Support history and limitations
Chrome
- From 6
Firefox
- From 16
Safari
- From 6
Edge
- From 13
Opera
- From 11
Safari on iOS
- From 10.3
Chrome for Android
- From 18
Firefox for Android
- From 16
Samsung Internet
- From 1.0
<meter> high
Desktop
- Chrome
- Supported
From 6 - Firefox
- Supported
From 16 - Safari
- Supported
From 6 - Edge
- Supported
From 13 - Opera
- Supported
From 11
Mobile
- Safari on iOS
- Supported
From 10.3 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 16 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature
Support history and limitations
Chrome
- From 6
Firefox
- From 16
Safari
- From 6
Edge
- From 13
Opera
- From 11
Safari on iOS
- From 10.3
Chrome for Android
- From 18
Firefox for Android
- From 16
Samsung Internet
- From 1.0
MDN BCD 8.1.5 · Dataset built 2026-10-08 · Mapping reviewed 2026-10-21. These dates are not individual browser-test or claim-verification dates. Unknown means the data does not establish support.