Testing the progress element

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

The progressbar role requires an accessible name, so the <progress> below is given one via an associated <label>. The paired live region only announces at meaningful checkpoints (0%, 25%, 50%, 75%, complete) rather than on every increment, announcing every single step quickly becomes noise a screen reader user has to sit through rather than useful information.

Example

0%
0%
<label for="file">File download progress</label>
<progress id="file" max="100" value="0">
  0%
</progress>

<div id="result" aria-live="polite">
  <!-- Dynamic message, only updated at 0%, 25%, 50%, 75%, complete -->
</div>

<button>Reset</button>