PassFront
  1. PassFront
  2. База знаний
  3. Ссылки и навигация

Когда использовать ссылку a, а когда кнопку button?

Ссылки и навигация

Ссылка ведёт куда-то (меняет адрес или переходит к якорю), кнопка выполняет действие на текущей странице.

  • Перейти на другую страницу или раздел — <a href>
  • Скачать файл — <a href download>
  • Отправить форму, открыть модалку, переключить вкладку — <button>

Почему это важно

  • Ссылку можно открыть в новой вкладке, скопировать адрес, на неё реагируют поисковики.
  • Кнопка из коробки получает фокус, срабатывает на Enter и Space и объявляется скринридером как кнопка.
  • <div onclick> ничего из этого не умеет и требует ручных role, tabindex и обработчиков клавиатуры.
<a href="/pricing">Тарифы</a>
<button type="button" aria-expanded="false" aria-controls="menu">Меню</button>

Типичная ошибка: <a href="#" onclick="..."> для действий. Если действие не навигация, берите <button type="button">.

Коротко для собеседования

Ссылка ведёт куда-то, кнопка выполняет действие на странице. Для действий используйте <button type="button">, а не <a href="#">.

Другие вопросы раздела