Le trait d’union conditionnel (U+00AD) est un trait d’union où un moteur de mise en page est autorisé à couper un mot, et qui sinon n’est pas dessiné du tout. Un navigateur ou un traitement de texte ne l’affiche que s’il décide que le mot doit être coupé en fin de ligne, ce qui fait que « software » et « software » se ressemblent à l’écran et sont deux chaînes différentes pour toute machine. Ce caractère est plus vieux que le web : les typographes l’utilisaient pour marquer à la main de bonnes césures, et HTML l’a hérité comme ­.
Cette invisibilité est exactement la raison pour laquelle il survit au copier-coller. À l’export d’un PDF, il est normal que la couche texte contienne des traits d’union conditionnels à chaque fin de ligne du document d’origine, et en copiant un paragraphe du PDF, le lecteur prend les caractères plutôt que les pixels. Ce qui revient, c’est une phrase qui a l’air parfaite et se comporte mal : chercher « software » ne trouve rien, un CMS enregistre un titre que son propre moteur de recherche ne retrouve pas, une vérification anti-doublons signale deux enregistrements identiques à l’œil mais pas pour la machine, et un validateur ou un import refuse un champ à cause d’un caractère que personne ne peut voir.
Cet outil supprime exactement un caractère et rien d’autre. Les vrais traits d’union, les demi-cadratins et les cadratins sont laissés tranquilles, tout comme les traits d’union insécables (U+2011), qui sont visibles et généralement voulus. Chaque mot restant est réparé : la lettre entre laquelle se trouvait le trait conditionnel est la même lettre à la même position, donc rien n’est à retaper. Le compteur ci-dessus montre combien il en a trouvés avant tout changement — et sur un texte où vous attendiez un trait visible, voir « 0 » est en soi la réponse : le caractère que vous traquez figure ailleurs sur la liste du vérificateur de tirets.