Skip to main content
Validação HTML

Valor inválido X para o atributo "target" no elemento "a": Palavra-chave reservada X utilizada.

Sobre este problema HTML

O atributo target especifica onde apresentar o recurso ligado. A especificação HTML define um conjunto de palavras-chave reservadas que todas começam com um sublinhado: _blank, _self, _parent e _top. Qualquer outro valor que comece com um sublinhado é considerado inválido porque o prefixo sublinhado é reservado para palavras-chave atuais e futuras definidas pela especificação.

Isto é importante por várias razões. Primeiro, os navegadores podem lidar com valores não reconhecidos com prefixo sublinhado de forma inconsistente — alguns podem tratá-los como _blank, enquanto outros podem ignorá-los completamente ou tratá-los como contextos de navegação nomeados. Isto leva a comportamento imprevisível em diferentes navegadores. Segundo, usar palavras-chave reservadas mas indefinidas sinaliza um provável erro tipográfico ou mal-entendido do atributo, que pode causar navegação com comportamento diferente do pretendido. A conformidade com os padrões garante que as suas ligações funcionam de forma fiável para todos os utilizadores.

As palavras-chave válidas e os seus significados são:

  • _self — Abre a ligação no contexto de navegação atual (comportamento padrão).
  • _blank — Abre a ligação num contexto de navegação novo e sem nome (tipicamente um novo separador).
  • _parent — Abre a ligação no contexto de navegação pai, ou _self se não houver pai.
  • _top — Abre a ligação no contexto de navegação superior, ou _self se não houver antecessor.

Se precisar de direcionar para uma frame ou janela nomeada específica, simplesmente use um nome sem um sublinhado inicial. Qualquer string que não comece com _ é tratada como um contexto de navegação nomeado válido.

Exemplos

Incorreto: Palavra-chave reservada inválida

Estes exemplos usam valores com prefixo sublinhado que não são palavras-chave reconhecidas:

<!-- Erro tipográfico: "_blanks" não é uma palavra-chave válida -->

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

<!-- "_new" não é uma palavra-chave válida -->

<a href="https://example.com" target="_new">Open in new tab</a>

<!-- "_tab" não é uma palavra-chave válida -->

<a href="https://example.com" target="_tab">Open link</a>

Correto: Usar uma palavra-chave válida

<!-- Use "_blank" para abrir num novo separador -->

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

<!-- Use "_self" para abrir no mesmo separador (também o padrão) -->

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

<!-- Use "_parent" para abrir na frame pai -->

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

<!-- Use "_top" para abrir na frame superior -->

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

Correto: Usar um contexto de navegação nomeado personalizado

Se pretender direcionar para uma janela ou frame nomeada específica em vez de usar uma palavra-chave, remova o prefixo sublinhado:

<!-- Válido: "myframe" é um nome de contexto de navegação personalizado -->

<a href="https://example.com" target="myframe">Open in myframe</a>

<!-- Válido: direcionamento para um iframe nomeado -->

<iframe name="content-frame" src="about:blank"></iframe>
<a href="https://example.com" target="content-frame">Load in iframe</a>

Um erro comum é usar _new com a intenção de abrir uma ligação num novo separador. Embora alguns navegadores possam tratar _new de forma similar a _blank, não é uma palavra-chave válida. Use _blank em vez disso. Note que ao usar target="_blank", é uma boa prática de segurança incluir também rel="noopener" (embora os navegadores modernos agora façam isto por padrão):

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

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.