Skip to main content
Validação HTML

Valor inválido “virtual” para o atributo “wrap” no elemento “textarea”.

Sobre este problema HTML

O atributo wrap num <textarea> controla como o texto é quebrado quando o formulário é submetido. O valor "virtual" foi usado por alguns navegadores mais antigos (nomeadamente versões iniciais do Netscape e Internet Explorer) como uma alternativa proprietária ao que o HTML Standard agora chama "soft". Uma vez que "virtual" nunca foi parte de nenhuma especificação HTML formal, o validador W3C rejeita-o corretamente como um valor inválido.

O HTML Standard define apenas dois valores válidos para wrap:

  • soft (o padrão): O texto é visualmente quebrado no navegador para fins de exibição, mas nenhum caractere de quebra de linha real é inserido nos dados do formulário submetido. O servidor recebe o texto como linhas contínuas.
  • hard: O navegador insere caracteres de retorno de carro + alimentação de linha (CRLF) nos pontos de quebra visual quando o formulário é submetido, pelo que o servidor recebe o texto com quebras de linha fixas. Ao usar wrap="hard", você deve também especificar o atributo cols para que o navegador saiba onde estão os pontos de quebra.

Uma vez que "virtual" era funcionalmente idêntico a "soft", substituí-lo é direto. Se você omitir o atributo wrap completamente, o navegador usa quebra suave por padrão, o que lhe dá o mesmo comportamento.

Porque isto importa

Usar valores de atributo não-padrão pode levar a comportamento imprevisível entre navegadores. Embora a maioria dos navegadores modernos provavelmente recorra à quebra suave quando encontram um valor wrap não reconhecido, isto não é garantido por nenhuma especificação. Aderir a valores válidos assegura comportamento consistente entre navegadores e mantém a sua marcação em conformidade com os padrões.

Como corrigir

  1. Substitua wrap="virtual" por wrap="soft" para um equivalente explícito.
  2. Remova o atributo wrap completamente se quiser o comportamento padrão de quebra suave.
  3. Use wrap="hard" com um atributo cols se realmente precisar de quebras de linha fixas inseridas na submissão.

Exemplos

❌ Inválido: usando o valor não-padrão "virtual"

<form>
  <label for="msg">Mensagem</label>
  <textarea id="msg" name="msg" wrap="virtual"></textarea>
</form>

Isto desencadeia o erro: Bad value “virtual” for attribute “wrap” on element “textarea”.

✅ Corrigido: usando wrap="soft" (equivalente a "virtual")

<form>
  <label for="msg">Mensagem</label>
  <textarea id="msg" name="msg" wrap="soft"></textarea>
</form>

✅ Corrigido: omitindo wrap completamente (usa "soft" por padrão)

<form>
  <label for="msg">Mensagem</label>
  <textarea id="msg" name="msg"></textarea>
</form>

Uma vez que "soft" é o padrão, remover o atributo produz comportamento idêntico e marcação mais limpa.

✅ Corrigido: usando wrap="hard" com cols

Se precisar que o texto submetido inclua quebras de linha nos pontos de quebra, use wrap="hard" e especifique cols:

<form>
  <label for="msg">Mensagem</label>
  <textarea id="msg" name="msg" wrap="hard" cols="60" rows="6"></textarea>
</form>

Note que cols é obrigatório ao usar wrap="hard". Omiti-lo desencadeará um erro de validação separado.

Outros valores legados a observar

O valor "virtual" não é o único valor wrap não-padrão do início da web. Você pode também encontrar wrap="physical" (o equivalente legado de "hard") ou wrap="off" (que desativava a quebra). Nenhum é válido em HTML moderno. Substitua "physical" por "hard" (e adicione cols), e substitua "off" removendo o atributo e usando CSS (white-space: nowrap; ou overflow-wrap: normal;) para controlar a quebra visual se necessário.

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.