This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The KeyboardLayoutMap interface of the the Keyboard API is a map-like object with functions for retrieving the string associated with specific physical keys. A list of valid keys is found in the UI Events KeyboardEvent code Values specification.
Properties
KeyboardLayoutMap.entriesRead only- Returns an array of a given object's own enumerable property
[key, value]pairs, in the same order as that provided by afor...inloop (the difference being that afor-inloop enumerates properties in the prototype chain as well). KeyboardLayoutMap.keysRead only- Returns a new Array Iterator object that contains the keys for each index in the array.
KeyboardLayoutMap.sizeRead only- Returns the number of elements in the
KeyboardLayoutMapobject. KeyboardLayoutMap.valuesRead only- Returns a new Array Iterator object that contains the values for each index in the
KeyboardLayoutMapobject.
Methods
KeyboardLayoutMap.forEach()Read only- Executes a provided function once for each element of
KeyboardLayoutMap. KeyboardLayoutMap.get()- Returns the element with the given key from the
KeyboardLayoutMapobject. KeyboardLayoutMap.has()- Returns a boolean indicating whether the
KeyboardLayoutMapobject has an element with the specified key.
Examples
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.
var keyboard = navigator.keyboard;
keyboard.getLayoutMap()
.then(keyboardLayoutMap => {
var upKey = keyboardLayoutMap.get('KeyW');
window.alert('Press ' + upKey + ' to move up.');
})
Specifications
| Specification | Status | Comment |
|---|---|---|
| Keyboard Map The definition of 'KeyboardLayoutMap' in that specification. |
Editor's Draft | Initial definition. |
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.
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
KeyboardLayoutMap | Chrome Full support 69 | 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 Full support 48 | Safari iOS No support No | Samsung Internet Android No support No |
entries | 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 Full support 48 | Safari iOS No support No | Samsung Internet Android No support No |
forEach | 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 Full support 48 | Safari iOS No support No | Samsung Internet Android No support No |
get | 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 Full support 48 | Safari iOS No support No | Samsung Internet Android No support No |
has | 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 Full support 48 | Safari iOS No support No | Samsung Internet Android No support No |
keys | 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 Full support 48 | Safari iOS No support No | Samsung Internet Android No support No |
size | 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 |
values | 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 Full support 48 | 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.
