Scheduler и его элементы могут быть доступны с помощью отдельных клавиш или их комбинаций. В этой статье описано всё, что нужно знать о навигации с клавиатуры в Scheduler: как работает фокус, встроенные сочетания клавиш и как создавать собственные.
Чтобы включить навигацию с клавиатуры в Scheduler, просто активируйте расширение key_nav на вашей странице.
scheduler.plugins({
key_nav: true
});
Нажатие клавиши Tab устанавливает фокус на Scheduler, как и на любой другой элемент. После получения фокуса можно перемещаться внутри Scheduler с помощью стрелок и других сочетаний клавиш.
Повторное нажатие Tab переводит фокус с Scheduler на другой элемент страницы.
Когда открывается модальное окно (например, lightbox или окно подтверждения), фокус переключается с Scheduler на это окно, что позволяет перемещаться внутри него так же, как в обычной форме. После закрытия окна фокус возвращается к Scheduler.
Чтобы программно вернуть фокус к Scheduler, используйте метод focus:
scheduler.focus();
Когда Scheduler снова получает фокус, он устанавливает его на активный элемент внутри себя, первую строку или последний выбранный элемент.
Стандартные действия навигации внутри модального окна:
Если фокус находится на кнопке формы, нажатие Space или Enter активирует действие этой кнопки вместо стандартного поведения.
Ячейки, находящиеся в фокусе, по умолчанию подсвечиваются серым/жёлтым фоном. Чтобы изменить этот стиль, модифицируйте CSS-класс .dhx_focus_slot:
<style>
.dhx_focus_slot{
background-color: #fff;
}
</style>
Действия с клавиатурой зависят от контекста, то есть разные сочетания клавиш могут быть назначены различным элементам (областям) внутри Scheduler. Доступные области:
Если одно и то же сочетание клавиш назначено нескольким областям, приоритет будет у того, что привязано к более специфичному элементу. Например, сочетание на событии перекроет такое же сочетание для всего Scheduler.
Чтобы добавить новое сочетание клавиш, используйте метод addShortcut с тремя параметрами:
scheduler.addShortcut("shift+w", function(e){
var target = e.target;
if(target.closest("[event_id]"))
var eventId = target.getAttribute("event_id");
if(eventId)
scheduler.showQuickInfo(eventId);
},"event");
Чтобы удалить сочетание из области, используйте метод removeShortcut с двумя параметрами:
scheduler.removeShortcut("shift+w","event");
Можно получить функцию-обработчик сочетания с помощью getShortcutHandler, который принимает:
var shortcut_handler = scheduler.getShortcutHandler("shift+w","event");
Этот метод возвращает функцию, обрабатывающую сочетание клавиш.
Сочетания клавиш могут состоять из:
Несколько комбинаций клавиш могут вызывать одно действие, если перечислить их через запятую, например: "ctrl+a, ctrl+space".
Scheduler содержит набор предустановленных сочетаний для навигации:
Related sample: Keyboard Navigation and WAI-ARIA - Flat Skin
Related sample: Keyboard navigation in the scheduler