Skip to main content
Validação HTML

Este documento parece estar escrito em inglês, mas a tag de abertura “html” tem um atributo “lang” vazio. Considere usar “lang=”en”” (ou variante) em vez disso.

Sobre este problema HTML

O atributo lang no elemento <html> declara o idioma principal do conteúdo do documento. Quando este atributo é deixado vazio (lang=""), efetivamente indica aos navegadores e tecnologias assistivas que o idioma é desconhecido ou intencionalmente não especificado — o que quase nunca é o que você pretende.

Isto é importante por várias razões importantes:

  • Acessibilidade: Os leitores de ecrã dependem do atributo lang para selecionar o motor de pronúncia correto. Um valor vazio pode fazer com que um leitor de ecrã recorra a um idioma predefinido, potencialmente lendo texto em inglês com regras de pronúncia incorretas.
  • Motores de busca: Os motores de busca usam o atributo lang para compreender em que idioma está o seu conteúdo, o que ajuda a servir as suas páginas ao público certo.
  • Funcionalidades do navegador: Os navegadores usam a declaração de idioma para hifenização, verificação ortográfica, seleção de tipos de letra e outras decisões de renderização sensíveis ao idioma.
  • Conformidade com padrões: O padrão WHATWG HTML living standard especifica que se o atributo lang estiver presente, o seu valor deve ser uma tag de idioma BCP 47 válida. Uma string vazia não é uma tag de idioma válida.

A correção é direta: defina o atributo lang para uma tag de idioma BCP 47 válida que corresponda ao seu conteúdo. Para inglês, valores comuns incluem en (inglês geral), en-US (inglês americano), ou en-GB (inglês britânico). Se o seu conteúdo estiver noutro idioma, use a tag apropriada (p.ex., fr para francês, de para alemão, ja para japonês).

Exemplos

❌ Atributo lang vazio (desencadeia o aviso)

<!DOCTYPE html>
<html lang="">
  <head>
    <title>My Page</title>
  </head>
  <body>
    <h1>Welcome to my website</h1>
  </body>
</html>

❌ Atributo lang completamente em falta

Embora um atributo lang em falta desencadeie um aviso diferente, causa o mesmo problema subjacente — nenhum idioma é declarado:

<!DOCTYPE html>
<html>
  <head>
    <title>My Page</title>
  </head>
  <body>
    <h1>Welcome to my website</h1>
  </body>
</html>

✅ Correto: especificar o idioma

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My Page</title>
  </head>
  <body>
    <h1>Welcome to my website</h1>
  </body>
</html>

✅ Correto: usar uma variante regional

<!DOCTYPE html>
<html lang="en-US">
  <head>
    <title>My Page</title>
  </head>
  <body>
    <h1>Welcome to my website</h1>
  </body>
</html>

Usar lang para conteúdo multilingue

Se o seu documento está principalmente em inglês mas contém seções noutros idiomas, defina lang="en" no elemento <html> e substitua-o em elementos específicos:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Multilingual Page</title>
  </head>
  <body>
    <h1>Welcome</h1>
    <p>This page contains a quote in French:</p>
    <blockquote lang="fr">
      <p>La vie est belle.</p>
    </blockquote>
  </body>
</html>

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.