Skip to main content
Validação HTML

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

Sobre este problema HTML

O elemento <source> é usado dentro dos elementos <video>, <audio> e <picture> para especificar um ou mais recursos de media para o navegador escolher. O seu atributo src é definido como um URL válido e não vazio, o que significa que deve resolver para um caminho de ficheiro real ou endereço web. Uma string vazia não satisfaz este requisito e viola a especificação HTML.

Por que é um problema

Conformidade com padrões: O padrão WHATWG HTML living standard requer explicitamente que o atributo src em <source> seja um URL não vazio e válido. Um valor vazio torna o documento HTML inválido.

Comportamento inesperado do navegador: Quando um navegador encontra um src vazio, pode tentar resolvê-lo relativamente ao URL da página atual. Isto pode desencadear um pedido HTTP desnecessário de volta à página atual, resultando em desperdício de largura de banda, carga inesperada no servidor ou erros confusos nos seus logs de rede.

Reprodução de media interrompida: Um src vazio significa que o navegador não tem nenhum ficheiro de media para carregar. Se o elemento <source> for o único fornecido, o elemento de media falhará completamente na reprodução — frequentemente sem uma indicação clara ao utilizador do que correu mal.

Preocupações de acessibilidade: Leitores de ecrã e tecnologias assistivas dependem de HTML bem formado. Marcação inválida pode levar a comportamento imprevisível ou anúncios de conteúdo perdidos para utilizadores que dependem destas ferramentas.

Como corrigir

  1. Forneça um URL válido — Defina o atributo src para o caminho ou URL correto do seu ficheiro de media.
  2. Remova o elemento — Se a fonte de media ainda não estiver disponível ou estiver a ser definida dinamicamente via JavaScript, remova o elemento <source> do HTML completamente e adicione-o mais tarde através de script quando o URL for conhecido.
  3. Verifique problemas de template ou CMS — Este erro aparece frequentemente quando um CMS ou motor de templates produz uma tag <source> com uma variável vazia. Certifique-se de que o seu template renderiza condicionalmente o elemento apenas quando existe um URL válido.

Exemplos

Incorreto: src vazio em <source> num vídeo

<video controls>
  <source src="" type="video/mp4">
  Your browser does not support the video tag.
</video>

Correto: URL válido em src

<video controls>
  <source src="movie.mp4" type="video/mp4">
  Your browser does not support the video tag.
</video>

Incorreto: src vazio em <source> num elemento picture

<picture>
  <source src="" type="image/webp">
  <img src="photo.jpg" alt="A sunset over the ocean">
</picture>

Note que <source> dentro de <picture> usa srcset, não src. Este exemplo está duplamente errado — o atributo está vazio e incorreto. Aqui está a correção:

Correto: usar srcset com um URL válido num elemento picture

<picture>
  <source srcset="photo.webp" type="image/webp">
  <img src="photo.jpg" alt="A sunset over the ocean">
</picture>

Incorreto: múltiplas fontes com um src vazio

<audio controls>
  <source src="song.ogg" type="audio/ogg">
  <source src="" type="audio/mpeg">
</audio>

Correto: remova a fonte se nenhum ficheiro estiver disponível

<audio controls>
  <source src="song.ogg" type="audio/ogg">
  <source src="song.mp3" type="audio/mpeg">
</audio>

Correto: adicionar fontes condicionalmente com JavaScript

Se o URL for determinado em tempo de execução, evite colocar um <source> vazio na sua marcação. Em vez disso, adicione-o dinamicamente:

<video id="player" controls>
  Your browser does not support the video tag.
</video>
<script>
  const videoUrl = getVideoUrl(); // your logic here
  if (videoUrl) {
    const source = document.createElement("source");
    source.src = videoUrl;
    source.type = "video/mp4";
    document.getElementById("player").appendChild(source);
  }
</script>

Esta abordagem mantém o seu HTML válido em todos os momentos e apenas insere um elemento <source> quando um URL real está disponível.

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.