Organizando formulários: fieldset, legend e label
Aprenda a agrupar campos relacionados visualmente, adicionar títulos aos grupos e conectar rótulos aos campos corretamente.
Até agora, você aprendeu a criar diversos tipos de campos e botões.
Mas um formulário não é apenas uma coleção de campos soltos.
Para ser eficiente, acessível e fácil de usar, ele precisa ser
organizado. As tags <fieldset>, <legend> e <label>
são essenciais para dar estrutura e significado aos seus formulários.
A tag <label>: o rótulo do campo
Você já viu a tag <label> em lições anteriores, e ela é tão
importante que merece ser revisitada. A tag <label> representa
o rótulo (ou descrição) de um item em uma interface de usuário.
Por que <label> é fundamental?
- Acessibilidade: Leitores de tela leem o texto do
<label>para descrever o campo correspondente. Isso é crucial para usuários com deficiência visual. - Usabilidade: Ao clicar no texto do
<label>, o campo associado é focado (ou ativado, no caso de checkboxes/radios). Isso aumenta a área clicável e facilita a interação, especialmente em dispositivos móveis.
Como conectar <label> a um campo:
Usando
foreid(método preferido):- O atributo
fordo<label>deve ter o mesmo valor do atributoiddo campo (<input>,<textarea>,<select>).
<label for="nome_usuario">Nome:</label> <input type="text" id="nome_usuario" name="nome">- O atributo
Aninhando o campo dentro do
<label>:- Você pode colocar o campo diretamente dentro da tag
<label>. Nesse caso, o atributofornão é estritamente necessário, mas oidno campo ainda é uma boa prática.
<label> E-mail: <input type="email" id="email_usuario" name="email"> </label>- Você pode colocar o campo diretamente dentro da tag
A tag <fieldset>: agrupando campos relacionados
A tag <fieldset> é usada para agrupar vários controles
(campos) relacionados dentro de um formulário. Ela cria uma
caixa visual ao redor dos campos agrupados, ajudando a organizar
o formulário em seções lógicas.
Por que <fieldset> é importante?
- Semântica: Sinaliza que os campos dentro dela estão relacionados tematicamente.
- Acessibilidade: Leitores de tela podem anunciar o grupo de campos, fornecendo contexto adicional ao usuário.
- Organização Visual: Ajuda a quebrar formulários longos em partes mais gerenciáveis, melhorando a usabilidade.
Exemplo:
<form>
<fieldset>
<!-- Campos relacionados a informações pessoais -->
</fieldset>
<fieldset>
<!-- Campos relacionados a informações de contato -->
</fieldset>
</form>
A tag <legend>: o título do grupo de campos
A tag <legend> fornece uma legenda (título) para o conteúdo
de um <fieldset>. Ela deve ser o primeiro elemento filho
do <fieldset>.
Por que <legend> é importante?
- Semântica: Descreve o propósito do grupo de campos.
- Acessibilidade: Leitores de tela anunciam a
<legend>quando o usuário entra no<fieldset>, informando o contexto dos campos que virão a seguir. - Organização Visual: O texto da
<legend>aparece como um título na borda do<fieldset>, tornando a interface mais clara.
Exemplo completo com <fieldset> e <legend>:
<form>
<fieldset>
<legend>Informações Pessoais</legend>
<label for="nome">Nome:</label><br>
<input type="text" id="nome" name="nome_completo" required><br><br>
<label for="sobrenome">Sobrenome:</label><br>
<input type="text" id="sobrenome" name="sobrenome_completo" required><br><br>
<label for="nascimento">Data de Nascimento:</label><br>
<input type="date" id="nascimento" name="data_nascimento">
</fieldset>
<br>
<fieldset>
<legend>Informações de Contato</legend>
<label for="email">E-mail:</label><br>
<input type="email" id="email" name="email_contato" required><br><br>
<label for="telefone">Telefone:</label><br>
<input type="tel" id="telefone" name="telefone_contato">
</fieldset>
<br>
<button type="submit">Enviar Cadastro</button>
</form>
Resumindo
<label>:- Fornece um rótulo descritivo para um campo de formulário.
- Essencial para acessibilidade e usabilidade.
- Conecte-o ao campo usando
for(no<label>) eid(no campo), ou aninhando o campo.
<fieldset>:- Agrupa campos de formulário relacionados tematicamente.
- Cria uma caixa visual ao redor do grupo.
- Melhora a semântica, acessibilidade e organização visual.
<legend>:- Fornece um título para o grupo de campos dentro de um
<fieldset>. - Deve ser o primeiro filho do
<fieldset>. - Aparece como um título na borda do
<fieldset>.
- Fornece um título para o grupo de campos dentro de um
Usar essas tags corretamente transforma um formulário simples em uma interface de usuário clara, organizada e acessível para todos.