Keyboard
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental:This is anexperimental technology
Check theBrowser compatibility table carefully before using this in production.
Secure context: This feature is available only insecure contexts (HTTPS), in some or allsupporting browsers.
TheKeyboard interface of theKeyboard API provides functions that retrieve keyboard layout maps and toggle capturing of key presses from the physical keyboard.
A list of valid code values is found in theUI Events KeyboardEvent code Values spec.
In this article
Instance properties
Also inherits properties from its parent interface,EventTarget.
Instance methods
Also inherits methods from its parent interface,EventTarget.
Keyboard.getLayoutMap()ExperimentalReturns a
Promisethat resolves with an instance ofKeyboardLayoutMapwhich is a map-like object with functions for retrieving the strings associated with specific physical keys.Keyboard.lock()ExperimentalReturns a
Promisethat resolves after enabling the capture of key presses for any or all of the keys on the physical keyboard.Keyboard.unlock()ExperimentalUnlocks all keys captured by the
lock()method and returns synchronously.
Example
>Keyboard mapping
The following example demonstrates how to get the location- or layout-specific string associated with the key that corresponds to the 'W' key on an English QWERTY keyboard.
if (navigator.keyboard) { const keyboard = navigator.keyboard; keyboard.getLayoutMap().then((keyboardLayoutMap) => { const upKey = keyboardLayoutMap.get("KeyW"); window.alert(`Press ${upKey} to move up.`); });} else { // Do something else.}Keyboard locking
The following example captures theW,A,S, andD keys, calllock() with a list that contains the key code attribute value for each of these keys:
navigator.keyboard.lock(["KeyW", "KeyA", "KeyS", "KeyD"]);This captures these keys regardless of which modifiers are used with the key press. Assuming a standard United States QWERTY layout, registeringKeyW ensures thatW,Shift+W,Control+W,Control+Shift+W, and all other key modifier combinations withW are sent to the app. The same applies to forKeyA,KeyS, andKeyD.
Specifications
| Specification |
|---|
| Keyboard Map> # keyboard-interface> |
| Keyboard Lock> # keyboard-interface> |