documento XHTML - domanda opzioni Lang
-
11-09-2019 - |
Domanda
Qual è la differenza tra le 2 linee indicate di seguito:?
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-GB">
<meta http-equiv="content-language" content="en-GB" />
Se non ho avuto il meta tag, quale sarebbe la conseguenza?
La meta un effetto lettori di schermo e quella superiore no? Sono un po 'confuso su ciò che esattamente che fanno.
Grazie in anticipo per qualsiasi aiuto
Con i migliori saluti
Skip.
Soluzione
Affrontare l'accessibilità del Identificare la pagina della tua lingua raccomanda di aggiungere il più possibile da gestire come molti lettori di schermo come si può, a seconda del tipo di documento:
Se state usando qualsiasi variante di HTML 4, cambiare il tuo tag per questo (l'uso il proprio codice lingua, se non English):
<html lang="en">
Se state usando qualsiasi variante di XHTML 1.0, modificare il tag a questo (utilizzare il codice della lingua in entrambi posti):
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
Se stai usando XHTML 1.1, cambiare la vostra tag per questo (ancora una volta, inserire il proprio codice lingua):
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
Lo stesso articolo fa riferimento anche ISO 639,2 per determinare che cosa il valore xml: lang dovrebbe essere, anche se la specifica XML fa riferimento a un documento separato, RFC4646 migliori prassi attuale -. Tag per l'identificazione Lingue , che sembra indicare il vostro valore di "it-IT" è valida
di Google Statistiche Web Authoring (2005) hanno i seguenti per dire in proposito:
La prossima è il valore Content-Language (Utilizzato per l'attributo http-equiv). Quasi come molte persone usano questo come specificare l'attributo lang sulla html elemento. Nelle specifiche HTML5 attualmente l'attributo http-equiv è solo consentito per un caso di impostazione la codifica dei caratteri, che non può davvero essere lasciato cadere, come il grafico qui sopra dimostra. Però, http-equiv = "Content-Language" è sostenuta da almeno un browser e come vediamo qui, è ampiamente utilizzato - forse http-equiv non deve essere rimosso dopo tutto.
Inoltre, un thread sul WebProWorld parla della differenza tra l'utilizzo http-equiv = content-lingua e name = linguaggio per descrivere la lingua del documento e implica che entrambi sono necessari.
Infine, consultare il HTML Tecniche per Web Content Accessibility Guidelines 1.0 documento al W3C per alcuni più raccomandazioni, in particolare Identificazione del primario lingua .
In conclusione sembra che i lettori di schermo sono guardando lang attributi più di contenuti in lingua meta-informazioni, ma la maggior parte delle raccomandazioni che ho visto consiglia di utilizzare i metadati in ogni caso. Soprattutto le statistiche di Google sembrano pertinenti, così forse si dovrebbe lasciare sia.
Altri suggerimenti
Credo che uno dei vantaggi della versione <meta>
è che è possibile specificare più lingue, come in <meta http-equiv="Content-Language" content="en-GB, fr" />
, per esempio. Dai un'occhiata alla questo per un esame più approfondito delle il soggetto.
Content-Language
è non conforme in XHTML5 .
Anche se non permette di specificare più di una lingua, non si dovrebbe farlo (non serve a nessuno). Si dovrebbe usare gli attributi xml:lang
su elementi specifici, invece, per es.
<p xml:lang="en">Hello <span xml:lang="de">Welt!</span></p>
W3C I18N FAQ è anche chiaramente contro <meta>
:
L'intestazione HTTP o informazioni elemento meta non sono rilevanti qui. Per estensione, è necessario specificare la lingua del testo di elaborazione dei contenuti nel suo insieme utilizzando la
lang
e / oxml:lang
attributi nel taghtml
.
Per quanto ne so, meta http-equiv è necessaria solo (se non del tutto) per documenti HTML (XHTML) non perché XHTML permette di specificare la lingua usando xml:. Lang
Quindi, nessuna differenza, la seconda linea è solo superfluo.
Il HTTP / 1.0 RFC 1945 dice che il campo di intestazione Content-Language "rappresenta le lingue del destinatari".
Il Content-Language entità-header campo descrive la natura lingua (s) del destinatari per l'entità chiusa. Nota che puo 'non essere equivalente a tutta la lingue utilizzate all'interno dell'entità.
HTML4 e XHTML1.x trattare il tag http-equiv meta come le stesse informazioni incorporato nel documento HTML, piuttosto che l'header HTTP.
D'altra parte, XML:. Lang e html lang identificare la lingua del documento, o il frammento contenuta all'interno dell'elemento sul quale compare l'attributo
Quindi, si supponga di avere un documento che è stato principalmente in francese con lo scopo di insegnamento del francese agli anglofoni, il contenuto in lingua sarebbe en-GB, en-US (ad esempio), mentre l'attributo xml: lang sarebbe it-IT.
Tuttavia , HTML 5 cambi questo, e il meta http-equiv = "Content-Language" è considerato HTML non conforme che definisce, tuttavia, la lingua predefinita a livello di documento, e solo supporta un singolo lingua così è effettivamente identico a xml: lang sull'elemento html. Non posso dire ho capito il ragionamento alla base di questo cambiamento, ma Daniel Glazman e Ian Hickson discuterne al filo a partire da http://lists.w3.org/Archives/Public/public-html/2008Nov/0083.html