Questão de Programação — HTML (HyperText Markup Language) — Quadrix 2025
- Código
- qg596894
- Banca
- Quadrix
- Órgão
- CRC-SP
- Ano
- 2025
- Nível
- Médio
- Cargo
- Assistente Web e Multimídia
- CCerto
- EErrado
GabaritoC — Certo
required e a validação de formuláriosGabarito: ✅ CERTO. Em HTML5, o elemento <input type="email" name="email" required> cria um campo de entrada de e-mail que, graças ao atributo booleano required, impede o envio do formulário enquanto o campo estiver vazio — a validação é feita pelo navegador, no lado do cliente, antes do submit. A afirmação está correta e espelha exatamente o comportamento definido na especificação do HTML5.
O HTML5 introduziu uma série de novos tipos de <input> e atributos que permitem a validação de formulários sem a necessidade de JavaScript. O tipo email é um desses novos tipos: ele informa ao navegador que o campo deve conter um endereço de e-mail válido (algo como [email protected]). Já o atributo required é um atributo booleano — sua simples presença na tag, independentemente do valor atribuído, indica que o campo é de preenchimento obrigatório. Quando um formulário contém um campo com required e o usuário tenta enviá-lo sem preenchê-lo, o navegador bloqueia o envio e exibe uma mensagem de validação, geralmente "Preencha este campo".
Essa validação é chamada de validação de restrição (constraint validation) e ocorre exclusivamente no lado do cliente, ou seja, no navegador. É importante destacar que ela é uma camada de usabilidade, não de segurança: um usuário mal-intencionado pode facilmente contorná-la (por exemplo, desabilitando o JavaScript ou manipulando a requisição HTTP diretamente). Por isso, a validação no servidor (como a feita em ASP.NET com RequiredFieldValidator ou DataAnnotations) continua sendo indispensável. A banca explora exatamente esse ponto: o candidato pode achar que a validação do HTML5 é suficiente, mas ela é apenas a primeira barreira.
Outro detalhe que merece atenção é a sintaxe do atributo required. Por ser booleano, ele pode ser escrito de três formas equivalentes: required, required="required" ou required="". Todas são válidas e produzem o mesmo efeito. No enunciado, o atributo aparece sem valor (required), o que é perfeitamente aceitável e não torna o código inválido. A pegadinha aqui seria o candidato achar que falta um valor ao atributo, mas isso não é um erro — a presença do atributo já é suficiente para ativar a obrigatoriedade.
Guarde a distinção central: o tipo email valida o formato do conteúdo (se é um e-mail), enquanto o atributo required valida a presença do conteúdo (se o campo não está vazio). São validações complementares e independentes — um campo pode ter type="email" sem required (aceita vazio, mas exige formato válido se preenchido) ou required sem type="email" (obriga preenchimento, mas aceita qualquer texto). É exatamente essa combinação que a questão testa.
A afirmação descreve com precisão o comportamento do código. O atributo required é um atributo booleano do HTML5 que, quando presente em um campo de formulário, torna o preenchimento obrigatório antes do envio. Combinado com type="email", o navegador também valida se o valor digitado tem o formato de um endereço de e-mail. Portanto, o campo criado pelo comando exige preenchimento e, além disso, exige que o conteúdo seja um e-mail válido — o que torna a afirmação do enunciado correta.
A banca pode tentar confundir o candidato fazendo-o acreditar que a validação do HTML5 dispensa a validação no servidor. Não caia nessa: a validação do lado do cliente (HTML5/JavaScript) é apenas para melhorar a experiência do usuário e pode ser contornada. A validação no servidor é sempre necessária para garantir a integridade e a segurança dos dados. Outra pegadinha comum é achar que o atributo required precisa de um valor (como required="true"), mas, por ser booleano, sua simples presença já é suficiente.
Para questões de HTML5, memorize os principais atributos de validação: required (obrigatório), min/max (limites numéricos), minlength/maxlength (tamanho do texto), pattern (expressão regular) e type (que define o formato esperado, como email, url, number, date). E lembre-se: a validação do navegador é sempre do lado do cliente — a do servidor é que protege a aplicação de verdade.
Gabarito: ✅ CERTO
Link permanente: /questoes/qg596894