Элемент <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.