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.

È stato utile?

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 / o xml:lang attributi nel tag html .

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top