That only applies if you're supporting the now dead IE6 web browser which fails to understand implicit label association.
Explicit label association:
<label for="firstname">First name:</label> <input type="text" id="firstname" name="firstname">
<label for="lastname">Last name:</label> <input type="text" id="lastname" name="lastname">
Implicit label association:
<label>First name: <input type="text" name="firstname"></label>
<label>Last name: <input type="text" name="lastname"></label>
Some reasons why I prefer to use implicit association are:
- IE6 is dead. Let it lie
- It results in simpler HTML code that is easier to read
- The "side-effect" of explicit association is lots more ID attributes scattered throughout your forms
Also, the potential loss of not using explicit association is that people using the IE6 web browser won't be able to click on the text to select a form element, they will have to click on the form element instead, which I am okay with given the better maintainability that is found from using implicit association instead.