Un navigateur ancien, ou un lecteur qui affiche le HTML sans feuille de style dédiée au ruby, tombe sur une composition <ruby> et n'a aucune idée de comment positionner l'annotation au-dessus du texte : sans indication, il risque d'afficher la prononciation collée au mot, sans aucune séparation, illisible.
<rp> existe pour ce cas précis : elle fournit des parenthèses de repli, invisibles dans un navigateur qui gère le ruby correctement, mais affichées telles quelles partout ailleurs pour garder un résultat lisible.
Définition
<rp> contient un caractère de ponctuation, presque toujours une parenthèse ouvrante ou fermante, destiné aux navigateurs incapables d'afficher correctement une composition <ruby>. Elle s'utilise toujours par paire, une avant l'annotation <rt>, une après, et n'a de sens qu'à l'intérieur d'une balise <ruby>.
Son fonctionnement repose sur un contraste simple : un navigateur qui comprend le ruby ignore entièrement le contenu de <rp> et positionne l'annotation au bon endroit visuellement, tandis qu'un navigateur qui ne le comprend pas affiche tout le texte à la suite, y compris les parenthèses, ce qui reste lisible même sans mise en forme particulière.
Utilisation en paire autour de rt
<ruby>
漢字
<rp>(</rp><rt>かんじ</rt><rp>)</rp>
</ruby>Le premier <rp> contient une parenthèse ouvrante, placée juste avant rt. Le second contient la parenthèse fermante, placée juste après. Sans support du ruby, le résultat affiché à l'écran devient 漢字(かんじ), parfaitement lisible en texte brut.
Invisible dans un navigateur qui supporte le ruby
Sur un navigateur qui gère correctement le ruby, une règle de style par défaut masque tout le contenu de <rp> puisque l'annotation trouve déjà sa place, au-dessus du texte de base, sans avoir besoin de parenthèses pour se distinguer visuellement. L'utilisateur ne voit jamais ces parenthèses dans un navigateur moderne à jour, ce qui explique pourquoi la balise reste souvent découverte tardivement, y compris par des personnes qui lisent du HTML annoté depuis des années.
Un piège fréquent consiste à omettre <rp> en pensant qu'elle est purement décorative puisqu'elle ne s'affiche jamais dans un navigateur récent. Sans elle, un navigateur sans support ruby affiche l'annotation collée au texte de base sans aucune séparation, ce qui rend le résultat illisible pour quiconque ne bénéficie pas du rendu ruby.
Bonnes pratiques
Ajouter systématiquement une paire de <rp> autour de chaque <rt> coûte deux petites balises et ne change rien pour l'immense majorité des visiteurs, qui utilisent un navigateur récent où elles restent invisibles. En retour, cela garantit un texte lisible pour les rares cas où le support fait défaut, sans dépendre d'aucune condition ni détection technique particulière.
Vérifier le résultat sans support ruby
Le moyen le plus simple de contrôler qu'une paire de <rp> fait son travail consiste à copier le texte annoté dans un éditeur de texte brut, sans aucune mise en forme : le résultat doit rester lisible tel quel, parenthèses comprises, sans dépendre d'un navigateur particulier pour donner du sens à la phrase. Ce test rapide révèle immédiatement un oubli, par exemple une seule <rp> posée au lieu de la paire complète, ce qui laisserait une parenthèse orpheline dans le texte de repli.
Questions fréquentes
<rp> est-elle obligatoire pour qu'une composition ruby fonctionne ?
Non, une composition <ruby> fonctionne très bien sans elle sur un navigateur qui gère le ruby. Elle reste néanmoins fortement recommandée comme filet de sécurité pour les navigateurs plus anciens ou les lecteurs de texte qui ignorent tout du ruby, où son absence rend l'annotation illisible.
Peut-on mettre autre chose qu'une parenthèse dans <rp> ?
Rien ne l'interdit techniquement, mais la parenthèse reste la convention quasi universelle car elle produit un résultat lisible dans n'importe quelle langue sans ajouter de sens supplémentaire. Un autre caractère de ponctuation resterait valide, à condition de garder la paire ouvrante et fermante cohérente.
Le contenu de <rp> est-il lu par les lecteurs d'écran ?
Cela dépend du lecteur d'écran et de son support du ruby : certains l'ignorent comme un navigateur moderne, d'autres le lisent avec le reste du texte. C'est justement pour cette incertitude que le contenu doit rester une simple parenthèse, jamais une information indispensable à la compréhension.