Испытание: форма регистрации [11/18]


#1

Доброго времени суток, друзья!

В процессе прохождения испытания у меня возник ряд вопросов. Само испытание я завершил с результатом 100% (код ниже), так что вопросы носят скорее самообразовательных характер - это просто попытка разобраться в том, как следует писать код “чище”.

   <form action="https://echo.htmlacademy.ru" method="post">
  <label>
    Ваш логин (email):<br>
    <input type="text" name="email" id="email-field"></label>
  <label>
  <br>
  <label>
    Пароль:<br>
    <input type="password" name="password" id="password-field">
  </label>
  <br>
  <label>
    Информация о себе:<br>
    <textarea rows="3" name="information" id="information-field">
    </textarea>
  </label>
  <br>
  <input type="checkbox" checked name="subscribe" id="subscribe-field">
  <label for="subscribe-field">
    Подписаться на рассылку
  </label>
  <br>
  <label>
    <input type="submit" name="button" id="button-field" value="Зарегистрироваться">
  </label>
</form>
  1. Испытание я прошёл на 100%, тем ни менее вопрос по моему коду: насколько он корректен? В процессе прохождения курса было обозначена необходимость “логически связывать” текст с той формой, к которой он принадлежит - поэтому везде я заключаю <input> в <label> - верно ли это?

  2. В связи с предыдущим убеждением осевшим в моей голове, изначально ряд строчек по чек-боксу я написал следующим образом:

       <input type="checkbox" checked name="subscribe" id="subscribe-field">
       <label for="subscribe-field">
         Подписаться на рассылку
       </label>
    

Тем ни менее мне зачлось лишь порядка 98% результата, пока я привёл код в тот вид, что приложил вначале. Вопрос: почему так сработал “тест”?

  1. Исходя из предыдущего вопроса: насколько тождественны оба варианта? Как писать корректнее, при прочих равных? Исходя из самого урока, лично я понял так: связь текста и поля формы через “for” осуществляется, если это к примеру таблица и поле невозможно обрамить <label>'ом. Верно ли это моё суждение?

Буду очень рад развёрнутому ответу - мне интересно разобраться, чтобы не писать в будущем убогий код.