Introduzione
Quando si studia la struttura di una pagina HTML, si impara presto a riconoscere elementi come titoli, paragrafi, collegamenti e contenitori. Tuttavia, la struttura non dipende soltanto dai tag: anche gli attributi HTML svolgono un ruolo importante. Gli attributi aggiungono informazioni agli elementi e permettono di identificarli, collegarli, descriverli o prepararli all’interazione con CSS e JavaScript.
Gli attributi globali possono essere utilizzati su molti elementi diversi. Tra i più utili troviamo id, class, lang, title e gli attributi personalizzati data-*. Imparare a usarli correttamente aiuta a creare documenti più ordinati, accessibili e facili da mantenere.
In questo tutorial costruiremo una piccola scheda prodotto. L’esempio mostrerà come associare un identificatore univoco, raggruppare elementi con una classe, specificare la lingua di un testo e conservare dati utili per uno script.
Codice completo
<main id="catalogo">
<article class="prodotto" data-categoria="accessori" data-disponibile="true">
<h1>Zaino urbano</h1>
<p lang="it">
Uno zaino leggero e resistente per il lavoro e lo studio.
</p>
<p class="prodotto__prezzo" title="Prezzo comprensivo di IVA">
<strong>49,90 €</strong>
</p>
<a
class="prodotto__link"
href="/prodotti/zaino-urbano"
aria-label="Scopri tutti i dettagli dello Zaino urbano">
Scopri il prodotto
</a>
</article>
</main> Spiegazione
L’attributo id
L’attributo id identifica un elemento in modo univoco all’interno della pagina. Nell’esempio, id="catalogo" identifica il contenitore principale. Un valore di id non dovrebbe essere ripetuto: due elementi diversi non dovrebbero avere lo stesso identificatore.
Gli identificatori sono utili per creare collegamenti interni, selezionare un elemento con JavaScript o applicare regole CSS molto specifiche. Per esempio, un collegamento potrebbe puntare a #catalogo per portare l’utente direttamente alla sezione del catalogo.
L’attributo class
L’attributo class serve a raggruppare elementi che condividono una caratteristica. Una stessa classe può essere assegnata a più elementi. Nel codice, prodotto, prodotto__prezzo e prodotto__link descrivono il ruolo degli elementi nella scheda.
È buona pratica scegliere nomi chiari e coerenti. Una convenzione come quella mostrata, basata su blocco ed elemento, rende più leggibile il documento e facilita il lavoro successivo con CSS e JavaScript.
Lingua e informazioni aggiuntive
L’attributo lang indica la lingua del contenuto. Specificare lang="it" aiuta gli screen reader a pronunciare correttamente le parole e permette ai browser di applicare strumenti linguistici appropriati, come la correzione ortografica.
L’attributo title può fornire un’informazione aggiuntiva quando l’utente passa il puntatore sopra un elemento. Nell’esempio chiarisce che il prezzo include l’IVA. Non bisogna però usare title per informazioni indispensabili: su dispositivi mobili e tecnologie assistive potrebbe non essere sempre disponibile.
Gli attributi data-*
Gli attributi data-* permettono di memorizzare dati personalizzati direttamente nell’HTML. Nel codice, data-categoria indica il tipo di prodotto e data-disponibile comunica che l’articolo è acquistabile.
Questi dati possono essere letti da JavaScript senza inventare attributi non standard. Per esempio, uno script potrebbe individuare tutti gli articoli con data-disponibile="true" e mostrare un’etichetta “Disponibile”. Gli attributi data-* non devono però sostituire il contenuto visibile o gli attributi semantici già previsti da HTML.
Il ruolo di aria-label
L’attributo aria-label fornisce un nome accessibile a un elemento interattivo. Nel nostro esempio rende il testo del collegamento più specifico per chi usa uno screen reader. Deve essere utilizzato con criterio: se il testo visibile è già chiaro, non è necessario aggiungere un’etichetta ARIA ridondante.
Best practice
- Usa un
iduna sola volta nella stessa pagina. - Scegli nomi di classe descrittivi, brevi e coerenti.
- Usa il trattino per separare le parole, ad esempio
scheda-prodotto. - Indica la lingua dei contenuti che differiscono dalla lingua principale.
- Utilizza gli attributi
data-*solo per dati tecnici destinati a script o applicazioni. - Non aggiungere attributi inventati quando esiste già un attributo HTML standard.
- Non usare
ideclassper dare significato semantico al contenuto: per quello servono tag appropriati. - Verifica che gli attributi siano racchiusi tra virgolette e che i valori non contengano errori di battitura.
Riepilogo
Una pagina HTML ben strutturata non è composta soltanto da tag annidati correttamente. Gli attributi completano il significato degli elementi e facilitano la collaborazione tra HTML, CSS, JavaScript e tecnologie assistive.
id identifica un elemento singolo, class raggruppa elementi simili, lang dichiara la lingua, title aggiunge un’informazione secondaria e data-* conserva dati personalizzati. Usati con moderazione e coerenza, questi strumenti rendono il codice più prevedibile, accessibile e semplice da evolvere.
Approfondisci con risorse ufficiali
- MDN Web Docs: consulta la documentazione sugli attributi globali HTML e sui relativi casi d’uso.
- WHATWG HTML Standard: approfondisci la specifica ufficiale del linguaggio HTML.
- WAI-ARIA Authoring Practices: studia l’uso corretto degli attributi ARIA nei componenti interattivi.
- W3C Markup Validation Service: verifica la validità sintattica dei tuoi documenti HTML.
