Почему нельзя использовать div элемент вместо button в HTML

Ответ

Использование div вместо button нарушает семантику HTML и создаёт проблемы с доступностью. Кнопки (button) имеют встроенные ARIA-роли и состояния, поддерживают фокус и клавиатурные события (Enter/Space) без дополнительного кода.

Пример проблем:

<!-- Плохо: -->
<div onclick="submitForm()">Отправить</div>

<!-- Хорошо: -->
<button type="button" onclick="submitForm()">Отправить</button>

Различия:

  1. Доступность: скринридеры распознают button как интерактивный элемент
  2. Фокус: кнопки автоматически включаются в tab-порядок
  3. Поведение: кнопки корректно обрабатывают состояния disabled
  4. Семантика: поисковики лучше понимают назначение элемента

Для стилизации лучше модифицировать button, а не заменять его div.