2012-09-27 11 views
6

(Mi interessa HTML 4.01 e HTML5, se non ci dovrebbero essere differenze)Elemento `img` con attributo` lang`: linguaggio dell'immagine stessa?

Does l'attributo lang su un elemento img applicano all'attributo src, troppo? O è solo per gli attributi alt e title?

Esempio:

<img src="example.png" alt="a red foobar" lang="en" /> 

è l'immagine "example.png" considerato in inglese? (pensa agli screenshot di un thread del forum, o una rappresentazione grafica di una parola, o una scansione di un documento)

Se è vero, le immagini con contenuto non linguistico dovrebbero ottenere lang="zxx". Ma ciò si applicherebbe anche agli attributi alt/title, che sarebbero errati.

risposta

5

HTML 4.01 defines l'attributo lang specificando “la lingua di base dell'attributo valori e il testo contenuto di un elemento”, che HTML5 defines come “lingua principale per contenuto dell'elemento e per qualsiasi di attributi dell'elemento contenenti testo”. La differenza è apparentemente solo nella formulazione. L'attributo lang specifica la lingua dell'attributo alt e title e altri attributi che possono contenere testo in prosa, come opposto a valori di tipo codice come URL o attributi style, in cui la lingua (umana) non è applicabile.

L'attributo src non è di alcuna lingua (umana), logicamente.Quindi la domanda è se l'attributo lang si estende all'immagine denotata dall'attributo src. Questa è una domanda abbastanza teorica: quale impatto sul comportamento del software potrebbe avere la risposta? Ad ogni modo, la risposta dipende da ciò che intendiamo come "contenuto testuale" (le immagini sono testo in un certo senso, nella formattazione, ma probabilmente HTML 4.01 significa solo riferimento ai dati dei personaggi reali) e come "contenuto degli elementi" (è una parte dell'immagine di il contenuto dell'elemento img?). Nel complesso, sembra che la lingua dell'immagine (anche se un concetto fattibile) non possa essere specificata in HTML.

Quindi non è necessario preoccuparsi delle immagini con contenuto non linguistico. Per il contenuto testuale "non linguistico" (ovvero non il testo in nessuna lingua umana ma, ad esempio, una notazione di codice o una sequenza casuale di caratteri), l'uso di lang="" è ciò che HTML5 consiglia. È anche l'approccio pratico. Nei pochi casi in cui l'attributo lang ha un impatto, come nella sillabazione automatica, lang="" significa in effetti che non vengono applicate regole di lingua (ad es., Nessuna sillabazione). Questo è diverso da omettere l'attributo, il che significa che l'elemento eredita le informazioni sulla lingua dal suo genitore.

+0

Mai saputo che 'lang' ha accettato una stringa vuota, ma ha senso farlo. Was 'lang =" "' mai valido prima di HTML5? – BoltClock

+0

@BoltClock, 'lang =" "' non è valido in HTML 4.01 (anche in senso formale), in quanto dichiara l'attributo con il valore 'NAME'. Ma HTML 4.01 è piuttosto obsoleto in questo senso. XHTML5 cita BCP 47, che definisce esplicitamente la stringa vuota come possibile codice lingua. –

+0

Per quanto riguarda i valori di 'lang': Il valore' zxx' significa "nessun contenuto linguistico", mentre il valore vuoto potrebbe anche significare "sconosciuto" (simile a "und' per" indeterminato "), o sbaglio? – unor

2

In HTML 4.01, section 13.8 dice:

La lingua del testo alternativo è specificato dall'attributo lang.

in HTML5, it says:

Specifica la lingua principale per il contenuto dell'elemento e per una delle attributi dell'elemento che contengono testo.

non riesco a trovare nulla nel progetto di HTML5 corrente che definisce la relazione tra gli attributi alt e lang come esplicitamente come HTML 4.01 spec fa. Si spera che verrà chiarito in seguito, ma per ora suppongo che non ci siano cambiamenti, e che lo stato dello sia altrettanto applicabile.

Né gli stati spec un rapporto esplicito tra gli attributi src e lang, ma non vorrei supporre che il linguaggio dell'immagine sorgente stessa corrisponde all'attributo lang, dal momento che non tutte le immagini avranno contenuto linguistico (come hai menzionato).

Lo stesso vale per title e lang, ma questo può dipendere dal tipo di elemento, non ne sono del tutto sicuro. Anche in questo caso, lo stato in generale deve essere applicabile a title.

Problemi correlati