Der Scheduler und seine Elemente können mit einzelnen Tasten oder Tastenkombinationen gesteuert werden. Dieser Artikel enthält alles, was Sie über die Tastaturnavigation im Scheduler wissen müssen, einschließlich des Fokusverhaltens, der integrierten Shortcuts und wie Sie eigene erstellen.
Um die Tastaturnavigation im Scheduler zu aktivieren, schalten Sie einfach die key_nav-Erweiterung auf Ihrer Seite ein.
scheduler.plugins({
key_nav: true
});
Durch Drücken der Tab-Taste wird der Fokus auf den Scheduler gesetzt, wie bei jedem anderen Element auch. Sobald der Scheduler fokussiert ist, können Sie innerhalb des Schedulers mit den Pfeiltasten und anderen Tastenkombinationen navigieren.
Durch erneutes Drücken von Tab wird der Fokus vom Scheduler auf ein anderes Element der Seite verschoben.
Wenn ein modales Fenster (wie ein Lightbox- oder Bestätigungsfenster) geöffnet wird, wechselt der Fokus vom Scheduler zu diesem Fenster, sodass Sie darin wie in einem normalen Formular navigieren können. Beim Schließen des Fensters kehrt der Fokus zum Scheduler zurück.
Um den Fokus programmatisch auf den Scheduler zurückzusetzen, verwenden Sie die Methode focus:
scheduler.focus();
Wenn der Scheduler den Fokus zurückerhält, wird dieser auf das aktive Element im Scheduler, die erste Zeile oder das zuletzt ausgewählte Element gesetzt.
Standard-Navigationsaktionen innerhalb eines modalen Fensters sind:
Wenn der Fokus auf einem Formular-Button liegt, löst das Drücken von Space oder Enter die Aktion dieses Buttons aus, anstatt das Standardverhalten.
Fokussierte Zellen werden standardmäßig mit einem grau/gelben Hintergrund hervorgehoben. Um diesen Stil anzupassen, ändern Sie die CSS-Klasse .dhx_focus_slot:
<style>
.dhx_focus_slot{
background-color: #fff;
}
</style>
Tastaturaktionen hängen vom Kontext ab, das heißt, verschiedene Shortcuts können verschiedenen Elementen (Scopes) im Scheduler zugewiesen werden. Die verfügbaren Scopes sind:
Wenn derselbe Shortcut mehreren Scopes zugewiesen ist, hat der Shortcut des spezifischeren Elements Vorrang. Zum Beispiel überschreibt ein Shortcut auf einem Ereignis denselben Shortcut, der dem gesamten Scheduler zugewiesen ist.
Um einen neuen Tastatur-Shortcut hinzuzufügen, verwenden Sie die Methode addShortcut mit drei Parametern:
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");
Um einen Shortcut aus einem Scope zu entfernen, verwenden Sie die Methode removeShortcut mit zwei Parametern:
scheduler.removeShortcut("shift+w","event");
Sie können die Handler-Funktion eines Shortcuts mit getShortcutHandler abrufen. Diese Methode benötigt:
var shortcut_handler = scheduler.getShortcutHandler("shift+w","event");
Diese Methode gibt die Funktion zurück, die den Shortcut verarbeitet.
Tastatur-Shortcuts können bestehen aus:
Mehrere Tastenkombinationen können dieselbe Aktion auslösen, indem sie durch Kommas getrennt angegeben werden, wie z.B. "ctrl+a, ctrl+space".
Der Scheduler verfügt über eine Reihe vordefinierter Shortcuts für die Navigation:
Related sample: Keyboard Navigation and WAI-ARIA - Flat Skin
Related sample: Keyboard navigation in the scheduler