<progress>: l'elemento "indicatore di avanzamento"
L'elemento HTML <progress>
visualizza un indicatore che mostra lo stato di avanzamento del completamento di un'attività, generalmente visualizzato come una barra di avanzamento.
Attributi
max
Questo attributo descrive quanto lavoro richiede l'attività indicata dall'elemento <progress>
. L' attributo max
, se presente, deve avere un valore maggiore di 0 ed essere un numero a virgola mobile valido. Il valore predefinito è 1.
value
Questo attributo specifica la quantità di attività che è stata completata. Deve essere un numero a virgola mobile valido tra 0 e max
, o tra 0 e 1 se max
viene omesso. Se non è presente alcun attributo value
, la barra di avanzamento è indeterminata; questo indica che un'attività è in corso senza alcuna indicazione del tempo previsto.
Nota: a differenza dell'elemento <meter>
, il valore minimo è sempre 0 e l'attributo min
non è consentito per l'elemento <progress>
.
Nota: la pseudo-classe :indeterminate
può essere utilizzata per confrontare barre di avanzamento indeterminate. Per modificare la barra di avanzamento in modo indeterminato dopo averle assegnato un valore, è necessario rimuovere l'attributo value con element.removeAttribute('value')
.
Esempio
<progress value="70" max="100">70% </progress>
Problemi di accessibilità
Etichettatura
Nella maggior parte dei casi è necessario fornire un'etichetta accessibile quando si utilizza <progress>
. Mentre puoi usare gli attributi di etichettatura ARIA standard aria-labelledby
o aria-label
come faresti per qualsiasi elemento con role="progressbar"
, quando usi <progress>
puoi in alternativa usare l'elemento <label>
.
Nota: il testo posizionato tra i tag dell'elemento non è un'etichetta accessibile, è consigliato solo come ripiego per i vecchi browser che non supportano questo elemento.
Esempio
<label>Caricamento del documento: <progress value="70" max="100">70%
</progress></label>
Descrivere una regione particolare
Se l'elemento <progress>
descrive l'avanzamento del caricamento di una sezione di una pagina, utilizzare aria-describedby
per puntare allo stato e impostare aria-busy="true"
sulla sezione che si sta aggiornando, rimuovendo l'attributo aria-busy
al termine del caricamento.
Esempio
<div aria-busy="true" aria-describedby="progress-bar">
<!-- Contenuto in caricamento -->
</div>