Skip to main content
Validação HTML

Usar o elemento “meta” para especificar o idioma padrão do documento está obsoleto. Considere especificar o idioma no elemento raiz em vez disso.

Sobre este problema HTML

Nas práticas antigas de HTML, os programadores por vezes usavam <meta http-equiv="Content-Language" content="en"> dentro do <head> para declarar o idioma principal do documento. O HTML living standard agora marca isto como obsoleto porque era uma forma não confiável e indireta de comunicar informação de idioma. Tentava espelhar um cabeçalho HTTP em vez de ser uma verdadeira parte da estrutura do documento, e o seu comportamento foi implementado de forma inconsistente nos browsers.

O atributo lang no elemento <html> é a abordagem moderna correta. Associa diretamente o idioma com a árvore DOM do documento, o que tem vários benefícios importantes:

  • Acessibilidade: Os leitores de ecrã dependem do atributo lang para selecionar as regras de pronúncia corretas e o perfil de voz. Sem ele, a tecnologia assistiva pode pronunciar incorretamente o conteúdo ou recorrer a um idioma padrão que não corresponde ao texto.
  • Comportamento do browser: Os browsers usam o atributo lang para tomar decisões sobre hifenização, seleção de fontes, estilo de aspas, verificação ortográfica e outras renderizações sensíveis ao idioma.
  • Motores de busca: Declarar o idioma ajuda os motores de busca a indexar e servir conteúdo ao público apropriado.
  • Direcionamento CSS: O seletor pseudo-classe :lang() funciona baseado no atributo lang, permitindo estilização específica por idioma.

O atributo lang também suporta declarações de idioma granulares ao nível do elemento. Se a sua página está principalmente em inglês mas contém uma citação em francês, pode definir lang="fr" nesse elemento específico — algo que a abordagem <meta> nunca conseguiu fazer.

Exemplos

Incorreto: usar a meta tag obsoleta

Isto dispara o aviso de validação do W3C porque <meta http-equiv="Content-Language"> está obsoleto para especificar o idioma do documento.

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Language" content="en">
    <title>My Page</title>
  </head>
  <body>
    <p>Hello, world!</p>
  </body>
</html>

Correto: usar o atributo lang no <html>

Remova a tag <meta http-equiv="Content-Language"> e adicione o atributo lang ao elemento <html> em vez disso.

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My Page</title>
  </head>
  <body>
    <p>Hello, world!</p>
  </body>
</html>

Correto: conteúdo multilingue

Use o atributo lang no elemento raiz para o idioma principal, depois substitua-o em elementos específicos conforme necessário.

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Multilingual Page</title>
  </head>
  <body>
    <p>The French word for hello is <span lang="fr">bonjour</span>.</p>
    <blockquote lang="de">
      <p>Die Grenzen meiner Sprache bedeuten die Grenzen meiner Welt.</p>
    </blockquote>
  </body>
</html>

Códigos de idioma comuns

Use uma tag de idioma BCP 47 válida como valor do atributo lang. Aqui estão alguns códigos frequentemente usados:

Código Idioma
en Inglês
fr Francês
de Alemão
es Espanhol
pt-BR Português Brasileiro
zh-Hans Chinês Simplificado
ja Japonês

A correção é direta: remova quaisquer tags <meta http-equiv="Content-Language"> do seu <head> e certifique-se de que o seu elemento <html> inclui um atributo lang com o código de idioma apropriado. Esta única alteração resolve o aviso de validação enquanto melhora a acessibilidade, renderização e conformidade com padrões do seu documento.

Encontre problemas como este automaticamente

O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.

Ajude-nos a melhorar os nossos guias

Este guia foi útil?

Pronto para validar os seus sites?
Comece o seu teste gratuito hoje.