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.


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 a for...in loop (the difference being that a for-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.


KeyboardLayoutMap.forEach() Read only
Executes a provided function once for each element of KeyboardLayoutMap.
Returns the element with the given key from the KeyboardLayoutMap object.
Returns a boolean indicating whether the KeyboardLayoutMap object has an element with the specified key.


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;
.then(keyboardLayoutMap => {
  var upKey = keyboardLayoutMap.get('KeyW');
  window.alert('Press ' + upKey + ' to move up.');


Specification Status Comment
The definition of 'KeyboardLayoutMap' in that specification.
Unknown Initial definition.

Browser compatibilityUpdate compatibility data on GitHub

Chrome Edge Firefox Internet Explorer Opera Safari
Basic support 69 No No No 55 No
entries 69 No No No 56 No
forEach 69 No No No 56 No
get 69 No No No 56 No
has 69 No No No 56 No
keys 69 No No No 56 No
size 69 No No No 56 No
values 69 No No No 56 No
Android webview Chrome for Android Edge Mobile Firefox for Android Opera for Android iOS Safari Samsung Internet
Basic support No No No No No No No
entries No No No No 56 No No
forEach No No No No 56 No No
get No No No No 56 No No
has No No No No 56 No No
keys No No No No 56 No No
size No No No No No No No
values No No No No 56 No No

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.