Skip to main content
Validação HTML

Valor incorreto “callto:X” para o atributo “href” no elemento “a”: Carácter ilegal nos dados do esquema: espaços não são permitidos.

Sobre este problema HTML

Quando escreve uma ligação telefónica usando <a href="callto:...">, pode encontrar dois problemas distintos ao mesmo tempo. Primeiro, o esquema callto: é um protocolo legado e não-padrão originalmente associado ao Skype. O esquema URI correto e amplamente suportado para ligações telefónicas é tel:, conforme definido pela RFC 3966. Segundo, espaços dentro dos dados do esquema URI são carateres ilegais. Os URIs não devem conter espaços não codificados em lugar algum, e os URIs telefónicos esperam especificamente um número de telefone compacto composto por dígitos, hífens (-), pontos (.), e um sinal de mais (+) opcional no início para marcação internacional.

O validador W3C levanta este erro porque o valor fornecido ao href viola as regras de sintaxe URI. Os navegadores podem ainda tentar processar a ligação, mas o comportamento será inconsistente — alguns navegadores móveis podem não reconhecer callto: de todo, e espaços no URI podem fazer com que o número seja analisado incorretamente ou truncado. Usar o esquema padrão tel: com um número devidamente formatado garante que a ligação funciona de forma fiável em todos os dispositivos e plataformas, incluindo telemóveis, aplicações VoIP e tecnologias assistivas.

Como corrigir

  1. Substitua callto: por tel: — O esquema tel: é o padrão para ligações de números de telefone e é suportado por todos os navegadores modernos e sistemas operativos móveis.
  2. Remova espaços e barras — Retire quaisquer espaços, barras ou parênteses do número de telefone. Estes carateres não são válidos num URI tel: sem codificação percentual, e não servem qualquer propósito funcional no destino da ligação.
  3. Use um + inicial para números internacionais — Se aplicável, inclua o código de marcação internacional completo prefixado com + (por exemplo, +1 para os EUA, +49 para a Alemanha). Isto faz com que a ligação funcione independentemente da localização de quem liga.
  4. Separadores visuais opcionais — Se quiser separadores visuais dentro do href para legibilidade no seu código fonte, use hífens (-) ou pontos (.), que são permitidos em URIs tel:. No entanto, a abordagem mais simples e segura é usar apenas dígitos (mais o + inicial opcional).

Exemplos

Incorreto: callto: com espaços e barras

Isto desencadeia o erro do validador porque espaços e barras são ilegais nos dados do esquema URI, e callto: não é padrão.

<a href="callto:07142/ 12 34 5">Ligue-nos</a>

Incorreto: tel: com espaços

Mesmo com o esquema tel: correto, espaços no número de telefone continuam a ser carateres URI inválidos.

<a href="tel:07142 12 34 5">Ligue-nos</a>

Correto: tel: apenas com dígitos

<a href="tel:0714212345">Ligue-nos</a>

Correto: número internacional com prefixo +

<a href="tel:+490714212345">Ligue-nos</a>

Correto: usando hífens para legibilidade

Os hífens são carateres válidos em URIs tel: e podem melhorar a legibilidade do código fonte sem afetar a funcionalidade.

<a href="tel:+49-07142-12345">Ligue-nos</a>

Mostrar um número formatado ao utilizador

Pode ainda mostrar um número formatado de forma amigável como o texto visível da ligação enquanto mantém o valor href limpo e válido.

<a href="tel:+490714212345">+49 (0) 7142 / 12 34 5</a>

Esta abordagem dá-lhe o melhor de ambos os mundos: o texto da ligação é fácil de ler para os utilizadores, e o valor href é um URI tel: válido e conforme aos padrões que funciona de forma fiável em todos os dispositivos e passa a validação W3C.

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.