Sobre este problema HTML
O elemento <link> é usado para definir relações entre o documento atual e recursos externos — mais comumente folhas de estilo, ícones e recursos pré-carregados. O atributo href especifica a URL desse recurso externo, e é o propósito central do elemento. Um atributo href vazio torna o elemento <link> sem sentido porque não há recurso para buscar ou referenciar.
Por que isto é um problema
Conformidade com padrões: A especificação HTML requer que o atributo href no <link> seja uma URL válida e não vazia. Uma string vazia não se qualifica como uma URL válida, pelo que o validador sinaliza isto como um erro.
Comportamento inesperado do navegador: Quando um navegador encontra um href vazio, pode resolvê-lo relativamente à URL do documento atual. Isto significa que o navegador pode acabar por fazer um pedido HTTP desnecessário para a própria página atual, interpretando a resposta HTML como uma folha de estilo ou outro recurso. Isto desperdiça largura de banda, pode atrasar o carregamento da página e pode desencadear problemas de renderização inesperados.
Acessibilidade e semântica: Um href vazio não fornece informações úteis aos navegadores, leitores de ecrã ou outros agentes de utilizador sobre a relação entre o documento e um recurso externo. Adiciona ruído ao DOM sem contribuir com nada funcional.
Como corrigir
-
Forneça uma URL válida: Se o elemento
<link>pretende referenciar um recurso, definahrefpara a URL correta desse recurso. -
Remova o elemento: Se não é necessário nenhum recurso, remova todo o elemento
<link>em vez de o deixar com umhrefvazio. -
Verifique a renderização dinâmica: Este problema ocorre frequentemente quando um motor de templates ou CMS produz um elemento
<link>com uma variável que resolve para uma string vazia. Adicione uma verificação condicional para que o elemento apenas seja renderizado quando uma URL válida estiver disponível.
Exemplos
❌ Incorreto: atributo href vazio
<link rel="stylesheet" href="">
Isto desencadeia o erro de validação porque href está vazio.
❌ Incorreto: href vazio de um template
<!-- Uma variável de template resolveu para uma string vazia -->
<link rel="icon" type="image/png" href="">
✅ Correto: href válido apontando para um recurso
<link rel="stylesheet" href="/css/main.css">
✅ Correto: href válido para um favicon
<link rel="icon" type="image/png" href="/images/favicon.png">
✅ Correto: remover o elemento se não for necessário nenhum recurso
<!-- Simplesmente omita o elemento <link> completamente -->
✅ Correto: renderização condicional num template
Se está a usar uma linguagem de templates, envolva o <link> numa condicional para que apenas seja renderizado quando uma URL estiver disponível. Por exemplo, num template estilo Jinja2:
{% if stylesheet_url %}
<link rel="stylesheet" href="{{ stylesheet_url }}">
{% endif %}
Isto garante que o elemento <link> nunca é produzido com um href vazio.
Encontre problemas como este automaticamente
O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.