Skip to main content
Validação HTML

Este documento parece estar escrito em inglês, mas a etiqueta de início “html” tem X

Sobre este problema HTML

O atributo lang no elemento <html> declara o idioma principal do documento. O validador W3C usa heurísticas para analisar o conteúdo de texto da sua página, e quando deteta uma incompatibilidade entre o idioma declarado e o idioma aparente, emite este aviso. Por exemplo, se o conteúdo da sua página está escrito em inglês mas lang="fr" (francês) está definido, o validador sinalizará esta inconsistência.

Porque isto é importante

O atributo lang desempenha um papel crítico em várias áreas:

  • Acessibilidade: Os leitores de ecrã usam o atributo lang para selecionar as regras de pronúncia corretas e o perfil de voz. Se uma página está escrita em inglês mas declara francês, um leitor de ecrã pode tentar ler o conteúdo com pronúncia francesa, tornando-o ininteligível para o utilizador.
  • Motores de busca: Os motores de busca usam o atributo lang para entender em que idioma está uma página, o que afeta como a página é indexada e servida nos resultados de pesquisa para diferentes regiões.
  • Funcionalidades do browser: Os browsers dependem do atributo lang para prompts de tradução incorporados, verificação ortográfica, hifenização e seleção de fontes. Um valor incorreto pode causar comportamento inesperado em todas estas áreas.

Como corrigir

  1. Identifique o idioma principal do seu conteúdo. Observe o texto real na sua página — em que idioma está escrita a maioria dele?
  2. Atualize o atributo lang para a etiqueta de idioma BCP 47 correta para esse idioma (ex: en para inglês, fr para francês, es para espanhol).
  3. Se o atributo lang já estiver correto e a heurística do validador estiver errada (ex: a sua página genuinamente está noutro idioma mas contém algum texto em inglês ou código), pode ignorar este aviso com segurança.

Para páginas com conteúdo em idiomas mistos, defina o atributo lang no <html> para o idioma principal, depois use atributos lang em elementos específicos para marcar seções noutros idiomas.

Exemplos

❌ Incorreto: O conteúdo está em inglês mas lang declara francês

<!DOCTYPE html>
<html lang="fr">
  <head>
    <title>My Website</title>
  </head>
  <body>
    <h1>Welcome to my website</h1>
    <p>This is an English paragraph about web development.</p>
  </body>
</html>

O validador deteta que o conteúdo está em inglês, mas lang="fr" diz que está em francês.

✅ Corrigido: O atributo lang corresponde ao idioma do conteúdo

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My Website</title>
  </head>
  <body>
    <h1>Welcome to my website</h1>
    <p>This is an English paragraph about web development.</p>
  </body>
</html>

✅ Conteúdo em idiomas mistos com atributos lang adequados

Se a sua página é principalmente em inglês mas contém seções noutro idioma, defina o idioma do documento como en e anote as seções em idioma estrangeiro individualmente:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Language Examples</title>
  </head>
  <body>
    <h1>Welcome</h1>
    <p>This page is mostly in English.</p>
    <blockquote lang="fr">
      <p>Ceci est une citation en français.</p>
    </blockquote>
  </body>
</html>

Esta abordagem garante que os leitores de ecrã mudam a pronúncia apenas para o <blockquote> francês, enquanto o resto da página é lido corretamente como inglês.

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.