Skip to main content
Validação HTML

Valor inválido “” para o atributo “target” no elemento “a”: O nome do contexto de navegação deve ter pelo menos um caráter.

Sobre este problema HTML

O atributo target especifica onde um documento linkado deve ser aberto. Quando o validador encontra target="", reporta um erro porque a especificação HTML requer que os nomes de contexto de navegação tenham pelo menos um caráter. Uma string vazia não é um nome de contexto de navegação válido e não tem comportamento definido, o que significa que os navegadores podem tratá-la de forma inconsistente.

Este problema surge comumente quando um valor target é gerado dinamicamente por um CMS, motor de templates, ou JavaScript e o valor acaba por ficar vazio. Também pode acontecer quando um programador adiciona o atributo com a intenção de preenchê-lo mais tarde mas se esquece de o fazer.

Definir target como uma string vazia é problemático por várias razões:

  • Conformidade com padrões: A especificação HTML da WHATWG requer explicitamente que nomes de contexto de navegação válidos sejam strings não vazias. Um valor vazio viola esta regra.
  • Comportamento imprevisível: Os navegadores podem interpretar um target vazio de forma diferente — alguns podem tratá-lo como _self, outros podem comportar-se de forma inesperada. Isto torna o seu site mais difícil de testar e manter.
  • Preocupações de acessibilidade: Leitores de ecrã e tecnologias assistivas podem anunciar o atributo target ou usá-lo para informar os utilizadores sobre o comportamento do link. Um valor vazio não fornece informação significativa.

Para corrigir isto, escolha uma das seguintes abordagens:

  1. Remova o atributo se quiser o comportamento padrão (abrir no mesmo contexto de navegação, equivalente a _self).
  2. Defina uma palavra-chave válida como _blank, _self, _parent, ou _top.
  3. Defina um nome personalizado se quiser que múltiplos links partilhem o mesmo contexto de navegação (ex., target="externalWindow").

Exemplos

❌ Inválido: atributo target vazio

<a href="https://example.com" target="">Visitar Example</a>

Isto desencadeia o erro de validação porque o valor target é uma string vazia.

✅ Corrigido: remover target completamente

Se quiser que o link abra no contexto de navegação atual (o padrão), simplesmente remova o atributo:

<a href="https://example.com">Visitar Example</a>

✅ Corrigido: usar _blank para abrir numa nova aba

<a href="https://example.com" target="_blank" rel="noopener">Visitar Example</a>

Note a adição de rel="noopener" — esta é uma boa prática de segurança ao usar target="_blank", pois impede que a página aberta aceda à propriedade window.opener.

✅ Corrigido: usar _self explicitamente

Se quiser ser explícito sobre abrir no mesmo contexto:

<a href="https://example.com" target="_self">Visitar Example</a>

✅ Corrigido: usar um nome de contexto de navegação personalizado

Pode usar um nome personalizado para que múltiplos links reutilizem a mesma aba ou janela:

<a href="https://example.com" target="externalWindow">Example</a>
<a href="https://example.org" target="externalWindow">Example Org</a>

Ambos os links abrirão no mesmo contexto de navegação chamado externalWindow. Se ainda não existir, o navegador cria-o; cliques subsequentes reutilizam-no.

Templates dinâmicos

Se o seu valor target vem de um template ou CMS, certifique-se de que o atributo é renderizado condicionalmente em vez de ser produzido com um valor vazio. Por exemplo, numa linguagem de templates:

<!-- Em vez de sempre produzir target -->

<a href="https://example.com" target="">Visitar</a>

<!-- Incluir target apenas quando existe um valor -->

<a href="https://example.com" target="_blank" rel="noopener">Visitar</a>

Na sua lógica de template, omita condicionalmente o atributo target completamente quando nenhum valor é fornecido, em vez de o renderizar como uma string vazia.

Encontre problemas como este automaticamente

O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.

Ajude-nos a melhorar os nossos guias

Este guia foi útil?

Pronto para validar os seus sites?
Comece o seu teste gratuito hoje.