Skip to main content
Validação HTML

Valor inválido “true” para o atributo “multiple” no elemento “select”.

Sobre este problema HTML

Em HTML, os atributos booleanos funcionam de forma diferente do que você pode esperar de linguagens de programação. A presença de um atributo booleano num elemento representa o valor true, e a sua ausência representa false. Você não os define como "true" ou "false" como faria em JavaScript ou outras linguagens. De acordo com a especificação HTML do WHATWG, um atributo booleano tem exatamente três formas válidas:

  1. Apenas o nome do atributo (ex., multiple)
  2. O atributo com um valor vazio (ex., multiple="")
  3. O atributo com um valor que corresponde ao seu próprio nome, sem distinção de maiúsculas/minúsculas (ex., multiple="multiple")

Definir multiple="true" é inválido porque "true" não é um dos valores permitidos. Embora os browsers sejam tolerantes e tipicamente ainda tratem o atributo como presente (efetivamente ativando-o), isto produz um erro de validação W3C e não está conforme o padrão HTML. Depender da tolerância do browser leva a comportamentos inconsistentes, torna o seu código mais difícil de manter, e pode causar problemas com ferramentas de processamento HTML ou analisadores rigorosos.

Esta mesma regra aplica-se a todos os atributos booleanos em HTML, incluindo disabled, readonly, checked, required, hidden, autoplay, e muitos outros.

É também importante notar que multiple="false" não desativa o atributo. Porque o atributo ainda está presente no elemento, o browser trata-o como ativado. Para desativar um atributo booleano, deve removê-lo completamente do elemento.

Exemplos

❌ Inválido: usar "true" como valor

<label for="colors">Selecione as suas cores favoritas:</label>
<select id="colors" name="colors" multiple="true">
  <option value="red">Vermelho</option>
  <option value="green">Verde</option>
  <option value="blue">Azul</option>
</select>

Isto desencadeia o erro de validação: Valor inválido “true” para o atributo “multiple” no elemento “select”.

✅ Corrigido: apenas nome do atributo (preferido)

<label for="colors">Selecione as suas cores favoritas:</label>
<select id="colors" name="colors" multiple>
  <option value="red">Vermelho</option>
  <option value="green">Verde</option>
  <option value="blue">Azul</option>
</select>

✅ Corrigido: valor string vazia

<label for="colors">Selecione as suas cores favoritas:</label>
<select id="colors" name="colors" multiple="">
  <option value="red">Vermelho</option>
  <option value="green">Verde</option>
  <option value="blue">Azul</option>
</select>

✅ Corrigido: valor que corresponde ao nome do atributo

<label for="colors">Selecione as suas cores favoritas:</label>
<select id="colors" name="colors" multiple="multiple">
  <option value="red">Vermelho</option>
  <option value="green">Verde</option>
  <option value="blue">Azul</option>
</select>

❌ Erro comum: usar "false" para desativar

<!-- Isto NÃO desativa a seleção múltipla — o atributo ainda está presente -->

<select name="colors" multiple="false">
  <option value="red">Vermelho</option>
  <option value="green">Verde</option>
</select>

✅ Forma correta de desativar: remover o atributo completamente

<label for="color">Selecione uma cor:</label>
<select id="color" name="color">
  <option value="red">Vermelho</option>
  <option value="green">Verde</option>
</select>

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.