Ответ
Использование div
вместо button
нарушает семантику HTML и создаёт проблемы с доступностью. Кнопки (button
) имеют встроенные ARIA-роли и состояния, поддерживают фокус и клавиатурные события (Enter/Space) без дополнительного кода.
Пример проблем:
<!-- Плохо: -->
<div onclick="submitForm()">Отправить</div>
<!-- Хорошо: -->
<button type="button" onclick="submitForm()">Отправить</button>
Различия:
- Доступность: скринридеры распознают
button
как интерактивный элемент - Фокус: кнопки автоматически включаются в tab-порядок
- Поведение: кнопки корректно обрабатывают состояния disabled
- Семантика: поисковики лучше понимают назначение элемента
Для стилизации лучше модифицировать button
, а не заменять его div
.