Sobre este problema HTML
O atributo dir especifica a direção base do texto para o conteúdo de um elemento. Quando um documento está escrito numa linguagem da direita para a esquerda como árabe, hebraico, persa (farsi) ou urdu, o navegador precisa de saber que o texto deve fluir da direita para a esquerda. Sem este atributo, os navegadores assumem por defeito a renderização da esquerda para a direita (ltr), o que pode causar uma série de problemas: o alinhamento do texto pode estar incorreto, a pontuação pode aparecer no lugar errado, e o layout geral da página pode parecer danificado ou confuso para leitores nativos.
Isto é importante por várias razões importantes:
-
Acessibilidade: Leitores de ecrã e outras tecnologias assistivas dependem do atributo
dirpara anunciar e navegar corretamente no conteúdo. Sem ele, a experiência de leitura para utilizadores que dependem destas ferramentas pode ser desorientadora ou incorreta. -
Correção visual: Elementos como listas, tabelas, etiquetas de formulários e menus de navegação irão espelhar o seu layout no modo RTL. Sem
dir="rtl", estes elementos assumem por defeito o posicionamento LTR, que parece pouco natural para falantes de linguagens RTL. -
Gestão de texto bidirecional: Os documentos frequentemente contêm conteúdo de direção mista (por exemplo, texto árabe com palavras inglesas incorporadas, números ou nomes de marcas). O Algoritmo Bidirecional Unicode (BiDi) usa a direção base definida por
dirpara resolver corretamente a ordenação destas sequências mistas de texto. -
Conformidade com padrões: A Especificação HTML Living Standard do WHATWG recomenda que os autores definam o atributo
dirpara corresponder à linguagem do documento, e as diretrizes de Internacionalização do W3C encorajam fortemente isto para linguagens RTL.
Como corrigir
Adicione dir="rtl" à sua etiqueta de início <html>. Se ainda não o fez, inclua também o atributo lang apropriado para a linguagem específica que está a usar.
Para árabe:
<html dir="rtl" lang="ar">
Para hebraico:
<html dir="rtl" lang="he">
Para persa:
<html dir="rtl" lang="fa">
Exemplos
❌ Atributo dir em falta num documento árabe
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="utf-8">
<title>مرحبا بالعالم</title>
</head>
<body>
<h1>مرحبا بالعالم</h1>
<p>هذه صفحة تجريبية باللغة العربية.</p>
</body>
</html>
O navegador irá renderizar esta página com uma direção base da esquerda para a direita. O texto do cabeçalho e parágrafo pode aparecer alinhado à esquerda, e qualquer conteúdo de direção mista (como números incorporados ou palavras inglesas) pode estar ordenado incorretamente.
✅ Correto: dir="rtl" adicionado à etiqueta <html>
<!DOCTYPE html>
<html dir="rtl" lang="ar">
<head>
<meta charset="utf-8">
<title>مرحبا بالعالم</title>
</head>
<body>
<h1>مرحبا بالعالم</h1>
<p>هذه صفحة تجريبية باللغة العربية.</p>
</body>
</html>
Agora o navegador sabe que deve renderizar a página da direita para a esquerda. O texto será alinhado à direita por defeito, as barras de deslocamento aparecerão à esquerda, e o layout geral parecerá natural para leitores de árabe.
Gestão de conteúdo de direção mista numa página
Se o seu documento RTL contém secções numa linguagem da esquerda para a direita, use o atributo dir em elementos individuais para sobrepor localmente a direção base:
<p>قام المستخدم بزيارة <span dir="ltr">www.example.com</span> اليوم.</p>
Isto garante que o URL é renderizado na ordem correta da esquerda para a direita enquanto o texto árabe circundante flui da direita para a esquerda. Definir dir="rtl" no elemento <html> estabelece o defeito correto, e você só precisa de sobreposições por elemento para conteúdo LTR incorporado.
Encontre problemas como este automaticamente
O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.