Sobre este problema HTML
O atributo lang no elemento <html> declara a linguagem primária do conteúdo do documento. Quando este atributo está em falta ou definido incorretamente, o validador analisa o conteúdo de texto e tenta detetar a linguagem automaticamente. Se identificar uma linguagem provável, produz este aviso sugerindo que adicione o valor lang apropriado.
Isto importa por várias razões importantes:
-
Acessibilidade: Os leitores de ecrã dependem do atributo
langpara selecionar as regras de pronúncia corretas e o perfil de voz. Sem ele, um leitor de ecrã pode tentar ler texto em espanhol usando fonética inglesa, produzindo discurso ininteligível para o utilizador. -
Comportamento do browser: Os browsers usam a declaração de linguagem para hifenização, estilo de aspas, verificação ortográfica e seleção de fontes. Por exemplo, a propriedade CSS
hyphens: autodepende do atributolangpara aplicar regras de hifenização apropriadas à linguagem. -
Motores de busca: Os motores de busca usam o atributo
langcomo sinal para compreender a linguagem do seu conteúdo, o que ajuda a servi-lo à audiência certa nos resultados de pesquisa. - Ferramentas de tradução: Os serviços de tradução automática usam a linguagem declarada para determinar se (e de que linguagem) oferecer tradução.
O valor do atributo lang deve ser uma tag de linguagem BCP 47 válida. Exemplos comuns incluem en (inglês), es (espanhol), fr (francês), de (alemão), zh (chinês), ja (japonês) e ar (árabe). Você também pode especificar variantes regionais como en-US, en-GB, pt-BR ou es-MX.
Exemplos
Atributo lang em falta
Isto desencadeia o aviso porque o validador deteta a linguagem do conteúdo mas não encontra declaração lang:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Mi Sitio Web</title>
</head>
<body>
<h1>Bienvenido a mi sitio web</h1>
<p>Este es un párrafo en español.</p>
</body>
</html>
Corrigido com o atributo lang correto
Adicionar lang="es" informa browsers, leitores de ecrã e motores de busca que este documento está em espanhol:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Mi Sitio Web</title>
</head>
<body>
<h1>Bienvenido a mi sitio web</h1>
<p>Este es un párrafo en español.</p>
</body>
</html>
Atributo lang não correspondente
Isto também pode desencadear o aviso quando o valor lang não corresponde ao conteúdo real. Aqui, o conteúdo está em francês mas a linguagem está declarada como inglês:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Mon Site Web</title>
</head>
<body>
<h1>Bienvenue sur mon site web</h1>
<p>Ceci est un paragraphe en français.</p>
</body>
</html>
A correção é alterar o valor lang para corresponder ao conteúdo:
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Mon Site Web</title>
</head>
<body>
<h1>Bienvenue sur mon site web</h1>
<p>Ceci est un paragraphe en français.</p>
</body>
</html>
Usar uma variante regional
Se precisar de especificar uma variação regional, anexe a subtag da região. Por exemplo, es-MX para espanhol mexicano ou pt-BR para português brasileiro:
<!DOCTYPE html>
<html lang="es-MX">
<head>
<meta charset="UTF-8">
<title>Mi Sitio Web</title>
</head>
<body>
<h1>Bienvenido a mi sitio web</h1>
<p>Este es un párrafo en español de México.</p>
</body>
</html>
Secções numa linguagem diferente
Quando o seu documento está principalmente numa linguagem mas contém secções noutra, defina a linguagem principal em <html> e use lang em elementos individuais para as exceções:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>My Website</title>
</head>
<body>
<h1>Welcome to my website</h1>
<p>This site is available in multiple languages.</p>
<blockquote lang="es">
<p>Bienvenido a mi sitio web.</p>
</blockquote>
</body>
</html>
Esta abordagem garante que as tecnologias assistivas mudem as regras de pronúncia apropriadamente quando encontram a secção em língua estrangeira, enquanto os browsers e motores de busca ainda compreendem a linguagem primária do documento.
Encontre problemas como este automaticamente
O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.
Saiba mais: