Skip to main content
Validação HTML

Este documento parece estar escrito em X mas a tag de início “html” tem “lang=Y”.

Sobre este problema HTML

O atributo lang no elemento <html> informa os navegadores, motores de busca e tecnologias assistivas sobre o idioma em que o conteúdo da página está escrito. O validador usa análise heurística do texto atual na página para detetar o idioma provável e, quando há uma discrepância, assinala a diferença.

Por que isto é importante

Um atributo lang incorreto causa problemas reais para utilizadores e sistemas que dependem dele:

  • Leitores de ecrã usam o atributo lang para selecionar o motor de pronúncia correto. Um documento francês marcado como inglês será lido em voz alta com regras de pronúncia inglesas, tornando-o incompreensível.
  • Motores de busca usam a declaração de idioma para indexação e para servir resultados a utilizadores que pesquisam num idioma específico.
  • Funcionalidades do navegador como avisos de tradução automática e verificação ortográfica dependem do idioma declarado.
  • Regras de hifenização e tipográficas em CSS também dependem da declaração correta do idioma.

Causas comuns

  1. Copiar-colar um modelo base — Começar a partir de um modelo em inglês mas escrever conteúdo noutro idioma sem atualizar o lang.
  2. Sites multilingues — Usar o mesmo modelo base para todas as versões de idioma sem definir dinamicamente o valor de lang.
  3. Subtag de idioma incorreta — Usar a tag de idioma BCP 47 errada (ex: lang="en" em vez de lang="de" para conteúdo alemão).

Quando pode ignorar este aviso em segurança

Este é um aviso, não um erro. A deteção de idioma do validador é heurística e nem sempre precisa. Pode ignorá-la em segurança se:

  • A sua página contém muito pouco texto, tornando a deteção pouco confiável.
  • A página tem quantidades significativas de conteúdo em múltiplos idiomas, mas o atributo lang reflete corretamente o idioma principal.
  • O idioma detetado está simplesmente errado (ex: trechos curtos de texto podem confundir o detetor).

Se tem confiança de que o atributo lang está correto, pode ignorar o aviso.

Como corrigir

Identifique o idioma principal do conteúdo do seu documento e defina o atributo lang para a tag de idioma BCP 47 apropriada. Tags comuns incluem en (inglês), fr (francês), de (alemão), es (espanhol), pt (português), ja (japonês) e zh (chinês).

Exemplos

Incorreto: conteúdo em francês, mas lang definido para inglês

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Mon site</title>
  </head>
  <body>
    <h1>Bienvenue sur notre site</h1>
    <p>Nous sommes ravis de vous accueillir sur notre plateforme.</p>
  </body>
</html>

Isto desencadeia o aviso porque o validador deteta conteúdo francês mas vê lang="en".

Corrigido: o atributo lang corresponde ao idioma do conteúdo

<!DOCTYPE html>
<html lang="fr">
  <head>
    <meta charset="utf-8">
    <title>Mon site</title>
  </head>
  <body>
    <h1>Bienvenue sur notre site</h1>
    <p>Nous sommes ravis de vous accueillir sur notre plateforme.</p>
  </body>
</html>

Lidar com conteúdo multilingue

Se a sua página é principalmente num idioma mas contém secções noutro, defina o atributo lang no elemento <html> para o idioma principal e use lang em elementos específicos para o outro idioma:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Our Global Site</title>
  </head>
  <body>
    <h1>Welcome to our site</h1>
    <p>We are glad you are here.</p>
    <blockquote lang="fr">
      <p>La vie est belle.</p>
    </blockquote>
  </body>
</html>

Isto informa as tecnologias assistivas de que a página está em inglês, mas a citação deve ser lida usando regras de pronúncia francesas. O validador não deve assinalar isto como uma discrepância porque a maioria do conteúdo está em 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.