progress elementThe <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.
<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>