This is an experimental technologyCheck 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.entries
Read only '- Returns an array of a given object's own enumerable property
[key, value]
pairs, in the same order as that provided by afor...in
loop (the difference being that afor-in
loop enumerates properties in the prototype chain as well). KeyboardLayoutMap.keys
Read only '- Returns a new Array Iterator object that contains the keys for each index in the array.
KeyboardLayoutMap.size
Read only '- Returns the number of elements in the
KeyboardLayoutMap
object. KeyboardLayoutMap.values
Read only '- Returns a new Array Iterator object that contains the values for each index in the
KeyboardLayoutMap
object.
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
KeyboardLayoutMap
object. KeyboardLayoutMap.has()
'- Returns a boolean indicating whether the
KeyboardLayoutMap
object 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 MapThe 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.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
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 |
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 | |
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 | |
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 | |
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 | |
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 | |
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 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.
KeyboardLayoutMap by Mozilla Contributors is licensed under CC-BY-SA 2.5.