Gostaria de saber qual é a diferença entre os seguintes dois trechos de código:
<label>Input here : </label>
<input type='text' name='theinput' id='theinput'/>
e
<label for='theinput'>Input here : </label>
<input type='text' name='theinput' id='theinput'/>
Tenho certeza de que faz alguma coisa quando você usa uma biblioteca JavaScript especial, mas, além disso, ela valida o HTML ou é necessário por algum outro motivo?
select
item apenas coloca o foco na seleção em vez de expandir as opções.O
for
atributo associa o rótulo a um elemento de controle, conforme definido na descrição dalabel
especificação HTML 4.01. Isso implica, entre outras coisas, que quando olabel
elemento recebe o foco (por exemplo, ao ser clicado), passa o foco para o controle associado. A associação entre um rótulo e um controle também pode ser usada por agentes de usuário baseados em fala, o que pode fornecer ao usuário uma maneira de perguntar qual é o rótulo associado ao lidar com um controle. (A associação pode não ser tão óbvia quanto na renderização visual.)No primeiro exemplo da pergunta (sem o
for
), o uso dalabel
marcação não tem implicações lógicas ou funcionais - é inútil, a menos que você faça algo com isso em CSS ou JavaScript.As especificações HTML não tornam obrigatório associar rótulos a controles, mas as Diretrizes de acessibilidade de conteúdo da Web (WCAG) 2.0 o fazem. Isso está descrito no documento técnico H44: Usando elementos de rótulo para associar rótulos de texto a controles de formulário , o que também explica que a associação implícita (ao aninhar, por exemplo,
input
dentrolabel
) não é tão amplamente suportada quanto a associação explícita viafor
eid
atributos,fonte
Em poucas palavras, o que ele faz é se referir à
id
entrada, isso é tudo:fonte
O atributo for da
<label>
tag deve ser igual ao atributo id do elemento relacionado para uni-los.fonte
O atributo for mostra que esse rótulo significa campo de entrada relacionado, caixa de seleção ou botão de opção ou qualquer outro campo de entrada de dados associado a ele. por exemplo
fonte
Ele rotula qualquer entrada que seja o parâmetro para o
for
atributo.fonte