Атрибут accesskey тега <input>
Описание
Атрибут accesskey позволяет задать клавишу быстрого доступа к элементу <input>. При нажатии комбинации клавиш (обычно Alt + ключ в Windows, Ctrl + ключ в Mac) фокус переходит к соответствующему полю ввода.
<!-- Поле с клавишей доступа -->
<label for="search">Поиск (Alt+S):</label>
<input type="text" id="search" name="search" accesskey="s">
<!-- Кнопка с клавишей доступа -->
<input type="submit" value="Отправить" accesskey="o">
Особенности работы:
| Платформа | Комбинация клавиш | Пример |
|---|---|---|
| Windows | Alt + accesskey | Alt+S для focus на поле |
| Mac | Ctrl + Option + accesskey | Ctrl+Option+S |
| Linux | Alt + accesskey | Alt+S |
Рекомендации по выбору клавиш:
<form action="/login">
<label for="username">Логин (Alt+U):</label>
<input type="text" id="username" name="username" accesskey="u">
<label for="password">Пароль (Alt+P):</label>
<input type="password" id="password" name="password" accesskey="p">
<input type="submit" value="Войти" accesskey="l"> <!-- l от login -->
</form>
Советы по использованию:
- Используйте первую букву английского названия функции (S - Search)
- Избегайте конфликтов с системными комбинациями браузера
- Указывайте подсказку о горячей клавише в тексте label
- Не злоупотребляйте - достаточно 3-5 основных клавиш на странице
- Для цифровых клавиш используйте цифры:
accesskey="1"
Пример с визуальным обозначением:
<style>
.access-key {
text-decoration: underline;
}
</style>
<label for="email"><span class="access-key">E</span>mail:</label>
<input type="email" id="email" name="email" accesskey="e">
Ограничения:
- Разные браузеры и ОС используют разные комбинации клавиш
- Может конфликтовать с сочетаниями клавиш браузера
- Плохая поддержка на мобильных устройствах
- Неочевидно для пользователей без подсказок
Альтернативный подход с JavaScript:
<script>
document.addEventListener('keydown', function(e) {
if(e.altKey && e.key === 's') {
e.preventDefault();
document.getElementById('search').focus();
}
});
</script>
<label for="search">Поиск (Alt+S):</label>
<input type="text" id="search" name="search">
Примечание: Хотя атрибут accesskey может улучшить доступность для пользователей клавиатуры, в современных веб-приложениях чаще используют кастомные JavaScript-решения для обработки горячих клавиш, обеспечивая более предсказуемое поведение.