Skip to main content
Validação HTML

Valor inválido X para o atributo “multiple” no elemento “input”.

Sobre este problema HTML

O atributo multiple indica ao browser que o utilizador pode fornecer mais do que um valor para um determinado input. Para <input type="file">, permite selecionar múltiplos ficheiros de uma vez. Para <input type="email">, permite inserir uma lista de endereços de email separados por vírgulas. Estes são os únicos dois tipos de input que suportam o atributo multiple de acordo com a especificação HTML.

Este erro de validação pode aparecer por duas razões distintas, e por vezes ambas em simultâneo:

  1. Um valor inválido é atribuído ao atributo booleano. Os atributos booleanos em HTML seguem regras rigorosas. Sintaxes válidas são: apenas o nome do atributo (multiple), um valor de string vazia (multiple=""), ou o próprio nome do atributo como valor (multiple="multiple"). Qualquer outro valor — incluindo multiple="true", multiple="1", ou multiple="yes" — é inválido.

  2. O atributo é usado num tipo de input não suportado. Colocar multiple em tipos de input como text, number, password, ou url não é válido porque esses tipos não definem comportamento para este atributo. Os browsers irão simplesmente ignorá-lo, mas ainda assim constitui marcação inválida.

Por que razão isto é importante

  • Conformidade com os padrões: Valores inválidos de atributos booleanos violam a especificação HTML do WHATWG. Embora a maioria dos browsers seja tolerante e possa ainda interpretar multiple="true" como o atributo estando presente, confiar neste comportamento é frágil e não-padrão.
  • Acessibilidade: Tecnologias assistivas dependem de marcação válida e bem estruturada. Um valor de atributo inválido pode levar a comportamento imprevisível em leitores de ecrã ou outras ferramentas.
  • Manutenibilidade: Usar multiple num tipo de input não suportado sugere um mal-entendido das capacidades do elemento, o que pode confundir outros programadores e levar a bugs.

Como corrigir

  • Remover completamente o valor: Altere multiple="1" ou multiple="true" para apenas multiple.
  • Use uma sintaxe booleana válida se um valor for necessário: Alguns sistemas de templates ou contextos baseados em XML (como XHTML) requerem valores de atributos explícitos. Nesses casos, use multiple="" ou multiple="multiple".
  • Certifique-se de que o tipo de input suporta multiple: Apenas type="email" e type="file" aceitam este atributo. Se precisar de input de múltiplos valores para outros tipos, considere abordagens alternativas como múltiplos inputs separados, um elemento <select multiple>, ou uma solução baseada em JavaScript.

Exemplos

Inválido: valor errado num atributo booleano

<!-- Mau: "1" não é um valor de atributo booleano válido -->

<input type="file" name="attachments" multiple="1">

<!-- Mau: "true" não é um valor de atributo booleano válido -->

<input type="email" name="recipients" multiple="true">

Inválido: multiple num tipo de input não suportado

<!-- Mau: type="text" não suporta o atributo multiple -->

<input type="text" name="tags" multiple>

<!-- Mau: type="number" não suporta o atributo multiple -->

<input type="number" name="quantities" multiple>

Válido: uso correto de multiple

<!-- Correto: atributo booleano sem valor -->

<input type="file" name="attachments" multiple>

<!-- Correto: valor de string vazia (sintaxe booleana válida) -->

<input type="email" name="recipients" multiple="">

<!-- Correto: nome do atributo como valor (válido para compatibilidade XHTML) -->

<input type="file" name="documents" multiple="multiple">

Documento corrigido completo

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Upload Form</title>
</head>
<body>
  <form action="/submit" method="post" enctype="multipart/form-data">
    <label for="recipients">Destinatários:</label>
    <input type="email" id="recipients" name="recipients" multiple placeholder="a@exemplo.com, b@exemplo.com">

    <label for="files">Anexos:</label>
    <input type="file" id="files" name="files" multiple>

    <button type="submit">Enviar</button>
  </form>
</body>
</html>

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.