Menu

Sottolineato e barrato in HTML: i tag u, ins, s e del

Sottolinea il testo in HTML con <u> o con text-decoration di CSS, e barralo con <s> o <del>. Scopri cosa significa ogni tag, come <ins> e <del> segnano le modifiche e perché sottolineare un testo che non è un link confonde chi legge.

Questa pagina include editor eseguibili: modifica, esegui e vedi subito l'output.

Come sottolineare un testo in HTML

Ci sono due modi: il tag <u> oppure la proprietà CSS text-decoration: underline. Entrambi tracciano la stessa linea:

Il problema di qualsiasi sottolineatura è la terza riga: chi legge si aspetta che un testo sottolineato sia un link, e ci clicca sopra. Sottolinea il testo normale solo quando c'è un motivo chiaro.

Cosa significa il tag u

<u> non è un pulsante generico per "sottolineare". Nell'HTML attuale indica un testo con un'annotazione non esplicitata: un segno che dice "qui c'è qualcosa di particolare" senza dire cosa. Gli usi reali più comuni:

  • segnare un errore di ortografia (come fa un programma di videoscrittura, spesso con una linea rossa ondulata),
  • segnare i nomi propri nei testi cinesi, dove è una convenzione tipografica.

Per dare enfasi usa <em> o <strong> (vedi grassetto), e per i titoli dei libri usa <cite>. Se ti interessa solo l'aspetto, usa il CSS.

Barrato: s e del

HTML ha due tag che tracciano una linea sul testo, e hanno significati diversi:

TagSignificatoUso tipico
<s>Non più corretto o rilevante, conservato come contestoPrezzo vecchio, tipo di biglietto esaurito
<del>Rimosso dal documentoModifiche, changelog, attività completate in una lista di cose da fare

Segnare le modifiche con ins e del

<ins> è il compagno di <del>: segna un testo che è stato aggiunto. I browser lo sottolineano di default. Entrambi accettano datetime (quando è avvenuta la modifica) e cite (un URL che la spiega):

Questo stile rosso e verde è l'aspetto familiare di un diff. text-decoration: none su ins toglie la sottolineatura predefinita, così non sembra un link.

Sottolineato e barrato con il CSS

text-decoration si occupa della parte visiva su qualsiasi elemento: accetta un colore e uno stile, e text-decoration-thickness imposta lo spessore. Per le linee puramente decorative è lo strumento giusto:

Come togliere la sottolineatura dai link, la distanza della sottolineatura e gli altri dettagli di text-decoration si trovano nella pagina sulla sottolineatura in CSS.

Accessibilità

Il supporto degli screen reader per <s>, <del> e <ins> è incostante: alcuni li annunciano come eliminati o inseriti, molti li leggono come testo normale, quindi chi ascolta può sentire "Prezzo 49 dollari 29 dollari" senza alcun indizio su quale sia quello attuale. Quando la differenza conta, dillo anche a parole, per esempio con un testo nascosto alla vista ma letto ad alta voce, o semplicemente "Prima 49 ,ora29, ora 29 ".

Errori comuni

  • Sottolineare un testo che non è un link. Chi legge proverà a cliccarci. Per evidenziare usa il grassetto, un colore o uno sfondo.
  • Usare <u> per dare enfasi. Usa <em> o <strong>.
  • Usare <strike>. È obsoleto. Usa <s>, <del> o text-decoration: line-through.
  • Usare <s> per contenuti eliminati nella cronologia di un documento. Quello è <del>, che può anche registrare quando è successo.
  • Affidare il significato solo alla linea. Molti screen reader non la annunciano.

Domande frequenti

Come sottolineo un testo in HTML?

Racchiudilo in <u>, oppure applica text-decoration: underline nel CSS. Usa <u> solo per il suo significato specifico (per esempio segnare una parola scritta male); per una sottolineatura puramente visiva usa il CSS su uno <span> o sull'elemento stesso.

Come barro un testo in HTML?

Usa <s> per un testo che non è più corretto, come un prezzo vecchio, e <del> per un testo rimosso durante una modifica. Entrambi tracciano una linea sul testo. In CSS, text-decoration: line-through fa lo stesso a livello visivo.

Il tag <u> è deprecato?

No. <u> era deprecato in HTML 4 ma è tornato in HTML5 con un nuovo significato: testo con un'annotazione non testuale, come un errore di ortografia o un nome proprio in un testo cinese. È valido, solo che raramente è la scelta giusta.

Che fine ha fatto il tag <strike>?

<strike> è obsoleto. I browser lo mostrano ancora barrato, ma non è HTML valido. Usa <s> o <del> a seconda del significato, oppure text-decoration: line-through.

Che differenza c'è tra <s> e <del>?

<s> segna un testo non più rilevante o corretto ma conservato come contesto, come un prezzo barrato. <del> segna un testo eliminato dal documento, spesso accanto a un <ins> che mostra cosa lo ha sostituito, e può avere gli attributi datetime e cite.

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA