Элемент <a>nchor - это просто привязка к некоторому контенту или от него. Первоначально спецификация HTML допускала именованные anchors ( <a name="foo">) и связанные anchors ( <a href="#foo">).
Именованный формат привязки используется реже, поскольку идентификатор фрагмента теперь используется для указания [id]атрибута (хотя для обратной совместимости вы все равно можете указывать [name]атрибуты). Элемент без атрибута остается в силе .<a>[href]
Что касается семантики и стиля, <a>элемент не является ссылкой ( :link), если у него нет [href]атрибута. Побочным эффектом этого является то, что <a>элемент без [href]не будет в порядке табуляции по умолчанию.
Реальный вопрос заключается в том, является ли <a>один элемент подходящим представлением a <button>. На семантическом уровне существует четкое различие между a linkи a button.
Кнопка - это то, что при нажатии вызывает действие.
Ссылка - это кнопка, которая вызывает изменение навигации в текущем документе. Происходящая навигация может перемещаться внутри документа в случае идентификаторов фрагментов ( #foo) или перемещаться в новый документ в случае URL-адресов ( /bar).
Поскольку ссылки представляют собой кнопки специального типа, их действия часто переопределяются для выполнения альтернативных функций. Продолжать использовать привязку в качестве кнопки - это нормально с точки зрения согласованности, хотя семантически это не совсем точно.
Если вас беспокоит семантика и доступность использования <a>элемента (или <span>, или <div>) в качестве кнопки, вам следует добавить следующие атрибуты:
<a role="button" tabindex="0" ...>...</a>
Кнопка роль сообщает пользователю о том , что конкретный элемент в настоящее время рассматривается как кнопки , как переопределение по какой - либо семантики , возможно, имели лежащий в основе элемента.
Для <span>и <div>элементов, вы можете добавить ключевые JavaScript слушателей для Spaceили Enterдля запуска clickсобытия. <a href>и <button>элементы делают это по умолчанию, а не-кнопочные элементы - нет. Иногда имеет смысл привязать clickтриггер к другой клавише. Например, кнопка «Справка» в веб-приложении может быть связана с F1.