Skip to main content
Validação HTML

Atributo “type” não permitido no elemento “textarea” neste ponto.

Sobre este problema HTML

O atributo type é específico do elemento <input>, onde determina o tipo de controlo de entrada renderizado — como text, checkbox, email, ou number. O elemento <textarea> serve um único propósito distinto: fornecer uma área de edição de texto simples multilinha. Porque não tem múltiplos modos de operação, a especificação HTML não define um atributo type para o mesmo.

Este erro ocorre comumente quando os programadores confundem <textarea> com <input>, ou quando refatorizam um <input type="text"> de linha única para um <textarea> multilinha sem remover o atributo type agora inválido. Também pode aparecer quando se usam sistemas de templates ou frameworks que aplicam atributos genericamente em diferentes elementos de formulário.

Embora os navegadores normalmente ignorem o atributo type não reconhecido num <textarea>, mantê-lo no seu markup causa erros de validação W3C e pode levar à confusão para outros programadores que leiam o código. Atributos inválidos também podem interferir com seletores de atributos CSS (por exemplo, textarea[type="text"] é um seletor que direciona markup inválido), ferramentas de acessibilidade, ou sistemas de teste automatizado que dependem de HTML bem formado.

Para corrigir este problema, remova o atributo type do elemento <textarea>. Se precisar de diferenciar entre múltiplos textareas, use os atributos id, name, ou class em vez disso. Se realmente precisar de uma entrada de texto de linha única, use <input type="text"> em vez de <textarea>.

Exemplos

Incorreto: atributo type no <textarea>

<label for="comment">O seu comentário:</label>
<textarea type="text" id="comment" name="comment" rows="4" cols="50"></textarea>

O atributo type="text" não é válido no <textarea> e vai desencadear um erro de validação.

Correto: <textarea> sem type

<label for="comment">O seu comentário:</label>
<textarea id="comment" name="comment" rows="4" cols="50"></textarea>

Simplesmente remover o atributo type resolve o problema. O elemento <textarea> fornece inerentemente uma entrada de texto multilinha, por isso não é necessário nenhum type.

Correto: Usar <input> quando se pretende um campo de linha única

Se pretendia um campo de texto de linha única, use <input> em vez disso:

<label for="username">Nome de utilizador:</label>
<input type="text" id="username" name="username">

O atributo type é válido e esperado em elementos <input>, onde controla o tipo de controlo de entrada renderizado.

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.