🎯 Назначение
Обеспечивает навигацию и действия в веб-приложении Gratheon с клавиатуры, чтобы пчеловоды могли перемещаться по пасекам, ульям, рамкам, устройствам, складским страницам, диалогам и инструментам рисования без постоянной работы только мышью или сенсорным экраном.
Поддержка клавиатуры также является функцией доступности: она сохраняет типовые сценарии для людей, использующих клавиатуру, переключатели, скринридеры и другие вспомогательные технологии.
🎭 Пользовательская история
- Как пчеловод, работающий с ноутбука, клавиатуры планшета или вспомогательных технологий,
- я хочу, чтобы основные экраны реагировали на понятные сочетания клавиш,
- чтобы быстрее просматривать данные колоний, переключаться между записями, редактировать аннотации на рамках и подтверждать рутинные действия с меньшим числом кликов.
🚀 Ключевые преимущества
- Обнаружение сочетаний:
Shift + ?открывает в AI Advisor список горячих клавиш для текущего экрана и включает видимые подсказки. - Глобальная навигация: цифровые клавиши переключают основные разделы,
Ctrl + Mсворачивает или разворачивает левое меню. - Быстрый просмотр ульев: стрелки перемещают по спискам пасек, карточкам ульев, корпусам и рамкам без возврата в меню.
- Доступные элементы управления: строки, кнопки, сортируемые заголовки и диалоги поддерживают работу с клавиатуры и скринридера.
- Безопасные удаления: Delete и Backspace открывают подтверждение вместо немедленного удаления записей.
- Единообразные диалоги: Enter подтверждает поддерживаемые диалоги, Escape закрывает отменяемые окна, popover и панель AI Advisor.
- Учёт ввода текста: глобальные сочетания игнорируются, пока фокус в полях ввода, textarea, select или редактируемых элементах.
⌨️ Реализованные сочетания
Глобальные
| Область | Сочетание | Поведение |
|---|---|---|
| Любой контекст без ввода текста | Shift + ? |
Открывает в AI Advisor список горячих клавиш для текущей страницы, если функция не заблокирована. Также включает видимые подсказки на элементах. |
| Любой контекст без ввода текста | Ctrl + M |
Переключает левое навигационное меню. |
| Любой контекст без ввода текста | 1 |
Открывает Apiaries. |
| Любой контекст без ввода текста | 2 |
Открывает Queens или Queen Detection на free tier. |
| Любой контекст без ввода текста | 3 |
Открывает Insights, если доступно. |
| Любой контекст без ввода текста | 4 |
Открывает Warehouse, если доступно. |
| Любой контекст без ввода текста | 5 |
Открывает Devices, если доступно. |
| Любой контекст без ввода текста | 6 |
Открывает настройку Alert, если доступно. |
| Любой контекст без ввода текста | 7 |
Открывает Account. |
| Любой контекст без ввода текста | 8 |
Открывает AI Advisor, если доступно. |
| Любой контекст без ввода текста | 9 |
Открывает Billing. |
| Любой контекст без ввода текста | 0 |
Открывает Account tokens. |
| Панель AI Advisor | Esc |
Закрывает панель. |
| Подсказки сочетаний | Esc или потеря фокуса окна |
Скрывает видимые подсказки. |
Пасеки и список ульев
| Область | Сочетание | Поведение |
|---|---|---|
| Табличный список пасек | Arrow Up / Arrow Down | Выбирает предыдущий или следующий улей; на границах списка переходит к соседним пасекам. |
| Карточный список пасек | Arrow Up / Arrow Down / Arrow Left / Arrow Right | Перемещается между карточками ульев, сохраняя ближайшую колонку при переходе между рядами. |
| Список пасек | Первое нажатие стрелки | Фокусирует текущий выбранный улей или первый доступный, если ничего не выбрано. |
| Сортируемые заголовки таблицы | Enter или Space | Переключает сортировку по выбранной колонке. |
| Обзор пасеки | H |
Возвращает к основному списку пасек/ульев. |
Детали улья и структура
| Область | Сочетание | Поведение |
|---|---|---|
| Детали улья | H |
Возвращает к основному списку пасек/ульев. |
| Детали улья | A |
Возвращает на страницу пасеки текущего улья, если пасека доступна. |
| Детали улья | E |
Открывает редактирование основной информации улья, если улей редактируемый и не свёрнут. |
| Вкладка структуры улья | Arrow Up / Arrow Down | Перемещается между корпусами текущего улья. |
| Вкладка структуры улья | Arrow Left / Arrow Right | Перемещается между рамками выбранного корпуса, сохраняя текущую сторону рамки, если возможно. |
| Вкладка структуры улья | Backspace | Открывает подтверждение удаления выбранного корпуса. |
| Вкладка структуры улья | Delete / Del | Открывает подтверждение удаления выбранной рамки. |
Инструменты рисования на стороне рамки
| Область | Сочетание | Поведение |
|---|---|---|
| Холст стороны рамки | C |
Переключает на кисть ячеек. |
| Холст стороны рамки | F |
Переключает на свободное рисование. |
| Холст стороны рамки | X |
Переключает на ластик ячеек. |
| Холст стороны рамки | N |
Выбирает ячейки с нектаром. |
| Холст стороны рамки | Y |
Выбирает ячейки с мёдом. |
| Холст стороны рамки | P |
Выбирает ячейки с пыльцой. |
| Холст стороны рамки | G |
Выбирает яйца. |
| Холст стороны рамки | B |
Выбирает расплод. |
| Холст стороны рамки | K |
Выбирает запечатанный расплод. |
| Холст стороны рамки | D |
Выбирает трутневой расплод. |
| Холст стороны рамки | U |
Выбирает пустые ячейки. |
| Холст стороны рамки | + или = |
Увеличивает размер кисти. |
| Холст стороны рамки | - |
Уменьшает размер кисти. |
| Холст стороны рамки | Ctrl + Z / ⌘ + Z |
Отменяет последний штрих. |
Склад и устройства
| Область | Сочетание | Поведение |
|---|---|---|
| Страница Devices | Arrow Up / Arrow Down | Выбирает предыдущее или следующее устройство. |
| Страница Devices | Delete / Del | Открывает подтверждение удаления выбранного устройства. |
| Склад hive systems | Arrow Up / Arrow Down | Выбирает предыдущую или следующую hive system. |
| Склад hive systems | Enter | Открывает выбранную hive system. |
| Склад hive systems | Delete / Del | Открывает архивирование/деактивацию выбранной нестандартной hive system. |
| Диалог удаления матки на складе | Enter | Подтверждает удаление выбранной матки. |
Диалоги и popover
| Область | Сочетание | Поведение |
|---|---|---|
| Диалоги подтверждения | Enter | Подтверждает поддерживаемые действия удаления/архивирования/удаления элемента. |
| Диалоги подтверждения и модальные окна | Escape | Отменяет поддерживаемые диалоги. |
| Универсальное модальное подтверждение | Tab | Удерживает фокус между кнопками подтверждения и отмены. |
| Всплывающие меню | Escape | Закрывает открытое меню. |
🔧 Технический обзор
Поддержка клавиатуры реализована через контекстные обработчики keydown в веб-приложении. Глобальные сочетания меню живут в общем компоненте меню, а сочетания списков, деталей, склада, устройств, диалогов и рисования обрабатываются соответствующими экранами и компонентами.
Обработчики намеренно игнорируют поля ввода (input, textarea, select и редактируемый контент), а многие сочетания на уровне представления также игнорируют комбинации с модификаторами или открывают модальные цели. Компоненты затем обновляют состояние выбора, фокусируют ссылку или строку, прокручивают выбранный элемент в видимую область, переходят к следующей сущности по текущим идентификаторам пасеки/улья/корпуса/рамки/устройства или открывают диалог подтверждения.
Видимые подсказки рендерит общий компонент KeyboardHints. Подсказки можно показать глобально после Shift + ?, а кнопки панели рисования также показывают локальные подсказки для кисти и типов ячеек.
✅ Текущее покрытие
Реализовано:
- глобальное обнаружение сочетаний и навигация по разделам;
- Tab-навигация по кнопкам, ссылкам, полям форм, фокусируемым строкам, сортируемым заголовкам и диалогам;
- навигация по списку пасек и карточкам ульев;
- навигация в деталях улья, сочетание редактирования, навигация по структуре и безопасное удаление;
- сочетания рисования и аннотации ячеек на стороне рамки;
- клавиатурные сценарии на страницах устройств и склада hive systems;
- поведение Escape/Enter для подтверждений, модальных окон, popover и панели AI Advisor там, где реализовано.
🚫 Текущие ограничения
Shift + ?открывает панель/вид горячих клавиш в AI Advisor, а не отдельное модальное окно.- Сочетания нельзя настроить пользователю.
- Полноценной command palette пока нет.
- Горячие клавиши не гарантированы для каждой страницы приложения.
- На странице warehouse queens сочетания описаны в AI Advisor, но на уровне списка стрелки/Delete пока не реализованы; в основном работает Enter в диалоге удаления.
- Полное автоматизированное покрытие доступности с клавиатуры для всего приложения здесь пока не задокументировано как завершённое.
🔗 Связанные функции
💬 Заметки
Горячие клавиши реализованы консервативно: они не срабатывают в полях ввода, в большинстве навигационных сценариев не используют неожиданные модификаторы и направляют разрушительные операции через диалоги подтверждения, чтобы снизить риск случайной потери данных.
Последнее обновление: 24 июня 2026