2013-07-30 15 views
6

Supponiamo che sto scrivendo un articolo in HTML. La lingua dell'articolo è svedese, quindi ho <html lang="sv">. Ora voglio marcare l'abbreviazione correttamente nel seguente testo:Lingua diversa nel titolo e nel contenuto del tag HTML ABBR

HTML kan användas till mycket. 

A tal fine, ho faccio

<abbr title="HyperText Markup Language">HTML</abbr> kan användas till mycket. 

Questo da solo non è abbastanza buona, tuttavia, perché il linguaggio dell'attributo title è svedese (sv). Oltre ad essere un problema teorico, questo renderà i lettori di schermo pronunciare il titolo in un modo molto imbarazzante. Per rimediare a questo, ho potuto fare

<abbr title="HyperText Markup Language" lang="en">HTML</abbr> kan användas 
    till mycket. 

Questo è ancora peggio, però, dal momento che ora la sigla 'HTML' verrà letto in Enligsh invece di Svedese [così da un punto di vista svedese, suonerà come " ejtsch-ti-emm-ell "invece di" hå-te-emm-ell "].

Quindi, l'abbreviazione, o il contenuto del testo del nodo abbr, dovrebbero essere in svedese, ma l'attributo title devono essere in inglese. Qual è il modo preferito (HTML5) di contrassegnarlo? È

<abbr title="HyperText Markup Language" lang="en"> 
    <span lang="sv">HTML</span> 
</abbr> kan användas till mycket. 

?

+0

Se funziona come vuoi, usa assolutamente.(Non ho un lettore di testo svedese, quindi non posso controllare se funziona correttamente!) –

+0

Signor Lister: Non ho alcun lettore di schermo per testare con ... No, è l'altro modo in giro. 'acronimo' è obsoleto; tu usi 'abbr' per tutte le abbreviazioni oggi (ho appena letto le specifiche HTML5 dall'alto al basso). –

+2

A proposito, ci sono circa 200.000 domande su HTML qui, quindi penso che tu sia nel posto giusto. –

risposta

2

La conclusione è corretta: nel linguaggio markup in HTML, non è possibile indicare il contenuto di un elemento come in una lingua diversa dai suoi valori di attributo, poiché lo lang attribute imposta entrambi. E la soluzione alternativa è quella che hai trovato: usa il markup interno per il contenuto. Non c'è differenza tra HTML 4 e HTML5.

Tuttavia, questo è un problema molto teorico.

Primo, the abbr markup is almost useless in pratica. Le abbreviazioni dovrebbero essere spiegate, quando necessario, nel normale contenuto testuale, non negli attributi. I browser vocali possono possono leggere i valori di attributo title, ma in modalità normale, li ignorano: le persone che usano i browser vocali preferiscono una lettura veloce e sono spesso abituati a frequenze vocali piuttosto elevate, e l'ortografia delle abbreviazioni lo disturba.

In secondo luogo, "abbreviazioni" come "HTML" (che in realtà è un nome corretto piuttosto che altro) devono essere specificate raramente nel parlato. Non vorrai sentire parole come "La nuova versione di HyperText Markup Language è HyperText Markup Language cinque, che ha molte estensioni di HyperText Markup Language quattro."

In terzo luogo, il markup della lingua è in gran parte di sola scrittura. Nella maggior parte delle situazioni, è semplicemente ignorato. A Google non interessa I browser possono usarlo per decidere il tipo di carattere predefinito da utilizzare, ma la maggior parte delle pagine specifica i propri caratteri, quindi i valori predefiniti non contano. Alcuni browser vocali potrebbero riconoscere alcune lingue dagli attributi lang, ma la maggior parte di essi no: leggono il contenuto secondo le regole della lingua selezionata dall'utente . Quelli che usano il markup del linguaggio possono fare una distinzione tra inglese britannico e americano, quindi se pensi ancora che il markup della lingua sia pertinente, considera l'uso di lang="en-GB" in questo contesto. (Suppongo che la maggior parte delle persone di lingua svedese trovino la Pronuncia ricevuta più comprensibile e naturale rispetto alla Standard americana, ma potrei sbagliarmi.)

+1

Grazie per la risposta, e +1. Voglio solo aggiungere una cosa: credo che la marcatura delle abbreviazioni non sia * solo *, forse nemmeno * principalmente *, a beneficio degli screen reader. Per come la vedo io, può essere molto utile per le persone che non hanno familiarità con la terminologia (se la pagina si rivolge principalmente a persone che * sono * familiari con essa), specialmente se non c'è una biiezione tra l'insieme di abbreviazioni e fuori testo Ad esempio, "CAD" sta per "malattia dell'arteria coronarica" ​​o "progettazione assistita da computer"? Se il testo si rivolge a persone con problemi informatici oa professionisti del settore medico, è possibile che non lo si scriva –

+1

Inoltre, anche se (in pratica) si conosce il significato dell'abbreviazione, è possibile controllare l'ortografia esatta del testo, quindi è comodo averlo nel 'titolo'. –

+0

Le implementazioni dell'attributo 'title' nei browser sono pessime (testo minuscolo che scompare ecc.), E gli autori usano sempre più spesso" tooltip CSS "(ad esempio, utilizzando un elemento inizialmente nascosto ma che diventa visibile quando alcuni elementi è moused sopra). Tali approcci non hanno il problema di markup linguistico discusso qui, poiché il contenuto del testo non appare in un attributo ma come contenuto di elementi. –

Problemi correlati