Частенько элементы управления верстаются с помощью
HTML тэга
a
.
Это дает несколько преимуществ:
- если JavaScript отключен, то сработает переход по ссылке, если она задана
- Работает навигация по контролам с помощью клавиши Tab
- Работает событие
click
по нажатию на Enter, когда ссылка в фокусе
Минусы:
- Постоянно добавлять
preventDefault
- При наведении на такую ссылку браузер внизу показывает адрес, даже если он не указан
Вот накидал небольшой тест:
jsfiddle.net/VovanR/omt6am8z
Чтобы решить вопрос навигации и показа адреса ссылки, можно заменить тэг на
span
с атрибутом
tabindex="0"
. Но событие
click
по нажатию на
Enter так и не заработает. Пойдем дальше и заменим тэг на
button
. Теперь все почти идеально. За исключением того, что этот тэг сложнее всего стилизовать, особенно если используются глобальные стили.
Какие есть лучшие практики?