This is an experimental technologyCheck the Browser compatibility table carefully before using this in production.
The Keyboard
interface of the the Keyboard 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 the UI Events KeyboardEvent code Values spec.
Properties
None.
Methods
Keyboard.getLayoutMap()
'- Returns a
Promise
that resolves with an instance ofKeyboardLayoutMap
which is a map-like object with functions for retrieving the strings associated with specific physical keys. Keyboard.lock()
'- Returns a
Promise
after enabling the capture of keypresses for any or all of the keys on the physical keyboard. Keyboard.unlock()
'- Unlocks all keys captured by the
lock()
method and returns synchronously.
Example
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) {
var keyboard = navigator.keyboard;
keyboard.getLayoutMap()
.then(keyboardLayoutMap => {
var upKey = keyboardLayoutMap.get('KeyW');
window.alert('Press ' + upKey + ' to move up.');
});
} else {
// Do something else.
}
Specifications
Specification | Status | Comment |
Keyboard MapThe definition of 'Keyboard' in that specification. | Editor's Draft | Initial definition. |
Keyboard LockThe definition of 'Keyboard' in that specification. | Editor's Draft | Adds lock() and unlock() .
|
Browser compatibility
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Chrome
Full support 68 |
Edge
Full support 79 |
Firefox
No support No |
IE
No support No |
Opera
Full support 55 |
Safari
No support No |
WebView Android
No support No |
Chrome Android
No support No |
Firefox Android
No support No |
Opera Android
No support No |
Safari iOS
No support No |
Samsung Internet Android
No support No |
Chrome
Full support 69 |
Edge
Full support 79 |
Firefox
No support No |
IE
No support No |
Opera
Full support 56 |
Safari
No support No |
WebView Android
No support No |
Chrome Android
No support No |
Firefox Android
No support No |
Opera Android
No support No |
Safari iOS
No support No |
Samsung Internet Android
No support No | |
Chrome
Full support 68 |
Edge
Full support 79 |
Firefox
No support No |
IE
No support No |
Opera
Full support 55 |
Safari
No support No |
WebView Android
No support No |
Chrome Android
No support No |
Firefox Android
No support No |
Opera Android
No support No |
Safari iOS
No support No |
Samsung Internet Android
No support No | |
Chrome
Full support 68 |
Edge
Full support 79 |
Firefox
No support No |
IE
No support No |
Opera
Full support 55 |
Safari
No support No |
WebView Android
No support No |
Chrome Android
No support No |
Firefox Android
No support No |
Opera Android
No support No |
Safari iOS
No support No |
Samsung Internet Android
No support No |
Legend
- Full support
- Full support
- No support
- No support
- Experimental. Expect behavior to change in the future.'
- Experimental. Expect behavior to change in the future.
Keyboard by Mozilla Contributors is licensed under CC-BY-SA 2.5.