Антипаттерн якоря без href
Почему ненастоящая ссылка мешает пользователям клавиатуры и программ чтения с экрана
«Антипаттерн якоря без href» — бесплатный урок Web Accessibility Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Web Accessibility Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Web Accessibility Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
The Fake Link
A common anti-pattern is an anchor with no href, wired up with a click handler to act like a button. It looks fine but breaks things.
<a onclick="openMenu()">Menu</a>No href, No Link
An anchor only counts as a real link when it has an href. Without one, the browser does not treat it as interactive at all.
It Falls Out of Tab Order
An href-less anchor is not focusable, so keyboard users tabbing through the page skip right past it and can never reach it.
The Keyboard Cannot Fire It
Even if you force focus onto it, a fake link ignores Enter and Space by default, so keyboard users still cannot activate it.
Screen Readers Get Confused
Without an href, a screen reader may not announce the anchor as a link at all, so users never learn it is something they can use.
The href Pound Hack
Some patch it with an href of just a hash. That makes it focusable but it also jumps the page to the top, which is jarring.
<a href="#" onclick="openMenu()">Menu</a>The Real Fix
If the control performs an action, use a real button. You get focus, keyboard support, and the correct role for free.
<button type="button" onclick="openMenu()">Menu</button>When It Should Be a Link
If the control truly navigates, keep the anchor but give it a real href pointing to the destination.
<a href="/menu">Menu</a>Why People Do This
Developers often pick an anchor for its underline styling. But you can style a button instead, without sacrificing accessibility.
Cursor Lies Too
An href-less anchor even loses its pointer cursor by default, hinting to sighted users that nothing is really clickable here.
The Takeaway
Do not fake interactivity. Choose a real button for actions or an anchor with an href for navigation, and skip the workarounds.
Quick Check
Why is an anchor with no href but a click handler a problem?
Recap
An href-less anchor is a fake link: unfocusable and keyboard-dead. Use a button for actions, a real href for navigation. ✅
Часто задаваемые вопросы
Урок «Антипаттерн якоря без href» бесплатный?
Да — полный текст урока «Антипаттерн якоря без href» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Web Accessibility Academy, подпишись на CoddyKit PRO. Курс Web Accessibility Academy содержит 4 уроков всего.
Чему я научусь в уроке «Антипаттерн якоря без href»?
Почему ненастоящая ссылка мешает пользователям клавиатуры и программ чтения с экрана Ты практикуешь Web Accessibility Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Web Accessibility Academy?
Предыдущий опыт не требуется. Web Accessibility Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Антипаттерн якоря без href»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Web Accessibility Academy?
Да. Каждый урок Web Accessibility Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Ссылки ведут в места, кнопки выполняют действия
- Понятный текст ссылки вне контекста
- Кнопки, сообщающие о своём действии
- Антипаттерн якоря без href