Sobre este problema HTML
O W3C HTML Validator gera este erro quando encontra um caractere de barra invertida (\) dentro do atributo href de um elemento âncora. De acordo com o WHATWG URL Standard, barras invertidas não são caracteres válidos nos dados do esquema URL. URLs são definidos com barras normais (/) como delimitadores — isto aplica-se a todas as partes de um URL, incluindo o esquema, autoridade, caminho, consulta e fragmento.
Este problema ocorre mais comummente quando programadores copiam caminhos de ficheiros de sistemas operativos Windows, onde barras invertidas são o separador de caminho padrão (por exemplo, C:\Users\Documents\file.html), e os colam diretamente na marcação HTML. Também pode acontecer quando código do lado do servidor gera URLs usando funções de caminho ao nível do SO que produzem barras invertidas no Windows.
Porque isto importa
- Conformidade com normas: O WHATWG URL Standard proíbe explicitamente barras invertidas nos dados do esquema. Os validadores sinalizam isto como um erro porque o URL resultante está malformado.
- Inconsistência entre navegadores: Embora alguns navegadores possam corrigir silenciosamente barras invertidas para barras normais, este comportamento não é garantido em todos os navegadores ou versões. Depender da correção de erros do navegador leva a código frágil.
- Links quebrados: Certos navegadores, clientes HTTP ou servidores intermédios podem não corrigir automaticamente a barra invertida, fazendo com que o link falhe completamente — resultando em erros 404 ou navegação inesperada.
- Preocupações de segurança: Barras invertidas em URLs podem ser exploradas em certos vetores de ataque como redirecionamentos abertos ou ataques de traversal de caminhos. Usar URLs bem formados reduz a superfície de ataque.
Como corrigir
-
Substitua todas as barras invertidas (
\) por barras normais (/) nos seus valoreshref. - Verifique a geração de URL no código do lado do servidor. Se a sua aplicação constrói URLs programaticamente, certifique-se de que usa barras normais independentemente do sistema operativo hospedeiro.
-
Use URLs relativos ou absolutos consistentemente. Seja o URL relativo (
images/photo.jpg) ou absoluto (https://example.com/images/photo.jpg), use sempre barras normais.
Exemplos
Incorreto: barras invertidas num caminho relativo
<a href="pages\about\team.html">Meet the Team</a>
Correto: barras normais num caminho relativo
<a href="pages/about/team.html">Meet the Team</a>
Incorreto: barras invertidas num URL absoluto
<a href="https://example.com\blog\2024\post.html">Read the Post</a>
Correto: barras normais num URL absoluto
<a href="https://example.com/blog/2024/post.html">Read the Post</a>
Incorreto: caminho de ficheiro Windows colado diretamente
<a href="assets\downloads\report.pdf">Download Report</a>
Correto: convertido para um URL relativo adequado
<a href="assets/downloads/report.pdf">Download Report</a>
Incorreto: barras mistas
Por vezes um URL contém uma mistura de barras normais e invertidas, o que também despoleta este erro:
<a href="https://example.com/images\photos\sunset.jpg">View Photo</a>
Correto: todas barras normais
<a href="https://example.com/images/photos/sunset.jpg">View Photo</a>
Uma maneira rápida de auditar os seus ficheiros HTML é procurar por \ dentro de quaisquer valores de atributo href (ou src, action, etc.) e substituí-los por /. Na maioria dos editores de código, pode usar localizar-e-substituir com âmbito nos valores de atributo para lidar com isto eficientemente.
Encontre problemas como este automaticamente
O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.