Curso de HTML / Associar corretamente label e input
Um input recebe o valor de um usuário; um label indica ao usuário para que serve o campo. Uma associação explícita confiável dá ao campo um id e dá ao rótulo um valor for correspondente.
Conecte um rótulo a um campo de entrada
<form method="get">
<label for="visitor-name">Nome</label>
<input id="visitor-name" name="name" type="text">
<button type="submit">Verificar</button>
</form>
Coloque este código no body de um arquivo HTML e abra-o em um navegador. Clicar em « Nome » deve colocar o foco no campo. Apenas colocar o texto ao lado de um campo não os conecta automaticamente. Um id deve ser único no documento; IDs duplicados podem fazer com que um rótulo aponte para o campo errado.
Também pressione Tab para acessar o campo e verificar se o elemento em foco está visível. O rótulo é o nome do controle, não apenas um texto decorativo. A tecnologia assistiva deve ser capaz de identificar qual campo está em foco.
Os atributos id e name têm a mesma função?
O atributo id identifica um elemento no documento e pode vinculá-lo a um rótulo, fragmento ou script. name é a chave usada quando o formulário envia o valor. Aqui, visitor-name é o alvo do rótulo, enquanto name é a chave de submissão. Inspecione os nomes enviados e os métodos de requisição com o exercício de lista de dados em Estrutura do formulário e GET vs. POST.
Se clicar no rótulo não fizer nada, compare for com id. Se a entrada funcionar, mas a URL submetida não contiver o valor, verifique name. Você pode alterar id="visitor-name" para id="person-name" contanto que atualize o for do rótulo; name="name" pode permanecer o mesmo se o servidor ainda esperar por essa chave.
Corrigir um rótulo desconectado
<!-- Incorreto: for corresponde a name em vez de id -->
<label for="full_name">Nome</label>
<input id="person-name" name="full_name">
<!-- Correto: for corresponde ao identificador do campo -->
<label for="person-name">Nome</label>
<input id="person-name" name="full_name">
Teste os fragmentos em arquivos separados. Na versão corrigida, clicar no Nome deve colocar o foco em person-name, enquanto a chave enviada permanece full_name. Não combine os dois exemplos em um único documento: fazê-lo duplica o ID e invalida a comparação.
Um texto indicativo não substitui um rótulo
Um placeholder oferece uma dica ou exemplo curto e desaparece quando o usuário digita. Ele não pode substituir um nome de campo persistente. Mantenha um rótulo visível e adicione o exemplo separadamente. Para instruções persistentes associadas a um campo, veja Adicionar um texto indicativo aos campos do formulário.
<label for="email">Endereço de e-mail</label>
<input id="email" name="email" type="email"
placeholder="nome@example.com">
Mesmo que um design oculte visualmente um rótulo, o campo ainda deve ter um nome acessível. As caixas de seleção e os botões de opção também podem ser incorporados em um rótulo, como em <label><input type="checkbox" name="agree"> Concordo</label>. Clique no texto do rótulo para verificar se a caixa de seleção muda de estado. Escolha formulações claras antes de ajustar a aparência. Veja a referência MDN sobre rótulos para os métodos de associação.




