HTML progress: mostrare l’avanzamento e lo stato indeterminato
HTML <progress> mostra la parte completata di un’attività. Imposta value e max per un avanzamento determinato, oppure ometti l’attributo value quando il lavoro totale è sconosciuto. L’elemento non misura automaticamente caricamenti o download.
Calcola il progresso con valore e massimo
il valore è l'importo completato e max è l'importo totale. Un valore di 20 con max 100 significa 20%; con max 200 significa 10%. Quando max è omesso, il suo valore predefinito è 1, quindi il 20% si scrive come value="0.2". Usa un numero valido maggiore di zero per max e un valore compreso tra zero e max.
Il minimo è sempre zero; il progresso non utilizza un attributo min. Considera meter per una misurazione all'interno di un intervallo, come l'utilizzo dello spazio di archiviazione o un punteggio. Usa progress per il completamento di un'attività in corso.
Esempio completo: aggiorna il progresso e passa a indeterminato
Salva questo codice come progress-demo.html e aprilo in un browser. I pulsanti modificano solo i valori visualizzati per esercitazione; non trasferiscono file.
<!doctype html>
<html lang="it">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Avanzamento e stato indeterminato</title>
<style>
body { max-width: 36rem; padding: 0 1rem; margin: 1rem auto; }
progress { display: block; width: 100%; height: 1.5rem; }
button { margin: 0.25rem; font: inherit; }
</style>
</head>
<body>
<h1>Esercizio di avanzamento</h1>
<label for="work">Avanzamento dell’attività di esempio</label>
<progress id="work" value="20" max="100">20%</progress>
<p id="status" aria-live="polite">20% completato</p>
<button type="button" id="advance">Passa all’80%</button>
<button type="button" id="unknown">Totale sconosciuto</button>
<button type="button" id="reset">Ripristina</button>
<script>
const bar = document.getElementById('work');
const status = document.getElementById('status');
function show(value) {
if (value === null) {
bar.removeAttribute('value');
bar.textContent = 'In corso';
status.textContent = 'In corso: la quantità totale di lavoro è sconosciuta.';
} else {
bar.value = value;
bar.textContent = value + '%';
status.textContent = value + '% completato';
}
}
document.getElementById('advance').addEventListener('click', () => show(80));
document.getElementById('unknown').addEventListener('click', () => show(null));
document.getElementById('reset').addEventListener('click', () => show(20));
</script>
</body>
</html>
- Lo stato iniziale è completato al 20%. Clicca su
Passa all’80%per modificare sia la barra sia la sua descrizione all'80%. - Clicca su
Totale sconosciutoper rimuovere l'attributo value. Il browser mostra un progresso indeterminato insieme a una frase che spiega che il totale è sconosciuto. - Clicca su
Ripristinaper ripristinare l'attributo value e tornare al 20%.
value="0" rappresenta un progresso determinato senza lavoro completato; non è indeterminato. Per passare un elemento di progresso esistente a indeterminato, rimuovi l'attributo come nell'esempio. L'aspetto e l'animazione del progresso indeterminato possono variare a seconda del browser, del sistema operativo e delle impostazioni dell'utente.
Fornisci un nome del task e una frase di stato
Il testo “20%” all'interno della barra di avanzamento è un testo di riserva per i browser più vecchi, non un sostituto del nome del compito. Associa un'etichetta utilizzando valori corrispondenti di for e id, o fornisci un nome ARIA accessibile appropriato, per identificare il compito. Mostra lo stato corrente sia a parole sia attraverso il colore e la lunghezza della barra.
Per compiti reali, aggiorna il valore dalle informazioni fornite da un server o dagli eventi di trasferimento. Riempire una barra con un timer non indica che il lavoro sia completato. Progetta messaggi e azioni separati per errori, cancellazioni e completamenti, e controlla la frequenza degli annunci in modo che gli aggiornamenti di stato non si ripetano eccessivamente. Il riferimento MDN progress spiega la sintassi e i requisiti di accessibilità.




