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.

Illustration des langages de programmation de Coddy

Apprendre à coder avec Coddy

Commencer