HTML5 Mestre dos Mestres • Aula Suprema 23

Criando Formulários

Formulário é a ponte entre o usuário e o sistema. É a estrutura que transforma uma página de leitura em uma interface de coleta de dados, cadastro, busca, login, contato, checkout e interação real.

NARRAÇÃO MESTRE

Narrador Mestre

Ouça a aula, revise blocos e estude com foco.

Pronto para narrar. As vozes disponíveis dependem do navegador e do sistema.

Abertura de impacto

O usuário agora fala com o sistema

Até aqui, o HTML organizava informação para leitura. Com formulários, o HTML começa a coletar dados do usuário e preparar esses dados para envio ao servidor. É o começo da web dinâmica.

Promessa da aula:

Você vai dominar a arquitetura de formulários com form, action, method, label, input, id, name, fieldset, textarea, select e required.

Estrutura técnica

form, action, method, GET e POST

A tag form é o contêiner da interatividade. O atributo action define o destino dos dados. O atributo method define como esses dados serão enviados.

<form action="/cadastro" method="post">
  <label for="nome">Nome completo</label>
  <input type="text" id="nome" name="nome" required>

  <button type="submit">Enviar cadastro</button>
</form>
  • GET: envia dados pela URL. Ideal para busca, filtros e consultas públicas.
  • POST: envia dados no corpo da requisição. Ideal para cadastro, login, checkout e dados sensíveis.
Erro fatal:

Usar method="get" para senhas ou dados sensíveis expõe informações na URL. Para cadastro e login, use POST.

Acessibilidade

label, for, input, id e name

label é o rótulo semântico do campo. O atributo for deve bater exatamente com o id do input. O name é a identidade do dado para o servidor.

<label for="email-contato">E-mail de contato</label>
<input type="email"
       id="email-contato"
       name="usuario_email"
       placeholder="seu@email.com"
       required>
  • id: identifica o elemento na página e conecta o label.
  • name: identifica o dado enviado ao servidor.
  • placeholder: é dica temporária, nunca substituto do label.
Erro eliminatório:

Input sem name pode aparecer na tela, mas o dado não chega corretamente ao backend.

Tipos de input

Escolha o tipo certo para o dado certo

<input type="text" name="nome">
<input type="email" name="email">
<input type="password" name="senha">
<input type="number" name="idade">
<input type="date" name="nascimento">
<input type="checkbox" name="termos" value="aceito">
<input type="radio" name="plano" value="basico">
<input type="radio" name="plano" value="premium">

O navegador usa o type para exibir teclados melhores no celular, validar dados básicos e melhorar a experiência do usuário.

Erro da preguiça:

Usar type="text" para tudo. O Mestre usa email, password, number, date, checkbox e radio quando o dado exige.

Organização avançada

fieldset, legend, textarea, select e required

Formulários longos precisam ser organizados. fieldset agrupa campos relacionados, legend dá nome ao grupo, textarea coleta texto longo, select oferece escolhas fechadas e required valida campos essenciais.

<fieldset>
  <legend>Preferências</legend>

  <label for="estado">Estado</label>
  <select id="estado" name="estado" required>
    <option value="">Selecione uma opção</option>
    <option value="sp">São Paulo</option>
    <option value="rj">Rio de Janeiro</option>
  </select>

  <label for="bio">Objetivo profissional</label>
  <textarea id="bio" name="objetivo" rows="5"></textarea>
</fieldset>
Desafio Mestre

Formulário Profissional de Cadastro HTML

Missão: criar o arquivo formulario-cadastro-html.html com um cadastro profissional, semântico, acessível e pronto para integração futura com backend.

Dados Pessoais
Preferências

Escolha seu nível:

Confirmações:

Requisitos obrigatórios do desafio

  • Doctype HTML5 e html lang="pt-BR".
  • Head completo com charset, viewport, title e meta description.
  • Body com header, main e footer.
  • H1 com “Formulário Profissional de Cadastro HTML”.
  • Formulário com form, action e method.
  • Pelo menos 8 campos usando input, textarea e select.
  • Labels conectadas corretamente aos inputs.
  • Uso correto de id e name.
  • Uso de text, email, password, number, date, checkbox, radio, textarea e select.
  • Uso de fieldset e legend.
  • Campos essenciais com required.
  • Botão submit com texto claro.
  • Explicação de GET vs POST e id vs name.
  • Lista com pelo menos 5 boas práticas.
Erros que reprovam:
  • Formulário sem label.
  • Input sem name.
  • Usar placeholder como substituto de label.
  • Usar GET para senha.
  • Radio sem name compartilhado.
  • Botão com texto genérico.
  • Formulário longo sem fieldset.
Quiz com gabarito

15 perguntas para provar domínio

  1. Qual tag inicia um formulário? <form>.
  2. Para que serve action? Define o destino dos dados.
  3. Diferença entre GET e POST? GET envia via URL; POST envia no corpo da requisição.
  4. O que method define? O método HTTP de envio.
  5. Qual atributo conecta label ao input? for ligado ao id.
  6. Para que serve type="password"? Mascarar caracteres digitados.
  7. Função do name? Identificar o dado para o servidor.
  8. Como criar área de texto longa? Com textarea.
  9. O que submit faz? Submete o formulário.
  10. Como criar lista de seleção? Com select e option.
  11. Para que serve fieldset? Agrupar campos relacionados.
  12. O que required faz? Impede envio com campo vazio.
  13. Radio do mesmo grupo precisa do quê? Mesmo name.
  14. Placeholder substitui label? Não.
  15. Input sem name envia valor? Não corretamente.
GitHub

Registre seu formulário profissional

git status
git add .
git commit -m "aula-23: cria formulario profissional de cadastro html"
git push
  • git status: verifica o novo arquivo e mudanças.
  • git add .: prepara o formulário para o commit.
  • git commit: registra o domínio de formulários.
  • git push: publica sua ferramenta de coleta de dados.
Resumo Mestre

Formulário é comunicação técnica

O form é o contêiner. O label é o guia. O input é o coletor. O name é a identidade do dado. Sem semântica, o formulário é desenho; com ela, é a base da web dinâmica.

Nota final: 10/10 Supremo.

Esta aula está no nível Mestre dos Mestres porque ensina a ponte real entre usuário, navegador e servidor, preparando você para desenvolvimento full-stack.