HTML5 Mestre dos Mestres • Aula Suprema 27

Desafio Final: Tabelas e Formulários

Tabelas organizam os dados existentes. Formulários coletam novos dados. Quando os dois se unem, nasce a base de painéis administrativos, CRMs, dashboards e sistemas reais.

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

De tags isoladas para sistema integrado

Saber criar uma tabela é útil. Saber criar um formulário é essencial. Mas integrar os dois em uma interface única é o que separa o estudante de HTML do desenvolvedor que entende fluxo de dados.

Promessa da aula:

Você vai construir a lógica de um painel administrativo: uma área de cadastro para entrada de dados e uma área de relatório para visualização tabular, com semântica e acessibilidade.

Arquitetura

Como organizar o painel administrativo

O projeto precisa de contexto, divisão funcional e navegação interna. Use header para apresentar o sistema, main para o conteúdo central, section para separar cadastro, relatório e resumo, e footer para fechar.

<header>
  <h1>Painel Administrativo HTML com Tabela e Formulário</h1>
  <nav>
    <a href="#cadastro">Cadastro</a>
    <a href="#relatorio">Relatório</a>
    <a href="#resumo">Resumo</a>
  </nav>
</header>

<main>
  <section id="cadastro"></section>
  <section id="relatorio"></section>
  <section id="resumo"></section>
</main>
Erro eliminatório:

Jogar formulário e tabela soltos no body. Um sistema precisa de hierarquia, contexto e blocos funcionais claros.

Entrada de dados

Como montar o formulário do sistema

O formulário é a porta por onde novos dados entram. Cada campo precisa de label, id e name. O id conecta a interface; o name identifica o dado enviado.

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

  <label for="email">E-mail</label>
  <input type="email" id="email" name="email" required>

  <label for="categoria">Categoria</label>
  <select id="categoria" name="categoria" required>
    <option value="">Selecione</option>
    <option value="aluno">Aluno</option>
    <option value="mentor">Mentor</option>
  </select>

  <button type="submit">Cadastrar Novo Registro</button>
</form>
  • text: nome ou título do registro.
  • email: contato validado pelo navegador.
  • number: quantidade, idade, nota ou valor.
  • textarea: observações longas.
  • select: categoria ou status padronizado.
  • radio: prioridade única.
  • checkbox: confirmação ou aceite.
Relatório

Como montar a tabela de relatório

A tabela exibe os dados existentes. Ela precisa de caption, thead, tbody, tfoot, th scope="col" e, quando fizer sentido, th scope="row".

<table>
  <caption>Registros cadastrados no painel administrativo</caption>
  <thead>
    <tr>
      <th scope="col">ID</th>
      <th scope="col">Nome</th>
      <th scope="col">E-mail</th>
      <th scope="col">Categoria</th>
      <th scope="col">Status</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">001</th>
      <td>Ana Silva</td>
      <td>ana@email.com</td>
      <td>Aluno</td>
      <td>Ativo</td>
    </tr>
  </tbody>
  <tfoot>
    <tr>
      <th scope="row" colspan="4">Total de registros</th>
      <td>1</td>
    </tr>
  </tfoot>
</table>
Erro grave:

Tabela sem caption e sem th. O usuário vê dados, mas tecnologias assistivas perdem o contexto.

Integração

Boas práticas para telas administrativas

  • Use section para separar cadastro, relatório e resumo.
  • Use nav interno para facilitar navegação no painel.
  • Explique o objetivo de cada bloco com parágrafos claros.
  • Conecte toda label ao respectivo campo.
  • Garanta name em todos os campos enviados.
  • Use caption para contextualizar tabelas.
  • Use th e scope para acessibilidade tabular.
  • Use botões com textos específicos.
  • Não use tabela como ferramenta de layout.
  • Evite excesso de div quando existe tag semântica melhor.
  • Inclua link para voltar ao topo.
  • Mantenha coerência entre campos coletados e colunas exibidas.
Desafio Mestre

Painel Administrativo HTML com Tabela e Formulário

Missão: criar o arquivo painel-admin-tabelas-formularios.html simulando um sistema real de entrada e visualização de dados.

Cadastro de Registro

Prioridade:

Registros simulados do painel administrativo
ID Nome E-mail Categoria Prioridade Status
001 Ana Silva ana@email.com Aluno Média Ativo
002 Bruno Costa bruno@email.com Mentor Alta Ativo
003 Carla Mendes carla@email.com Aluno Baixa Pendente
004 Diego Lima diego@email.com Admin Alta Ativo
005 Elisa Rocha elisa@email.com Aluno Média Revisão
Total de registros simulados 5

Requisitos obrigatórios

  • Arquivo painel-admin-tabelas-formularios.html.
  • Doctype HTML5 e html lang="pt-BR".
  • Head completo com charset, viewport, title e meta description.
  • Body com header, main e footer.
  • H1 com “Painel Administrativo HTML com Tabela e Formulário”.
  • Nav interno com links para Cadastro, Relatório e Resumo.
  • Formulário com pelo menos 8 campos usando input, textarea e select.
  • Labels conectadas corretamente aos campos.
  • Uso correto de id e name.
  • Campo text, email, number, textarea, select, checkbox e radio.
  • Required nos campos essenciais.
  • Botões submit, reset e button comum.
  • Tabela com caption, thead, tbody e tfoot.
  • Thead com pelo menos 5 cabeçalhos usando th scope="col".
  • Tbody com pelo menos 5 linhas simuladas.
  • Pelo menos uma linha usando th scope="row".
  • Resumo explicando como formulário e tabela se complementam.
  • Lista com pelo menos 10 boas práticas aprendidas.
Quiz com gabarito

15 perguntas para provar domínio

  1. Para que serve th scope="row"? Identificar o cabeçalho de uma linha específica.
  2. O que acontece se action="#"? O formulário simula o envio para a própria página.
  3. Qual função do tfoot? Agrupar resumo ou total da tabela.
  4. Como agrupar radios? Usando o mesmo atributo name.
  5. O que o caption faz? Fornece título acessível para a tabela.
  6. readonly envia o dado? Sim.
  7. Qual atributo mescla colunas? colspan.
  8. Qual atributo mescla linhas? rowspan.
  9. Placeholder substitui label? Não.
  10. Para que serve method="post"? Enviar dados no corpo da requisição.
  11. O que o thead organiza? O cabeçalho da tabela.
  12. O que é o atributo for no label? O elo com o id do campo.
  13. Diferença entre th e td? th é cabeçalho; td é dado comum.
  14. O que o textarea permite? Inserção de múltiplas linhas de texto.
  15. Por que usar required? Para exigir preenchimento antes do envio.
GitHub

Registre seu painel administrativo

git status
git add .
git commit -m "aula-27: cria painel administrativo com tabela e formulario"
git push
  • git status: valida os arquivos alterados.
  • git add .: prepara o painel para versionamento.
  • git commit: documenta a entrega final da unidade.
  • git push: publica a evidência no GitHub.
Resumo Mestre

Tabelas exibem. Formulários coletam. Sistemas unem.

Este desafio prova que você entende o ciclo de vida da informação na web: o formulário captura novos dados, a tabela organiza registros existentes e a estrutura semântica torna tudo acessível, legível e pronto para evoluir.

Nota final: 10/10 Supremo.

Esta aula está no nível Mestre dos Mestres porque exige construção de sistema lógico integrado, não apenas repetição de tags. É uma evidência real de mercado.