Skip to main content
Validação HTML

Valor inválido “” para o atributo “src” no elemento “script”: Deve ser não vazio.

Sobre este problema HTML

O atributo src num elemento <script> diz ao navegador onde buscar um ficheiro JavaScript externo. Segundo a especificação HTML, quando o atributo src está presente, o seu valor deve ser um URL válido e não vazio. Uma string vazia não se qualifica como um URL válido, por isso o validador assinala-a como erro.

Este problema tipicamente surge em alguns cenários comuns:

  • Placeholders de templates ou CMS — Um motor de templates ou sistema de gestão de conteúdos produz um src vazio quando nenhum URL de script está configurado.
  • JavaScript dinâmico — O código do lado do cliente pretende definir o src mais tarde, mas o HTML inicial é enviado com um valor vazio.
  • Erros de cópia-e-cola — O atributo foi adicionado em antecipação de um ficheiro de script que nunca foi especificado.

Para além de falhar a validação, um src vazio causa problemas reais. A maioria dos navegadores interpreta um src vazio como um URL relativo que resolve para o URL da página atual. Isto significa que o navegador fará um pedido HTTP adicional para re-buscar o documento HTML atual e tentar analisá-lo como JavaScript, desperdiçando largura de banda, retardando o carregamento da página e potencialmente gerando erros na consola. Também pode causar efeitos colaterais inesperados nos registos do servidor e análises.

Como corrigir

Escolha a abordagem que corresponde à sua intenção:

  1. Forneça um URL válido — Se precisa de um script externo, defina src para o caminho de ficheiro correto ou URL completo.
  2. Use um script inline — Se o seu JavaScript está escrito diretamente no HTML, remova completamente o atributo src. Note que quando src está presente, os navegadores ignoram qualquer conteúdo entre as tags <script> de abertura e fecho.
  3. Remova o elemento — Se o script não é necessário, remova completamente o elemento <script>.

Tenha também em mente:

  • Certifique-se de que o caminho do ficheiro está correto relativamente à localização do ficheiro HTML.
  • Se usar um URL absoluto, verifique que é acessível e retorna conteúdo JavaScript.
  • Se um script só deve ser carregado condicionalmente, trate a condição na sua lógica do lado do servidor ou de construção em vez de produzir um src vazio.

Exemplos

❌ Inválido: Atributo src vazio

<script src=""></script>

Isto despoleta o erro de validação porque o valor de src é uma string vazia.

❌ Inválido: Atributo src apenas com espaços em branco

<script src="  "></script>

Um valor contendo apenas espaços em branco também não é um URL válido e produzirá o mesmo erro.

✅ Corrigido: Script externo válido

<script src="js/app.js"></script>

O atributo src contém um URL relativo válido que aponta para um ficheiro JavaScript real.

✅ Corrigido: Script externo válido com um URL completo

<script src="https://example.com/js/library.min.js"></script>

✅ Corrigido: Script inline sem src

Se quiser escrever JavaScript diretamente no seu HTML, omita o atributo src:

<script>
  console.log("This is an inline script.");
</script>

✅ Corrigido: Omitir condicionalmente o elemento

Se o URL do script vier de uma variável de template que pode estar vazia, trate-a ao nível do template para que o elemento <script> só seja renderizado quando um URL estiver disponível. Por exemplo, numa linguagem de templates:

<!-- Pseudocódigo — só produz a tag quando o URL existe -->

<!-- {% if script_url %} -->

<script src="analytics.js"></script>
<!-- {% endif %} -->

Isto previne que o src vazio chegue alguma vez ao navegador.

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.