Skip to main content
Validação HTML

Valor incorreto X para o atributo “href” no elemento “a”: Carácter ilegal no fragmento: “>” não é permitido.

Sobre este problema HTML

Um identificador de fragmento de URL é a parte de uma URL que segue o símbolo #, normalmente usada para ligar a uma secção específica dentro de uma página. A especificação de URL (RFC 3986 e o WHATWG URL Standard) define um conjunto restrito de carateres que são permitidos em fragmentos. O carácter > (sinal de maior que) está entre aqueles que não são permitidos aparecer literalmente. Quando o W3C HTML Validator encontra > dentro de um valor href — seja no fragmento ou noutro local da URL — gera este erro.

Na maioria dos casos, o carácter > aparece numa URL por acidente — por exemplo, de um erro de copiar-colar, um erro de digitação onde o > de fecho da tag acidentalmente acaba dentro do valor do atributo, ou uma expressão de template malformada. Menos comummente, um programador pode genuinamente necessitar do carácter > como parte do conteúdo da URL.

Porque é que isto importa

  • Ligações quebradas: Os navegadores podem interpretar o > como o fim da tag HTML ou processar a URL de forma imprevisível, levando a navegação quebrada.
  • Conformidade com normas: URLs inválidas violam tanto a especificação HTML como as normas de sintaxe de URL, causando falhas de validação.
  • Acessibilidade: Leitores de ecrã e outras tecnologias assistivas dependem de markup bem formado. Um href malformado pode confundir estas ferramentas e impedir que os utilizadores cheguem ao destino pretendido.
  • Interoperabilidade: Embora alguns navegadores possam silenciosamente corrigir ou ignorar o carácter inválido, outros podem não o fazer. URLs válidas garantem comportamento consistente em todos os locais.

Como corrigir

  1. Se o > é um erro de digitação ou copiar-colar, simplesmente remova-o do valor href. Este é o cenário mais comum.
  2. Se o > é intencionalmente parte do fragmento ou URL, substitua-o pelo seu equivalente codificado como percentagem: %3E.
  3. Reveja os seus templates ou saída de CMS — este erro origina frequentemente de motores de template ou sistemas de gestão de conteúdo que injetam valores malformados em atributos href.

Exemplos

> acidental no caminho da URL

Um erro comum é incluir acidentalmente o > de fecho da tag dentro do valor do atributo:

<!-- ❌ Inválido: ">" não é permitido na URL -->

<a href="/page.php>">Ler mais</a>

Remova o > perdido:

<!-- ✅ Válido: URL limpa sem carácter ilegal -->

<a href="/page.php">Ler mais</a>

> ilegal num identificador de fragmento

O > também pode aparecer dentro da porção de fragmento da URL:

<!-- ❌ Inválido: ">" no fragmento -->

<a href="/docs#section->overview">Ir para visão geral</a>

Se o > é não intencional, remova-o:

<!-- ✅ Válido: fragmento sem carácter ilegal -->

<a href="/docs#section-overview">Ir para visão geral</a>

Se o > é genuinamente necessário no fragmento, codifique-o como percentagem:

<!-- ✅ Válido: ">" codificado como %3E -->

<a href="/docs#section-%3Eoverview">Ir para visão geral</a>

String de consulta ou caminho contendo >

A mesma regra aplica-se fora de fragmentos. Se > aparece em qualquer lugar da URL, codifique-o:

<!-- ❌ Inválido: ">" no parâmetro de consulta -->

<a href="/search?filter=price>100">Itens caros</a>
<!-- ✅ Válido: ">" codificado como percentagem %3E -->

<a href="/search?filter=price%3E100">Itens caros</a>

Erros de saída de template

Se está a usar um template do lado do servidor ou framework JavaScript, certifique-se de que valores dinâmicos inseridos em href são adequadamente codificados para URL. Por exemplo, num template que gera ligações:

<!-- ❌ Inválido: valor dinâmico não codificado -->

<a href="/results#filter=>50">Ver resultados</a>
<!-- ✅ Válido: valor adequadamente codificado -->

<a href="/results#filter=%3E50">Ver resultados</a>

A maioria das linguagens do lado do servidor fornece funções integradas de codificação de URL (ex: encodeURIComponent() em JavaScript, urlencode() em PHP, urllib.parse.quote() em Python) que processarão isto automaticamente. Use sempre estas funções quando inserir conteúdo dinâmico em URLs.

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.