Menu

Souligner et barrer en HTML : balises u, ins, s et del

Soulignez du texte en HTML avec <u> ou la propriété CSS text-decoration, et barrez-le avec <s> ou <del>. Découvrez le sens de chaque balise, comment <ins> et <del> marquent des modifications, et pourquoi souligner un texte qui n'est pas un lien déroute les lecteurs.

Cette page contient des éditeurs exécutables - modifiez, exécutez et voyez la sortie instantanément.

Comment souligner un texte en HTML

Il y a deux façons : la balise <u>, ou la propriété CSS text-decoration: underline. Les deux tracent la même ligne :

Le problème de tout soulignement, c'est la troisième ligne : les lecteurs s'attendent à ce qu'un texte souligné soit un lien, et cliquent dessus. Ne soulignez un texte simple que s'il y a une raison claire.

Le sens de la balise u

<u> n'est pas un bouton « souligner » générique. En HTML actuel, elle désigne un texte avec une annotation non explicite : une marque qui dit « il y a quelque chose de particulier ici » sans dire quoi. Les vrais usages courants :

  • signaler une faute d'orthographe (comme le fait un traitement de texte, souvent avec une ligne rouge ondulée),
  • marquer les noms propres dans un texte chinois, qui est une convention typographique là-bas.

Pour la mise en valeur, utilisez <em> ou <strong> (voir le gras), et pour les titres de livres, <cite>. Si vous voulez seulement l'apparence, utilisez le CSS.

Barrer : s et del

HTML a deux balises qui tracent une ligne à travers le texte, et elles ne veulent pas dire la même chose :

BaliseSignificationUsage typique
<s>N'est plus exact ou pertinent, gardé pour le contexteAncien prix, type de billet épuisé
<del>Supprimé du documentModifications, journaux des changements, tâches terminées d'une liste

Marquer des modifications avec ins et del

<ins> est le partenaire de <del> : il marque un texte ajouté. Les navigateurs le soulignent par défaut. Les deux acceptent datetime (le moment du changement) et cite (une URL qui l'explique) :

Ce style rouge et vert est l'apparence familière d'un diff. text-decoration: none sur ins retire le soulignement par défaut pour qu'il ne ressemble pas à un lien.

Souligner et barrer avec CSS

text-decoration gère la partie visuelle pour n'importe quel élément : elle accepte une couleur et un style, et text-decoration-thickness fixe l'épaisseur. Pour les lignes purement décoratives, c'est le bon outil :

Retirer le soulignement des liens, le décalage du soulignement et les autres détails de text-decoration sont sur la page souligner en CSS.

Accessibilité

La prise en charge de <s>, <del> et <ins> par les lecteurs d'écran est inégale : certains les annoncent comme supprimés ou insérés, beaucoup les lisent comme du texte normal, si bien qu'un auditeur peut entendre « Prix 49 dollars 29 dollars » sans savoir lequel est le prix actuel. Quand la différence compte, dites-la aussi avec des mots, par exemple avec un texte masqué visuellement mais lu à voix haute, ou simplement « Avant 49 ,maintenant29, maintenant 29 ».

Erreurs fréquentes

  • Souligner un texte qui n'est pas un lien. Les lecteurs essaieront de cliquer. Pour mettre en évidence, utilisez plutôt le gras, la couleur ou un fond.
  • Utiliser <u> pour mettre en valeur. Utilisez <em> ou <strong>.
  • Utiliser <strike>. Elle est obsolète. Utilisez <s>, <del> ou text-decoration: line-through.
  • Utiliser <s> pour un contenu supprimé dans l'historique d'un document. C'est le rôle de <del>, qui peut aussi enregistrer quand cela s'est produit.
  • Compter sur la ligne seule pour porter le sens. Beaucoup de lecteurs d'écran ne l'annoncent pas.

Questions fréquentes

Comment souligner un texte en HTML ?

Entourez-le de <u>, ou appliquez text-decoration: underline en CSS. N'utilisez <u> que pour son sens précis (comme signaler un mot mal orthographié) ; pour un soulignement purement visuel, utilisez le CSS sur un <span> ou sur l'élément lui-même.

Comment barrer un texte en HTML ?

Utilisez <s> pour un texte qui n'est plus exact, comme un ancien prix, et <del> pour un texte supprimé lors d'une modification. Les deux tracent une ligne à travers le texte. En CSS, text-decoration: line-through fait la même chose visuellement.

La balise <u> est-elle obsolète ?

Non. <u> a été dépréciée en HTML 4 mais est revenue en HTML5 avec un nouveau sens : un texte avec une annotation non textuelle, comme une faute d'orthographe ou un nom propre dans un texte chinois. Elle est valide, mais rarement le bon choix.

Qu'est devenue la balise <strike> ?

<strike> est obsolète. Les navigateurs l'affichent encore barrée, mais ce n'est pas du HTML valide. Utilisez <s> ou <del> selon le sens, ou text-decoration: line-through.

Quelle est la différence entre <s> et <del> ?

<s> marque un texte qui n'est plus pertinent ou correct mais qu'on garde pour le contexte, comme un prix barré. <del> marque un texte supprimé du document, souvent à côté d'un <ins> qui montre ce qui l'a remplacé, et peut porter les attributs datetime et cite.

Coddy programming languages illustration

Apprendre à coder avec Coddy

COMMENCER