Sobre este problema HTML
Quando define href="http://", o navegador e o validador W3C tentam analisar isto como um URL absoluto. Segundo o URL Standard, um URL com o esquema http ou https deve incluir um componente host não vazio. A string http:// tem o esquema mas nada depois do ://, o que torna o host vazio e o URL inválido.
Este problema surge normalmente quando um URL é gerado dinamicamente mas a variável ou valor para o domínio está em falta, ou quando um programador usa http:// como placeholder temporário durante o desenvolvimento e se esquece de o substituir.
Porque é que isto é importante
-
Navegação danificada: Clicar numa ligação com
href="http://"leva a comportamento imprevisível. Alguns navegadores podem navegar para uma página de erro, enquanto outros podem interpretá-lo de forma diferente. - Acessibilidade: Os leitores de ecrã anunciam ligações aos utilizadores, incluindo os seus destinos. Um URL inválido cria uma experiência confusa para utilizadores de tecnologia assistiva que esperam que a ligação vá para algum lugar significativo.
-
Conformidade com padrões: A especificação HTML exige que os valores
hrefsejam URLs válidos. Um host vazio viola as regras de análise de URL, fazendo com que o validador W3C o sinalize como erro. - SEO: Os crawlers de motores de busca podem tratar URLs inválidos como erros, potencialmente afetando a forma como o seu site é indexado.
Exemplos
❌ Inválido: host vazio no URL
<a href="http://">Visite o nosso website</a>
Isto aciona o erro porque http:// não tem componente host.
❌ Inválido: mesmo problema com HTTPS
<a href="https://">Ligação segura</a>
O esquema https também requer um host válido, por isso produz o mesmo erro.
✅ Corrigido: forneça um URL completo
<a href="https://example.com">Visite o nosso website</a>
✅ Corrigido: use um placeholder de fragmento se o URL for desconhecido
Se precisar de uma ligação placeholder durante o desenvolvimento, use # em vez de um URL incompleto:
<a href="#">Visite o nosso website</a>
✅ Corrigido: use um URL relativo quando ligar dentro do mesmo site
<a href="/about">Sobre nós</a>
Lidar com URLs dinâmicos
Se o valor href vier de um template ou CMS, certifique-se de que a variável produz um URL completo. Por exemplo, se um template produzir uma string vazia, pode acabar com:
<!-- Se {{ site_url }} estiver vazio, isto torna-se href="http://" -->
<a href="http://{{ site_url }}">Início</a>
Certifique-se de que a variável sempre resolve para um host válido, ou adicione um fallback para que a ligação seja omitida ou substituída por um padrão seguro quando o valor estiver em falta.
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: