Что помимо input и label нужно использовать для формы

Ответ

Обязательно добавляй <form> для семантики и обработки событий submit. Используй <button type="submit"> для отправки. Для валидации и доступности:

<form>
  <div>
    <label for="email">Email</label>
    <input type="email" id="email" required>
    <span class="error" aria-live="polite"></span>
  </div>

  <fieldset>
    <legend>Выберите вариант</legend>
    <input type="radio" id="opt1" name="options">
    <label for="opt1">Вариант 1</label>
  </fieldset>

  <button type="submit">Отправить</button>
</form>

Ключевые элементы:

  • fieldset и legend для группировки
  • required для обязательных полей
  • Валидационные сообщения
  • aria-* атрибуты для доступности
  • CSRF-токен для безопасности (если нужно)