aboutsummaryrefslogtreecommitdiff
path: root/files/de/web/api/keyboardevent
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:41:15 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:41:15 -0500
commit4b1a9203c547c019fc5398082ae19a3f3d4c3efe (patch)
treed4a40e13ceeb9f85479605110a76e7a4d5f3b56b /files/de/web/api/keyboardevent
parent33058f2b292b3a581333bdfb21b8f671898c5060 (diff)
downloadtranslated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.tar.gz
translated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.tar.bz2
translated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.zip
initial commit
Diffstat (limited to 'files/de/web/api/keyboardevent')
-rw-r--r--files/de/web/api/keyboardevent/altkey/index.html118
-rw-r--r--files/de/web/api/keyboardevent/getmodifierstate/index.html247
-rw-r--r--files/de/web/api/keyboardevent/index.html458
-rw-r--r--files/de/web/api/keyboardevent/keycode/index.html3185
4 files changed, 4008 insertions, 0 deletions
diff --git a/files/de/web/api/keyboardevent/altkey/index.html b/files/de/web/api/keyboardevent/altkey/index.html
new file mode 100644
index 0000000000..3f16f6d710
--- /dev/null
+++ b/files/de/web/api/keyboardevent/altkey/index.html
@@ -0,0 +1,118 @@
+---
+title: KeyboardEvent.altKey
+slug: Web/API/KeyboardEvent/altKey
+translation_of: Web/API/KeyboardEvent/altKey
+---
+<p id="Summary">{{APIRef("DOM Events")}}</p>
+
+<p>Der Konstruktor <strong><code>KeyboardEvent.altKey</code></strong> hat die Eigenschaft {{jsxref("Boolean")}} und zeigt an ob <kbd>alt</kbd> Taste (<kbd>Option</kbd> oder <kbd>⌥</kbd> in OS X) gedrückt wurde (<code>true</code>) oder (<code>false</code>) nicht gerdrückt wurde, wenn das Ereignis eintritt.</p>
+
+<h2 id="Syntax">Syntax</h2>
+
+<pre class="syntaxbox">var <em>altKeyPressed</em> = <em>instanceOfKeyboardEvent</em>.altKey
+</pre>
+
+<h2 id="Examples">Examples</h2>
+
+<pre class="brush: js">&lt;html&gt;
+&lt;head&gt;
+&lt;title&gt;altKey example&lt;/title&gt;
+
+&lt;script type="text/javascript"&gt;
+
+function showChar(e){
+ alert(
+ "Key Pressed: " + String.fromCharCode(e.charCode) + "\n"
+ + "charCode: " + e.charCode + "\n"
+ + "ALT key pressed: " + e.altKey + "\n"
+ );
+}
+
+&lt;/script&gt;
+&lt;/head&gt;
+
+&lt;body onkeypress="showChar(event);"&gt;
+&lt;p&gt;
+Press any character key,
+with or without holding down the ALT key.&lt;br /&gt;
+You can also use the SHIFT key together with the ALT key.
+&lt;/p&gt;
+&lt;/body&gt;
+&lt;/html&gt;</pre>
+
+<h2 id="Specifications">Specifications</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('DOM3 Events','#widl-KeyboardEvent-altKey','KeyboardEvent.altkey')}}</td>
+ <td>{{Spec2('DOM3 Events')}}</td>
+ <td>Initial definition.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">Browser compatibility</h2>
+
+<p>{{ CompatibilityTable() }}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Edge</th>
+ <th>Firefox (Gecko)</th>
+ <th>Chrome</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Basic support</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown()}}</td>
+ <td>{{CompatVersionUnknown()}}</td>
+ <td>{{CompatVersionUnknown()}}</td>
+ <td>{{CompatVersionUnknown()}}</td>
+ <td>{{CompatVersionUnknown()}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Edge</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>Android</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Basic support</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{ CompatUnknown() }}</td>
+ <td>{{ CompatUnknown() }}</td>
+ <td>{{ CompatUnknown() }}</td>
+ <td>{{ CompatUnknown() }}</td>
+ <td>{{ CompatUnknown() }}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="See_also" name="See_also">See also</h2>
+
+<ul>
+ <li>{{ domxref("KeyboardEvent") }}</li>
+</ul>
diff --git a/files/de/web/api/keyboardevent/getmodifierstate/index.html b/files/de/web/api/keyboardevent/getmodifierstate/index.html
new file mode 100644
index 0000000000..75b1c5e36d
--- /dev/null
+++ b/files/de/web/api/keyboardevent/getmodifierstate/index.html
@@ -0,0 +1,247 @@
+---
+title: KeyboardEvent.getModifierState()
+slug: Web/API/KeyboardEvent/getModifierState
+translation_of: Web/API/KeyboardEvent/getModifierState
+---
+<p>{{APIRef("DOM Events")}}</p>
+
+<p>Die Methode <code><strong>KeyboardEvent.getModifierState()</strong></code> gibt den aktuellen Zustand des angegebenen Modifikators zurück: <code>true</code>, wenn der Modifikator aktiv ist (d.h. die Modifikationstasten gedrückt oder gesperrt ist), ansonsten <code>false</code>.</p>
+
+<h2 id="Syntax">Syntax</h2>
+
+<pre class="syntaxbox">var <code><em>active</em> = <em>event</em>.getModifierState(<em>keyArg</em>);</code></pre>
+
+<h3 id="Rückgabe">Rückgabe </h3>
+
+<p>Einen {{jsxref("Boolean")}}</p>
+
+<h3 id="Parameter">Parameter</h3>
+
+<dl>
+ <dt><em><code>keyArg</code></em></dt>
+ <dd>Ein Modifikatorschlüsselwert. Der Wert muss einer der {{domxref("KeyboardEvent.key")}} Werte sein, die Modifikatorschlüssel darstellen, oder die Zeichenkette "Accel" {{deprecated_inline}}. Dabei wird zwischen Groß- und Kleinschreibung unterschieden.</dd>
+</dl>
+
+<h2 id="Modifikationstasten_im_Internet_Explorer">Modifikationstasten im Internet Explorer</h2>
+
+<p>IE9 verwendet <code>"Scroll"</code> für <code>"ScrollLock"</code> und <code>"Win"</code> für <code>"OS"</code>.</p>
+
+<h2 id="Modifikationstasten_in_Gecko">Modifikationstasten in Gecko</h2>
+
+<table style="width: 100%;">
+ <caption>Wann gibt getModifierState() bei Gecko true zurück?</caption>
+ <thead>
+ <tr>
+ <th scope="row"> </th>
+ <th scope="col">Windows</th>
+ <th scope="col">Linux (GTK)</th>
+ <th scope="col">Mac</th>
+ <th scope="col">Android 2.3</th>
+ <th scope="col">Android 3.0 und später</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <th scope="row"><code>"Alt"</code></th>
+ <td>Entweder die <kbd>Alt</kbd> oder <kbd>AltGr</kbd> -Taste gedrückt wird</td>
+ <td><kbd>Alt</kbd> -Taste gedrückt wird</td>
+ <td><kbd>⌥ Option</kbd> -Taste gedrückt wird</td>
+ <td colspan="2" rowspan="1"><kbd>Alt</kbd>  oder  <kbd>option</kbd> -Taste gedrückt wird</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"AltGraph"</code></th>
+ <td>
+ <p>Sowohl die <kbd>Alt</kbd> als auch die <kbd>Strg</kbd>  werden gedrückt, oder die <kbd>AltGr</kbd> Taste wird gedrückt</p>
+ </td>
+ <td><kbd>Level 3 Shift</kbd> Taste (or <kbd>Level 5 Shift</kbd> Taste {{gecko_minversion_inline("20.0")}}) wird gedrückt</td>
+ <td><kbd>⌥ Option</kbd> Taste wird gedrückt</td>
+ <td colspan="2" rowspan="1" style="background-color: rgb(204, 204, 204); text-align: center;"><em>Nicht unterstützt</em></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"CapsLock"</code></th>
+ <td colspan="3" style="text-align: center;">Während die LED für <kbd>⇪ Caps Lock</kbd> leuchtet</td>
+ <td style="text-align: center; background-color: rgb(204, 204, 204);"><em>Nicht unterstützt</em></td>
+ <td>Solange <kbd>⇪ Caps Lock</kbd> gesperrt ist {{gecko_minversion_inline("29.0")}}</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Control"</code></th>
+ <td>Entweder die <kbd>Strg</kbd>  oder <kbd>AltGr</kbd> -Taste wird gedrückt</td>
+ <td><kbd>Strg</kbd> Taste wird gedrückt</td>
+ <td><kbd>control</kbd> Taste wird gedrückt</td>
+ <td><kbd>menu</kbd> Taste wird gedrückt.</td>
+ <td><kbd>Strg</kbd>, <kbd>control</kbd>  oder <kbd>menu</kbd> Taste wird gedrückt.</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Fn"</code></th>
+ <td colspan="4" style="background-color: rgb(204, 204, 204); text-align: center;"><em>Nicht unterstützt</em></td>
+ <td>Die <kbd>Function</kbd> wird gedrückt, aber wir sind nicht sicher, welche Taste den Modifikatorstatus aktiv setzt. Die <kbd>Fn</kbd>-Taste auf der Mac-Tastatur bewirkt dies nicht.<br>
+ {{gecko_minversion_inline("29.0")}}</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"FnLock"</code></th>
+ <td colspan="5" rowspan="1" style="background-color: rgb(204, 204, 204); text-align: center;"><em>Nicht unterstützt</em></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Hyper"</code></th>
+ <td colspan="5" style="background-color: rgb(204, 204, 204); text-align: center;"><em>Nicht unterstützt</em></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Meta"</code></th>
+ <td style="background-color: rgb(204, 204, 204); text-align: center;"><em>Nicht unterstützt</em></td>
+ <td style="text-align: center;"><kbd>Meta</kbd> Taste wird gedrückt {{gecko_minversion_inline("17.0")}}</td>
+ <td><kbd>⌘ Command</kbd> Taste wird gedrückt</td>
+ <td style="text-align: center; background-color: rgb(204, 204, 204);"><em>Nicht unterstützt</em></td>
+ <td><kbd>⊞ Windows Logo</kbd>  or <kbd>command</kbd> Taste gedrückt wird</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"NumLock"</code></th>
+ <td colspan="2" style="text-align: center;">Während die LED für <kbd>Num Lock</kbd> leuchtet</td>
+ <td>Eine Taste auf dem Nummerblock gedrückt wird</td>
+ <td style="text-align: center; background-color: rgb(204, 204, 204);"><em>Nicht unterstützt</em></td>
+ <td>Solange <kbd>NumLock</kbd> gesperrt ist {{gecko_minversion_inline("29.0")}}</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"OS"</code></th>
+ <td><kbd>⊞ Windows Logo</kbd> Taste wird gedrückt</td>
+ <td><kbd>Super</kbd> or <kbd>Hyper</kbd> Taste wird gedrückt (normalerweise auf der <kbd>⊞ Windows Logo</kbd> Taste zugeordnet)</td>
+ <td colspan="3" rowspan="1" style="background-color: rgb(204, 204, 204); text-align: center;"><em>Nicht unterstützt</em></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"ScrollLock"</code></th>
+ <td>Während die LED für <kbd>ScrollLock</kbd> leuchtet</td>
+ <td>Während die LED für <kbd>ScrollLock</kbd> leuchtet, aber normalerweise wird dies von der Plattform nicht unterstützt </td>
+ <td colspan="2" style="background-color: rgb(204, 204, 204); text-align: center;"><em>Nicht unterstützt</em></td>
+ <td>Solange <kbd>ScrollLock</kbd> gesperrt {{gecko_minversion_inline("29.0")}}</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Shift"</code></th>
+ <td colspan="5" rowspan="1" style="text-align: center;"><kbd>⇧ Shift</kbd> Taste wird gedrückt</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Super"</code></th>
+ <td colspan="5" style="background-color: rgb(204, 204, 204); text-align: center;"><em>Nicht unterstützt</em></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Symbol"</code></th>
+ <td colspan="5" style="background-color: rgb(204, 204, 204); text-align: center;"><em>Nicht unterstützt</em></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"SymbolLock"</code></th>
+ <td colspan="5" style="background-color: rgb(204, 204, 204); text-align: center;"><em>Nicht unterstützt</em></td>
+ </tr>
+ </tbody>
+</table>
+
+<ul>
+ <li>Auf den anderen Plattformen werden <kbd>Alt</kbd>, <kbd>Control</kbd> und <kbd>Shift</kbd> unterstützt werden.</li>
+ <li>Alle Modifikatoren (außer "FnLock", "Hyper", "Super" und "Symbol", die nach der Implementierung von Gecko definiert werden) stehen immer für nicht vertrauenswürdige Ereignisse auf Gecko zur Verfügung. Das hängt nicht von der Plattform ab.</li>
+</ul>
+
+<h2 id="Accel_virtueller_Modifikator"><code>"Accel"</code> virtueller Modifikator</h2>
+
+<div class="note"><strong>Notiz</strong><strong>:</strong> Der virtuelle Modifikator <code>"Accel"</code> ist in den aktuellen Entwürfen der DOM3 Events-Spezifikation praktisch <strong>veraltet</strong>.</div>
+
+<p><code>getModifierState()</code> also accepts a deprecated virtual modifier named <code>"Accel"</code>. <code>event.getModifierState("Accel")</code> returns <code>true</code> when at least one of {{domxref("KeyboardEvent.ctrlKey")}} or {{domxref("KeyboardEvent.metaKey")}} is <code>true</code>.</p>
+
+<p>In old implementations and outdated specifications, it returned <code>true</code> when a modifier which is the typical modifier key for the shortcut key is pressed. For example, on Windows, pressing <kbd>Ctrl</kbd> key may make it return <code>true</code>. However, on Mac, pressing <kbd>⌘ Command</kbd> key may make it return <code>true</code>. Note that which modifier key makes it return true depends on platforms, browsers, and user settings. For example, Firefox users can customize this with a pref, <code>"ui.key.accelKey"</code>.</p>
+
+<h2 id="Beispiel">Beispiel</h2>
+
+<pre class="brush: js">// Ignorieren, wenn folgender Modifikator aktiv ist.
+if (event.getModifierState("Fn") ||
+ event.getModifierState("Hyper") ||
+ event.getModifierState("OS") ||
+ event.getModifierState("Super") ||
+ event.getModifierState("Win") /* hack for IE */) {
+ return;
+}
+
+// auch ignorieren, wenn zwei oder mehr Modifikatoren außer Shift aktiv sind.
+if (event.getModifierState("Control") +
+ event.getModifierState("Alt") +
+ event.getModifierState("Meta") &gt; 1) {
+ return;
+}
+
+// Tastaturkürzel mit Standardmodifikator
+if (event.getModifierState("Accel")) {
+ switch (event.key.toLowerCase()) {
+ case "c":
+ if (event.getModifierState("Shift")) {
+ // Handle Accel + Shift + C
+ event.preventDefault(); // consume the key event
+ }
+ break;
+ case "k":
+ if (!event.getModifierState("Shift")) {
+ // Handle Accel + K
+ event.preventDefault(); // consume the key event
+ }
+ break;
+ }
+ return;
+}
+
+// Mach etwas anderes für die Pfeiltasten, wenn ScrollLock gesperrt ist.
+if ((event.getModifierState("ScrollLock") ||
+ event.getModifierState("Scroll") /* hack for IE */) &amp;&amp;
+ !event.getModifierState("Control") &amp;&amp;
+ !event.getModifierState("Alt") &amp;&amp;
+ !event.getModifierState("Meta")) {
+ switch (event.key) {
+ case "ArrowDown":
+ case "Down": // Hack für IE und älteren Gecko
+ event.preventDefault(); // Schlüsselereignis verwenden
+ break;
+ case "ArrowLeft":
+ case "Left": // Hack für IE und älteren Gecko
+ // Mach etwas anderes für die Pfeiltasten, wenn ScrollLock gesperrt ist.
+ event.preventDefault(); // Schlüsselereignis verwenden
+ break;
+ case "ArrowRight":
+ case "Right": // Hack für IE und älteren Gecko
+ // Mach etwas anderes für die Pfeiltasten, wenn ScrollLock gesperrt ist.
+ event.preventDefault(); // Schlüsselereignis verwenden
+ break;
+ case "ArrowUp":
+ case "Up": // Hack für IE und älteren Gecko
+ // Mach etwas anderes für die Pfeiltasten, wenn ScrollLock gesperrt ist.
+ event.preventDefault(); // Schlüsselereignis verwenden
+ break;
+ }
+}
+</pre>
+
+<div class="note">
+<p>Obwohl dieses Beispiel <code>.getModifierState()</code> mit <code>"Alt"</code>, <code>"Control"</code>, <code>"Meta"</code> und <code>"Shift"</code> verwendet, ist es vielleicht besser, <code>altKey</code>, <code>ctrlKey</code>, <code>metaKey</code> und <code>shiftKey</code> zu verwenden, da sie kürzer und vielleicht schneller sind.</p>
+</div>
+
+<h2 id="Spezifikationen">Spezifikationen</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Spezifikation</th>
+ <th scope="col">Status</th>
+ <th scope="col">Kommentar</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('DOM3 Events', '#widl-KeyboardEvent-getModifierState', 'getModifierState()')}}</td>
+ <td>{{Spec2('DOM3 Events')}}</td>
+ <td>Initiale Definition (<a href="https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/DOM3Events-key.html#keys-modifier">Modifier Keys spec</a>)</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser-Kompatibilität">Browser-Kompatibilität</h2>
+
+<div class="hidden">Die Kompatibilitätstabelle auf dieser Seite wird aus strukturierten Daten generiert. Wenn Du zu den Daten beitragen möchtest, besuche  bitte <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> und sende uns deinen Pull-Request. </div>
+
+<p>{{Compat("api.KeyboardEvent.getModifierState")}}</p>
+
+<h2 id="Siehe_auch">Siehe auch</h2>
+
+<ul>
+ <li>Das {{domxref("KeyboardEvent")}}, zu dem die Methode gehört.</li>
+ <li>{{domxref("MouseEvent.getModifierState")}}</li>
+</ul>
diff --git a/files/de/web/api/keyboardevent/index.html b/files/de/web/api/keyboardevent/index.html
new file mode 100644
index 0000000000..6f76b0b13f
--- /dev/null
+++ b/files/de/web/api/keyboardevent/index.html
@@ -0,0 +1,458 @@
+---
+title: KeyboardEvent
+slug: Web/API/KeyboardEvent
+translation_of: Web/API/KeyboardEvent
+---
+<div>{{APIRef("DOM Events")}}</div>
+
+<p><strong><code>KeyboardEvent</code></strong> Objekte beschreiben eine Benutzerinteraktion mit dem Keyboard. Jedes Event beschreibt eine Taste. Der Eventtyp (<code>keydown</code>, <code>keypress</code>, oder <code>keyup</code>) identifiziert welche Art von Aktivität ausgeführt wurde.</p>
+
+<div class="note"><strong>Anmerkung:</strong> Das <code>KeyboardEvent</code> deutet nur an was mit einer Taste passiert. Wenn Sie Texteingaben behandeln müssen, verwenden sie stattdessen das HTML5 <code><a href="/en-US/docs/DOM/DOM_event_reference/input" rel="custom">input</a></code> Event. Beispiel: Wenn ein Benutzer Text über ein Handschriftsystem - wie auf einem Tablet - eingibt, werden Tastenevents möglicherweise nicht ausgelöst.</div>
+
+<h2 id="Konstruktor">Konstruktor</h2>
+
+<dl>
+ <dt>{{domxref("KeyboardEvent.KeyboardEvent", "KeyboardEvent()")}}</dt>
+ <dd>Erzeugt ein <code>KeyboardEvent</code> Objekt.</dd>
+</dl>
+
+<h2 id="Methoden">Methoden</h2>
+
+<p><em>Diese Schnittstelle erbt auch Methoden seiner Eltern {{domxref("UIEvent")}} und {{domxref("Event")}}.</em></p>
+
+<dl>
+ <dt>{{domxref("KeyboardEvent.getModifierState()")}}</dt>
+ <dd>Liefert einen {{jsxref("Boolean")}} Wert welcher angibt ob eine Hilfstaste wie <kbd>Alt</kbd>, <kbd>Shift</kbd>, <kbd>Ctrl</kbd>, oder <kbd>Meta</kbd> gedrückt war als das Event erzeugt wurde.</dd>
+ <dt>{{domxref("KeyboardEvent.initKeyEvent()")}}{{deprecated_inline}}</dt>
+ <dd>Initialisiert ein <code>KeyboardEvent</code> Objekt. Dies wurde nur durch Gecko implementiert (andere verwendeten {{domxref("KeyboardEvent.initKeyboardEvent()")}}) und sollte nicht mehr benutzt werden. Der moderne Standardweg ist, den {{domxref("KeyboardEvent.KeyboardEvent", "KeyboardEvent()")}} Konstrutor zu verwenden.</dd>
+ <dt>{{domxref("KeyboardEvent.initKeyboardEvent()")}}{{deprecated_inline}}</dt>
+ <dd>Initialisiert ein <code>KeyboardEvent</code> Objekt. Dies wurde nie von Gecko implementiert (da stattdessen {{domxref("KeyboardEvent.initKeyEvent()")}} verwendet wurde) und sollte nicht mehr benutzt werden. Der moderne Standardweg ist, den {{domxref("KeyboardEvent.KeyboardEvent", "KeyboardEvent()")}} Konstruktor zu verwenden.</dd>
+</dl>
+
+<h2 id="Eigenschaften">Eigenschaften</h2>
+
+<p><em>Diese Schnittstelle erbt auch Methoden seiner Eltern {{domxref("UIEvent")}} und {{domxref("Event")}}.</em></p>
+
+<dl>
+ <dt>{{domxref("KeyboardEvent.altKey")}} {{Readonlyinline}}</dt>
+ <dd>Liefert einen {{jsxref("Boolean")}} Wert der <code>true</code> ist falls die <kbd>Alt</kbd> ( <kbd>Option</kbd> oder <kbd>⌥</kbd> unter OS X) Taste aktiv war, als das Tastenevent erzeugt wurde.</dd>
+ <dt>{{domxref("KeyboardEvent.char")}} {{Non-standard_inline}}{{Deprecated_inline}}{{Readonlyinline}}</dt>
+ <dd>Liefert einen {{domxref("DOMString")}} der das Zeichen der Taste repräsentiert. Wenn die Taste einem druckbaren Zeichen entspricht, ist dieser Wert eine nicht-leere Unicode-Zeichenkette die dieses Zeichen enthält. Fall die Taste keine druckbare Darstellung besitzt, ist der Wert eine leere Zeichenkette.
+ <div class="note"><strong>Anmerkung:</strong> Falls die Taste als Makro verwendet wird, das mehrere Zeichen einfügt, ist der Wert dieses Attributs die gesamte Zeichenkette, nicht nur das erste Zeichen.</div>
+
+ <div class="warning"><strong>Warnung:</strong> Dies wurde aus den DOM Level 3 Events entfernt. Es wird nur von IE9+ und Microsoft Edge unterstützt.</div>
+ </dd>
+ <dt>{{domxref("KeyboardEvent.charCode")}} {{Deprecated_inline}}{{Readonlyinline}}</dt>
+ <dd>Liefert einen {{jsxref("Number")}} Wert der die Unicode-Kennziffer der Taste repräsentiert; dieses Attribut wird nur vom <code>keypress</code> Event verwendet. Für Tasten deren <code>char</code> Attribut mehrere Zeichen enthält ist der Wert dieses Attributs der Unicode-Wert des ersten Zeichens . In Firefox 26 liefert dies Codes für druckbare Zeichen.
+ <div class="warning"><strong>Warnung:</strong> Dieses Attribut ist veraltet; Sie sollten stattdessen - wenn vorhanden - {{domxref("KeyboardEvent.key")}} verwenden.</div>
+ </dd>
+ <dt>{{domxref("KeyboardEvent.code")}} {{Readonlyinline}}</dt>
+ <dd>Liefert einen {{domxref("DOMString")}} mit dem Codewert der Taste, welche durch das Event repräsentiert wird.</dd>
+ <dt>{{domxref("KeyboardEvent.ctrlKey")}} {{Readonlyinline}}</dt>
+ <dd>Liefert einen {{jsxref("Boolean")}} Wert der <code>true</code> ist, falls die <kbd>Ctrl</kbd> Taste aktiv war als  das Key-Event erzeugt wurde.</dd>
+ <dt>{{domxref("KeyboardEvent.isComposing")}} {{Readonlyinline}}</dt>
+ <dd>Liefert einen {{jsxref("Boolean")}} Wert der <code>true</code> ist falls das Event nach <code>compositionstart</code> und vor <code>compositionend</code> ausgelöst wird.</dd>
+ <dt>{{domxref("KeyboardEvent.key")}} {{Readonlyinline}}</dt>
+ <dd>Liefert einen {{domxref("DOMString")}} der den Wert der Taste darstellt die durch das Event repräsentiert wird.</dd>
+ <dt>{{domxref("KeyboardEvent.keyCode")}} {{deprecated_inline}}{{Readonlyinline}}</dt>
+ <dd>Liefert einen {{jsxref("Number")}} Wert der einen system- und implementationsabhängigen Zahlencode darstellt, der den unmodifizierten Wert der gedrückten Taste repräsentiert.
+ <div class="warning"><strong>Warnung:</strong> Dieses Attribut ist veraltet; Sie sollten stattdessen - wenn vorhanden - {{domxref("KeyboardEvent.key")}} verwenden.</div>
+ </dd>
+ <dt>{{domxref("KeyboardEvent.keyIdentifier")}} {{Non-standard_inline}}{{deprecated_inline}}{{Readonlyinline}}</dt>
+ <dd>Diese Eigenschaft ist nicht standardisiert und veraltet. Es sollte stattdessen {{domxref("KeyboardEvent.key")}} verwendet werden. Sie war Teil einer alten Version von DOM Level 3 Events.</dd>
+ <dt>{{domxref("KeyboardEvent.keyLocation")}} {{Non-standard_inline}}{{deprecated_inline}}{{Readonlyinline}}</dt>
+ <dd>Dies ist ein nicht-standardisierter Alias für {{domxref("KeyboardEvent.location")}}. Sie war Teil einer alten Version von DOM Level 3 Events.</dd>
+ <dt>{{domxref("KeyboardEvent.locale")}} {{Readonlyinline}}</dt>
+ <dd>Liefert einen {{domxref("DOMString")}} der das Gebietsschema identifiziert für die das Keyboard konfiguriert ist. Diese Zeichenkette kann leer sein, wenn der Browser oder das Gerät das Gebietsschema des Keyboards nicht kennt.
+ <div class="note"><strong>Anmerkung:</strong> Dies beschreibt nicht das Gebietsschema der eingegebenen Daten. Ein Benutzer könnte ein Tastaturlayout nutzen während er Text in einer anderen Sprache eingibt.</div>
+ </dd>
+ <dt>{{domxref("KeyboardEvent.location")}}<a> {{Readonlyinline}}</a></dt>
+ <dd>Liefert einen {{jsxref("Number")}} Wert der die Lage der Taste auf der Tastatur oder einem anderen Eingabegerät repräsentiert.</dd>
+ <dt>{{domxref("KeyboardEvent.metaKey")}} {{Readonlyinline}}</dt>
+ <dd>Liefert einen {{jsxref("Boolean")}} Wert der <code>true</code> ist, falls die <kbd>Meta</kbd> Taste (auf Mac-Tastaturen, die <kbd>⌘ Command</kbd> Taste; auf Windows-Tastaturen, die Windows -Taste (<kbd>⊞</kbd>)) aktiv war, als das Key-Event erzeugt wurde.</dd>
+ <dt>{{domxref("KeyboardEvent.repeat")}} {{Readonlyinline}}</dt>
+ <dd>Liefert einen {{jsxref("Boolean")}} Wert der <code>true</code> ist, falls die Taste gedrückt gehalten wird, so dass sie sich automatisch wiederholt.</dd>
+ <dt>{{domxref("KeyboardEvent.shiftKey")}} {{Readonlyinline}}</dt>
+ <dd>Liefert einen {{jsxref("Boolean")}} Wert der <code>true</code> ist, falls die <kbd>Shift</kbd> Taste aktiv war, als das Key-Event erzeugt wurde.</dd>
+ <dt>{{domxref("KeyboardEvent.which")}} {{deprecated_inline}}{{Readonlyinline}}</dt>
+ <dd>Liefert einen {{jsxref("Number")}} Wert der einen system- und implementationsabhängigen Zahlencode darstellt, der den unmodifizierten Wert der gedrückten Taste repräsentiert; das ist gewöhnlich das Gleiche wie <code>keyCode</code>.
+ <div class="warning"><strong>Warnung:</strong> Dieses Attribut ist veraltet; Sie sollten stattdessen - wenn vorhanden - {{domxref("KeyboardEvent.key")}} verwenden.</div>
+ </dd>
+</dl>
+
+<h2 id="Anmerkungen">Anmerkungen</h2>
+
+<p>Es gibt <code>keydown</code>, <code>keypress</code>, and <code>keyup</code> Events. Für die meisten Tasten versendet Gecko eine Sequenz von Key-Events wie folgt:</p>
+
+<ol>
+ <li>Wenn die Taste gedrückt wird, wird ein <code>keydown</code> Event gesendet.</li>
+ <li>Falls die Taste keine Hilfstaste ist, wird das <code>keypress</code> Event gesendet.</li>
+ <li>Wenn der Nutzer die Taste loslässt, wird das <code>keyup</code> Event gesendet.</li>
+</ol>
+
+<h3 id="Sonderfälle">Sonderfälle</h3>
+
+<p>Einige Taste schalten den Status einer Kontrollleuchte um; dazu gehören Caps Lock, Num Lock, und Scroll Lock. Unter Windows und Linux senden diese Tasten nur <code>keydown</code> and <code>keyup</code> Events.</p>
+
+<div class="note">
+<p>Unter Linux versendet Firefox 12 und eher das <code>keypress</code> Event auch für diese Tasten.</p>
+</div>
+
+<p>Jedoch sorgen die Einschränkungen des Mac OS X Event-Modells dafür, dass  Caps Lock nur das <code>keydown</code> Event versendet. Num Lock wurde auf einigen älteren Laptop-Modellen (Modelle 2007 und älter) unterstützt, aber seitdem hat Mac OS X  Num Lock nicht mehr untertstützt - nicht einmal auf externen Tastaturen. Auf älteren MacBooks mit einer Num Lock Taste, erzeugt diese Taste überhaupt keine KeyEvents. Gecko unterstützt die Scroll Lock Taste, falls eine externe Tastatur, die eine F14 Taste besitzt, angeschlossen ist. In bestimmten älteren Firefox-Versionen erzeugt diese Taste ein <code>keypress</code> Event; dieses inkonsistente Verhalten war {{bug(602812)}}.</p>
+
+<h3 id="Behandlung_von_Auto-repeat">Behandlung von Auto-repeat</h3>
+
+<p>Wenn eine Taste gedrückt und gehalten wird, beginnt sie die automatische Wiederholung (sog. <em>auto-repeat</em>). Das Resultat ist das Versenden einer Reihe von Events ähnlich der folgenden:</p>
+
+<ol>
+ <li><code>keydown</code></li>
+ <li><code>keypress</code></li>
+ <li><code>keydown</code></li>
+ <li><code>keypress</code></li>
+ <li>&lt;&lt;wiederholt sich bis der Nutzer die Taste loslässt&gt;&gt;</li>
+ <li><code>keyup</code></li>
+</ol>
+
+<p>Das sollte laut DOM Level 3 Spezifikation passieren. Allerdings gibt es einige Ausnahmen, wie unten beschrieben.</p>
+
+<h4 id="Auto-repeat_in_einigen_GTK-Umgebungen_wie_Ubuntu_9.4">Auto-repeat in einigen GTK-Umgebungen wie Ubuntu 9.4</h4>
+
+<p>In einigen GTK-basierten Umgebungen versendet auto-repeat automatisch ein natives Key-Up Event während der automatischen Wiederholung und es ist für Gecko deshalb nicht möglich zwischen wiederholten Tastendrücken und einem auto-repeat unterscheiden zu können. Auf diesen Platformen wird eine Auto-Repeat Taste also die folgende Reihe von Events erzeugen:</p>
+
+<ol>
+ <li><code>keydown</code></li>
+ <li><code>keypress</code></li>
+ <li><code>keyup</code></li>
+ <li><code>keydown</code></li>
+ <li><code>keypress</code></li>
+ <li><code>keyup</code></li>
+ <li>&lt;&lt;wiederholt sich bis der Nutzer die Taste loslässt&gt;&gt;</li>
+ <li><code>keyup</code></li>
+</ol>
+
+<p>Innerhalb dieser Umgebungen gibt es leider keine Möglichkeit für Webinhalte den Unterschied zwischen selbst-wiederholenden Tasten und Tasten die wiederholt gedrückt werden herauszufinden.</p>
+
+<h4 id="Behandlung_von_auto-repeat_vor_Gecko_5.0">Behandlung von auto-repeat vor Gecko 5.0</h4>
+
+<p>Vor Gecko 5.0 {{geckoRelease('5.0')}} war platformübergreifendes Tastatur-Handling weniger einheitlich.</p>
+
+<dl>
+ <dt>Windows</dt>
+ <dd>Das Auto-Repeat-Verhalten ist das Gleiche wie in Gecko 4.0 und später.</dd>
+ <dt>Mac</dt>
+ <dd>Nach dem initialen keydown Event werden nur keypress Events gesendet bis das keyup Event auftritt; die dazwischendliegenden keydown Events werden nicht gesendet.</dd>
+ <dt>Linux</dt>
+ <dd>Das Event-Verhalten hängt von der spezifischen Platform ab. Es wird sich entweder so verhalten wie Windows oder Mac, abhängig davon was das native Event-Modell macht.</dd>
+</dl>
+
+<p class="note"><strong>Anmerkung:</strong> manuelles Auslösen eines Events erzeugt <em>nicht</em> die mit dem Event verbundene Standard-Aktion. Zum Beispiel: manuelles Auslösen eines KeyEvent führt nicht dazu, dass der Buchstabe in einem fokussierten Eingabefeld auftaucht. Im Fall von UI-Events ist dies aus Sicherheitsgründen wichtig, da es verhindert, dass Skripte Benutzeraktionen simulieren, die mit dem Browser selbst interagieren.</p>
+
+<h2 id="Beispiel">Beispiel</h2>
+
+<pre class="brush: js">&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script&gt;
+'use strict';
+
+document.addEventListener('keydown', (event) =&gt; {
+ const keyName = event.key;
+
+ if (keyName === 'Control') {
+ // not alert when only Control key is pressed.
+ return;
+ }
+
+  if (event.ctrlKey) {
+    // Even though event.key is not 'Control' (i.e. 'a' is pressed),
+    // event.ctrlKey may be true if Ctrl key is pressed at the time.
+    alert(`Combination of ctrlKey + ${keyName}`);
+  } else {
+    alert(`Key pressed ${keyName}`);
+  }
+}, false);
+
+document.addEventListener('keyup', (event) =&gt; {
+  const keyName = event.key;
+
+  // As the user release the Ctrl key, the key is no longer active.
+  // So event.ctrlKey is false.
+  if (keyName === 'Control') {
+    alert('Control key was released');
+  }
+}, false);
+
+&lt;/script&gt;
+&lt;/head&gt;
+
+&lt;body&gt;
+&lt;/body&gt;
+&lt;/html&gt;
+</pre>
+
+<h2 id="Spezifikationen">Spezifikationen</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('DOM3 Events', '#interface-keyboardevent', 'KeyboardEvent')}}</td>
+ <td>{{Spec2('DOM3 Events')}}</td>
+ <td>Initiale Definition</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Die <code>KeyboardEvent</code> Schnittstelle lief durch eine Vielzahl von Entwurfsversionen, erst unter DOM Events Level 2, wo sie verworfen wurde als kein Konsens entstand, danach unter DOM Events Level 3. Dies führte zu einer Implementation von nicht standardisierten Initialisationsmethoden, der frühen DOM Events Level 2 Version<code> </code>{{domxref("KeyboardEvent.initKeyEvent()")}} durch Gecko Browser und die frühe DOM Events Level 3 Version, {{domxref("KeyboardEvent.initKeyboardEvent()")}} durch Andere. Beide wurden durch den modernen Einsatz eines Konstruktors ersetzt: {{domxref("KeyboardEvent.KeyboardEvent", "KeyboardEvent()")}}.</p>
+
+<h2 id="Browserkompatibilität">Browserkompatibilität</h2>
+
+<p>{{CompatibilityTable}}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Chrome</th>
+ <th>Edge</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari (WebKit)</th>
+ </tr>
+ <tr>
+ <td>Basic support</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ </tr>
+ <tr>
+ <td>constructor</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoDesktop("31.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ <tr>
+ <td><code>.char</code></td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>9</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ <tr>
+ <td><code>.charCode</code></td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ </tr>
+ <tr>
+ <td><code>.isComposing</code></td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoDesktop("31.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ <tr>
+ <td><code>.keyCode</code></td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ </tr>
+ <tr>
+ <td><code>.locale</code></td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ <tr>
+ <td><code>.location</code></td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoDesktop("15.0")}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ <tr>
+ <td><code>.repeat</code></td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoDesktop("28.0")}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ <tr>
+ <td><code>.which</code></td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ </tr>
+ <tr>
+ <td><code>.initKeyboardEvent()</code></td>
+ <td>{{CompatVersionUnknown}}<sup>[1]</sup></td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}<sup>[2]</sup></td>
+ <td>{{CompatIE("9.0")}}<sup>[3]</sup></td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatVersionUnknown}}<sup>[1]</sup></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Android</th>
+ <th>Edge</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Phone</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Basic support</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ <tr>
+ <td>constructor</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoMobile("31.0")}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ <tr>
+ <td><code>.char</code></td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ <tr>
+ <td><code>.charCode</code></td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ <tr>
+ <td><code>.isComposing</code></td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoMobile("31.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ <tr>
+ <td><code>.keyCode</code></td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ <tr>
+ <td><code>.locale</code></td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ <tr>
+ <td><code>.location</code></td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoMobile("15.0")}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ <tr>
+ <td><code>.repeat</code></td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoMobile("28.0")}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ <tr>
+ <td><code>.which</code></td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ <tr>
+ <td><code>.initKeyboardEvent()</code></td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<p>[1] Die Argumente von <code>initKeyboardEvent()</code> von WebKit and Blink weichen von der Definition in DOM Level 3 Events ab. Die Methode ist: <code>initKeyboardEvent(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in views::AbstractView viewArg, in DOMString keyIdentifierArg, in number locationArg, in boolean ctrlKeyArg, in boolean altKeyArg, in boolean shiftKeyArg, in boolean metaKeyArg, in boolean altGraphKeyArg)</code></p>
+
+<p>[2] Gecko wird <code>initKeyboardEvent()</code> nicht unterstützen, weil es die Feature-Erkennung von Web-Apllikationen komplett zerstört. Siehe {{Bug(999645)}}.</p>
+
+<p>[3] Das Argument von <code>initKeyboardEvent()</code> von IE weicht von der Definition in DOM Level 3 Events ab. Die Methode ist: <code>initKeyboardEvent(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in views::AbstractView viewArg, in DOMString keyArg, in number locationArg, in DOMString modifierListArg, in boolean repeatArt, in DOMString locationArg)</code>. Siehe <a href="http://msdn.microsoft.com/en-us/library/ie/ff975297%28v=vs.85%29.aspx">document of <code>initKeyboardEvent()</code> in MSDN</a>.</p>
+
+<h2 id="Siehe_auch">Siehe auch</h2>
+
+<ul>
+ <li>{{domxref("KeyboardEvent.code")}}.</li>
+ <li>{{domxref("KeyboardEvent.key")}}.</li>
+ <li>{{domxref("KeyboardEvent.getModifierState")}}</li>
+</ul>
diff --git a/files/de/web/api/keyboardevent/keycode/index.html b/files/de/web/api/keyboardevent/keycode/index.html
new file mode 100644
index 0000000000..98375fe4b9
--- /dev/null
+++ b/files/de/web/api/keyboardevent/keycode/index.html
@@ -0,0 +1,3185 @@
+---
+title: KeyboardEvent.keyCode
+slug: Web/API/KeyboardEvent/keyCode
+translation_of: Web/API/KeyboardEvent/keyCode
+---
+<p>{{APIRef("DOM Events")}}{{deprecated_header()}}</p>
+
+<p>Die schreibgeschütze Eigenschaft <strong><code>KeyboardEvent.keyCode</code>  </strong>stellt den den unveränderten,  System- und Implementationsabhängigen numerischen Bezeichner der gedrückten Taste dar. Normalerweise ist das der zugehörige  ASCII {{RFC(20)}}) oder Windows 1252 Code der Taste. Bei einer unerkannten Taste ist das der Wert <code>0</code>.</p>
+
+<p>Der Wert des <code>keypress</code> Ereignis unterscheided sich von Browser zu Browser. IE und Google Chrome setzen den {{domxref("KeyboardEvent.charCode")}}  Wert. Gecko setzt <code>0</code> wenn die gedrückte Taste ein druckbares Zeichen darstellt, andernfalls ist es der selbe Wert wie beim <code>keydown</code> und <code>keyup</code> Ereignis.</p>
+
+<p>Von der Verwendung dieser Eigenschaft sollte nach Möglichkeit abgesehen werden, da siebereits seit einiger Zeit veraltet ist. Statdessen sollte {domxref("KeyboardEvent.code")}} verwendet werden, so es implementiert ist. Leider gibt es noch immer einige Browser ohne Unterstützung dafür. Google und Safari implementieren {{domxref("KeyboardEvent.keyIdentifier")}}, der bisher in der Entwurfs-Spezifikation enthalten ist,  nicht jedoch in der finalen Version.</p>
+
+<div class="note">
+<p>Entwickler sollten von der Verwendung von <code>keyCode</code> Eigenschaft  für druckbare Zeichen bei <code>keydown</code> und <code>keyup</code> Ereignissen absehen. Wie zuvor beschrieben , ist die <code>keyCode</code> Eigenschaft für druckbare Zeichen nicht zu gebrauchen, vor allem wenn <kbd>Shift</kbd> oder <kbd>Alt</kbd> dabei gedrückt sind. Bei der Implementation von Kürzeln, ist das {{event("keypress")}} Ereignis meist eher angebracht (zumindest bei der Verwendung der Gecko Engine). Näheres siehe <a href="/en-US/docs/Gecko_Keypress_Event" title="en-US/docs/Gecko_Keypress_Event">Gecko Keypress Event</a> .</p>
+</div>
+
+<h2 id="Beispiel">Beispiel</h2>
+
+<pre class="brush: js">window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return; // Should do nothing if the default action has been cancelled
+ }
+
+ var handled = false;
+ if (event.key !== undefined) {
+ // Handle the event with KeyboardEvent.key and set handled true.
+ } else if (event.keyIdentifier !== undefined) {
+ // Handle the event with KeyboardEvent.keyIdentifier and set handled true.
+ } else if (event.keyCode !== undefined) {
+ // Handle the event with KeyboardEvent.keyCode and set handled true.
+ }
+
+ if (handled) {
+ // Suppress "double action" if event handled
+ event.preventDefault();
+ }
+}, true);
+</pre>
+
+<h2 id="Specifications">Specifications</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('DOM3 Events','#widl-KeyboardEvent-keyCode','KeyboardEvent.keyCode')}}</td>
+ <td>{{Spec2('DOM3 Events')}}</td>
+ <td>Initiale Definition; als veraltet gekennzeichnet</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_Kompatibilität">Browser Kompatibilität</h2>
+
+
+
+<p>{{Compat("api.KeyboardEvent.keyCode")}}</p>
+
+<h2 id="Werte_von_keyCode">Werte von keyCode</h2>
+
+<h3 id="druckbare_Tasten_in_der_Standard-Position">druckbare Tasten in der Standard-Position</h3>
+
+<p>The value of key events which are caused by pressing or releasing printable keys in standard position is not compatible between browsers.</p>
+
+<p>IE just exposes the native virtual keycode value as <code>KeyboardEvent.keyCode</code>.</p>
+
+<p>Google Chrome, Chromium and Safari must decide the value from the input character. If the inputting character can be inputted with the US keyboard layout, they use the <code>keyCode</code> value on the US keyboard layout.</p>
+
+<p>Starting in Firefox 15 {{geckoRelease("15.0")}}, Gecko gets <code>keyCode</code> values from ASCII characters inputtable by the key — even with shift modifiers or an ASCII capable keyboard layout. See the following rules for details:</p>
+
+<ol>
+ <li>If the system is Windows and the native keycode of the pressed key indicates that the key is a-z or 0-9, use a keycode for it.</li>
+ <li>If the system is Mac and the native keycode of the pressed key indicates that the key is 0-9, use a keycode for it.</li>
+ <li>If the pressed key inputs an ASCII alphabetic or numeric character with no modifier key, use a keycode for it.</li>
+ <li>If the pressed key inputs an ASCII alphabetic or numeric character with a Shift key modifier, use a keycode for it.</li>
+ <li>If the pressed key inputs a different ASCII character with no modifier key, use a keycode for it.</li>
+ <li>If the pressed key inputs a different ASCII character with a Shift key modifier, use a keycode for it.</li>
+ <li>Otherwise, i.e., pressed key inputs a unicode character:
+ <ol>
+ <li>If the keyboard layout is ASCII-capable (i.e., can input ASCII alphabets), use 0 or compute with <a href="#keyCode_of_punctuation_keys_on_some_keyboard_layout">the following additional rules</a>.</li>
+ <li>Otherwise, i.e., the keyboard layout isn't ASCII capable, use the ASCII capable keyboard layout installed on the environment with the highest priority:
+ <ol>
+ <li>If the pressed key on the alternative keyboard layout inputs an ASCII alphabetic or numeric character, use a keycode for it.</li>
+ <li>Otherwise, use 0 or compute with <a href="#keyCode_of_punctuation_keys_on_some_keyboard_layout">the following additional rules</a>.</li>
+ </ol>
+ </li>
+ </ol>
+ </li>
+</ol>
+
+<p id="keyCode_of_punctuation_keys_on_some_keyboard_layout">Starting in Firefox 60 {{geckoRelease("60.0")}}, Gecko sets <code>keyCode</code> values of punctuation keys as far as possible (when points 7.1 or 7.2 in the above list are reached) with the following rules:</p>
+
+<div class="warning">
+<p>The purpose of these new additional rules is for making users whose keyboard layouts map unicode characters to punctuation keys in a US keyboard layout can use web applications which support Firefox only with ASCII-capable keyboard layouts or just with a US keyboard layout. Otherwise, the newly mapped <code>keyCode</code> values may be conflict with other keys. For example, if the active keyboard layout is Russian, the <code>keyCode</code> value of <strong>both</strong> the <code>"Period"</code> key and <code>"Slash"</code> key are <code>190</code> (<code>KeyEvent.DOM_VK_PERIOD</code>). If you need to distinguish those keys but you don't want to support all keyboard layouts in the world by yourself, you should probably use {{domxref("KeyboardEvent.code")}}.</p>
+</div>
+
+<ol>
+ <li>If running macOS or Linux:
+ <ol>
+ <li>If the active keyboard layout is not ASCII-capable and an alternative ASCII-capable keyboard layout is available.
+ <ol>
+ <li>If the alternative ASCII-capable keyboard layout produces an ASCII character via just the unmodified key, use a <code>keyCode</code> for the character.</li>
+ <li>If the alternative ASCII-capable keyboard layout produces an ASCII character with a Shift key modifier, use a <code>keyCode</code> for the shifted character.</li>
+ <li>Otherwise, use a <code>keyCode</code> for an ASCII character produced by the key when the US keyboard layout is active.</li>
+ </ol>
+ </li>
+ <li>Otherwise, use a <code>keyCode</code> for an ASCII character produced by the key when the US keyboard layout is active.</li>
+ </ol>
+ </li>
+ <li>If running on Windows:
+ <ol>
+ <li>Use a <code>keyCode</code> value for an ASCII character produced by a key which is mapped to the same virtual keycode of Windows when the US keyboard layout is active.</li>
+ </ol>
+ </li>
+</ol>
+
+<table class="standard-table">
+ <caption>keyCode values of each browser's keydown event caused by printable keys in standard position</caption>
+ <thead>
+ <tr>
+ <th colspan="1" rowspan="3" scope="row">{{domxref("KeyboardEvent.code")}}</th>
+ <th colspan="3" rowspan="1" scope="col">Internet Explorer 11</th>
+ <th colspan="6" rowspan="1" scope="col">Google Chrome 34</th>
+ <th colspan="3" rowspan="1" scope="col">Chromium 34</th>
+ <th colspan="3" rowspan="1" scope="col">Safari 7</th>
+ <th colspan="9" rowspan="1" scope="col">Gecko 29</th>
+ </tr>
+ <tr>
+ <th colspan="3" rowspan="1" scope="col">Windows</th>
+ <th colspan="3" rowspan="1" scope="col">Windows</th>
+ <th colspan="3" rowspan="1" scope="col">Mac (10.9)</th>
+ <th colspan="3" rowspan="1" scope="col">Linux (Ubuntu 14.04)</th>
+ <th colspan="3" rowspan="1" scope="col">Mac (10.9)</th>
+ <th colspan="3" rowspan="1" scope="col">Windows</th>
+ <th colspan="3" rowspan="1" scope="col">Mac (10.9)</th>
+ <th colspan="3" rowspan="1" scope="col">Linux (Ubuntu 14.04)</th>
+ </tr>
+ <tr>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th colspan="1" scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ </tr>
+ </thead>
+ <tfoot>
+ <tr>
+ <th colspan="1" rowspan="3" scope="row">{{domxref("KeyboardEvent.code")}}</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th colspan="1" scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ </tr>
+ <tr>
+ <th colspan="3" rowspan="1" scope="col">Windows</th>
+ <th colspan="3" rowspan="1" scope="col">Windows</th>
+ <th colspan="3" rowspan="1" scope="col">Mac (10.9)</th>
+ <th colspan="3" rowspan="1" scope="col">Linux (Ubuntu 14.04)</th>
+ <th colspan="3" rowspan="1" scope="col">Mac (10.9)</th>
+ <th colspan="3" rowspan="1" scope="col">Windows</th>
+ <th colspan="3" rowspan="1" scope="col">Mac (10.9)</th>
+ <th colspan="3" rowspan="1" scope="col">Linux (Ubuntu 14.04)</th>
+ </tr>
+ <tr>
+ <th colspan="3" rowspan="1" scope="col">Internet Explorer 11</th>
+ <th colspan="6" rowspan="1" scope="col">Google Chrome 34</th>
+ <th colspan="3" rowspan="1" scope="col">Chromium 34</th>
+ <th colspan="3" rowspan="1" scope="col">Safari 7</th>
+ <th colspan="9" rowspan="1" scope="col">Gecko 29</th>
+ </tr>
+ </tfoot>
+ <tbody>
+ <tr>
+ <th scope="row"><code>"Digit1"</code></th>
+ <td colspan="3" rowspan="1"><code>0x31 (49)</code></td>
+ <td colspan="3" rowspan="1"><code>0x31 (49)</code></td>
+ <td colspan="3" rowspan="1"><code>0x31 (49)</code></td>
+ <td colspan="3" rowspan="1"><code>0x31 (49)</code></td>
+ <td colspan="3" rowspan="1"><code>0x31 (49)</code></td>
+ <td colspan="3" rowspan="1"><code>0x31 (49)</code></td>
+ <td colspan="3" rowspan="1"><code>0x31 (49)</code></td>
+ <td colspan="3" rowspan="1"><code>0x31 (49)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Digit2"</code></th>
+ <td colspan="3" rowspan="1"><code>0x32 (50)</code></td>
+ <td colspan="3" rowspan="1"><code>0x32 (50)</code></td>
+ <td colspan="3" rowspan="1"><code>0x32 (50)</code></td>
+ <td colspan="3" rowspan="1"><code>0x32 (50)</code></td>
+ <td colspan="3" rowspan="1"><code>0x32 (50)</code></td>
+ <td colspan="3" rowspan="1"><code>0x32 (50)</code></td>
+ <td colspan="3" rowspan="1"><code>0x32 (50)</code></td>
+ <td colspan="3" rowspan="1"><code>0x32 (50)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Digit3"</code></th>
+ <td colspan="3" rowspan="1"><code>0x33 (51)</code></td>
+ <td colspan="3" rowspan="1"><code>0x33 (51)</code></td>
+ <td colspan="3" rowspan="1"><code>0x33 (51)</code></td>
+ <td colspan="3" rowspan="1"><code>0x33 (51)</code></td>
+ <td colspan="3" rowspan="1"><code>0x33 (51)</code></td>
+ <td colspan="3" rowspan="1"><code>0x33 (51)</code></td>
+ <td colspan="3" rowspan="1"><code>0x33 (51)</code></td>
+ <td colspan="3" rowspan="1"><code>0x33 (51)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Digit4"</code></th>
+ <td colspan="3" rowspan="1"><code>0x34 (52)</code></td>
+ <td colspan="3" rowspan="1"><code>0x34 (52)</code></td>
+ <td colspan="3" rowspan="1"><code>0x34 (52)</code></td>
+ <td colspan="3" rowspan="1"><code>0x34 (52)</code></td>
+ <td colspan="3" rowspan="1"><code>0x34 (52)</code></td>
+ <td colspan="3" rowspan="1"><code>0x34 (52)</code></td>
+ <td colspan="3" rowspan="1"><code>0x34 (52)</code></td>
+ <td colspan="3" rowspan="1"><code>0x34 (52)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Digit5"</code></th>
+ <td colspan="3" rowspan="1"><code>0x35 (53)</code></td>
+ <td colspan="3" rowspan="1"><code>0x35 (53)</code></td>
+ <td colspan="3" rowspan="1"><code>0x35 (53)</code></td>
+ <td colspan="3" rowspan="1"><code>0x35 (53)</code></td>
+ <td colspan="3" rowspan="1"><code>0x35 (53)</code></td>
+ <td colspan="3" rowspan="1"><code>0x35 (53)</code></td>
+ <td colspan="3" rowspan="1"><code>0x35 (53)</code></td>
+ <td colspan="3" rowspan="1"><code>0x35 (53)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Digit6"</code></th>
+ <td colspan="3" rowspan="1"><code>0x36 (54)</code></td>
+ <td colspan="3" rowspan="1"><code>0x36 (54)</code></td>
+ <td colspan="3" rowspan="1"><code>0x36 (54)</code></td>
+ <td colspan="3" rowspan="1"><code>0x36 (54)</code></td>
+ <td colspan="3" rowspan="1"><code>0x36 (54)</code></td>
+ <td colspan="3" rowspan="1"><code>0x36 (54)</code></td>
+ <td colspan="3" rowspan="1"><code>0x36 (54)</code></td>
+ <td colspan="3" rowspan="1"><code>0x36 (54)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Digit7"</code></th>
+ <td colspan="3" rowspan="1"><code>0x37 (55)</code></td>
+ <td colspan="3" rowspan="1"><code>0x37 (55)</code></td>
+ <td colspan="3" rowspan="1"><code>0x37 (55)</code></td>
+ <td colspan="3" rowspan="1"><code>0x37 (55)</code></td>
+ <td colspan="3" rowspan="1"><code>0x37 (55)</code></td>
+ <td colspan="3" rowspan="1"><code>0x37 (55)</code></td>
+ <td colspan="3" rowspan="1"><code>0x37 (55)</code></td>
+ <td colspan="3" rowspan="1"><code>0x37 (55)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Digit8"</code></th>
+ <td colspan="3" rowspan="1"><code>0x38 (56)</code></td>
+ <td colspan="3" rowspan="1"><code>0x38 (56)</code></td>
+ <td colspan="3" rowspan="1"><code>0x38 (56)</code></td>
+ <td colspan="3" rowspan="1"><code>0x38 (56)</code></td>
+ <td colspan="3" rowspan="1"><code>0x38 (56)</code></td>
+ <td colspan="3" rowspan="1"><code>0x38 (56)</code></td>
+ <td colspan="3" rowspan="1"><code>0x38 (56)</code></td>
+ <td colspan="3" rowspan="1"><code>0x38 (56)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Digit9"</code></th>
+ <td colspan="3" rowspan="1"><code>0x39 (57)</code></td>
+ <td colspan="3" rowspan="1"><code>0x39 (57)</code></td>
+ <td colspan="3" rowspan="1"><code>0x39 (57)</code></td>
+ <td colspan="3" rowspan="1"><code>0x39 (57)</code></td>
+ <td colspan="3" rowspan="1"><code>0x39 (57)</code></td>
+ <td colspan="3" rowspan="1"><code>0x39 (57)</code></td>
+ <td colspan="3" rowspan="1"><code>0x39 (57)</code></td>
+ <td colspan="3" rowspan="1"><code>0x39 (57)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Digit0"</code></th>
+ <td colspan="3" rowspan="1"><code>0x30 (48)</code></td>
+ <td colspan="3" rowspan="1"><code>0x30 (48)</code></td>
+ <td colspan="3" rowspan="1"><code>0x30 (48)</code></td>
+ <td colspan="3" rowspan="1"><code>0x30 (48)</code></td>
+ <td colspan="3" rowspan="1"><code>0x30 (48)</code></td>
+ <td colspan="3" rowspan="1"><code>0x30 (48)</code></td>
+ <td colspan="3" rowspan="1"><code>0x30 (48)</code></td>
+ <td colspan="3" rowspan="1"><code>0x30 (48)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyA"</code></th>
+ <td colspan="3" rowspan="1"><code>0x41 (65)</code></td>
+ <td colspan="3" rowspan="1"><code>0x41 (65)</code></td>
+ <td colspan="3" rowspan="1"><code>0x41 (65)</code></td>
+ <td colspan="3" rowspan="1"><code>0x41 (65)</code></td>
+ <td colspan="3" rowspan="1"><code>0x41 (65)</code></td>
+ <td colspan="3" rowspan="1"><code>0x41 (65)</code></td>
+ <td colspan="3" rowspan="1"><code>0x41 (65)</code></td>
+ <td colspan="3" rowspan="1"><code>0x41 (65)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyB"</code></th>
+ <td colspan="3" rowspan="1"><code>0x42 (66)</code></td>
+ <td colspan="3" rowspan="1"><code>0x42 (66)</code></td>
+ <td colspan="3" rowspan="1"><code>0x42 (66)</code></td>
+ <td colspan="3" rowspan="1"><code>0x42 (66)</code></td>
+ <td colspan="3" rowspan="1"><code>0x42 (66)</code></td>
+ <td colspan="3" rowspan="1"><code>0x42 (66)</code></td>
+ <td colspan="3" rowspan="1"><code>0x42 (66)</code></td>
+ <td colspan="3" rowspan="1"><code>0x42 (66)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyC"</code></th>
+ <td colspan="3" rowspan="1"><code>0x43 (67)</code></td>
+ <td colspan="3" rowspan="1"><code>0x43 (67)</code></td>
+ <td colspan="3" rowspan="1"><code>0x43 (67)</code></td>
+ <td colspan="3" rowspan="1"><code>0x43 (67)</code></td>
+ <td colspan="3" rowspan="1"><code>0x43 (67)</code></td>
+ <td colspan="3" rowspan="1"><code>0x43 (67)</code></td>
+ <td colspan="3" rowspan="1"><code>0x43 (67)</code></td>
+ <td colspan="3" rowspan="1"><code>0x43 (67)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyD"</code></th>
+ <td colspan="3" rowspan="1"><code>0x44 (68)</code></td>
+ <td colspan="3" rowspan="1"><code>0x44 (68)</code></td>
+ <td colspan="3" rowspan="1"><code>0x44 (68)<span style="display: none;"> </span></code></td>
+ <td colspan="3" rowspan="1"><code>0x44 (68)</code></td>
+ <td colspan="3" rowspan="1"><code>0x44 (68)</code></td>
+ <td colspan="3" rowspan="1"><code>0x44 (68)</code></td>
+ <td colspan="3" rowspan="1"><code>0x44 (68)</code></td>
+ <td colspan="3" rowspan="1"><code>0x44 (68)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyE"</code></th>
+ <td colspan="3" rowspan="1"><code>0x45 (69)</code></td>
+ <td colspan="3" rowspan="1"><code>0x45 (69)</code></td>
+ <td colspan="3" rowspan="1"><code>0x45 (69)</code></td>
+ <td colspan="3" rowspan="1"><code>0x45 (69)</code></td>
+ <td colspan="3" rowspan="1"><code>0x45 (69)</code></td>
+ <td colspan="3" rowspan="1"><code>0x45 (69)</code></td>
+ <td colspan="3" rowspan="1"><code>0x45 (69)</code></td>
+ <td colspan="3" rowspan="1"><code>0x45 (69)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyF"</code></th>
+ <td colspan="3" rowspan="1"><code>0x46 (70)</code></td>
+ <td colspan="3" rowspan="1"><code>0x46 (70)</code></td>
+ <td colspan="3" rowspan="1"><code>0x46 (70)</code></td>
+ <td colspan="3" rowspan="1"><code>0x46 (70)</code></td>
+ <td colspan="3" rowspan="1"><code>0x46 (70)</code></td>
+ <td colspan="3" rowspan="1"><code>0x46 (70)</code></td>
+ <td colspan="3" rowspan="1"><code>0x46 (70)</code></td>
+ <td colspan="3" rowspan="1"><code>0x46 (70)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyG"</code></th>
+ <td colspan="3" rowspan="1"><code>0x47 (71)</code></td>
+ <td colspan="3" rowspan="1"><code>0x47 (71)</code></td>
+ <td colspan="3" rowspan="1"><code>0x47 (71)</code></td>
+ <td colspan="3" rowspan="1"><code>0x47 (71)</code></td>
+ <td colspan="3" rowspan="1"><code>0x47 (71)</code></td>
+ <td colspan="3" rowspan="1"><code>0x47 (71)</code></td>
+ <td colspan="3" rowspan="1"><code>0x47 (71)</code></td>
+ <td colspan="3" rowspan="1"><code>0x47 (71)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyH"</code></th>
+ <td colspan="3" rowspan="1"><code>0x48 (72)</code></td>
+ <td colspan="3" rowspan="1"><code>0x48 (72)</code></td>
+ <td colspan="3" rowspan="1"><code>0x48 (72)</code></td>
+ <td colspan="3" rowspan="1"><code>0x48 (72)</code></td>
+ <td colspan="3" rowspan="1"><code>0x48 (72)</code></td>
+ <td colspan="3" rowspan="1"><code>0x48 (72)</code></td>
+ <td colspan="3" rowspan="1"><code>0x48 (72)</code></td>
+ <td colspan="3" rowspan="1"><code>0x48 (72)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyI"</code></th>
+ <td colspan="3" rowspan="1"><code>0x49 (73)</code></td>
+ <td colspan="3" rowspan="1"><code>0x49 (73)</code></td>
+ <td colspan="3" rowspan="1"><code>0x49 (73)</code></td>
+ <td colspan="3" rowspan="1"><code>0x49 (73)</code></td>
+ <td colspan="3" rowspan="1"><code>0x49 (73)</code></td>
+ <td colspan="3" rowspan="1"><code>0x49 (73)</code></td>
+ <td colspan="3" rowspan="1"><code>0x49 (73)</code></td>
+ <td colspan="3" rowspan="1"><code>0x49 (73)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyJ"</code></th>
+ <td colspan="3" rowspan="1"><code>0x4A (74)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4A (74)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4A (74)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4A (74)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4A (74)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4A (74)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4A (74)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4A (74)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyK"</code></th>
+ <td colspan="3" rowspan="1"><code>0x4B (75)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4B (75)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4B (75)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4B (75)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4B (75)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4B (75)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4B (75)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4B (75)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyL"</code></th>
+ <td colspan="3" rowspan="1"><code>0x4C (76)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4C (76)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4C (76)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4C (76)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4C (76)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4C (76)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4C (76)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4C (76)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyM"</code></th>
+ <td colspan="3" rowspan="1"><code>0x4D (77)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4D (77)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4D (77)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4D (77)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4D (77)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4D (77)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4D (77)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4D (77)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyN"</code></th>
+ <td colspan="3" rowspan="1"><code>0x4E (78)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4E (78)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4E (78)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4E (78)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4E (78)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4E (78)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4E (78)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4E (78)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyO"</code></th>
+ <td colspan="3" rowspan="1"><code>0x4F (79)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4F (79)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4F (79)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4F (79)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4F (79)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4F (79)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4F (79)</code></td>
+ <td colspan="3" rowspan="1"><code>0x4F (79)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyP"</code></th>
+ <td colspan="3" rowspan="1"><code>0x50 (80)</code></td>
+ <td colspan="3" rowspan="1"><code>0x50 (80)</code></td>
+ <td colspan="3" rowspan="1"><code>0x50 (80)</code></td>
+ <td colspan="3" rowspan="1"><code>0x50 (80)</code></td>
+ <td colspan="3" rowspan="1"><code>0x50 (80)</code></td>
+ <td colspan="3" rowspan="1"><code>0x50 (80)</code></td>
+ <td colspan="3" rowspan="1"><code>0x50 (80)</code></td>
+ <td colspan="3" rowspan="1"><code>0x50 (80)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyQ"</code></th>
+ <td colspan="3" rowspan="1"><code>0x51 (81)</code></td>
+ <td colspan="3" rowspan="1"><code>0x51 (81)</code></td>
+ <td rowspan="1"><code>0x51 (81)</code></td>
+ <td rowspan="1"><code>0x51 (81)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xBA (186)</code></td>
+ <td><code>0x51 (81)</code></td>
+ <td><code>0x51 (81)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xBA (186)</code></td>
+ <td rowspan="1"><code>0x51 (81)</code></td>
+ <td rowspan="1"><code>0x51 (81)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xBA (186)</code></td>
+ <td colspan="3" rowspan="1"><code>0x51 (81)</code></td>
+ <td><code>0x51 (81)</code></td>
+ <td><code>0x51 (81)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xBA (186)</code></td>
+ <td colspan="3" rowspan="1"><code>0x51 (81)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyR"</code></th>
+ <td colspan="3" rowspan="1"><code>0x52 (82)</code></td>
+ <td colspan="3" rowspan="1"><code>0x52 (82)</code></td>
+ <td colspan="3" rowspan="1"><code>0x52 (82)</code></td>
+ <td colspan="3" rowspan="1"><code>0x52 (82)</code></td>
+ <td colspan="3" rowspan="1"><code>0x52 (82)</code></td>
+ <td colspan="3" rowspan="1"><code>0x52 (82)</code></td>
+ <td colspan="3" rowspan="1"><code>0x52 (82)</code></td>
+ <td colspan="3" rowspan="1"><code>0x52 (82)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyS"</code></th>
+ <td colspan="3" rowspan="1"><code>0x53 (83)</code></td>
+ <td colspan="3" rowspan="1"><code>0x53 (83)</code></td>
+ <td colspan="3" rowspan="1"><code>0x53 (83)</code></td>
+ <td colspan="3" rowspan="1"><code>0x53 (83)</code></td>
+ <td colspan="3" rowspan="1"><code>0x53 (83)</code></td>
+ <td colspan="3" rowspan="1"><code>0x53 (83)</code></td>
+ <td colspan="3" rowspan="1"><code>0x53 (83)</code></td>
+ <td colspan="3" rowspan="1"><code>0x53 (83)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyT"</code></th>
+ <td colspan="3" rowspan="1"><code>0x54 (84)</code></td>
+ <td colspan="3" rowspan="1"><code>0x54 (84)</code></td>
+ <td colspan="3" rowspan="1"><code>0x54 (84)</code></td>
+ <td colspan="3" rowspan="1"><code>0x54 (84)</code></td>
+ <td colspan="3" rowspan="1"><code>0x54 (84)</code></td>
+ <td colspan="3" rowspan="1"><code>0x54 (84)</code></td>
+ <td colspan="3" rowspan="1"><code>0x54 (84)</code></td>
+ <td colspan="3" rowspan="1"><code>0x54 (84)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyU"</code></th>
+ <td colspan="3" rowspan="1"><code>0x55 (85)</code></td>
+ <td colspan="3" rowspan="1"><code>0x55 (85)</code></td>
+ <td colspan="3" rowspan="1"><code>0x55 (85)</code></td>
+ <td colspan="3" rowspan="1"><code>0x55 (85)</code></td>
+ <td colspan="3" rowspan="1"><code>0x55 (85)</code></td>
+ <td colspan="3" rowspan="1"><code>0x55 (85)</code></td>
+ <td colspan="3" rowspan="1"><code>0x55 (85)</code></td>
+ <td colspan="3" rowspan="1"><code>0x55 (85)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyV"</code></th>
+ <td colspan="3" rowspan="1"><code>0x56 (86)</code></td>
+ <td colspan="3" rowspan="1"><code>0x56 (86)</code></td>
+ <td colspan="3" rowspan="1"><code>0x56 (86)</code></td>
+ <td colspan="3" rowspan="1"><code>0x56 (86)</code></td>
+ <td colspan="3" rowspan="1"><code>0x56 (86)</code></td>
+ <td colspan="3" rowspan="1"><code>0x56 (86)</code></td>
+ <td colspan="3" rowspan="1"><code>0x56 (86)</code></td>
+ <td colspan="3" rowspan="1"><code>0x56 (86)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyW"</code></th>
+ <td colspan="3" rowspan="1"><code>0x57 (87)</code></td>
+ <td colspan="3" rowspan="1"><code>0x57 (87)</code></td>
+ <td colspan="3" rowspan="1"><code>0x57 (87)</code></td>
+ <td colspan="3" rowspan="1"><code>0x57 (87)</code></td>
+ <td colspan="3" rowspan="1"><code>0x57 (87)</code></td>
+ <td colspan="3" rowspan="1"><code>0x57 (87)</code></td>
+ <td colspan="3" rowspan="1"><code>0x57 (87)</code></td>
+ <td colspan="3" rowspan="1"><code>0x57 (87)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyX"</code></th>
+ <td colspan="3" rowspan="1"><code>0x58 (88)</code></td>
+ <td colspan="3" rowspan="1"><code>0x58 (88)</code></td>
+ <td colspan="3" rowspan="1"><code>0x58 (88)</code></td>
+ <td colspan="3" rowspan="1"><code>0x58 (88)</code></td>
+ <td colspan="3" rowspan="1"><code>0x58 (88)</code></td>
+ <td colspan="3" rowspan="1"><code>0x58 (88)</code></td>
+ <td colspan="3" rowspan="1"><code>0x58 (88)</code></td>
+ <td colspan="3" rowspan="1"><code>0x58 (88)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyY"</code></th>
+ <td colspan="3" rowspan="1"><code>0x59 (89)</code></td>
+ <td colspan="3" rowspan="1"><code>0x59 (89)</code></td>
+ <td colspan="3" rowspan="1"><code>0x59 (89)</code></td>
+ <td colspan="3" rowspan="1"><code>0x59 (89)</code></td>
+ <td colspan="3" rowspan="1"><code>0x59 (89)</code></td>
+ <td colspan="3" rowspan="1"><code>0x59 (89)</code></td>
+ <td colspan="3" rowspan="1"><code>0x59 (89)</code></td>
+ <td colspan="3" rowspan="1"><code>0x59 (89)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"KeyZ"</code></th>
+ <td colspan="3" rowspan="1"><code>0x5A (90)</code></td>
+ <td colspan="3" rowspan="1"><code>0x5A (90)</code></td>
+ <td colspan="3" rowspan="1"><code>0x5A (90)</code></td>
+ <td colspan="3" rowspan="1"><code>0x5A (90)</code></td>
+ <td colspan="3" rowspan="1"><code>0x5A (90)</code></td>
+ <td colspan="3" rowspan="1"><code>0x5A (90)</code></td>
+ <td colspan="3" rowspan="1"><code>0x5A (90)</code></td>
+ <td colspan="3" rowspan="1"><code>0x5A (90)</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<table class="standard-table">
+ <caption>keyCode values of each browser's keydown event caused by printable keys in standard position (punctuations in US layout):</caption>
+ <thead>
+ <tr>
+ <th colspan="1" rowspan="3" scope="row">{{domxref("KeyboardEvent.code")}}</th>
+ <th colspan="3" rowspan="1" scope="col">Internet Explorer 11</th>
+ <th colspan="6" rowspan="1" scope="col">Google Chrome 34</th>
+ <th colspan="3" rowspan="1" scope="col">Chromium 34</th>
+ <th colspan="3" rowspan="1" scope="col">Safari 7</th>
+ <th colspan="9" rowspan="1" scope="col">Gecko 29</th>
+ </tr>
+ <tr>
+ <th colspan="3" rowspan="1" scope="col">Windows</th>
+ <th colspan="3" rowspan="1" scope="col">Windows</th>
+ <th colspan="3" rowspan="1" scope="col">Mac (10.9)</th>
+ <th colspan="3" rowspan="1" scope="col">Linux (Ubuntu 14.04)</th>
+ <th colspan="3" rowspan="1" scope="col">Mac (10.9)</th>
+ <th colspan="3" rowspan="1" scope="col">Windows (10.9)</th>
+ <th colspan="3" rowspan="1" scope="col">Mac (10.9)</th>
+ <th colspan="3" rowspan="1" scope="col">Linux (Ubuntu 14.04)</th>
+ </tr>
+ <tr>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th colspan="1" scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ </tr>
+ </thead>
+ <tfoot>
+ <tr>
+ <th colspan="1" rowspan="3" scope="row">{{domxref("KeyboardEvent.code")}}</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ <th colspan="1" scope="col">US</th>
+ <th scope="col">Japanese</th>
+ <th scope="col">Greek</th>
+ </tr>
+ <tr>
+ <th colspan="3" rowspan="1" scope="col">Windows</th>
+ <th colspan="3" rowspan="1" scope="col">Windows</th>
+ <th colspan="3" rowspan="1" scope="col">Mac (10.9)</th>
+ <th colspan="3" rowspan="1" scope="col">Linux (Ubuntu 14.04)</th>
+ <th colspan="3" rowspan="1" scope="col">Mac (10.9)</th>
+ <th colspan="3" rowspan="1" scope="col">Windows</th>
+ <th colspan="3" rowspan="1" scope="col">Mac (10.9)</th>
+ <th colspan="3" rowspan="1" scope="col">Linux (Ubuntu 14.04)</th>
+ </tr>
+ <tr>
+ <th colspan="3" rowspan="1" scope="col">Internet Explorer 11</th>
+ <th colspan="6" rowspan="1" scope="col">Google Chrome 34</th>
+ <th colspan="3" rowspan="1" scope="col">Chromium 34</th>
+ <th colspan="3" rowspan="1" scope="col">Safari 7</th>
+ <th colspan="9" rowspan="1" scope="col">Gecko 29</th>
+ </tr>
+ </tfoot>
+ <tbody>
+ <tr>
+ <th scope="row"><code>"Comma"</code></th>
+ <td colspan="3" rowspan="2"><code>0xBC (188)</code></td>
+ <td colspan="3" rowspan="2"><code>0xBC (188)</code></td>
+ <td colspan="3" rowspan="2"><code>0xBC (188)</code></td>
+ <td colspan="3" rowspan="2"><code>0xBC (188)</code></td>
+ <td colspan="3" rowspan="2"><code>0xBC (188)</code></td>
+ <td colspan="3" rowspan="2"><code>0xBC (188)</code></td>
+ <td colspan="3" rowspan="2"><code>0xBC (188)</code></td>
+ <td colspan="3" rowspan="2"><code>0xBC (188)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Comma"</code> with <kbd>Shift</kbd></th>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Period"</code></th>
+ <td colspan="3" rowspan="2"><code>0xBE (190)</code></td>
+ <td colspan="3" rowspan="2"><code>0xBE (190)</code></td>
+ <td colspan="3" rowspan="2"><code>0xBE (190)</code></td>
+ <td colspan="3" rowspan="2"><code>0xBE (190)</code></td>
+ <td colspan="3" rowspan="2"><code>0xBE (190)</code></td>
+ <td colspan="3" rowspan="2"><code>0xBE (190)</code></td>
+ <td colspan="3" rowspan="2"><code>0xBE (190)</code></td>
+ <td colspan="3" rowspan="2"><code>0xBE (190)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Period"</code> with <kbd>Shift</kbd></th>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Semicolon"</code></th>
+ <td colspan="1" rowspan="2"><code>0xBA (186)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xBB (187)</code></td>
+ <td colspan="1" rowspan="2"><code>0xBA (186)</code></td>
+ <td colspan="1" rowspan="2"><code>0xBA (186)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xBB (187)</code></td>
+ <td colspan="1" rowspan="2"><code>0xBA (186)</code></td>
+ <td colspan="1" rowspan="2"><code>0xBA (186)</code></td>
+ <td><code>0xBA (186)</code> *1</td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xE5 (229) *2</code></td>
+ <td colspan="1" rowspan="2"><code>0xBA (186)</code></td>
+ <td><code>0xBA (186)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xE5 (229) *3</code></td>
+ <td colspan="1" rowspan="2"><code>0xBA (186)</code></td>
+ <td><code>0xBA (186)</code> *1</td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xE5 (229) *2</code></td>
+ <td colspan="1" rowspan="2"><code>0x3B (59)</code></td>
+ <td colspan="1" rowspan="2"><code>0x3B (59)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code></td>
+ <td colspan="1" rowspan="2"><code>0x3B (59)</code></td>
+ <td colspan="1" rowspan="2"><code>0x3B (59)</code> *1</td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code></td>
+ <td colspan="1" rowspan="2"><code>0x3B (59)</code></td>
+ <td colspan="1" rowspan="2"><code>0x3B (59)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Semicolon"</code> with <kbd>Shift</kbd></th>
+ <td style="background-color: rgb(255, 204, 255);"><code>0xBB (187) </code>*1</td>
+ <td style="background-color: rgb(255, 204, 255);"><code>0xBB (187)</code></td>
+ <td style="background-color: rgb(255, 204, 255);"><code>0xBB (187)</code> *1</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Quote"</code></th>
+ <td colspan="1" rowspan="2"><code>0xDE (222)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xBA (186)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDE (222)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDE (222)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xBA (186)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDE (222)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDE (222)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xBA (186) *1</code></td>
+ <td colspan="1" rowspan="2"><code>0xDE (222)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDE (222)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xBA (186)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDE (222)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDE (222)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xBA (186)</code>  *1</td>
+ <td colspan="1" rowspan="2"><code>0xDE (222)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDE (222)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0x3A (58)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDE (222)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDE (222)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0x3A (58)</code> *1</td>
+ <td colspan="1" rowspan="2"><code>0xDE (222)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDE (222)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0x3A (58)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDE (222)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Quote"</code> with Shift</th>
+ <td style="background-color: rgb(255, 204, 255);"><code>0xDE (222)</code> *1</td>
+ <td style="background-color: rgb(255, 204, 255);"><code>0x38 (56)</code></td>
+ <td style="background-color: rgb(255, 204, 255);"><code>0xDE (222)</code> *1</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"BracketLeft"</code></th>
+ <td colspan="1" rowspan="2"><code>0xDB (219)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xC0(192)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDB (219)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDB (219)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xC0(192)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDB (219)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDB (219)</code></td>
+ <td><code>0xDB (219)</code> *1</td>
+ <td colspan="1" rowspan="2"><code>0xDB (219)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDB (219)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x32 (50)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDB (219)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDB (219)</code></td>
+ <td><code>0xDB (219) *1 </code></td>
+ <td colspan="1" rowspan="2"><code>0xDB (219)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDB (219)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0x40 (64)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDB (219)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDB (219)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0x40 (64)</code> *1</td>
+ <td colspan="1" rowspan="2"><code>0xDB (219)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDB (219)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0x40 (64)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDB (219)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"BracketLeft"</code> with <kbd>Shift</kbd></th>
+ <td style="background-color: rgb(255, 204, 255);"><code>0xC0 (192) *1</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xC0 (192)</code></td>
+ <td style="background-color: rgb(255, 204, 255);"><code>0xC0 (192) *1</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"BracketRight"</code></th>
+ <td colspan="1" rowspan="2"><code>0xDD (221)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDB (219)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDD (221)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDD (221)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDB (219)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDD (221)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDD (221)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDB (219) *1</code></td>
+ <td colspan="1" rowspan="2"><code>0xDD (221)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDD (221)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDB (219)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDD (221)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDD (221)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDB (219) *1</code></td>
+ <td colspan="1" rowspan="2"><code>0xDD (221)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDD (221)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDB (219)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDD (221)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDD (221)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDB (219)</code> *1</td>
+ <td colspan="1" rowspan="2"><code>0xDD (221)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDD (221)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDB (219)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDD (221)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"BracketRight"</code> with <kbd>Shift</kbd></th>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Backquote"</code></th>
+ <td colspan="1" rowspan="2"><code>0xC0 (192)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(153, 153, 153);"><code>N/A</code></td>
+ <td colspan="1" rowspan="2"><code>0xC0 (192)</code></td>
+ <td colspan="1" rowspan="2"><code>0xC0 (192)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(153, 153, 153);"><code>N/A</code></td>
+ <td colspan="1" rowspan="2"><code>0xC0 (192)</code></td>
+ <td colspan="3" rowspan="2"><code>0xC0 (192)</code></td>
+ <td colspan="1" rowspan="2"><code>0xC0 (192)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xF4 (244)</code></td>
+ <td colspan="1" rowspan="2"><code>0xC0 (192)</code></td>
+ <td colspan="3" rowspan="2"><code>0xC0 (192)</code></td>
+ <td colspan="1" rowspan="2"><code>0xC0 (192)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(153, 153, 153);"><code>N/A</code></td>
+ <td colspan="1" rowspan="2"><code>0xC0 (192)</code></td>
+ <td colspan="3" rowspan="2"><code>0xC0 (192)</code></td>
+ <td colspan="1" rowspan="2"><code>0xC0 (192)</code></td>
+ <td colspan="1" rowspan="2"><code>0x00 (0)</code></td>
+ <td colspan="1" rowspan="2"><code>0xC0 (192)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Backquote"</code> with <kbd>Shift</kbd></th>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Backslash"</code></th>
+ <td colspan="1" rowspan="2"><code>0xDC (220)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDD (221)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDC (220)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDC (220)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDD (221)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDC (220)</code></td>
+ <td colspan="3" rowspan="2"><code>0xDC (220)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDC (220)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDD (221)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDC (220)</code></td>
+ <td colspan="3" rowspan="2"><code>0xDC (220)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDC (220)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDD (221)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDC (220)</code></td>
+ <td colspan="3" rowspan="2"><code>0xDC (220)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDC (220)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDD (221)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDC (220)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Backslash"</code> with <kbd>Shift</kbd></th>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Minus"</code></th>
+ <td colspan="3" rowspan="2"><code>0xBD (189)</code></td>
+ <td colspan="3" rowspan="2"><code>0xBD (189)</code></td>
+ <td colspan="1" rowspan="2"><code>0xBD (189)</code></td>
+ <td><code>0xBD (189)</code> *1</td>
+ <td colspan="1" rowspan="2"><code>0xBD (189)</code></td>
+ <td colspan="1" rowspan="2"><code>0xBD (189)</code></td>
+ <td><code>0xBD (189)</code></td>
+ <td colspan="1" rowspan="2"><code>0xBD (189)</code></td>
+ <td rowspan="1"><code>0xBD (189)</code></td>
+ <td rowspan="1"><code>0xBD (189) *1</code></td>
+ <td rowspan="1"><code>0xBD (189)</code></td>
+ <td colspan="3" rowspan="2"><code>0xAD (173)</code></td>
+ <td rowspan="2"><code>0xAD (173)</code></td>
+ <td rowspan="2"><code>0xAD (173) *1</code></td>
+ <td rowspan="2"><code>0xAD (173)</code></td>
+ <td colspan="3" rowspan="2"><code>0xAD (173)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Minus"</code> with <kbd>Shift</kbd></th>
+ <td style="background-color: rgb(255, 204, 255);"><code>0xBB (187)</code> *1</td>
+ <td style="background-color: rgb(255, 204, 255);"><code>0xBB (187)</code></td>
+ <td><code>0xBD (189)</code></td>
+ <td style="background-color: rgb(255, 204, 255);"><code>0xBB (187) *1</code></td>
+ <td><code>0xBD (189)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Equal"</code></th>
+ <td colspan="1" rowspan="2"><code>0xBB (187)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDE (222)</code></td>
+ <td colspan="1" rowspan="2"><code>0xBB (187)</code></td>
+ <td colspan="1" rowspan="2"><code>0xBB (187)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDE (222)</code></td>
+ <td colspan="1" rowspan="2"><code>0xBB (187)</code></td>
+ <td colspan="1" rowspan="2"><code>0xBB (187)</code></td>
+ <td><code>0xBB (187) *1</code></td>
+ <td colspan="1" rowspan="2"><code>0xBB (187)</code></td>
+ <td colspan="1" rowspan="2"><code>0xBB (187)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x36 (54)</code></td>
+ <td colspan="1" rowspan="2"><code>0xBB (187)</code></td>
+ <td rowspan="1"><code>0xBB (187)</code></td>
+ <td rowspan="1"><code>0xBB (187) *1</code></td>
+ <td rowspan="1"><code>0xBB (187)</code></td>
+ <td colspan="1" rowspan="2"><code>0x3D (61)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xA0 (160)</code></td>
+ <td colspan="1" rowspan="2"><code>0x3D (61)</code></td>
+ <td colspan="1" rowspan="2"><code>0x3D (61)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xA0 (160)</code> *1</td>
+ <td colspan="1" rowspan="2"><code>0x3D (61)</code></td>
+ <td rowspan="2"><code>0x3D (61)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xA0 (160)</code></td>
+ <td colspan="1" rowspan="2"><code>0x3D (61)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Equal"</code> with <kbd>Shift</kbd></th>
+ <td style="background-color: rgb(255, 204, 255);"><code>0xC0 (192) *1</code></td>
+ <td style="background-color: rgb(255, 204, 255);"><code>0xC0 (192)</code></td>
+ <td><code>0xBB (187)</code></td>
+ <td style="background-color: rgb(255, 204, 255);"><code>0xC0 (192) *1</code></td>
+ <td><code>0xBB (187)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"IntlRo"</code></th>
+ <td colspan="1" rowspan="2"><code>0xC1 (193)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xE2 (226)</code></td>
+ <td colspan="1" rowspan="2"><code>0xC1 (193)</code></td>
+ <td colspan="1" rowspan="2"><code>0xC1 (193)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xE2 (226)</code></td>
+ <td colspan="1" rowspan="2"><code>0xC1 (193)</code></td>
+ <td colspan="1" rowspan="2"><code>0xBD (189)</code></td>
+ <td colspan="1" rowspan="2"><code>0xBD (189)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code></td>
+ <td colspan="1" rowspan="2">*4</td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDC (220)</code><br>
+  </td>
+ <td colspan="1" rowspan="2">*4</td>
+ <td rowspan="2"><code>0xBD (189)</code></td>
+ <td rowspan="2"><code>0xBD (189)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xE5 </code>(229) *5</td>
+ <td colspan="1" rowspan="2"><code>0x00 (0)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDC (220)</code></td>
+ <td colspan="1" rowspan="2"><code>0x00 (0)</code></td>
+ <td colspan="1" rowspan="2"><code>0xA7 (167)</code></td>
+ <td colspan="1" rowspan="2"><code>0xA7 (167)</code></td>
+ <td colspan="1" rowspan="2"><code>0x00 (0)</code></td>
+ <td colspan="1" rowspan="2"><code>0x00 (0)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDC (220)</code></td>
+ <td colspan="1" rowspan="2"><code>0x00 (0)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"IntlRo"</code> with <kbd>Shift</kbd></th>
+ </tr>
+ <tr>
+ <th scope="row"><code>"IntlYen"</code></th>
+ <td colspan="1" rowspan="2"><code>0xFF (255)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDC (220)</code></td>
+ <td colspan="1" rowspan="2"><code>0xFF (255)</code></td>
+ <td colspan="1" rowspan="2"><code>0xFF (255)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDC (220)</code></td>
+ <td colspan="1" rowspan="2"><code>0xFF (255)</code></td>
+ <td><code>0x00 (0)</code></td>
+ <td><code>0x00 (0)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code></td>
+ <td colspan="1" rowspan="2">*4</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xDC (220)</code></td>
+ <td colspan="1" rowspan="2">*4</td>
+ <td rowspan="1"><code>0x00 (0)</code></td>
+ <td rowspan="1"><code>0x00 (0)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xE5 </code>(229) *5</td>
+ <td colspan="1" rowspan="2"><code>0x00 (0)</code></td>
+ <td colspan="1" rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDC </code>(220)</td>
+ <td colspan="1" rowspan="2"><code>0x00 (0)</code></td>
+ <td colspan="1" rowspan="2"><code>0xDC </code>(220)</td>
+ <td colspan="1" rowspan="2"><code>0xDC </code>(220)</td>
+ <td colspan="1" rowspan="2"><code>0x00 (0)</code></td>
+ <td colspan="1" rowspan="2"><code>0x00 (0)</code></td>
+ <td rowspan="2" style="background-color: rgb(255, 255, 204);"><code>0xDC (220)</code></td>
+ <td colspan="1" rowspan="2"><code>0x00 (0)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"IntlYen"</code> with <kbd>Shift</kbd></th>
+ <td><code>0xDC (220)</code></td>
+ <td><code>0xDC (220)</code></td>
+ <td style="background-color: rgb(255, 204, 255);"><code>0xBD (189)</code></td>
+ <td><code>0xDC (220)</code></td>
+ <td><code>0xDC (220)</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<p>*1 The value is input from JIS keyboard. When you use ANSI keyboard, the keyCode value and inputted character are what you select from the US keyboard layout.</p>
+
+<p>*2 The key is a dead key. The value of <code>keyup</code> event is <code>0xBA (186)</code>.</p>
+
+<p>*3 The key is a dead key. The value of <code>keyup</code> event is <code>0x10 (16)</code>.</p>
+
+<p>*4 No key events are fired.</p>
+
+<p>*5 The key isn't available with Greek keyboard layout (does not input any character). The value of <code>keyup</code> event is <code>0x00 (0)</code>.</p>
+
+<h3 id="Non-printable_keys_(function_keys)">Non-printable keys (function keys)</h3>
+
+<table class="standard-table">
+ <caption>keyCode values of each browser's keydown event caused by modifier keys:</caption>
+ <thead>
+ <tr>
+ <th colspan="1" rowspan="2" scope="row">{{domxref("KeyboardEvent.code")}}</th>
+ <th scope="col">Internet Explorer 11</th>
+ <th colspan="2" rowspan="1" scope="col">Google Chrome 34</th>
+ <th scope="col">Chromium 34</th>
+ <th scope="col">Safari 7</th>
+ <th colspan="3" rowspan="1" scope="col">Gecko 29</th>
+ </tr>
+ <tr>
+ <th scope="col">Windows</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ </tr>
+ </thead>
+ <tfoot>
+ <tr>
+ <th colspan="1" rowspan="2" scope="row">{{domxref("KeyboardEvent.code")}}</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ </tr>
+ <tr>
+ <th scope="col">Internet Explorer 11</th>
+ <th colspan="2" rowspan="1" scope="col">Google Chrome 34</th>
+ <th scope="col">Chromium 34</th>
+ <th scope="col">Safari 7</th>
+ <th colspan="3" rowspan="1" scope="col">Gecko 29</th>
+ </tr>
+ </tfoot>
+ <tbody>
+ <tr>
+ <th scope="row"><code>"AltLeft"</code></th>
+ <td><code>0x12 (18)</code></td>
+ <td><code>0x12 (18)</code></td>
+ <td><code>0x12 (18)</code></td>
+ <td><code>0x12 (18)</code></td>
+ <td><code>0x12 (18)</code></td>
+ <td><code>0x12 (18)</code></td>
+ <td><code>0x12 (18)</code></td>
+ <td><code>0x12 (18)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"AltRight"</code></th>
+ <td><code>0x12 (18)</code></td>
+ <td><code>0x12 (18)</code></td>
+ <td><code>0x12 (18)</code></td>
+ <td><code>0x12 (18)</code></td>
+ <td><code>0x12 (18)</code></td>
+ <td><code>0x12 (18)</code></td>
+ <td><code>0x12 (18)</code></td>
+ <td><code>0x12 (18)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"AltRight"</code> when it's <code>"AltGraph"</code> key</th>
+ <td>*1</td>
+ <td>*1</td>
+ <td style="background-color: rgb(153, 153, 153);">N/A</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xE1 (225)</code></td>
+ <td style="background-color: rgb(153, 153, 153);">N/A</td>
+ <td>*1</td>
+ <td style="background-color: rgb(153, 153, 153);">N/A</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xE1 (225)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"CapsLock"</code></th>
+ <td><code>0x14 (20)</code> *2</td>
+ <td><code>0x14 (20)</code> *2</td>
+ <td><code>0x14 (20)</code></td>
+ <td><code>0x14 (20)</code></td>
+ <td><code>0x14 (20)</code></td>
+ <td><code>0x14 (20)</code> *2</td>
+ <td><code>0x14 (20)</code></td>
+ <td><code>0x14 (20)</code> *3</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"ControlLeft"</code></th>
+ <td><code>0x11 (17)</code></td>
+ <td><code>0x11 (17)</code></td>
+ <td><code>0x11 (17)</code></td>
+ <td><code>0x11 (17)</code></td>
+ <td><code>0x11 (17)</code></td>
+ <td><code>0x11 (17)</code></td>
+ <td><code>0x11 (17)</code></td>
+ <td><code>0x11 (17)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"ControlRight"</code></th>
+ <td><code>0x11 (17)</code></td>
+ <td><code>0x11 (17)</code></td>
+ <td><code>0x11 (17)</code></td>
+ <td><code>0x11 (17)</code></td>
+ <td><code>0x11 (17)</code></td>
+ <td><code>0x11 (17)</code></td>
+ <td><code>0x11 (17)</code></td>
+ <td><code>0x11 (17)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"OSLeft"</code></th>
+ <td><code>0x5B (91)</code></td>
+ <td><code>0x5B (91)</code></td>
+ <td><code>0x5B (91)</code></td>
+ <td><code>0x5B (91)</code></td>
+ <td><code>0x5B (91)</code></td>
+ <td><code>0x5B (91)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xE0 (224)</code></td>
+ <td><code>0x5B (91)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"OSRight"</code></th>
+ <td><code>0x5C (92)</code></td>
+ <td><code>0x5C (92)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x5D (93)</code></td>
+ <td><code>0x5C (92)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x5D (93)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x5B (91)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xE0 (224)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x5B (91)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"ShiftLeft"</code></th>
+ <td><code>0x10 (16)</code></td>
+ <td><code>0x10 (16)</code></td>
+ <td><code>0x10 (16)</code></td>
+ <td><code>0x10 (16)</code></td>
+ <td><code>0x10 (16)</code></td>
+ <td><code>0x10 (16)</code></td>
+ <td><code>0x10 (16)</code></td>
+ <td><code>0x10 (16)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"ShiftRight"</code></th>
+ <td><code>0x10 (16)</code></td>
+ <td><code>0x10 (16)</code></td>
+ <td><code>0x10 (16)</code></td>
+ <td><code>0x10 (16)</code></td>
+ <td><code>0x10 (16)</code></td>
+ <td><code>0x10 (16)</code></td>
+ <td><code>0x10 (16)</code></td>
+ <td><code>0x10 (16)</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<p>*1 On Windows, <code>"AltGraph"</code> key causes <code>"ControlLeft"</code> key event and <code>"AltRight"</code> key event.</p>
+
+<p>*2 When Japanese keyboard layout is active, <code>"CapsLock"</code> key without <kbd>Shift</kbd> causes <code>0xF0 (240)</code>. The key works as <code>"Alphanumeric"</code> key whose label is "英数".</p>
+
+<p>*3 When Japanese keyboard layout is active, <code>"CapsLock"</code> key without <kbd>Shift</kbd> causes <code>0x00 (0)</code>. The key works as <code>"Alphanumeric"</code> key whose label is <code>"英数"</code>.</p>
+
+<table class="standard-table">
+ <caption>keyCode values of each browser's keydown event caused by non-printable keys:</caption>
+ <thead>
+ <tr>
+ <th colspan="1" rowspan="2" scope="row">{{domxref("KeyboardEvent.code")}}</th>
+ <th scope="col">Internet Explorer 11</th>
+ <th colspan="2" rowspan="1" scope="col">Google Chrome 34</th>
+ <th scope="col">Chromium 34</th>
+ <th scope="col">Safari 7</th>
+ <th colspan="3" rowspan="1" scope="col">Gecko 29</th>
+ </tr>
+ <tr>
+ <th scope="col">Windows</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ </tr>
+ </thead>
+ <tfoot>
+ <tr>
+ <th colspan="1" rowspan="2" scope="row">{{domxref("KeyboardEvent.code")}}</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ </tr>
+ <tr>
+ <th scope="col">Internet Explorer 11</th>
+ <th colspan="2" rowspan="1" scope="col">Google Chrome 34</th>
+ <th scope="col">Chromium 34</th>
+ <th scope="col">Safari 7</th>
+ <th colspan="3" rowspan="1" scope="col">Gecko 29</th>
+ </tr>
+ </tfoot>
+ <tbody>
+ <tr>
+ <th scope="row"><code>"ContextMenu"</code></th>
+ <td><code>0x5D (93)</code></td>
+ <td><code>0x5D (93)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *1</td>
+ <td><code>0x5D (93)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *1</td>
+ <td><code>0x5D (93)</code></td>
+ <td><code>0x5D (93)</code></td>
+ <td><code>0x5D (93)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Enter"</code></th>
+ <td><code>0x0D (13)</code></td>
+ <td><code>0x0D (13)</code></td>
+ <td><code>0x0D (13)</code></td>
+ <td><code>0x0D (13)</code></td>
+ <td><code>0x0D (13)</code></td>
+ <td><code>0x0D (13)</code></td>
+ <td><code>0x0D (13)</code></td>
+ <td><code>0x0D (13)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Space"</code></th>
+ <td><code>0x20 (32)</code></td>
+ <td><code>0x20 (32)</code></td>
+ <td><code>0x20 (32)</code></td>
+ <td><code>0x20 (32)</code></td>
+ <td><code>0x20 (32)</code></td>
+ <td><code>0x20 (32)</code></td>
+ <td><code>0x20 (32)</code></td>
+ <td><code>0x20 (32)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Tab"</code></th>
+ <td><code>0x09 (9)</code></td>
+ <td><code>0x09 (9)</code></td>
+ <td><code>0x09 (9)</code></td>
+ <td><code>0x09 (9)</code></td>
+ <td><code>0x09 (9)</code></td>
+ <td><code>0x09 (9)</code></td>
+ <td><code>0x09 (9)</code></td>
+ <td><code>0x09 (9)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Delete"</code></th>
+ <td><code>0x2E (46)</code></td>
+ <td><code>0x2E (46)</code></td>
+ <td><code>0x2E (46)</code></td>
+ <td><code>0x2E (46)</code></td>
+ <td><code>0x2E (46)</code></td>
+ <td><code>0x2E (46)</code></td>
+ <td><code>0x2E (46)</code></td>
+ <td><code>0x2E (46)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"End"</code></th>
+ <td><code>0x23 (35)</code></td>
+ <td><code>0x23 (35)</code></td>
+ <td><code>0x23 (35)</code></td>
+ <td><code>0x23 (35)</code></td>
+ <td><code>0x23 (35)</code></td>
+ <td><code>0x23 (35)</code></td>
+ <td><code>0x23 (35)</code></td>
+ <td><code>0x23 (35)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Help"</code></th>
+ <td style="background-color: rgb(153, 153, 153);">N/A</td>
+ <td style="background-color: rgb(153, 153, 153);">N/A</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x2D (45)</code> *2</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x2F (47)</code> *3</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x2D (45)</code> *2</td>
+ <td style="background-color: rgb(153, 153, 153);">N/A</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x2D (45)</code> *2</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x06 (6)</code> *3</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Home"</code></th>
+ <td><code>0x24 (36)</code></td>
+ <td><code>0x24 (36)</code></td>
+ <td><code>0x24 (36)</code></td>
+ <td><code>0x24 (36)</code></td>
+ <td><code>0x24 (36)</code></td>
+ <td><code>0x24 (36)</code></td>
+ <td><code>0x24 (36)</code></td>
+ <td><code>0x24 (36)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Insert"</code></th>
+ <td><code>0x2D (45)</code></td>
+ <td><code>0x2D (45)</code></td>
+ <td><code>0x2D (45)</code></td>
+ <td><code>0x2D (45)</code></td>
+ <td><code>0x2D (45)</code></td>
+ <td><code>0x2D (45)</code></td>
+ <td><code>0x2D (45)</code></td>
+ <td><code>0x2D (45)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"PageDown"</code></th>
+ <td><code>0x22 (34)</code></td>
+ <td><code>0x22 (34)</code></td>
+ <td><code>0x22 (34)</code></td>
+ <td><code>0x22 (34)</code></td>
+ <td><code>0x22 (34)</code></td>
+ <td><code>0x22 (34)</code></td>
+ <td><code>0x22 (34)</code></td>
+ <td><code>0x22 (34)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"PageUp"</code></th>
+ <td><code>0x21 (33)</code></td>
+ <td><code>0x21 (33)</code></td>
+ <td><code>0x21 (33)</code></td>
+ <td><code>0x21 (33)</code></td>
+ <td><code>0x21 (33)</code></td>
+ <td><code>0x21 (33)</code></td>
+ <td><code>0x21 (33)</code></td>
+ <td><code>0x21 (33)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"ArrowDown"</code></th>
+ <td><code>0x28 (40)</code></td>
+ <td><code>0x28 (40)</code></td>
+ <td><code>0x28 (40)</code></td>
+ <td><code>0x28 (40)</code></td>
+ <td><code>0x28 (40)</code></td>
+ <td><code>0x28 (40)</code></td>
+ <td><code>0x28 (40)</code></td>
+ <td><code>0x28 (40)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"ArrowLeft"</code></th>
+ <td><code>0x25 (37)</code></td>
+ <td><code>0x25 (37)</code></td>
+ <td><code>0x25 (37)</code></td>
+ <td><code>0x25 (37)</code></td>
+ <td><code>0x25 (37)</code></td>
+ <td><code>0x25 (37)</code></td>
+ <td><code>0x25 (37)</code></td>
+ <td><code>0x25 (37)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"ArrowRight"</code></th>
+ <td><code>0x27 (39)</code></td>
+ <td><code>0x27 (39)</code></td>
+ <td><code>0x27 (39)</code></td>
+ <td><code>0x27 (39)</code></td>
+ <td><code>0x27 (39)</code></td>
+ <td><code>0x27 (39)</code></td>
+ <td><code>0x27 (39)</code></td>
+ <td><code>0x27 (39)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"ArrowUp"</code></th>
+ <td><code>0x26 (38)</code></td>
+ <td><code>0x26 (38)</code></td>
+ <td><code>0x26 (38)</code></td>
+ <td><code>0x26 (38)</code></td>
+ <td><code>0x26 (38)</code></td>
+ <td><code>0x26 (38)</code></td>
+ <td><code>0x26 (38)</code></td>
+ <td><code>0x26 (38)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Escape"</code></th>
+ <td><code>0x1B (27)</code></td>
+ <td><code>0x1B (27)</code></td>
+ <td><code>0x1B (27)</code></td>
+ <td><code>0x1B (27)</code></td>
+ <td><code>0x1B (27)</code></td>
+ <td><code>0x1B (27)</code></td>
+ <td><code>0x1B (27)</code></td>
+ <td><code>0x1B (27)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"PrintScreen"</code></th>
+ <td><code>0x2C (44)</code> *4</td>
+ <td><code>0x2C (44)</code> *4</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x7C (124)</code>*5</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x2A (42)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x7C (124)</code>*5</td>
+ <td><code>0x2C (44)</code> *4</td>
+ <td><code>0x2C (44)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x2A (42)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"ScrollLock"</code></th>
+ <td><code>0x91 (145)</code></td>
+ <td><code>0x91 (145)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x7D (125)</code>*5</td>
+ <td><code>0x91 (145)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x7D (125)</code>*5</td>
+ <td><code>0x91 (145)</code></td>
+ <td><code>0x91 (145)</code></td>
+ <td><code>0x91 (145)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Pause"</code></th>
+ <td><code>0x13 (19)</code> *6</td>
+ <td><code>0x13 (19)</code> *6</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x7E (126)</code>*5</td>
+ <td><code>0x13 (19)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x7E (126)</code>*5</td>
+ <td><code>0x13 (19)</code> *6</td>
+ <td><code>0x13 (19)</code></td>
+ <td><code>0x13 (19)</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<p>*1 keypress event is fired whose <code>keyCode</code> and <code>charCode</code> are <code>0x10 (16)</code> but text isn't inputted into editor.</p>
+
+<p>*2 On Mac, <code>"Help"</code> key is mapped to <code>"Insert"</code> key of PC keyboard. These <code>keyCode</code> values are the same as the <code>"Insert"</code> key's <code>keyCode</code> value.</p>
+
+<p>*3 Tested on Fedora 20.</p>
+
+<p>*4 Only <code>keyup</code> event is fired.</p>
+
+<p>*5 PC's <code>"PrintScreen"</code>, <code>"ScrollLock"</code> and <code>"Pause"</code> are mapped to Mac's <code>"F13"</code>, <code>"F14"</code> and <code>"F15"</code>. Chrome and Safari map same <code>keyCode</code> values with Mac's keys.</p>
+
+<p>*6 <code>"Pause"</code> key with <kbd>Control</kbd> causes <code>0x03 (3)</code>.</p>
+
+<table class="standard-table">
+ <caption>keyCode values of each browser's keydown event caused by function keys:</caption>
+ <thead>
+ <tr>
+ <th colspan="1" rowspan="2" scope="row">{{domxref("KeyboardEvent.code")}}</th>
+ <th scope="col">Internet Explorer 11</th>
+ <th colspan="2" rowspan="1" scope="col">Google Chrome 34</th>
+ <th scope="col">Chromium 34</th>
+ <th scope="col">Safari 7</th>
+ <th colspan="3" rowspan="1" scope="col">Gecko 29</th>
+ </tr>
+ <tr>
+ <th scope="col">Windows</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ </tr>
+ </thead>
+ <tfoot>
+ <tr>
+ <th colspan="1" rowspan="2" scope="row">{{domxref("KeyboardEvent.code")}}</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ </tr>
+ <tr>
+ <th scope="col">Internet Explorer 11</th>
+ <th colspan="2" rowspan="1" scope="col">Google Chrome 34</th>
+ <th scope="col">Chromium 34</th>
+ <th scope="col">Safari 7</th>
+ <th colspan="3" rowspan="1" scope="col">Gecko 29</th>
+ </tr>
+ </tfoot>
+ <tbody>
+ <tr>
+ <th scope="row"><code>"F1"</code></th>
+ <td><code>0x70 (112)</code></td>
+ <td><code>0x70 (112)</code></td>
+ <td><code>0x70 (112)</code></td>
+ <td><code>0x70 (112)</code></td>
+ <td><code>0x70 (112)</code></td>
+ <td><code>0x70 (112)</code></td>
+ <td><code>0x70 (112)</code></td>
+ <td><code>0x70 (112)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F2"</code></th>
+ <td><code>0x71 (113)</code></td>
+ <td><code>0x71 (113)</code></td>
+ <td><code>0x71 (113)</code></td>
+ <td><code>0x71 (113)</code></td>
+ <td><code>0x71 (113)</code></td>
+ <td><code>0x71 (113)</code></td>
+ <td><code>0x71 (113)</code></td>
+ <td><code>0x71 (113)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F3"</code></th>
+ <td><code>0x72 (114)</code></td>
+ <td><code>0x72 (114)</code></td>
+ <td><code>0x72 (114)</code></td>
+ <td><code>0x72 (114)</code></td>
+ <td><code>0x72 (114)</code></td>
+ <td><code>0x72 (114)</code></td>
+ <td><code>0x72 (114)</code></td>
+ <td><code>0x72 (114)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F4"</code></th>
+ <td><code>0x73 (115)</code></td>
+ <td><code>0x73 (115)</code></td>
+ <td><code>0x73 (115)</code></td>
+ <td><code>0x73 (115)</code></td>
+ <td><code>0x73 (115)</code></td>
+ <td><code>0x73 (115)</code></td>
+ <td><code>0x73 (115)</code></td>
+ <td><code>0x73 (115)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F5"</code></th>
+ <td><code>0x74 (116)</code></td>
+ <td><code>0x74 (116)</code></td>
+ <td><code>0x74 (116)</code></td>
+ <td><code>0x74 (116)</code></td>
+ <td><code>0x74 (116)</code></td>
+ <td><code>0x74 (116)</code></td>
+ <td><code>0x74 (116)</code></td>
+ <td><code>0x74 (116)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F6"</code></th>
+ <td><code>0x75 (117)</code></td>
+ <td><code>0x75 (117)</code></td>
+ <td><code>0x75 (117)</code></td>
+ <td><code>0x75 (117)</code></td>
+ <td><code>0x75 (117)</code></td>
+ <td><code>0x75 (117)</code></td>
+ <td><code>0x75 (117)</code></td>
+ <td><code>0x75 (117)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F7"</code></th>
+ <td><code>0x76 (118)</code></td>
+ <td><code>0x76 (118)</code></td>
+ <td><code>0x76 (118)</code></td>
+ <td><code>0x76 (118)</code></td>
+ <td><code>0x76 (118)</code></td>
+ <td><code>0x76 (118)</code></td>
+ <td><code>0x76 (118)</code></td>
+ <td><code>0x76 (118)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F8"</code></th>
+ <td><code>0x77 (119)</code></td>
+ <td><code>0x77 (119)</code></td>
+ <td><code>0x77 (119)</code></td>
+ <td><code>0x77 (119)</code></td>
+ <td><code>0x77 (119)</code></td>
+ <td><code>0x77 (119)</code></td>
+ <td><code>0x77 (119)</code></td>
+ <td><code>0x77 (119)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F9"</code></th>
+ <td><code>0x78 (120)</code></td>
+ <td><code>0x78 (120)</code></td>
+ <td><code>0x78 (120)</code></td>
+ <td><code>0x78 (120)</code></td>
+ <td><code>0x78 (120)</code></td>
+ <td><code>0x78 (120)</code></td>
+ <td><code>0x78 (120)</code></td>
+ <td><code>0x78 (120)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F10"</code></th>
+ <td><code>0x79 (121)</code></td>
+ <td><code>0x79 (121)</code></td>
+ <td><code>0x79 (121)</code></td>
+ <td><code>0x79 (121)</code></td>
+ <td><code>0x79 (121)</code></td>
+ <td><code>0x79 (121)</code></td>
+ <td><code>0x79 (121)</code></td>
+ <td><code>0x79 (121)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F11"</code></th>
+ <td><code>0x7A (122)</code></td>
+ <td><code>0x7A (122)</code></td>
+ <td><code>0x7A (122)</code></td>
+ <td><code>0x7A (122)</code></td>
+ <td><code>0x7A (122)</code></td>
+ <td><code>0x7A (122)</code></td>
+ <td><code>0x7A (122)</code></td>
+ <td><code>0x7A (122)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F12"</code></th>
+ <td><code>0x7B (123)</code></td>
+ <td><code>0x7B (123)</code></td>
+ <td><code>0x7B (123)</code></td>
+ <td><code>0x7B (123)</code></td>
+ <td><code>0x7B (123)</code></td>
+ <td><code>0x7B (123)</code></td>
+ <td><code>0x7B (123)</code></td>
+ <td><code>0x7B (123)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F13"</code></th>
+ <td><code>0x7C (124)</code></td>
+ <td><code>0x7C (124)</code></td>
+ <td><code>0x7C (124)</code></td>
+ <td><code>0x7C (124)</code> *1</td>
+ <td><code>0x7C (124)</code></td>
+ <td><code>0x7C (124)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x2C (44)</code> *2</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *3</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F14"</code></th>
+ <td><code>0x7D (125)</code></td>
+ <td><code>0x7D (125)</code></td>
+ <td><code>0x7D (125)</code></td>
+ <td><code>0x7D (125)</code> *1</td>
+ <td><code>0x7D (125)</code></td>
+ <td><code>0x7D (125)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x91 (145)</code> *2</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *3</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F15"</code></th>
+ <td><code>0x7E (126)</code></td>
+ <td><code>0x7E (126)</code></td>
+ <td><code>0x7E (126)</code></td>
+ <td><code>0x7E (126)</code> *1</td>
+ <td><code>0x7E (126)</code></td>
+ <td><code>0x7E (126)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x13 (19)</code> *2</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *3</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F16"</code></th>
+ <td><code>0x7F (127)</code></td>
+ <td><code>0x7F (127)</code></td>
+ <td><code>0x7F (127)</code></td>
+ <td><code>0x7F (127)</code> *1</td>
+ <td><code>0x7F (127)</code></td>
+ <td><code>0x7F (127)</code></td>
+ <td><code>0x7F (127)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *3</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F17"</code></th>
+ <td><code>0x80 (128)</code></td>
+ <td><code>0x80 (128)</code></td>
+ <td><code>0x80 (128)</code></td>
+ <td><code>0x80 (128)</code> *1</td>
+ <td><code>0x80 (128)</code></td>
+ <td><code>0x80 (128)</code></td>
+ <td><code>0x80 (128)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *3</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F18"</code></th>
+ <td><code>0x81 (129)</code></td>
+ <td><code>0x81 (129)</code></td>
+ <td><code>0x81 (129)</code></td>
+ <td><code>0x81 (129)</code> *1</td>
+ <td><code>0x81 (129)</code></td>
+ <td><code>0x81 (129)</code></td>
+ <td><code>0x81 (129)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *3</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F19"</code></th>
+ <td><code>0x82 (130)</code></td>
+ <td><code>0x82 (130)</code></td>
+ <td><code>0x82 (130)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>N/A</code> *4</td>
+ <td><code>0x82 (130)</code></td>
+ <td><code>0x82 (130)</code></td>
+ <td><code>0x82 (130)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *3</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F20"</code></th>
+ <td><code>0x83 (131)</code></td>
+ <td><code>0x83 (131)</code></td>
+ <td><code>0x83 (131)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>N/A</code> *4</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xE5 (229)</code> *5</td>
+ <td><code>0x83 (131)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>N/A</code> *6</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F21"</code></th>
+ <td><code>0x84 (132)</code></td>
+ <td><code>0x84 (132)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *7</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>N/A</code> *4</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *7</td>
+ <td><code>0x84 (132)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>N/A</code> *8</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>N/A</code> *6</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F22"</code></th>
+ <td><code>0x85 (133)</code></td>
+ <td><code>0x85 (133)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *7</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>N/A</code> *4</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *7</td>
+ <td><code>0x85 (133)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>N/A</code> *8</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>N/A</code> *6</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F23"</code></th>
+ <td><code>0x86 (134)</code></td>
+ <td><code>0x86 (134)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *7</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>N/A</code> *4</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *7</td>
+ <td><code>0x86 (134)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>N/A</code> *8</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>N/A</code> *6</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"F24"</code></th>
+ <td><code>0x87 (135)</code></td>
+ <td><code>0x87 (135)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *7</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>N/A</code> *4</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *7</td>
+ <td><code>0x87 (135)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>N/A</code> *8</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x00 (0)</code> *3</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>*1 Tested on Fedora 20.</p>
+
+<p>*2 PC's <code>"PrintScreen"</code>, <code>"ScrollLock"</code> and <code>"Pause"</code> are mapped to <code>Mac's "F13"</code>, <code>"F14"</code> and <code>"F15"</code>. Firefox maps same <code>keyCode</code> values with PC's keys.</p>
+
+<p>*3 Tested on Fedora 20. The keys don't cause <code>GDK_Fxx</code> keysyms. If the keys cause proper keysyms, these values must be same as IE.</p>
+
+<p>*4 Tested on Fedora 20. The keys don't cause DOM key events on Chromium.</p>
+
+<p>*5 <code>keyUp</code> event's keyCode value is <code>0x83 (131)</code>.</p>
+
+<p>*6 Tested on Fedora 20. The keys don't cause DOM key events on Firefox.</p>
+
+<p>*7 Only <code>keydown</code> event is fired.</p>
+
+<p>*8 No DOM key events are fired on Firefox.</p>
+
+<h3 id="Numpad_keys">Numpad keys</h3>
+
+<table class="standard-table">
+ <caption>keyCode values of each browser's keydown event caused by keys in numpad in NumLock state</caption>
+ <thead>
+ <tr>
+ <th colspan="1" rowspan="2" scope="row">{{domxref("KeyboardEvent.code")}}</th>
+ <th scope="col">Internet Explorer 11</th>
+ <th colspan="2" rowspan="1" scope="col">Google Chrome 34</th>
+ <th scope="col">Chromium 34</th>
+ <th scope="col">Safari 7</th>
+ <th colspan="3" rowspan="1" scope="col">Gecko 29</th>
+ </tr>
+ <tr>
+ <th scope="col">Windows</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ </tr>
+ </thead>
+ <tfoot>
+ <tr>
+ <th colspan="1" rowspan="2" scope="row">{{domxref("KeyboardEvent.code")}}</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Mac (10.9)</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ </tr>
+ <tr>
+ <th scope="col">Internet Explorer 11</th>
+ <th colspan="2" rowspan="1" scope="col">Google Chrome 34</th>
+ <th scope="col">Chromium 34</th>
+ <th scope="col">Safari 7</th>
+ <th colspan="3" rowspan="1" scope="col">Gecko 29</th>
+ </tr>
+ </tfoot>
+ <tbody>
+ <tr>
+ <th scope="row"><code>"NumLock"</code></th>
+ <td><code>0x90 (144)</code></td>
+ <td><code>0x90 (144)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x0C (12)</code> *1</td>
+ <td><code>0x90 (144)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x0C (12)</code> *1</td>
+ <td><code>0x90 (144)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x0C (12)</code> *1</td>
+ <td><code>0x90 (144)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad0"</code></th>
+ <td><code>0x60 (96)</code></td>
+ <td><code>0x60 (96)</code></td>
+ <td><code>0x60 (96)</code></td>
+ <td><code>0x60 (96)</code></td>
+ <td><code>0x60 (96)</code></td>
+ <td><code>0x60 (96)</code></td>
+ <td><code>0x60 (96)</code></td>
+ <td><code>0x60 (96)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad1"</code></th>
+ <td><code>0x61 (97)</code></td>
+ <td><code>0x61 (97)</code></td>
+ <td><code>0x61 (97)</code></td>
+ <td><code>0x61 (97)</code></td>
+ <td><code>0x61 (97)</code></td>
+ <td><code>0x61 (97)</code></td>
+ <td><code>0x61 (97)</code></td>
+ <td><code>0x61 (97)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad2"</code></th>
+ <td><code>0x62 (98)</code></td>
+ <td><code>0x62 (98)</code></td>
+ <td><code>0x62 (98)</code></td>
+ <td><code>0x62 (98)</code></td>
+ <td><code>0x62 (98)</code></td>
+ <td><code>0x62 (98)</code></td>
+ <td><code>0x62 (98)</code></td>
+ <td><code>0x62 (98)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad3"</code></th>
+ <td><code>0x63 (99)</code></td>
+ <td><code>0x63 (99)</code></td>
+ <td><code>0x63 (99)</code></td>
+ <td><code>0x63 (99)</code></td>
+ <td><code>0x63 (99)</code></td>
+ <td><code>0x63 (99)</code></td>
+ <td><code>0x63 (99)</code></td>
+ <td><code>0x63 (99)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad4"</code></th>
+ <td><code>0x64 (100)</code></td>
+ <td><code>0x64 (100)</code></td>
+ <td><code>0x64 (100)</code></td>
+ <td><code>0x64 (100)</code></td>
+ <td><code>0x64 (100)</code></td>
+ <td><code>0x64 (100)</code></td>
+ <td><code>0x64 (100)</code></td>
+ <td><code>0x64 (100)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad5"</code></th>
+ <td><code>0x65 (101)</code></td>
+ <td><code>0x65 (101)</code></td>
+ <td><code>0x65 (101)</code></td>
+ <td><code>0x65 (101)</code></td>
+ <td><code>0x65 (101)</code></td>
+ <td><code>0x65 (101)</code></td>
+ <td><code>0x65 (101)</code></td>
+ <td><code>0x65 (101)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad6"</code></th>
+ <td><code>0x66 (102)</code></td>
+ <td><code>0x66 (102)</code></td>
+ <td><code>0x66 (102)</code></td>
+ <td><code>0x66 (102)</code></td>
+ <td><code>0x66 (102)</code></td>
+ <td><code>0x66 (102)</code></td>
+ <td><code>0x66 (102)</code></td>
+ <td><code>0x66 (102)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad7"</code></th>
+ <td><code>0x67 (103)</code></td>
+ <td><code>0x67 (103)</code></td>
+ <td><code>0x67 (103)</code></td>
+ <td><code>0x67 (103)</code></td>
+ <td><code>0x67 (103)</code></td>
+ <td><code>0x67 (103)</code></td>
+ <td><code>0x67 (103)</code></td>
+ <td><code>0x67 (103)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad8"</code></th>
+ <td><code>0x68 (104)</code></td>
+ <td><code>0x68 (104)</code></td>
+ <td><code>0x68 (104)</code></td>
+ <td><code>0x68 (104)</code></td>
+ <td><code>0x68 (104)</code></td>
+ <td><code>0x68 (104)</code></td>
+ <td><code>0x68 (104)</code></td>
+ <td><code>0x68 (104)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad9"</code></th>
+ <td><code>0x69 (105)</code></td>
+ <td><code>0x69 (105)</code></td>
+ <td><code>0x69 (105)</code></td>
+ <td><code>0x69 (105)</code></td>
+ <td><code>0x69 (105)</code></td>
+ <td><code>0x69 (105)</code></td>
+ <td><code>0x69 (105)</code></td>
+ <td><code>0x69 (105)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"NumpadAdd"</code></th>
+ <td><code>0x6B (107)</code></td>
+ <td><code>0x6B (107)</code></td>
+ <td><code>0x6B (107)</code></td>
+ <td><code>0x6B (107)</code></td>
+ <td><code>0x6B (107)</code></td>
+ <td><code>0x6B (107)</code></td>
+ <td><code>0x6B (107)</code></td>
+ <td><code>0x6B (107)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"NumpadComma"</code> inputting <code>","</code></th>
+ <td><code>0xC2 (194)</code></td>
+ <td><code>0xC2 (194)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xBC (188)</code></td>
+ <td style="background-color: rgb(153, 153, 153);"><code>Always inputs </code>"."</td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xBC (188)</code></td>
+ <td><code>0xC2 (194)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x6C (108)</code></td>
+ <td style="background-color: rgb(153, 153, 153);"><code>Always inputs </code>"."</td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"NumpadComma"</code> inputting <code>"."</code> or empty string</th>
+ <td><code>0xC2 (194)</code></td>
+ <td><code>0xC2 (194)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xBE (190)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x6E (110)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xBE (190)</code></td>
+ <td><code>0xC2 (194)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x6C (108)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x6E (110)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"NumpadDecimal"</code> inputting <code>"."</code></th>
+ <td><code>0x6E (110)</code></td>
+ <td><code>0x6E (110)</code></td>
+ <td><code>0x6E (110)</code></td>
+ <td><code>0x6E (110)</code></td>
+ <td><code>0x6E (110)</code></td>
+ <td><code>0x6E (110)</code></td>
+ <td><code>0x6E (110)</code></td>
+ <td><code>0x6E (110)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"NumpadDecimal"</code> inputting <code>","</code></th>
+ <td><code>0x6E (110)</code></td>
+ <td><code>0x6E (110)</code></td>
+ <td><code>0x6E (110)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x6C (108)</code></td>
+ <td><code>0x6E (110)</code></td>
+ <td><code>0x6E (110)</code></td>
+ <td><code>0x6E (110)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x6C (108)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"NumpadDivide"</code></th>
+ <td><code>0x6F (111)</code></td>
+ <td><code>0x6F (111)</code></td>
+ <td><code>0x6F (111)</code></td>
+ <td><code>0x6F (111)</code></td>
+ <td><code>0x6F (111)</code></td>
+ <td><code>0x6F (111)</code></td>
+ <td><code>0x6F (111)</code></td>
+ <td><code>0x6F (111)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"NumpadEnter"</code></th>
+ <td><code>0x0D (13)</code></td>
+ <td><code>0x0D (13)</code></td>
+ <td><code>0x0D (13)</code></td>
+ <td><code>0x0D (13)</code></td>
+ <td><code>0x0D (13)</code></td>
+ <td><code>0x0D (13)</code></td>
+ <td><code>0x0D (13)</code></td>
+ <td><code>0x0D (13)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"NumpadEqual"</code></th>
+ <td><code>0x0C (12)</code></td>
+ <td><code>0x0C (12)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xBB (187)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xBB (187)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0xBB (187)</code></td>
+ <td><code>0x0C (12)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x3D (61)</code></td>
+ <td style="background-color: rgb(255, 255, 204);"><code>0x3D (61)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"NumpadMultiply"</code></th>
+ <td><code>0x6A (106)</code></td>
+ <td><code>0x6A (106)</code></td>
+ <td><code>0x6A (106)</code></td>
+ <td><code>0x6A (106)</code></td>
+ <td><code>0x6A (106)</code></td>
+ <td><code>0x6A (106)</code></td>
+ <td><code>0x6A (106)</code></td>
+ <td><code>0x6A (106)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"NumpadSubtract"</code></th>
+ <td><code>0x6D (109)</code></td>
+ <td><code>0x6D (109)</code></td>
+ <td><code>0x6D (109)</code></td>
+ <td><code>0x6D (109)</code></td>
+ <td><code>0x6D (109)</code></td>
+ <td><code>0x6D (109)</code></td>
+ <td><code>0x6D (109)</code></td>
+ <td><code>0x6D (109)</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<p>*1 <code>"NumLock"</code> key works as <code>"Clear"</code> key on Mac.</p>
+
+<table class="standard-table">
+ <caption>keyCode values of each browser's keydown event caused by keys in numpad without NumLock state</caption>
+ <thead>
+ <tr>
+ <th colspan="1" rowspan="2" scope="row">{{domxref("KeyboardEvent.code")}}</th>
+ <th scope="col">Internet Explorer 11</th>
+ <th colspan="1" rowspan="1" scope="col">Google Chrome 34</th>
+ <th scope="col">Chromium 34</th>
+ <th colspan="2" rowspan="1" scope="col">Gecko 29</th>
+ </tr>
+ <tr>
+ <th scope="col">Windows</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ </tr>
+ </thead>
+ <tfoot>
+ <tr>
+ <th colspan="1" rowspan="2" scope="row">{{domxref("KeyboardEvent.code")}}</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ <th scope="col">Windows</th>
+ <th scope="col">Linux (Ubuntu 14.04)</th>
+ </tr>
+ <tr>
+ <th scope="col">Internet Explorer 11</th>
+ <th colspan="1" rowspan="1" scope="col">Google Chrome 34</th>
+ <th scope="col">Chromium 34</th>
+ <th colspan="2" rowspan="1" scope="col">Gecko 29</th>
+ </tr>
+ </tfoot>
+ <tbody>
+ <tr>
+ <th scope="row"><code>"Numpad0"</code> (<code>"Insert"</code>)</th>
+ <td><code>0x2D (45)</code></td>
+ <td><code>0x2D (45)</code></td>
+ <td><code>0x2D (45)</code></td>
+ <td><code>0x2D (45)</code></td>
+ <td><code>0x2D (45)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad1"</code> (<code>"End"</code>)</th>
+ <td><code>0x23 (35)</code></td>
+ <td><code>0x23 (35)</code></td>
+ <td><code>0x23 (35)</code></td>
+ <td><code>0x23 (35)</code></td>
+ <td><code>0x23 (35)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad2"</code> (<code>"ArrowDown"</code>)</th>
+ <td><code>0x28 (40)</code></td>
+ <td><code>0x28 (40)</code></td>
+ <td><code>0x28 (40)</code></td>
+ <td><code>0x28 (40)</code></td>
+ <td><code>0x28 (40)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad3"</code> (<code>"PageDown"</code>)</th>
+ <td><code>0x22 (34)</code></td>
+ <td><code>0x22 (34)</code></td>
+ <td><code>0x22 (34)</code></td>
+ <td><code>0x22 (34)</code></td>
+ <td><code>0x22 (34)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad4"</code> (<code>"ArrowLeft"</code>)</th>
+ <td><code>0x25 (37)</code></td>
+ <td><code>0x25 (37)</code></td>
+ <td><code>0x25 (37)</code></td>
+ <td><code>0x25 (37)</code></td>
+ <td><code>0x25 (37)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad5"</code></th>
+ <td><code>0x0C (12)</code></td>
+ <td><code>0x0C (12)</code></td>
+ <td><code>0x0C (12)</code></td>
+ <td><code>0x0C (12)</code></td>
+ <td><code>0x0C (12)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad6"</code> (<code>"ArrowRight"</code>)</th>
+ <td><code>0x27 (39)</code></td>
+ <td><code>0x27 (39)</code></td>
+ <td><code>0x27 (39)</code></td>
+ <td><code>0x27 (39)</code></td>
+ <td><code>0x27 (39)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad7"</code> (<code>"Home"</code>)</th>
+ <td><code>0x24 (36)</code></td>
+ <td><code>0x24 (36)</code></td>
+ <td><code>0x24 (36)</code></td>
+ <td><code>0x24 (36)</code></td>
+ <td><code>0x24 (36)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad8"</code> (<code>"ArrowUp"</code>)</th>
+ <td><code>0x26 (38)</code></td>
+ <td><code>0x26 (38)</code></td>
+ <td><code>0x26 (38)</code></td>
+ <td><code>0x26 (38)</code></td>
+ <td><code>0x26 (38)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"Numpad9"</code> (<code>"PageUp"</code>)</th>
+ <td><code>0x21 (33)</code></td>
+ <td><code>0x21 (33)</code></td>
+ <td><code>0x21 (33)</code></td>
+ <td><code>0x21 (33)</code></td>
+ <td><code>0x21 (33)</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><code>"NumpadDecimal"</code> (<code>"Delete"</code>)</th>
+ <td><code>0x2E (46)</code></td>
+ <td><code>0x2E (46)</code></td>
+ <td><code>0x2E (46)</code></td>
+ <td><code>0x2E (46)</code></td>
+ <td><code>0x2E (46)</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<p>* Recent Mac doesn't have <code>"NumLock"</code> key and state. Therefore, unlocked state isn't available.</p>
+
+<h2 id="Constants_for_keyCode_value">Constants for keyCode value</h2>
+
+<p>Gecko defines a lot of <code>keyCode</code> values in <code>KeyboardEvent</code> for making the mapping table explicitly. These values are useful for add-on developers of Firefox, but not so useful in public web pages.</p>
+
+<table class="standard-table" style="width: auto;">
+ <tbody>
+ <tr>
+ <td class="header">Constant</td>
+ <td class="header">Value</td>
+ <td class="header">Description</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_CANCEL</code></td>
+ <td style="white-space: nowrap;">0x03 (3)</td>
+ <td>Cancel key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_HELP</code></td>
+ <td style="white-space: nowrap;">0x06 (6)</td>
+ <td>Help key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_BACK_SPACE</code></td>
+ <td style="white-space: nowrap;">0x08 (8)</td>
+ <td>Backspace key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_TAB</code></td>
+ <td style="white-space: nowrap;">0x09 (9)</td>
+ <td>Tab key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_CLEAR</code></td>
+ <td style="white-space: nowrap;">0x0C (12)</td>
+ <td>"5" key on Numpad when NumLock is unlocked. Or on Mac, clear key which is positioned at NumLock key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_RETURN</code></td>
+ <td style="white-space: nowrap;">0x0D (13)</td>
+ <td>Return/enter key on the main keyboard.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_ENTER</code></td>
+ <td style="white-space: nowrap;">0x0E (14)</td>
+ <td>Reserved, but not used. <code> </code><code>{{obsolete_inline(30)}} </code>(Dropped, see {{bug(969247)}}.)</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_SHIFT</code></td>
+ <td style="white-space: nowrap;">0x10 (16)</td>
+ <td>Shift key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_CONTROL</code></td>
+ <td style="white-space: nowrap;">0x11 (17)</td>
+ <td>Control key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_ALT</code></td>
+ <td style="white-space: nowrap;">0x12 (18)</td>
+ <td>Alt (Option on Mac) key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_PAUSE</code></td>
+ <td style="white-space: nowrap;">0x13 (19)</td>
+ <td>Pause key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_CAPS_LOCK</code></td>
+ <td style="white-space: nowrap;">0x14 (20)</td>
+ <td>Caps lock.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_KANA</code></td>
+ <td style="white-space: nowrap;">0x15 (21)</td>
+ <td>Linux support for this keycode was added in Gecko 4.0.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_HANGUL</code></td>
+ <td style="white-space: nowrap;">0x15 (21)</td>
+ <td>Linux support for this keycode was added in Gecko 4.0.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_EISU</code></td>
+ <td style="white-space: nowrap;">0x 16 (22)</td>
+ <td>"英数" key on Japanese Mac keyboard. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_JUNJA</code></td>
+ <td style="white-space: nowrap;">0x17 (23)</td>
+ <td>Linux support for this keycode was added in Gecko 4.0.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_FINAL</code></td>
+ <td style="white-space: nowrap;">0x18 (24)</td>
+ <td>Linux support for this keycode was added in Gecko 4.0.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_HANJA</code></td>
+ <td style="white-space: nowrap;">0x19 (25)</td>
+ <td>Linux support for this keycode was added in Gecko 4.0.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_KANJI</code></td>
+ <td style="white-space: nowrap;">0x19 (25)</td>
+ <td>Linux support for this keycode was added in Gecko 4.0.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_ESCAPE</code></td>
+ <td style="white-space: nowrap;">0x1B (27)</td>
+ <td>Escape key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_CONVERT</code></td>
+ <td style="white-space: nowrap;">0x1C (28)</td>
+ <td>Linux support for this keycode was added in Gecko 4.0.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_NONCONVERT</code></td>
+ <td style="white-space: nowrap;">0x1D (29)</td>
+ <td>Linux support for this keycode was added in Gecko 4.0.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_ACCEPT</code></td>
+ <td style="white-space: nowrap;">0x1E (30)</td>
+ <td>Linux support for this keycode was added in Gecko 4.0.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_MODECHANGE</code></td>
+ <td style="white-space: nowrap;">0x1F (31)</td>
+ <td>Linux support for this keycode was added in Gecko 4.0.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_SPACE</code></td>
+ <td style="white-space: nowrap;">0x20 (32)</td>
+ <td>Space bar.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_PAGE_UP</code></td>
+ <td style="white-space: nowrap;">0x21 (33)</td>
+ <td>Page Up key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_PAGE_DOWN</code></td>
+ <td style="white-space: nowrap;">0x22 (34)</td>
+ <td>Page Down key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_END</code></td>
+ <td style="white-space: nowrap;">0x23 (35)</td>
+ <td>End key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_HOME</code></td>
+ <td style="white-space: nowrap;">0x24 (36)</td>
+ <td>Home key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_LEFT</code></td>
+ <td style="white-space: nowrap;">0x25 (37)</td>
+ <td>Left arrow.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_UP</code></td>
+ <td style="white-space: nowrap;">0x26 (38)</td>
+ <td>Up arrow.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_RIGHT</code></td>
+ <td style="white-space: nowrap;">0x27 (39)</td>
+ <td>Right arrow.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_DOWN</code></td>
+ <td style="white-space: nowrap;">0x28 (40)</td>
+ <td>Down arrow.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_SELECT</code></td>
+ <td style="white-space: nowrap;">0x29 (41)</td>
+ <td>Linux support for this keycode was added in Gecko 4.0.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_PRINT</code></td>
+ <td style="white-space: nowrap;">0x2A (42)</td>
+ <td>Linux support for this keycode was added in Gecko 4.0.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_EXECUTE</code></td>
+ <td style="white-space: nowrap;">0x2B (43)</td>
+ <td>Linux support for this keycode was added in Gecko 4.0.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_PRINTSCREEN</code></td>
+ <td style="white-space: nowrap;">0x2C (44)</td>
+ <td>Print Screen key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_INSERT</code></td>
+ <td style="white-space: nowrap;">0x2D (45)</td>
+ <td>Ins(ert) key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_DELETE</code></td>
+ <td style="white-space: nowrap;">0x2E (46)</td>
+ <td>Del(ete) key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_0</code></td>
+ <td style="white-space: nowrap;">0x30 (48)</td>
+ <td>"0" key in standard key location.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_1</code></td>
+ <td style="white-space: nowrap;">0x31 (49)</td>
+ <td>"1" key in standard key location.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_2</code></td>
+ <td style="white-space: nowrap;">0x32 (50)</td>
+ <td>"2" key in standard key location.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_3</code></td>
+ <td style="white-space: nowrap;">0x33 (51)</td>
+ <td>"3" key in standard key location.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_4</code></td>
+ <td style="white-space: nowrap;">0x34 (52)</td>
+ <td>"4" key in standard key location.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_5</code></td>
+ <td style="white-space: nowrap;">0x35 (53)</td>
+ <td>"5" key in standard key location.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_6</code></td>
+ <td style="white-space: nowrap;">0x36 (54)</td>
+ <td>"6" key in standard key location.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_7</code></td>
+ <td style="white-space: nowrap;">0x37 (55)</td>
+ <td>"7" key in standard key location.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_8</code></td>
+ <td style="white-space: nowrap;">0x38 (56)</td>
+ <td>"8" key in standard key location.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_9</code></td>
+ <td style="white-space: nowrap;">0x39 (57)</td>
+ <td>"9" key in standard key location.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_COLON</code></td>
+ <td style="white-space: nowrap;">0x3A (58)</td>
+ <td>Colon (":") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_SEMICOLON</code></td>
+ <td style="white-space: nowrap;">0x3B (59)</td>
+ <td>Semicolon (";") key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_LESS_THAN</code></td>
+ <td style="white-space: nowrap;">0x3C (60)</td>
+ <td>Less-than ("&lt;") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_EQUALS</code></td>
+ <td style="white-space: nowrap;">0x3D (61)</td>
+ <td>Equals ("=") key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_GREATER_THAN</code></td>
+ <td style="white-space: nowrap;">0x3E (62)</td>
+ <td>Greater-than ("&gt;") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_QUESTION_MARK</code></td>
+ <td style="white-space: nowrap;">0x3F (63)</td>
+ <td>Question mark ("?") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_AT</code></td>
+ <td style="white-space: nowrap;">0x40 (64)</td>
+ <td>Atmark ("@") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_A</code></td>
+ <td style="white-space: nowrap;">0x41 (65)</td>
+ <td>"A" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_B</code></td>
+ <td style="white-space: nowrap;">0x42 (66)</td>
+ <td>"B" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_C</code></td>
+ <td style="white-space: nowrap;">0x43 (67)</td>
+ <td>"C" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_D</code></td>
+ <td style="white-space: nowrap;">0x44 (68)</td>
+ <td>"D" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_E</code></td>
+ <td style="white-space: nowrap;">0x45 (69)</td>
+ <td>"E" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F</code></td>
+ <td style="white-space: nowrap;">0x46 (70)</td>
+ <td>"F" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_G</code></td>
+ <td style="white-space: nowrap;">0x47 (71)</td>
+ <td>"G" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_H</code></td>
+ <td style="white-space: nowrap;">0x48 (72)</td>
+ <td>"H" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_I</code></td>
+ <td style="white-space: nowrap;">0x49 (73)</td>
+ <td>"I" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_J</code></td>
+ <td style="white-space: nowrap;">0x4A (74)</td>
+ <td>"J" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_K</code></td>
+ <td style="white-space: nowrap;">0x4B (75)</td>
+ <td>"K" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_L</code></td>
+ <td style="white-space: nowrap;">0x4C (76)</td>
+ <td>"L" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_M</code></td>
+ <td style="white-space: nowrap;">0x4D (77)</td>
+ <td>"M" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_N</code></td>
+ <td style="white-space: nowrap;">0x4E (78)</td>
+ <td>"N" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_O</code></td>
+ <td style="white-space: nowrap;">0x4F (79)</td>
+ <td>"O" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_P</code></td>
+ <td style="white-space: nowrap;">0x50 (80)</td>
+ <td>"P" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_Q</code></td>
+ <td style="white-space: nowrap;">0x51 (81)</td>
+ <td>"Q" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_R</code></td>
+ <td style="white-space: nowrap;">0x52 (82)</td>
+ <td>"R" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_S</code></td>
+ <td style="white-space: nowrap;">0x53 (83)</td>
+ <td>"S" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_T</code></td>
+ <td style="white-space: nowrap;">0x54 (84)</td>
+ <td>"T" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_U</code></td>
+ <td style="white-space: nowrap;">0x55 (85)</td>
+ <td>"U" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_V</code></td>
+ <td style="white-space: nowrap;">0x56 (86)</td>
+ <td>"V" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_W</code></td>
+ <td style="white-space: nowrap;">0x57 (87)</td>
+ <td>"W" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_X</code></td>
+ <td style="white-space: nowrap;">0x58 (88)</td>
+ <td>"X" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_Y</code></td>
+ <td style="white-space: nowrap;">0x59 (89)</td>
+ <td>"Y" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_Z</code></td>
+ <td style="white-space: nowrap;">0x5A (90)</td>
+ <td>"Z" key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN</code></td>
+ <td style="white-space: nowrap;">0x5B (91)</td>
+ <td>Windows logo key on Windows. Or Super or Hyper key on Linux. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_CONTEXT_MENU</code></td>
+ <td style="white-space: nowrap;">0x5D (93)</td>
+ <td>Opening context menu key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_SLEEP</code></td>
+ <td style="white-space: nowrap;">0x5F (95)</td>
+ <td>Linux support for this keycode was added in Gecko 4.0.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_NUMPAD0</code></td>
+ <td style="white-space: nowrap;">0x60 (96)</td>
+ <td>"0" on the numeric keypad.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_NUMPAD1</code></td>
+ <td style="white-space: nowrap;">0x61 (97)</td>
+ <td>"1" on the numeric keypad.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_NUMPAD2</code></td>
+ <td style="white-space: nowrap;">0x62 (98)</td>
+ <td>"2" on the numeric keypad.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_NUMPAD3</code></td>
+ <td style="white-space: nowrap;">0x63 (99)</td>
+ <td>"3" on the numeric keypad.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_NUMPAD4</code></td>
+ <td style="white-space: nowrap;">0x64 (100)</td>
+ <td>"4" on the numeric keypad.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_NUMPAD5</code></td>
+ <td style="white-space: nowrap;">0x65 (101)</td>
+ <td>"5" on the numeric keypad.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_NUMPAD6</code></td>
+ <td style="white-space: nowrap;">0x66 (102)</td>
+ <td>"6" on the numeric keypad.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_NUMPAD7</code></td>
+ <td style="white-space: nowrap;">0x67 (103)</td>
+ <td>"7" on the numeric keypad.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_NUMPAD8</code></td>
+ <td style="white-space: nowrap;">0x68 (104)</td>
+ <td>"8" on the numeric keypad.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_NUMPAD9</code></td>
+ <td style="white-space: nowrap;">0x69 (105)</td>
+ <td>"9" on the numeric keypad.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_MULTIPLY</code></td>
+ <td style="white-space: nowrap;">0x6A (106)</td>
+ <td>"*" on the numeric keypad.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_ADD</code></td>
+ <td style="white-space: nowrap;">0x6B (107)</td>
+ <td>"+" on the numeric keypad.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_SEPARATOR</code></td>
+ <td style="white-space: nowrap;">0x6C (108)</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_SUBTRACT</code></td>
+ <td style="white-space: nowrap;">0x6D (109)</td>
+ <td>"-" on the numeric keypad.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_DECIMAL</code></td>
+ <td style="white-space: nowrap;">0x6E (110)</td>
+ <td>Decimal point on the numeric keypad.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_DIVIDE</code></td>
+ <td style="white-space: nowrap;">0x6F (111)</td>
+ <td>"/" on the numeric keypad.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F1</code></td>
+ <td style="white-space: nowrap;">0x70 (112)</td>
+ <td>F1 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F2</code></td>
+ <td style="white-space: nowrap;">0x71 (113)</td>
+ <td>F2 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F3</code></td>
+ <td style="white-space: nowrap;">0x72 (114)</td>
+ <td>F3 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F4</code></td>
+ <td style="white-space: nowrap;">0x73 (115)</td>
+ <td>F4 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F5</code></td>
+ <td style="white-space: nowrap;">0x74 (116)</td>
+ <td>F5 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F6</code></td>
+ <td style="white-space: nowrap;">0x75 (117)</td>
+ <td>F6 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F7</code></td>
+ <td style="white-space: nowrap;">0x76 (118)</td>
+ <td>F7 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F8</code></td>
+ <td style="white-space: nowrap;">0x77 (119)</td>
+ <td>F8 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F9</code></td>
+ <td style="white-space: nowrap;">0x78 (120)</td>
+ <td>F9 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F10</code></td>
+ <td style="white-space: nowrap;">0x79 (121)</td>
+ <td>F10 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F11</code></td>
+ <td style="white-space: nowrap;">0x7A (122)</td>
+ <td>F11 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F12</code></td>
+ <td style="white-space: nowrap;">0x7B (123)</td>
+ <td>F12 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F13</code></td>
+ <td style="white-space: nowrap;">0x7C (124)</td>
+ <td>F13 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F14</code></td>
+ <td style="white-space: nowrap;">0x7D (125)</td>
+ <td>F14 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F15</code></td>
+ <td style="white-space: nowrap;">0x7E (126)</td>
+ <td>F15 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F16</code></td>
+ <td style="white-space: nowrap;">0x7F (127)</td>
+ <td>F16 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F17</code></td>
+ <td style="white-space: nowrap;">0x80 (128)</td>
+ <td>F17 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F18</code></td>
+ <td style="white-space: nowrap;">0x81 (129)</td>
+ <td>F18 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F19</code></td>
+ <td style="white-space: nowrap;">0x82 (130)</td>
+ <td>F19 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F20</code></td>
+ <td style="white-space: nowrap;">0x83 (131)</td>
+ <td>F20 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F21</code></td>
+ <td style="white-space: nowrap;">0x84 (132)</td>
+ <td>F21 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F22</code></td>
+ <td style="white-space: nowrap;">0x85 (133)</td>
+ <td>F22 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F23</code></td>
+ <td style="white-space: nowrap;">0x86 (134)</td>
+ <td>F23 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_F24</code></td>
+ <td style="white-space: nowrap;">0x87 (135)</td>
+ <td>F24 key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_NUM_LOCK</code></td>
+ <td style="white-space: nowrap;">0x90 (144)</td>
+ <td>Num Lock key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_SCROLL_LOCK</code></td>
+ <td style="white-space: nowrap;">0x91 (145)</td>
+ <td>Scroll Lock key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_FJ_JISHO</code></td>
+ <td style="white-space: nowrap;">0x92 (146)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for "Dictionary" key on Fujitsu OASYS. {{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_FJ_MASSHOU</code></td>
+ <td style="white-space: nowrap;">0x93 (147)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for "Unregister word" key on Fujitsu OASYS. {{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_FJ_TOUROKU</code></td>
+ <td style="white-space: nowrap;">0x94 (148)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for "Register word" key on Fujitsu OASYS. {{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_FJ_LOYA</code></td>
+ <td style="white-space: nowrap;">0x95 (149)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for "Left OYAYUBI" key on Fujitsu OASYS. {{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_FJ_ROYA</code></td>
+ <td style="white-space: nowrap;">0x96 (150)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for "Right OYAYUBI" key on Fujitsu OASYS. {{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_CIRCUMFLEX</code></td>
+ <td style="white-space: nowrap;">0xA0 (160)</td>
+ <td>Circumflex ("^") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_EXCLAMATION</code></td>
+ <td style="white-space: nowrap;">0xA1 (161)</td>
+ <td>Exclamation ("!") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_DOUBLE_QUOTE</code></td>
+ <td style="white-space: nowrap;">0xA3 (162)</td>
+ <td>Double quote (""") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_HASH</code></td>
+ <td style="white-space: nowrap;">0xA3 (163)</td>
+ <td>Hash ("#") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_DOLLAR</code></td>
+ <td style="white-space: nowrap;">0xA4 (164)</td>
+ <td>Dollar sign ("$") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_PERCENT</code></td>
+ <td style="white-space: nowrap;">0xA5 (165)</td>
+ <td>Percent ("%") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_AMPERSAND</code></td>
+ <td style="white-space: nowrap;">0xA6 (166)</td>
+ <td>Ampersand ("&amp;") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_UNDERSCORE</code></td>
+ <td style="white-space: nowrap;">0xA7 (167)</td>
+ <td>Underscore ("_") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_OPEN_PAREN</code></td>
+ <td style="white-space: nowrap;">0xA8 (168)</td>
+ <td>Open parenthesis ("(") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_CLOSE_PAREN</code></td>
+ <td style="white-space: nowrap;">0xA9 (169)</td>
+ <td>Close parenthesis (")") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_ASTERISK</code></td>
+ <td style="white-space: nowrap;">0xAA (170)</td>
+ <td>Asterisk ("*") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_PLUS</code></td>
+ <td style="white-space: nowrap;">0xAB (171)</td>
+ <td>Plus ("+") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_PIPE</code></td>
+ <td style="white-space: nowrap;">0xAC (172)</td>
+ <td>Pipe ("|") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_HYPHEN_MINUS</code></td>
+ <td style="white-space: nowrap;">0xAD (173)</td>
+ <td>Hyphen-US/docs/Minus ("-") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_OPEN_CURLY_BRACKET</code></td>
+ <td style="white-space: nowrap;">0xAE (174)</td>
+ <td>Open curly bracket ("{") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_CLOSE_CURLY_BRACKET</code></td>
+ <td style="white-space: nowrap;">0xAF (175)</td>
+ <td>Close curly bracket ("}") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_TILDE</code></td>
+ <td style="white-space: nowrap;">0xB0 (176)</td>
+ <td>Tilde ("~") key. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_VOLUME_MUTE</code></td>
+ <td style="white-space: nowrap;">0xB5 (181)</td>
+ <td>Audio mute key. {{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_VOLUME_DOWN</code></td>
+ <td style="white-space: nowrap;">0xB6 (182)</td>
+ <td>Audio volume down key {{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_VOLUME_UP</code></td>
+ <td style="white-space: nowrap;">0xB7 (183)</td>
+ <td>Audio volume up key {{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_COMMA</code></td>
+ <td style="white-space: nowrap;">0xBC (188)</td>
+ <td>Comma (",") key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_PERIOD</code></td>
+ <td style="white-space: nowrap;">0xBE (190)</td>
+ <td>Period (".") key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_SLASH</code></td>
+ <td style="white-space: nowrap;">0xBF (191)</td>
+ <td>Slash ("/") key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_BACK_QUOTE</code></td>
+ <td style="white-space: nowrap;">0xC0 (192)</td>
+ <td>Back tick ("`") key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_OPEN_BRACKET</code></td>
+ <td style="white-space: nowrap;">0xDB (219)</td>
+ <td>Open square bracket ("[") key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_BACK_SLASH</code></td>
+ <td style="white-space: nowrap;">0xDC (220)</td>
+ <td>Back slash ("\") key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_CLOSE_BRACKET</code></td>
+ <td style="white-space: nowrap;">0xDD (221)</td>
+ <td>Close square bracket ("]") key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_QUOTE</code></td>
+ <td style="white-space: nowrap;">0xDE (222)</td>
+ <td>Quote (''') key.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_META</code></td>
+ <td style="white-space: nowrap;">0xE0 (224)</td>
+ <td>Meta key on Linux, Command key on Mac.</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_ALTGR</code></td>
+ <td style="white-space: nowrap;">0xE1 (225)</td>
+ <td>AltGr key (Level 3 Shift key or Level 5 Shift key) on Linux. {{gecko_minversion_inline("15.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_ICO_HELP</code></td>
+ <td style="white-space: nowrap;">0xE3 (227)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This is (was?) used for Olivetti ICO keyboard.{{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_ICO_00</code></td>
+ <td style="white-space: nowrap;">0xE4 (228)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This is (was?) used for Olivetti ICO keyboard.{{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_ICO_CLEAR</code></td>
+ <td style="white-space: nowrap;">0xE6 (230)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This is (was?) used for Olivetti ICO keyboard.{{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_RESET</code></td>
+ <td style="white-space: nowrap;">0xE9 (233)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_JUMP</code></td>
+ <td style="white-space: nowrap;">0xEA (234)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_PA1</code></td>
+ <td style="white-space: nowrap;">0xEB (235)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_PA2</code></td>
+ <td style="white-space: nowrap;">0xEC (236)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_PA3</code></td>
+ <td style="white-space: nowrap;">0xED (237)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_WSCTRL</code></td>
+ <td style="white-space: nowrap;">0xEE (238)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_CUSEL</code></td>
+ <td style="white-space: nowrap;">0xEF (239)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_ATTN</code></td>
+ <td style="white-space: nowrap;">0xF0 (240)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_FINISH</code></td>
+ <td style="white-space: nowrap;">0xF1 (241)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_COPY</code></td>
+ <td style="white-space: nowrap;">0xF2 (242)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_AUTO</code></td>
+ <td style="white-space: nowrap;">0xF3 (243)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_ENLW</code></td>
+ <td style="white-space: nowrap;">0xF4 (244)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_BACKTAB</code></td>
+ <td style="white-space: nowrap;">0xF5 (245)</td>
+ <td>An <a href="#OEM_specific_keys_on_Windows" title="#OEM_specific_keys_on_Windows">OEM specific key on Windows</a>. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_ATTN</code></td>
+ <td style="white-space: nowrap;">0xF6 (246)</td>
+ <td>Attn (Attention) key of IBM midrange computers, e.g., AS/400. {{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_CRSEL</code></td>
+ <td style="white-space: nowrap;">0xF7 (247)</td>
+ <td>CrSel (Cursor Selection) key of IBM 3270 keyboard layout. {{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_EXSEL</code></td>
+ <td style="white-space: nowrap;">0xF8 (248)</td>
+ <td>ExSel (Extend Selection) key of IBM 3270 keyboard layout. {{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_EREOF</code></td>
+ <td style="white-space: nowrap;">0xF9 (249)</td>
+ <td>Erase EOF key of IBM 3270 keyboard layout. {{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_PLAY</code></td>
+ <td style="white-space: nowrap;">0xFA (250)</td>
+ <td>Play key of IBM 3270 keyboard layout. {{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_ZOOM</code></td>
+ <td style="white-space: nowrap;">0xFB (251)</td>
+ <td>Zoom key. {{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_PA1</code></td>
+ <td style="white-space: nowrap;">0xFD (253)</td>
+ <td>PA1 key of IBM 3270 keyboard layout. {{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ <tr>
+ <td><code>DOM_VK_WIN_OEM_CLEAR</code></td>
+ <td style="white-space: nowrap;">0xFE (254)</td>
+ <td>Clear key, but we're not sure the meaning difference from <code>DOM_VK_CLEAR</code>. {{gecko_minversion_inline("21.0")}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="OEM_specific_keys_on_Windows">OEM specific keys on Windows</h3>
+
+<p>On Windows, some values of virtual keycode are defined (reserved) for OEM specific key. They are available for special keys on non-standard keyboard. In other words, some values are used for different meaning by two or more vendors (or hardware).</p>
+
+<p>Starting Gecko 21 (and older than 15), OEM specific key values are available on the keyCode attribute only on Windows. So they are not useful for usual web applications. They are useful only for intranet applications or in similar situations.</p>
+
+<p>See "<a href="http://msdn.microsoft.com/en-us/library/aa452679.aspx" title="http://msdn.microsoft.com/en-us/library/aa452679.aspx">Manufacturer-specific Virtual-Key Codes (Windows CE 5.0)</a>" in MSDN for the detail.</p>
+
+<div id="cke_pastebin" style="position: absolute; top: 1308.5px; width: 1px; height: 1px; overflow: hidden; left: -1000px;"> </div>