Marquer du texte sans langue

Cet article donne des conseils sur la façon d'utiliser le balisage linguistique en HTML ou XML lorsque vous ne connaissez pas la langue du contenu, ou lorsque le contenu est non linguistique.

En HTML, vous devez toujours identifier la langue humaine du texte, lorsqu'elle est connue, à l'aide de l'attribut lang afin que les applications telles que les navigateurs vocaux, les feuilles de style, etc. puissent traiter le texte de manière appropriée. Il en va de même pour les formats basés sur XML, où vous utiliseriez l'attribut xml:lang.

Supposons, cependant, que vous ayez du texte qui n'est dans aucune langue, comme des échantillons de type, des numéros de pièces, des illustrations de données binaires, etc. Comment diriez-vous que ce n'était dans aucune langue en particulier ? Ou que diriez-vous d'une situation où vous avez extrait le texte d'une base de données et qu'il n'y avait aucune information linguistique?

Pour plus d'informations sur le paramétrage de la langue en HTML, voir Déclarer la langue en HTML.

Lorsque le texte est non linguistique

Utilisez la sous-étiquette zxx lorsque vous savez que le texte n'est dans aucune langue.

Ceci s'applique aux textes tels que les échantillons de type, les numéros de pièces, les illustrations de données binaires, etc. La définition de zxx dans le Registre des sous-balises linguistiques de l'IANA est 'aucun contenu linguistique'.

Par exemple:

<p>Voici la liste des numéros de pièces: <span lang="zxx">9RUI34 8XOS12 3TYY85</span>.</p>

Lorsque la langue est indéterminée

En HTML, utilisez lang="". Si vous utilisez XML et que le format que vous utilisez le supporte, utilisez xml:lang="", sinon utilisez xml:lang="und".

Ces valeurs indiquent que nous ne pouvons pas déterminer, pour une raison ou une autre, quelle est l'information linguistique appropriée ou si le texte est non linguistique. Par exemple, vous pouvez utiliser une valeur vide pour l'attribut langue si le texte de la base de données est inclus dans un document mais que la base de données ne fournit pas d'informations sur la langue et que vous ne pouvez pas être raisonnablement sûr de la langue. Cela aurait pour effet d'empêcher qu'une information linguistique déclarée plus haut dans la hiérarchie des éléments du document ne s'applique au texte inclus.

Cependant, vous ne devez marquer le texte comme indéterminé que si vous ne pouvez pas le laisser tel quel. En pratique, cela signifie que vous ne devriez utiliser ce balisage que si le texte indéterminé est incorporé dans un contenu qui a déjà été étiqueté pour la langue d'une manière ou d'une autre, ou si son utilisation au niveau du document est requise par le format que vous utilisez.

Sujets avancés

Implications pour XHTML 1.0

Les pages héritées qui utilisent XHTML 1.0, et qui ne peuvent pas être mises à jour en HTML5 ou XHTML5, devraient utiliser xml:lang="und" s'il est nécessaire d'exprimer la nature indéfinie de certains textes intégrés dans un document, car xml:lang="" in'est pas autorisé. Dans les très rares cas où l'ensemble du document est dans une langue non définie, il vaut mieux ne pas déclarer la langue par défaut du document.

Considérations relatives au schéma XML

xml:lang="" ne fonctionne que si le schéma qui décrit le format de votre document autorise une chaîne vide comme valeur de xml:lang. Par exemple, parce que les DTD XHTML 1.0 définissent xml:lang de telle manière qu'une valeur de chaîne vide pour l'attribut xml:langest interdite, vous ne pouvez pas utiliser la chaîne vide dans XHTML 1.0.

Pour ceux qui connaissent le fonctionnement des DTD et autres schémas: L'attribut xml:lang prend les valeurs NMTOKEN dans le schéma XML, elles ne peuvent donc pas être vides. Dans votre DTD XML, si possible, déclarez xml:lang comme CDATA pour qu'une valeur vide soit autorisée. Pour les utilisateurs de schéma XML, utilisez le document de schéma XML pour l'espace de nommage XML.

Martin Dürst souligne que vous pouvez redéfinir le format XHTML dans le document pour créer une page XHTML qui se valide en utilisant lang="" ou xml:lang="". Cependant, cela n'est pas recommandé pour une utilisation généralisée, car un tel document n'est plus strictement conforme au sens du XHTML 1.0.

À propos

Ceci est un résumé d'une discussion dans un fil de discussion sur www-international@w3.org, et une reprise ultérieure de ces idées auxquelles plusieurs personnes ont contribué.