Sobre este problema HTML
O atributo ping especifica uma lista de URLs separadas por espaços que o navegador deve notificar (via uma pequena requisição POST) quando um utilizador segue um hiperlink. Isto é comumente usado para rastreamento de cliques e análise. De acordo com a especificação HTML, cada URL na lista deve ser uma URL válida e não vazia que use o esquema http ou https — nenhum outro esquema ou caminho relativo é permitido.
Esta restrição existe por razões práticas e de segurança. O mecanismo ping é especificamente projetado para endpoints de rastreamento baseados na web, então apenas protocolos web fazem sentido. URLs relativas são proibidas porque o ping é enviado como uma requisição separada independente da navegação normal, e a especificação requer URLs absolutas para identificar inequivocamente o servidor de destino. Usar valores inválidos não produzirá o comportamento de rastreamento pretendido e fará com que o navegador ignore silenciosamente o atributo ping completamente.
Do ponto de vista da acessibilidade e conformidade com padrões, garantir valores ping válidos significa que sua análise funcionará de forma confiável em navegadores que suportam o atributo. Note que o suporte do navegador varia — alguns navegadores (notavelmente o Firefox) desabilitam o ping por padrão ou o escondem atrás de uma preferência — então você não deve depender dele como seu único mecanismo de rastreamento.
Como corrigir
-
Substitua URLs relativas por URLs absolutas. Se você tem um valor como
/trackoutrack.php, adicione a origem completa (por exemplo,https://example.com/track). -
Remova esquemas não-HTTP. Valores como
mailto:someone@example.comouftp://example.com/lognão são válidos paraping. -
Certifique-se de que cada URL na lista está adequadamente formatada. Múltiplas URLs devem ser separadas por espaços (não vírgulas ou ponto e vírgula), e cada uma deve ser uma URL
httpouhttpscompleta.
Exemplos
Incorreto: URL relativa
<a href="https://example.com" ping="/track">Visit Example</a>
O valor /track é uma URL relativa, que não é permitida no atributo ping.
Incorreto: esquema não suportado
<a href="https://example.com" ping="ftp://example.com/log">Visit Example</a>
O esquema ftp: não é permitido — apenas http e https são válidos.
Incorreto: URLs separadas por vírgulas
<a href="https://example.com" ping="https://example.com/track, https://analytics.example.com/log">Visit Example</a>
Múltiplas URLs devem ser separadas por espaços, não vírgulas. As vírgulas tornam cada URL inválida.
Correto: URL absoluta única
<a href="https://example.com" ping="https://example.com/track">Visit Example</a>
Correto: múltiplas URLs absolutas separadas por espaços
<a href="https://example.com" ping="https://example.com/track https://analytics.example.com/log">Visit Example</a>
Cada URL é uma URL https totalmente qualificada, e estão separadas por um único espaço. Ambas receberão uma requisição POST quando o link for clicado (em navegadores que suportam o atributo ping).
Encontre problemas como este automaticamente
O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.