Pergunta

Qual é a diferença entre as 2 linhas mostradas abaixo?:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-GB">

<meta http-equiv="content-language" content="en-GB" />

Se eu não tivesse a meta tag, qual seria a consequência?

O meta afeta os leitores de tela e o superior não?Estou um pouco confuso sobre o que exatamente eles fazem.

Agradecemos antecipadamente por qualquer ajuda

Atenciosamente

Pular.

Foi útil?

Solução

Mergulhar na acessibilidade Identificando sua página de idioma Recomenda adicionar o máximo possível para lidar com o maior número possível de leitores de tela, dependendo do seu Doctype:

Se você estiver usando alguma variante do HTML 4, altere sua tag para isso (use seu próprio código de idioma, se não o inglês):

<html lang="en">

Se você estiver usando alguma variante do XHTML 1.0, altere sua tag para isso (use seu código de idioma em ambos os lugares):

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

Se você estiver usando o XHTML 1.1, altere sua tag para isso (novamente, insira seu próprio código de idioma):

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

O mesmo artigo também faz referência ISO 639.2 Para determinar qual deve ser o valor de XML: Lang, embora a especificação XML faça referência a um documento separado, RFC4646 Melhor prática atual - Tags para identificar idiomas, o que parece indicar o seu valor de "EN-GB" é válido.

Google's Estatísticas de autoria da Web (2005) têm o seguinte a dizer sobre isso:

Em seguida, é o valor da linguagem de conteúdo (usado no atributo HTTP-Equiv). Quase tantas pessoas usam isso como especificar o atributo Lang no elemento HTML. Atualmente, o HTML5 SPEC, o atributo HTTP-Equiv é permitido apenas para o único caso de definir a codificação do caractere, que não pode ser realmente descartada, como demonstra o gráfico acima. No entanto, http-equiv = "Language de conteúdo" é suportado por pelo menos um navegador e, como vemos aqui, é amplamente utilizado-talvez o HTTP-Equiv não deva ser removido, afinal.

Além disso, a Tópico no WebProworld fala sobre a diferença entre usar o http-equiv = linguagem de conteúdo e nome = idioma para descrever o idioma do documento e implica que ambos são necessários.

Finalmente, consulte o Técnicas HTML para Diretrizes de Acessibilidade ao Conteúdo da Web 1.0 Documento no W3C para mais algumas recomendações, especificamente Identificando o idioma principal.

Em conclusão, parece que os leitores de tela estão analisando os atributos Lang mais do que as meta-informações em linguagem de conteúdo, mas a maioria das recomendações que eu vi aconselhar usando meta dados de qualquer maneira. Especialmente as estatísticas do Google parecem pertinentes, então talvez você deva deixar os dois.

Outras dicas

Eu acredito em uma vantagem do <meta> versão é que você pode especificar vários idiomas, como em <meta http-equiv="Content-Language" content="en-GB, fr" />, por exemplo. Dê uma olhada em isto Para um exame mais aprofundado do assunto.

Content-Language não é conforme em XHTML5.

Embora permita que você especifique mais de um idioma, você não deve fazer isso (não ajuda ninguém). Você deveria usar xml:lang atributos em elementos específicos, por exemplo

<p xml:lang="en">Hello <span xml:lang="de">Welt!</span></p>

W3C I18N FAQ também é claramente contra <meta>:

O cabeçalho HTTP ou as informações do elemento meta não são relevantes aqui. Por extensão, você deve especificar a linguagem de processamento de texto do conteúdo como um todo usando o lang e/ou xml:lang atributos no html marcação.

Até onde sei, meta http-equiv é necessário apenas (se é que existe) para documentos HTML (não XHTML), porque o XHTML permite especificar o idioma usandoXML: Lang.

Portanto, não há diferença, a segunda linha é apenas redundante.

O HTTP/1.0 RFC 1945 diz que o campo de cabeçalho Content-Language representa "os idiomas do público-alvo".

O campo do cabeçalho da entidade em língua de conteúdo descreve a (s) linguagem (s) natural (s) do público-alvo para a entidade fechada.Observe que isso pode não ser equivalente a todos os idiomas usados ​​na entidade.

HTML4 e XHTML1.x tratam a meta tag http-equiv como a mesma informação incorporada no documento HTML, em vez do cabeçalho HTTP.

Por outro lado, xml:lang e o atributo html lang identificam o idioma do documento, ou o fragmento contido no elemento no qual o atributo aparece.

Então, suponha que você tenha um documento principalmente em francês com o propósito de ensinar francês para falantes de inglês, o idioma do conteúdo seria en-GB, en-US (digamos), enquanto o atributo xml:lang seria fr-FR .

No entanto, o HTML 5 muda isso, e o meta http-equiv="content-linguagem" é considerado HTML não conforme que, no entanto, define o idioma padrão para todo o documento e suporta apenas um único idioma, portanto é efetivamente idêntico ao xml:lang no elemento HTML.Não posso dizer que entendo o raciocínio por trás dessa mudança, mas Daniel Glazman e Ian Hickson discutem isso no tópico que começa em http://lists.w3.org/Archives/Public/public-html/2008Nov/0083.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top