docs.rodeo

MDN Web Docs mirror

: The Progress Indicator element

{{HTMLSidebar}} 

The <progress> HTML element displays an indicator showing the completion progress of a task, typically displayed as a progress bar.

{{EmbedInteractiveExample("pages/tabbed/progress.html", "tabbed-standard")}} 

Attributes

This element includes the global attributes.

[!NOTE] Unlike the {{htmlelement("meter")}}  element, the minimum value is always 0, and the min attribute is not allowed for the <progress> element.

[!NOTE] The {{cssxref(":indeterminate")}}  pseudo-class can be used to match against indeterminate progress bars. To change the progress bar to indeterminate after giving it a value you must remove the value attribute with {{domxref("Element.removeAttribute", "element.removeAttribute('value')")}} .

Accessibility

Labelling

In most cases you should provide an accessible label when using <progress>. While you can use the standard ARIA labelling attributes aria-labelledby or aria-label as you would for any element with role="progressbar", when using <progress> you can alternatively use the {{htmlelement("label")}}  element.

[!NOTE] Text placed between the element’s tags is not an accessible label, it is only recommended as a fallback for old browsers that do not support this element.

Examples

<label>
  Uploading Document: <progress value="70" max="100">70 %</progress>
</label>

<!-- OR -->
<br />

<label for="progress-bar">Uploading Document</label>
<progress id="progress-bar" value="70" max="100">70 %</progress>

Result

{{EmbedLiveSample('Labelling')}} 

Describing a particular region

If the <progress> element is describing the loading progress of a section of a page, use aria-describedby to point to the status, and set aria-busy="true" on the section that is being updated, removing the aria-busy attribute when it has finished loading.

Examples

<div aria-busy="true" aria-describedby="progress-bar">
  <!-- content is for this region is loading -->
</div>

<!-- ... -->

<progress id="progress-bar" aria-label="Content loading…"></progress>
Result

{{EmbedLiveSample('Describing a particular region')}} 

Examples

<progress value="70" max="100">70 %</progress>

Result

{{ EmbedLiveSample("Examples", 200, 50) }} 

Technical summary

Content categories Flow content, phrasing content, labelable content, palpable content.
Permitted content Phrasing content, but there must be no <progress> element among its descendants.
Tag omission None, both the starting and ending tag are mandatory.
Permitted parents Any element that accepts phrasing content.
Implicit ARIA role progressbar
Permitted ARIA roles No role permitted
DOM interface `{{domxref("HTMLProgressElement")}}` 

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN