Etichettatura del testo senza lingua

Questo articolo fornisce consigli su come usare la marcatura linguistica in HTML o XML quando non si conosce la lingua del contenuto, o quando il contenuto non è linguistico.

In HTML si dovrebbe sempre identificare il linguaggio umano del testo, quando conosciuto, usando l'attributo lang, in modo che applicazioni come i voice browser, fogli di stile e simili possano elaborare il testo in modo appropriato. Lo stesso vale per i formati basati su XML, dove si usa l'attributo xml:lang.

Si supponga, tuttavia, di avere del testo che non è in nessuna lingua, come esempi di tipi, numeri di parte, illustrazioni di dati binari, ecc. Come si potrebbe dire che questo non è in nessuna lingua in particolare? Oppure che ne dite di una situazione in cui avete estratto il testo da un database e non conteneva informazioni linguistiche?

Per informazioni su come impostare il linguaggio in HTML, vedere Linguaggio di dichiarazione in HTML.

Quando il testo non è linguistico

Utilizzare il sottotag zxx quando è chiaro che il testo non è in nessuna lingua.

Questo vale per testi come esempi di tipo, numeri di parte, illustrazioni di dati binari, ecc. La definizione di zxx nel registro dei sottotag della IANA Language Subtag Registry è "nessun contenuto linguistico".

Per esempio:

<p>Here is a list of part numbers: <span lang="zxx">9RUI34 8XOS12 3TYY85</span>.</p>

Quando la lingua è indeterminata

In HTML, usa lang="". Se stai usando XML e il formato che stai usando lo supporta, usa xml:lang="", altrimenti usa xml:lang="und".

Questi valori indicano che non possiamo determinare, per un motivo o per un altro, quale sia l'informazione linguistica appropriata o se il testo non è linguistico. Per esempio, si potrebbe usare un valore vuoto per l'attributo lingua se il testo del database è incluso in un documento ma il database non fornisce informazioni sulla lingua e non si può essere ragionevolmente sicuri di quale sia la lingua. L'effetto sarebbe quello di evitare che qualsiasi informazione linguistica dichiarata più in alto nella gerarchia degli elementi del documento si applichi al testo incluso.

Tuttavia, si dovrebbe etichettare il testo come indeterminato solo se non si può lasciare il testo così com'è. In pratica, questo significa che si dovrebbe usare questa marcatura solo se il testo indeterminato è incorporato in un contenuto che in qualche modo è già stato etichettato per la lingua, o se il suo uso a livello di documento è richiesto dal formato che si sta utilizzando.

Argomenti avanzati

Implicazioni per XHTML 1.0

Le pagine legacy che utilizzano XHTML 1.0, e non possono essere aggiornate a HTML5 o XHTML5, dovrebbero usare xml:lang="und" se c'è la necessità di esprimere la natura indefinita di qualche testo incorporato in un documento, perché xml:lang="" non è consentito. In rarissime occasioni, quando l'intero documento è in un linguaggio non definito, è meglio non dichiarare la lingua predefinita del documento.

Considerazioni sullo schema XML

xml:lang="" funziona solo se lo schema che descrive il formato del documento permette una stringa vuota come valore di xml:lang. Per esempio, poiché le DTD XHTML 1.0 DTDs definiscono xml:lang in modo tale che un valore di stringa vuota per l'attributo xml:lang non è consentito, non è possibile utilizzare la stringa vuota in XHTML 1.0.

Per coloro che sanno come funzionano le DTD e altri schemi: L'attributo xml:lang prende i valori NMTOKEN nello schema XML, quindi non possono essere vuoti. Nel DTD XML, se possibile, dichiarare xml:lang as CDATA so that an empty value is allowed. Per gli utenti XML Schema, fare affidamento sul documento schema XML per lo spazio dei nomi XML.

Martin Dürst sottolinea che è possibile ridefinire il formato XHTML all'interno del documento per creare una pagina XHTML che convalidi mentre si usa lang="" or xml:lang="".Questo non è raccomandato per un uso diffuso, tuttavia, perché un tale documento non è più strettamente conforme nel senso di XHTML 1.0.

Riassumendo

Questo è un riassunto di una discussione in un thread su www-international@w3.org, e una successiva ripresa di quelle idee a cui hanno contribuito diverse persone.