Move references from D3E into D3#-key|code as appropriate.
authorGary Kacmarcik <garykac@google.com>
Sat, 26 Apr 2014 08:26:40 -0700
changeset 589 d3e3357eb862
parent 588 668883a424e3
child 590 b1385d543e2a
Move references from D3E into D3#-key|code as appropriate.
Reindent D3E-key|code.
html/DOM3-Events.html
html/DOM3Events-code.html
html/DOM3Events-key.html
--- a/html/DOM3-Events.html	Sat Apr 26 08:04:46 2014 -0700
+++ b/html/DOM3-Events.html	Sat Apr 26 08:26:40 2014 -0700
@@ -10463,16 +10463,6 @@
 					Available at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>.
 					</dd>
 
-				<dt id="references-charmod"><strong>[CharMod]</strong></dt>
-				<dd><cite><a href="http://www.w3.org/TR/2005/REC-charmod-20050215/">Character Model for the World Wide Web 1.0: Fundamentals</a></cite>,<br/>
-					M. D&#xFC;rst, F. Yergeau, R. Ishida, M. Wolf, T. Texin, Editors.<br/>
-					World Wide Web Consortium, 15 February 2005.<br/>
-					This version of the Character Model for the World Wide Web 1.0: Fundamentals specification is
-						http://www.w3.org/TR/2005/REC-charmod-20050215/.<br/>
-					The <a class="normative" href="http://www.w3.org/TR/charmod/">latest version of Character Model for
-					the World Wide Web 1.0: Fundamentals</a> is available at http://www.w3.org/TR/charmod/.
-					</dd>
-
 				<dt id="references-DOMCore"><strong>[DOM3 Core]</strong></dt>
 				<dd><cite><a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/">Document Object Model Level 3 Core Specification</a></cite>,<br/>
 					A. Le Hors, et al., Editors.<br/>
@@ -10586,12 +10576,6 @@
 					The <a class="normative" href="http://www.w3.org/TR/CSS2/">latest version of CSS 2.1</a> is available at http://www.w3.org/TR/CSS2/.
 					</dd>
 
-				<dt id="references-DASE"><strong>[DASE]</strong></dt>
-				<dd><cite><a href="http://www.atsc.org/cms/standards/a100/a_100_2.pdf">ATSC A/100-2, DTV Application Software Environment Level 1 (DASE-1) Part 2: Declarative Applications and Environment</a></cite>.<br/>
-					Advanced Television Systems Committee, 09 March 2003.<br/>
-					Available at <a href="http://www.atsc.org/cms/standards/a100/a_100_2.pdf">http://www.atsc.org/cms/standards/a100/a_100_2.pdf</a>.
-					</dd>
-
 				<dt id="references-DOMLS"><strong>[DOM3 Load and Save]</strong></dt>
 				<dd><cite><a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/">Document Object Model Level 3 Load and Save Specification</a></cite>,<br/>
 					J. Stenback, A. Heninger, Editors.<br/>
@@ -10634,30 +10618,6 @@
 					World Wide Web Consortium, <span class="wip">work in progress</span>, 12 March 2012.
 					</dd>
 
-				<dt id="references-ISO-9995-2-3"><strong>[ISO9995-2/3]</strong></dt>
-				<dd><cite><a href="http://www.iso.org/iso/search.htm?qt=9995&amp;published=on">ISO/IEC 9995, Information technology
-					-- Keyboard layouts for text and office systems
-					-- Part 2: Alphanumeric Section and Part 3: Complementary layouts of the alphanumeric zone of the alphanumeric section.</a></cite>
-					</dd>
-
-				<dt id="references-ISO-9995-8"><strong>[ISO9995-8]</strong></dt>
-				<dd><cite><a href="http://www.iso.org/iso/search.htm?qt=9995&amp;published=on">ISO/IEC 9995-8:2006, Information technology
-					-- Keyboard layouts for text and office systems
-					-- Part 8: Allocation of letters to the keys of a numeric keypad.</a></cite>
-					</dd>
-
-				<dt id="references-KeyEvent"><strong>[KeyEvent for Java]</strong></dt>
-				<dd><cite><a href="http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.html">Java&#x2122; Platform, Standard Edition 6 API Specification, Class java.awt.events.KeyEvent</a></cite>.<br/>
-					Oracle.<br/>
-					Available at http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.html.
-					</dd>
-
-				<dt id="references-Keys"><strong>[Keys Enumeration for .Net]</strong></dt>
-				<dd><cite><a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.keys.aspx">.NET Framework 4.5 Class Library, Keys Enumeration</a></cite>.<br/>
-					Microsoft.<br/>
-					Available at http://msdn.microsoft.com/en-us/library/system.windows.forms.keys.aspx.
-					</dd>
-
 				<dt id="references-KeyProps"><strong>[KeyProps]</strong></dt>
 				<dd><cite class="w3cwd"><a href="https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/Note-KeyProps.html">Legacy Keyboard Event Properties</a></cite>,<br/>
 					D. Schepers, Editor.<br/>
@@ -10667,13 +10627,6 @@
 					is available at https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/Note-KeyProps.html.
 					</dd>
 
-				<dt id="references-OCAP"><strong>[OCAP]</strong></dt>
-				<dd><cite><a href="http://www.cablelabs.com/specifications/OC-SP-OCAP1.1.3-100603.pdf">Open Cable Application Platform 1.1.3</a></cite>.<br/>
-					Cable Television Laboratories, Inc.,<br/>
-					03 June 2010.<br/>
-					Available at <a href="http://www.cablelabs.com/specifications/OC-SP-OCAP1.1.3-100603.pdf">http://www.cablelabs.com/specifications/OC-SP-OCAP1.1.3-100603.pdf</a>.
-					</dd>
-
 				<dt id="references-pcre"><strong>[PCRE]</strong></dt>
 				<dd><cite><a href="http://www.pcre.org/">Perl Compatible Regular Expressions library</a></cite>.<br/>
 					Available at http://www.pcre.org/.
@@ -10696,14 +10649,6 @@
 					The <a class="normative" href="http://www.w3.org/TR/UAAG20/">latest version of UAAG 2.0</a> is available at http://www.w3.org/TR/UAAG20/.
 					</dd>
 
-				<dt id="references-WEB4CE"><strong>[WEB4CE]</strong></dt>
-				<dd><cite><a href="http://www.ce.org/Standards/Standard-Listings/R7-Home-Network-Committee/CEA-2014-B-(ANSI%29.aspx">ANSI/CEA-2014-B,
-					Web-based Protocol and Framework for Remote User Interface on UPnPTM Networks and the Internet (Web4CE)</a></cite>.<br/>
-					Consumer Electronics Association, January 2011.<br/>
-					Available at
-						<a href="http://www.ce.org/Standards/Standard-Listings/R7-Home-Network-Committee/CEA-2014-B-(ANSI).aspx">http://www.ce.org/Standards/Standard-Listings/R7-Home-Network-Committee/CEA-2014-B-(ANSI%29.aspx</a>.
-					</dd>
-
 				<dt id="ref-WIN1252"><strong>[WIN1252]</strong></dt>
 				<dd><a href="http://www.microsoft.com/globaldev/reference/sbcs/1252.htm">Windows 1252</a> a Coded Character Set - 8-Bit.<br/>
 					Microsoft Corporation.
--- a/html/DOM3Events-code.html	Sat Apr 26 08:04:46 2014 -0700
+++ b/html/DOM3Events-code.html	Sat Apr 26 08:26:40 2014 -0700
@@ -94,871 +94,871 @@
 
 	<!-- Section 6: Keyboard and key values ========================================================-->
 
-			<section id="keyboard-layout">
-				<h3>Keyboard Layout</h3>
-				<p><em>This section is informative</em></p>
-
-				<p>Alphanumeric keyboards are the most common way for users to generate keyboard events.
-					This section provides an overview of standard keyboards and their physical layouts.
-					</p>
-
-				<section id="keyboard-common-layouts">
-					<h1>Standard Keyboard Layouts</h1>
-
-					<p>This section describes the physical layouts found on commonly available keyboards.
-						</p>
-
-					<section id="keyboard-sections">
-						<h1>Keyboard Sections</h1>
-					
-						<p>When discussing keyboard layouts, it is convenient to divide the standard keyboard into distinct sections
-							and to label each row.
-							</p>
-
-						<figure id="figure-keyboard-sections">
-							<img src='images/keyboard-sections.svg' width="684" height="225" />
-							<figcaption>The five general sections of a standard keyboard</figcaption>
-						</figure>
-
-						<p>These keyboard sections are:
-							</p>
-
-						<ul>
-							<li>The <em>Alphanumeric</em> section is the main part of the keyboard and is where most of the keyboard variation occurs.
-								When a user selects a keyboard layout, it is the keys in this sections that are most affected.
-								</li>
-							<li>The <em>Control Pad</em> and <em>Arrow Pad</em> sections contain the arrow keys and other editing keys.
-								</li>
-							<li>The <em>Numpad</em> (also known as the "numeric keypad" or "number pad") contains number and math keys to make it 
-								easier to enter numeric data.
-								</li>
-							<li>And finally, the <em>Function</em> section contains miscellaneous function keys and special keys like Escape.
-								</li>
-						</ul>
-					
-						<p>To make it easier to identify keys, the rows on the keyboard are named starting with "A"
-							for the bottom row up to "E" for the top row. The row of keys in the Function section are considered
-							to be in row "K".
-							These row names are consistent with those given in the ISO/IEC 9995-1 specification.
-							</p>
-						<p>Note that many keyboards (both modern and legacy) have extra keys that do not fit neatly into the above sections.
-							Some of these keys are covered in the <a href="#key-media">Media Keys</a> section.
-							Keys not covered in this document should be handled in the same manner as described in the
-							<a href="#other-devices">Other Devices</a> section.
-							</p>
-					</section><!-- keyboard-sections -->
-
-					<section id="keyboard-101">
-						<h1>Standard "101" Keyboard Layout</h1>
-						<p>The standard "101" keyboard (commonly referred to as the "US layout") is the only layout that uses the <code class="key-code">'Backslash'</code> code.
-						   All the other layouts omit this key and expand the <code class="key-code">'Enter'</code> key to occupy
-						   two-rows.
-						</p>
-
-						<figure id="figure-keyboard-101-us">
-							<img src='images/keyboard-101-us.svg' width="684" height="225" />
-							<figcaption>Standard '101' keyboard layout showing unmodified US key values</figcaption>
-						</figure>
-
-						<p>Modern standard "101"-layout keyboards actually contain 104 keys: 61 keys in the alphanumeric section
-						   and 43 keys in the numpad, control pad, arrow pad and function sections.
-						   The "101" name for this keyboard layout dates to the time when this standard keyboard did in fact contain
-						   101 keys. The two <code class="glyph">'OS'</code> keys,
-						   and the <code class="glyph">'Menu'</code> key were
-						   added later to bring the total to 104 keys.
-						</p>
-					</section>
-
-					<section id="keyboard-101alt">
-						<h1>Alternate "101" Keyboard Layout</h1>
-						<p>The alternate "101" keyboard removes the <code class="key-code">'Backslash'</code> key to create a
-						   large <code class="key-code">'Enter'</code> key and shrinks the <code class="key-code">'Backspace'</code>
-						   key to make room for the <code class="key-code">'IntlYen'</code> key (The <code class="key-code">'IntlYen'</code> name comes from the
-						   Japanese layout — in the Russian layout shown above this key maps to a <code class="glyph">'\'</code>.
-						</p>
-
-						<figure id="figure-keyboard-101-russian">
-							<img src='images/keyboard-101-russian.svg' width="684" height="225" />
-							<figcaption>Alternate '101' keyboard layout showing unmodified Russian key values</figcaption>
-						</figure>
-
-						<p>Modern alternate "101"-layout keyboards contain 104 keys: 61 keys in the alphanumeric section and 43 keys in the numpad,
-						   control pad, arrow pad and function sections.
-						</p>
-					</section>
-
-					<section id="keyboard-102">
-						<h1>Standard "102" Keyboard Layout</h1>
-						<p>The standard "102" keyboard is common throughout Europe and adds two keys that don't exist on the
-						   "101" layouts:
-						   The <code class="key-code">'IntlBackslash'</code> key next to the left shift key,
-						   and the <code class="key-code">'IntlHash'</code> key which is partially tucked under the
-						   <code class="key-code">'Enter'</code> key.
-						</p>
-
-						<figure id="figure-keyboard-102-uk">
-							<img src='images/keyboard-102-uk.svg' width="684" height="225" />
-							<figcaption>Standard '102' keyboard layout showing unmodified French key values</figcaption>
-						</figure>
-
-						<p>Modern "102"-layout keyboards contain 105 keys: 62 keys in the alphanumeric section and 43 keys in the numpad,
-						   control pad, arrow pad and function sections.
-						</p>
-					</section>
-
-					<section id="keyboard-103">
-						<h1>Korean "103" Keyboard Layout</h1>
-						<p>The Korean "103" keyboard is based on the alternate 101 layout and adds two additional keys
-						   (one on each side of the spacebar) to handle Korean-specific input modes.
-						   These keys are
-						   <code class="key-code">'Hanja'</code> (labelled <code class="keycap">한자</code> <span class="phonetic">hanja</span>) and
-						   <code class="key-code">'HangulMode'</code> (labelled <code class="keycap">한/영</code> <span class="phonetic">han/yeong</span>).
-						</p>
-
-						<figure id="figure-keyboard-103-korean">
-							<img src='images/keyboard-103-korean.svg' width="684" height="225" />
-							<figcaption>Korean '103' keyboard layout showing unmodified Korean key values</figcaption>
-						</figure>
-
-						<p>Modern "103"-layout keyboards contain 106 keys: 63 keys in the alphanumeric section and 43 keys in the numpad,
-						   control pad, arrow pad and function sections.
-						</p>
-					</section>
-
-					<section id="keyboard-104">
-						<h1>Brazilian "104" Keyboard Layout</h1>
-						<p>The "104" layout used in Brazil adds 4 new keys: the two non-US keys from the "102" layout
-						   (<code class="key-code">'IntlHash'</code> and <code class="key-code">'IntlBackslash'</code>)
-						   plus the <code class="key-code">'IntlRo'</code> key (next to the right shift
-						   key) and an extra key on the numeric keypad. This new keypad key is called 
-						   <code class="key-code">'KeypadComma'</code> because it represents the thousands separator. On the
-						   Brazilian key layout, this key has a keycap of <code class="keycap">.</code> and the <code class="key-code">'KeypadPeriod'</code>
-						   key has a keycap of <code class="keycap">,</code>.
-						</p>
+	<section id="keyboard-layout">
+		<h1>Keyboard Layout</h1>
+		<p><em>This section is informative</em></p>
 
-						<figure id="figure-keyboard-104-brazilian">
-							<img src='images/keyboard-104-brazilian.svg' width="684" height="225" />
-							<figcaption>Standard '104' keyboard layout showing unmodified Brazilian key values</figcaption>
-						</figure>
-
-						<p>Modern "104"-layout keyboards contain 107 keys: 63 keys in the alphanumeric section and 44 keys in the numpad,
-						   control pad, arrow pad and function sections. Some Brazilian keyboards lack the extra keypad
-						   key and have only 106 keys.
-						</p>
-					</section>
-
-					<section id="keyboard-106">
-						<h1>Japanese "106" Keyboard Layout</h1>
-						<p>The Japanese "106" keyboard layout adds 3 new keys:
-						   <code class="key-code">'IntlYen'</code>, 
-						   <code class="key-code">'IntlHash'</code> and
-						   <code class="key-code">'IntlRo'</code>.
-						   It also shrinks the <code class="key-code">'Space'</code> key to make room for 3 input mode keys:
-						   <code class="key-code">'NoConvert'</code> (labelled <code class="keycap">無変換</code> <span class="phonetic">muhenkan</span>),
-						   <code class="key-code">'Convert'</code> (labelled <code class="keycap">変換</code> <span class="phonetic">henkan</span>),
-						   <code class="key-code">'KanaMode'</code> (labelled <code class="keycap">カタカナ/ひらがな/ローマ字</code> <span class="phonetic">katakana/hiragana/romaji</span>).
-						</p>
-
-						<figure id="figure-keyboard-106-japanese">
-							<img src='images/keyboard-106-japanese.svg' width="684" height="225" />
-							<figcaption>Standard '106' keyboard layout showing unmodified Japanese key values</figcaption>
-						</figure>
-
-						<p>Modern "106"-layout keyboards contain 109 keys: 66 keys in the alphanumeric section and 43 keys in the numpad,
-						   control pad, arrow pad and function sections.
-						</p>
-					</section>
-
-					<section id="keyboard-mac">
-						<h1>Apple Keyboard Layout</h1>
-						<p>In general, Apple keyboards follow the same layout as PC keyboards, but there are some differences as
-						   noted in the following figure.
-						</p>
-
-						<figure id="figure-keyboard-mac">
-							<img src='images/keyboard-mac.svg' width="684" height="225" />
-							<figcaption>Apple extended keyboard layout showing unmodified English key values</figcaption>
-						</figure>
-
-						<p>In this figure, the green keys are those
-						   that have been moved to a new location while the blue keys indicate keys that have been added.
-						</p>
-					</section>
-
-					<section id="keyboard-laptops">
-						<h1>Laptop Keyboard Layouts</h1>
-
-						<p>The limited space available on laptop keyboards often means that the physical key layout needs
-							to be adjusted to fit all the required keys. The writing system keys in the Alphanumeric section tend
-							to remain intact, but the other keyboard sections are usually combined with other keys or
-							removed altogether.
-							</p>
-
-						<figure id="figure-keyboard-laptop-mac">
-							<img src='images/keyboard-laptop-mac.svg' width="420" height="180" />
-							<figcaption>Apple laptop keyboard layout</figcaption>
-						</figure>
-
-						<p>In this Apple laptop keyboard, the right control key has been removed to make room for half-height
-							arrow keys and a <code class="key-code">'Fn'</code> key is added on the left.
-							</p>
-
-						<figure id="figure-keyboard-laptop">
-							<img src='images/keyboard-laptop.svg' width="460" height="180" />
-							<figcaption>Sample PC laptop keyboard layout</figcaption>
-						</figure>
+		<p>Alphanumeric keyboards are the most common way for users to generate keyboard events.
+			This section provides an overview of standard keyboards and their physical layouts.
+			</p>
 
-						<p>PC laptop keyboards vary considerably, but this sample keyboard demonstrates some commonly found aspects.
-							The control pad keys are added along the right-hand side with the arrow keys tucked in along the bottom.
-							The right shift key is often shrunk to make room for the up arrow key and the right OS key
-							is typically removed altogether.
-							</p>
-					</section>  <!-- keyboard-laptops -->
-
-				</section><!-- keyboard-common-layouts -->
-		
-				<section id="keyboard-mobile">
-					<h4>Mobile Keypads</h4>
-
-					<p>In the case where a content author wishes to rely on the mechanical layout of a mobile keypad, this specification suggests the keyboard configuration specified
-						in ISO/IEC 9995-8:2006 [<cite><a class="informative" href="#references-ISO-9995-8">ISO-9995-8</a></cite>], which defines a numeric keypad layout and secondary assignment
-						of Unicode characters in the range <code class="char">'\u0061'</code>..<code class="char">'\u007A'</code> to the number keys <code>2</code> through <code>9</code>, as a common layout appropriate to some
-						international uses.</p>
-
-					<p class="note"><strong>Note:</strong> This keypad layout, and in particular the distribution of letters is for English devices, and will not match the keypads
-						or configurations of many users.  Content authors cannot rely upon any particular configuration, and are expected to create content in an internationalized and
-						localizable manner.</p>
-
-					<figure id="figure-numeric-keypad">
-						<img src='images/ISOIEC-9995-8-2006.svg' width="180" height="240" />
-						<figcaption>A graphical depiction of an ISO standard defining layouts of numeric keypads, with distribution of letters on the keys, ISO/IEC 9995-8:2006.</figcaption>
-					</figure>
-				</section>  <!-- keyboard-mobile -->
-
-				<section id="remote-control">
-					<h4>Media Remote Controls</h4>
-
-					<p>Many keyboards contain special keys to control media functions.  Increasingly, many media devices, especially televisions, are Web-enabled.  Hybrid keyboard/remote-control
-						devices are becoming more common.  To meet the needs of these hybrid Web/media devices, this specification defines keys that are common as remote control buttons,
-						in addition to traditional keyboard keys.</p>
+		<section id="keyboard-common-layouts">
+			<h1>Standard Keyboard Layouts</h1>
 
-					<p>Because of the smaller form factor, keys (or buttons) on a remote control will often be modal,
-						with one key performing different functions based on the context of the on-screen content.
-						Additionally, many keys serve as toggles, to change back and forth between two or more states
-						(see toggling keys).
-						These remote control buttons typically do not have modifier states so each button is assigned a
-						single function (like "Play", "Pause", "Up", "Menu" or "Exit").
-						</p>
-
-					<figure id="figure-media-remote-control">
-						<img src='images/remote-control.svg' width="102" height="422" />
-						<figcaption>A graphical depiction of a media remote control, with buttons mapped to specific keys values.</figcaption>
-					</figure>
-
-				</section>  <!-- remote-control -->
-
-				<section id="keyboard-chording-virtual">
-					<h4>Virtual Keyboards and Chording Keyboards</h4>
-
-					<p>Virtual keyboards are software-based sets of keys, in a variety of different arrangements, commonly found on touch-screen devices. They are often modal, with the
-						ability to switch between different dynamic sets of keys, such as alphabetic, numeric, or symbolic keys.  Because of the lack of physical constraints, these keyboards
-						MAY present the widest range of characters, including emoticons and other symbols, and MAY have keys not represented by Unicode [<a href="#references-Unicode">Unicode</a>]
-						or by the <a href="#key-value-tables">key values</a> defined in this specification.  Wherever possible, however, virtual keyboards SHOULD produce the normal range
-						of keyboard events and values, for ease of authoring and compatibility with existing content.</p>
-
-					<p>Chording keyboards, also know as chorded keysets or chord keyboards, are key input devices which produce values by pressing several keys in combination or sequence,
-						normally to simulate a full range of characters or commands on a reduced set of keys, often for single-handed use.  A chording keyboard MAY have additional mode
-						keys to switch between key values, and the number and type of keys pressed to produce a key value will vary, but the final key values produced by such keyboards
-						SHOULD match the range of key values described in this specification.</p>
-
-					<p>For these and other alternative modal keyboards, the key values <a href="#key-Alphanumeric"><code class="key">'Alphanumeric'</code></a>, <a href="#key-CapsLock">
-						<code class="key">'CapsLock'</code></a>, <a href="#key-NumLock"><code class="key">'NumLock'</code></a>, and <a href="#key-SymbolLock"><code class="key">
-						'SymbolLock'</code></a> are RECOMMENDED for the keys which switch between different modes.</p>
-
-				</section>  <!-- keyboard-chording-virtual -->
-
-			</section>  <!-- keyboard-layout -->
-
-		<section id="code-value-tables">
-			<h3>Keyboard Event <code>code</code> Value Tables</h3>
-		
-			<p>This section defines a list of <code>code</code> values which implementations MUST support.
+			<p>This section describes the physical layouts found on commonly available keyboards.
 				</p>
 
-			<section id="keyboard-key-codes">
-				<h1>Key Codes for Standard Keyboards</h1>
-				<p>This section describes the various keyboard sections in more detail and defines the <code>code</code>
-				   values that should be used for each key.
+			<section id="keyboard-sections">
+				<h1>Keyboard Sections</h1>
+			
+				<p>When discussing keyboard layouts, it is convenient to divide the standard keyboard into distinct sections
+					and to label each row.
 					</p>
 
-				<section id="key-alphanumeric-section">
-					<h1>Alphanumeric Section</h1>
-					<p>The Alphanumeric section keys fall into two general categories: "writing system" keys whose meaning changes based on
-						the current keyboard layout, and "functional" keys which are (mostly) the same for all layouts.
+				<figure id="figure-keyboard-sections">
+					<img src='images/keyboard-sections.svg' width="684" height="225" />
+					<figcaption>The five general sections of a standard keyboard</figcaption>
+				</figure>
+
+				<p>These keyboard sections are:
+					</p>
+
+				<ul>
+					<li>The <em>Alphanumeric</em> section is the main part of the keyboard and is where most of the keyboard variation occurs.
+						When a user selects a keyboard layout, it is the keys in this sections that are most affected.
+						</li>
+					<li>The <em>Control Pad</em> and <em>Arrow Pad</em> sections contain the arrow keys and other editing keys.
+						</li>
+					<li>The <em>Numpad</em> (also known as the "numeric keypad" or "number pad") contains number and math keys to make it 
+						easier to enter numeric data.
+						</li>
+					<li>And finally, the <em>Function</em> section contains miscellaneous function keys and special keys like Escape.
+						</li>
+				</ul>
+			
+				<p>To make it easier to identify keys, the rows on the keyboard are named starting with "A"
+					for the bottom row up to "E" for the top row. The row of keys in the Function section are considered
+					to be in row "K".
+					These row names are consistent with those given in the ISO/IEC 9995-1 specification.
+					</p>
+				<p>Note that many keyboards (both modern and legacy) have extra keys that do not fit neatly into the above sections.
+					Some of these keys are covered in the <a href="#key-media">Media Keys</a> section.
+					Keys not covered in this document should be handled in the same manner as described in the
+					<a href="#other-devices">Other Devices</a> section.
+					</p>
+			</section><!-- keyboard-sections -->
+
+			<section id="keyboard-101">
+				<h1>Standard "101" Keyboard Layout</h1>
+				<p>The standard "101" keyboard (commonly referred to as the "US layout") is the only layout that uses the <code class="key-code">'Backslash'</code> code.
+				   All the other layouts omit this key and expand the <code class="key-code">'Enter'</code> key to occupy
+				   two-rows.
+				</p>
+
+				<figure id="figure-keyboard-101-us">
+					<img src='images/keyboard-101-us.svg' width="684" height="225" />
+					<figcaption>Standard '101' keyboard layout showing unmodified US key values</figcaption>
+				</figure>
+
+				<p>Modern standard "101"-layout keyboards actually contain 104 keys: 61 keys in the alphanumeric section
+				   and 43 keys in the numpad, control pad, arrow pad and function sections.
+				   The "101" name for this keyboard layout dates to the time when this standard keyboard did in fact contain
+				   101 keys. The two <code class="glyph">'OS'</code> keys,
+				   and the <code class="glyph">'Menu'</code> key were
+				   added later to bring the total to 104 keys.
+				</p>
+			</section>
+
+			<section id="keyboard-101alt">
+				<h1>Alternate "101" Keyboard Layout</h1>
+				<p>The alternate "101" keyboard removes the <code class="key-code">'Backslash'</code> key to create a
+				   large <code class="key-code">'Enter'</code> key and shrinks the <code class="key-code">'Backspace'</code>
+				   key to make room for the <code class="key-code">'IntlYen'</code> key (The <code class="key-code">'IntlYen'</code> name comes from the
+				   Japanese layout — in the Russian layout shown above this key maps to a <code class="glyph">'\'</code>.
+				</p>
+
+				<figure id="figure-keyboard-101-russian">
+					<img src='images/keyboard-101-russian.svg' width="684" height="225" />
+					<figcaption>Alternate '101' keyboard layout showing unmodified Russian key values</figcaption>
+				</figure>
+
+				<p>Modern alternate "101"-layout keyboards contain 104 keys: 61 keys in the alphanumeric section and 43 keys in the numpad,
+				   control pad, arrow pad and function sections.
+				</p>
+			</section>
+
+			<section id="keyboard-102">
+				<h1>Standard "102" Keyboard Layout</h1>
+				<p>The standard "102" keyboard is common throughout Europe and adds two keys that don't exist on the
+				   "101" layouts:
+				   The <code class="key-code">'IntlBackslash'</code> key next to the left shift key,
+				   and the <code class="key-code">'IntlHash'</code> key which is partially tucked under the
+				   <code class="key-code">'Enter'</code> key.
+				</p>
+
+				<figure id="figure-keyboard-102-uk">
+					<img src='images/keyboard-102-uk.svg' width="684" height="225" />
+					<figcaption>Standard '102' keyboard layout showing unmodified French key values</figcaption>
+				</figure>
+
+				<p>Modern "102"-layout keyboards contain 105 keys: 62 keys in the alphanumeric section and 43 keys in the numpad,
+				   control pad, arrow pad and function sections.
+				</p>
+			</section>
+
+			<section id="keyboard-103">
+				<h1>Korean "103" Keyboard Layout</h1>
+				<p>The Korean "103" keyboard is based on the alternate 101 layout and adds two additional keys
+				   (one on each side of the spacebar) to handle Korean-specific input modes.
+				   These keys are
+				   <code class="key-code">'Hanja'</code> (labelled <code class="keycap">한자</code> <span class="phonetic">hanja</span>) and
+				   <code class="key-code">'HangulMode'</code> (labelled <code class="keycap">한/영</code> <span class="phonetic">han/yeong</span>).
+				</p>
+
+				<figure id="figure-keyboard-103-korean">
+					<img src='images/keyboard-103-korean.svg' width="684" height="225" />
+					<figcaption>Korean '103' keyboard layout showing unmodified Korean key values</figcaption>
+				</figure>
+
+				<p>Modern "103"-layout keyboards contain 106 keys: 63 keys in the alphanumeric section and 43 keys in the numpad,
+				   control pad, arrow pad and function sections.
+				</p>
+			</section>
+
+			<section id="keyboard-104">
+				<h1>Brazilian "104" Keyboard Layout</h1>
+				<p>The "104" layout used in Brazil adds 4 new keys: the two non-US keys from the "102" layout
+				   (<code class="key-code">'IntlHash'</code> and <code class="key-code">'IntlBackslash'</code>)
+				   plus the <code class="key-code">'IntlRo'</code> key (next to the right shift
+				   key) and an extra key on the numeric keypad. This new keypad key is called 
+				   <code class="key-code">'KeypadComma'</code> because it represents the thousands separator. On the
+				   Brazilian key layout, this key has a keycap of <code class="keycap">.</code> and the <code class="key-code">'KeypadPeriod'</code>
+				   key has a keycap of <code class="keycap">,</code>.
+				</p>
+
+				<figure id="figure-keyboard-104-brazilian">
+					<img src='images/keyboard-104-brazilian.svg' width="684" height="225" />
+					<figcaption>Standard '104' keyboard layout showing unmodified Brazilian key values</figcaption>
+				</figure>
+
+				<p>Modern "104"-layout keyboards contain 107 keys: 63 keys in the alphanumeric section and 44 keys in the numpad,
+				   control pad, arrow pad and function sections. Some Brazilian keyboards lack the extra keypad
+				   key and have only 106 keys.
+				</p>
+			</section>
+
+			<section id="keyboard-106">
+				<h1>Japanese "106" Keyboard Layout</h1>
+				<p>The Japanese "106" keyboard layout adds 3 new keys:
+				   <code class="key-code">'IntlYen'</code>, 
+				   <code class="key-code">'IntlHash'</code> and
+				   <code class="key-code">'IntlRo'</code>.
+				   It also shrinks the <code class="key-code">'Space'</code> key to make room for 3 input mode keys:
+				   <code class="key-code">'NoConvert'</code> (labelled <code class="keycap">無変換</code> <span class="phonetic">muhenkan</span>),
+				   <code class="key-code">'Convert'</code> (labelled <code class="keycap">変換</code> <span class="phonetic">henkan</span>),
+				   <code class="key-code">'KanaMode'</code> (labelled <code class="keycap">カタカナ/ひらがな/ローマ字</code> <span class="phonetic">katakana/hiragana/romaji</span>).
+				</p>
+
+				<figure id="figure-keyboard-106-japanese">
+					<img src='images/keyboard-106-japanese.svg' width="684" height="225" />
+					<figcaption>Standard '106' keyboard layout showing unmodified Japanese key values</figcaption>
+				</figure>
+
+				<p>Modern "106"-layout keyboards contain 109 keys: 66 keys in the alphanumeric section and 43 keys in the numpad,
+				   control pad, arrow pad and function sections.
+				</p>
+			</section>
+
+			<section id="keyboard-mac">
+				<h1>Apple Keyboard Layout</h1>
+				<p>In general, Apple keyboards follow the same layout as PC keyboards, but there are some differences as
+				   noted in the following figure.
+				</p>
+
+				<figure id="figure-keyboard-mac">
+					<img src='images/keyboard-mac.svg' width="684" height="225" />
+					<figcaption>Apple extended keyboard layout showing unmodified English key values</figcaption>
+				</figure>
+
+				<p>In this figure, the green keys are those
+				   that have been moved to a new location while the blue keys indicate keys that have been added.
+				</p>
+			</section>
+
+			<section id="keyboard-laptops">
+				<h1>Laptop Keyboard Layouts</h1>
+
+				<p>The limited space available on laptop keyboards often means that the physical key layout needs
+					to be adjusted to fit all the required keys. The writing system keys in the Alphanumeric section tend
+					to remain intact, but the other keyboard sections are usually combined with other keys or
+					removed altogether.
+					</p>
+
+				<figure id="figure-keyboard-laptop-mac">
+					<img src='images/keyboard-laptop-mac.svg' width="420" height="180" />
+					<figcaption>Apple laptop keyboard layout</figcaption>
+				</figure>
+
+				<p>In this Apple laptop keyboard, the right control key has been removed to make room for half-height
+					arrow keys and a <code class="key-code">'Fn'</code> key is added on the left.
+					</p>
+
+				<figure id="figure-keyboard-laptop">
+					<img src='images/keyboard-laptop.svg' width="460" height="180" />
+					<figcaption>Sample PC laptop keyboard layout</figcaption>
+				</figure>
+
+				<p>PC laptop keyboards vary considerably, but this sample keyboard demonstrates some commonly found aspects.
+					The control pad keys are added along the right-hand side with the arrow keys tucked in along the bottom.
+					The right shift key is often shrunk to make room for the up arrow key and the right OS key
+					is typically removed altogether.
+					</p>
+			</section>  <!-- keyboard-laptops -->
+
+		</section><!-- keyboard-common-layouts -->
+
+		<section id="keyboard-mobile">
+			<h4>Mobile Keypads</h4>
+
+			<p>In the case where a content author wishes to rely on the mechanical layout of a mobile keypad, this specification suggests the keyboard configuration specified
+				in ISO/IEC 9995-8:2006 [<cite><a class="informative" href="#references-ISO-9995-8">ISO-9995-8</a></cite>], which defines a numeric keypad layout and secondary assignment
+				of Unicode characters in the range <code class="char">'\u0061'</code>..<code class="char">'\u007A'</code> to the number keys <code>2</code> through <code>9</code>, as a common layout appropriate to some
+				international uses.</p>
+
+			<p class="note"><strong>Note:</strong> This keypad layout, and in particular the distribution of letters is for English devices, and will not match the keypads
+				or configurations of many users.  Content authors cannot rely upon any particular configuration, and are expected to create content in an internationalized and
+				localizable manner.</p>
+
+			<figure id="figure-numeric-keypad">
+				<img src='images/ISOIEC-9995-8-2006.svg' width="180" height="240" />
+				<figcaption>A graphical depiction of an ISO standard defining layouts of numeric keypads, with distribution of letters on the keys, ISO/IEC 9995-8:2006.</figcaption>
+			</figure>
+		</section>  <!-- keyboard-mobile -->
+
+		<section id="remote-control">
+			<h4>Media Remote Controls</h4>
+
+			<p>Many keyboards contain special keys to control media functions.  Increasingly, many media devices, especially televisions, are Web-enabled.  Hybrid keyboard/remote-control
+				devices are becoming more common.  To meet the needs of these hybrid Web/media devices, this specification defines keys that are common as remote control buttons,
+				in addition to traditional keyboard keys.</p>
+
+			<p>Because of the smaller form factor, keys (or buttons) on a remote control will often be modal,
+				with one key performing different functions based on the context of the on-screen content.
+				Additionally, many keys serve as toggles, to change back and forth between two or more states
+				(see toggling keys).
+				These remote control buttons typically do not have modifier states so each button is assigned a
+				single function (like "Play", "Pause", "Up", "Menu" or "Exit").
+				</p>
+
+			<figure id="figure-media-remote-control">
+				<img src='images/remote-control.svg' width="102" height="422" />
+				<figcaption>A graphical depiction of a media remote control, with buttons mapped to specific keys values.</figcaption>
+			</figure>
+
+		</section>  <!-- remote-control -->
+
+		<section id="keyboard-chording-virtual">
+			<h4>Virtual Keyboards and Chording Keyboards</h4>
+
+			<p>Virtual keyboards are software-based sets of keys, in a variety of different arrangements, commonly found on touch-screen devices. They are often modal, with the
+				ability to switch between different dynamic sets of keys, such as alphabetic, numeric, or symbolic keys.  Because of the lack of physical constraints, these keyboards
+				MAY present the widest range of characters, including emoticons and other symbols, and MAY have keys not represented by Unicode [<a href="#references-Unicode">Unicode</a>]
+				or by the <a href="#key-value-tables">key values</a> defined in this specification.  Wherever possible, however, virtual keyboards SHOULD produce the normal range
+				of keyboard events and values, for ease of authoring and compatibility with existing content.</p>
+
+			<p>Chording keyboards, also know as chorded keysets or chord keyboards, are key input devices which produce values by pressing several keys in combination or sequence,
+				normally to simulate a full range of characters or commands on a reduced set of keys, often for single-handed use.  A chording keyboard MAY have additional mode
+				keys to switch between key values, and the number and type of keys pressed to produce a key value will vary, but the final key values produced by such keyboards
+				SHOULD match the range of key values described in this specification.</p>
+
+			<p>For these and other alternative modal keyboards, the key values <a href="#key-Alphanumeric"><code class="key">'Alphanumeric'</code></a>, <a href="#key-CapsLock">
+				<code class="key">'CapsLock'</code></a>, <a href="#key-NumLock"><code class="key">'NumLock'</code></a>, and <a href="#key-SymbolLock"><code class="key">
+				'SymbolLock'</code></a> are RECOMMENDED for the keys which switch between different modes.</p>
+
+		</section>  <!-- keyboard-chording-virtual -->
+
+	</section>  <!-- keyboard-layout -->
+
+	<section id="code-value-tables">
+		<h1>Keyboard Event <code>code</code> Value Tables</h1>
+	
+		<p>This section defines a list of <code>code</code> values which implementations MUST support.
+			</p>
+
+		<section id="keyboard-key-codes">
+			<h1>Key Codes for Standard Keyboards</h1>
+			<p>This section describes the various keyboard sections in more detail and defines the <code>code</code>
+			   values that should be used for each key.
+				</p>
+
+			<section id="key-alphanumeric-section">
+				<h1>Alphanumeric Section</h1>
+				<p>The Alphanumeric section keys fall into two general categories: "writing system" keys whose meaning changes based on
+					the current keyboard layout, and "functional" keys which are (mostly) the same for all layouts.
+					</p>
+				
+				<section id="key-alphanumeric-writing-system">
+					<h1>Writing System Keys</h1>
+					
+					<p>The "writing system" keys are those that change meaning based on the current keyboard layout.
+						</p>
+						
+					<figure id="figure-keyboard-codes-alphanum1">
+						<img src='images/keyboard-codes-alphanum1.svg' width="653" height="225" />
+						<figcaption>The writing system keys in the alphanumeric section</figcaption>
+					</figure>
+					
+					<p>This figure shows a hypothetical keyboard that combines all the writing system keys (shown in
+						blue and green) found on the various keyboards.
+						Blue keys are present on all standard keyboards while green keys are only available on some keyboards.
+						</p>
+						
+					<p>The name shown on each key is the <code>code</code> assigned to that key.
+						Wherever possible, the <code>code</code> names are based on the name for the US key
+						in that position (i.e., they are based on the US keyboard layout). For keys that don't
+						exist on the US keyboard, names from the UK or Japanese layouts are used instead.
 						</p>
 					
-					<section id="key-alphanumeric-writing-system">
-						<h1>Writing System Keys</h1>
-						
-						<p>The "writing system" keys are those that change meaning based on the current keyboard layout.
-							</p>
-							
-						<figure id="figure-keyboard-codes-alphanum1">
-							<img src='images/keyboard-codes-alphanum1.svg' width="653" height="225" />
-							<figcaption>The writing system keys in the alphanumeric section</figcaption>
-						</figure>
-						
-						<p>This figure shows a hypothetical keyboard that combines all the writing system keys (shown in
-							blue and green) found on the various keyboards.
-							Blue keys are present on all standard keyboards while green keys are only available on some keyboards.
-							</p>
-							
-						<p>The name shown on each key is the <code>code</code> assigned to that key.
-							Wherever possible, the <code>code</code> names are based on the name for the US key
-							in that position (i.e., they are based on the US keyboard layout). For keys that don't
-							exist on the US keyboard, names from the UK or Japanese layouts are used instead.
-							</p>
-						
-						<table id="table-key-code-alphanumeric-writing-system" class="data-table full-width">
-							<caption>List of code values for writing system keys in the Alphanumeric section.</caption>
-							<thead><tr><th>Code Value</th><th>USB Usage ID<br/>Page 0x07<br/>(Informative)</th><th>Notes (Informative)</th></tr></thead>
-							<tbody>
-								<tr><td><code id="code-Backquote" class="key-code">'Backquote'</code></td>
-									<td>0x35</td><td><code class="keycap">`</code> and <code class="keycap">~</code> on a US keyboard. This is the <code class="keycap">半角/全角/漢字</code> (<span class="phonetic">hankaku/zenkaku/kanji</span>) key on Japanese keyboards</td></tr>
-								<tr><td><code id="code-Backslash" class="key-code">'Backslash'</code></td>
-									<td>0x31</td><td><code class="keycap">\</code> and <code class="keycap">|</code> on a US keyboard. Found only on standard 101-key layouts.</td></tr>
-								<tr><td><code id="code-Backspace" class="key-code">'Backspace'</code></td>
-									<td>0x2a</td><td>Labelled <code class="keycap">Delete</code> on Macintosh keyboards.</td></tr>
-								<tr><td><code id="code-BracketLeft" class="key-code">'BracketLeft'</code></td>
-									<td>0x2f</td><td><code class="keycap">[</code> and <code class="keycap">{</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-BracketRight" class="key-code">'BracketRight'</code></td>
-									<td>0x30</td><td><code class="keycap">]</code> and <code class="keycap">}</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-Comma" class="key-code">'Comma'</code></td>
-									<td>0x36</td><td><code class="keycap">,</code> and <code class="keycap">&lt;</code> on a US keyboard.</td></tr>
-
-								<tr><td><code id="code-Digit-0" class="key-code">'Digit0'</code></td>
-									<td>0x27</td><td><code class="keycap">0</code> and <code class="keycap">)</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-Digit-1" class="key-code">'Digit1'</code></td>
-									<td>0x1e</td><td><code class="keycap">1</code> and <code class="keycap">!</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-Digit-2" class="key-code">'Digit2'</code></td>
-									<td>0x1f</td><td><code class="keycap">2</code> and <code class="keycap">@</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-Digit-3" class="key-code">'Digit3'</code></td>
-									<td>0x20</td><td><code class="keycap">3</code> and <code class="keycap">#</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-Digit-4" class="key-code">'Digit4'</code></td>
-									<td>0x21</td><td><code class="keycap">4</code> and <code class="keycap">$</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-Digit-5" class="key-code">'Digit5'</code></td>
-									<td>0x22</td><td><code class="keycap">5</code> and <code class="keycap">%</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-Digit-6" class="key-code">'Digit6'</code></td>
-									<td>0x23</td><td><code class="keycap">6</code> and <code class="keycap">^</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-Digit-7" class="key-code">'Digit7'</code></td>
-									<td>0x24</td><td><code class="keycap">7</code> and <code class="keycap">&</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-Digit-8" class="key-code">'Digit8'</code></td>
-									<td>0x25</td><td><code class="keycap">8</code> and <code class="keycap">*</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-Digit-9" class="key-code">'Digit9'</code></td>
-									<td>0x26</td><td><code class="keycap">9</code> and <code class="keycap">(</code> on a US keyboard.</td></tr>
-
-								<tr><td><code id="code-Equal" class="key-code">'Equal'</code></td>
-									<td>0x2e</td><td><code class="keycap">=</code> and <code class="keycap">+</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-IntlBackslash" class="key-code">'IntlBackslash'</code></td>
-									<td>0x64</td><td>Located between the <code class="key-code">'ShiftLeft'</code> and <code class="key-code">'KeyZ'</code> keys. The <code class="keycap">\</code> and <code class="keycap">|</code> key on a UK keyboard.</td></tr>
-								<tr><td><code id="code-IntlHash" class="key-code">'IntlHash'</code></td>
-									<td>0x32</td><td>Located between the <code class="key-code">'Quote'</code> and <code class="key-code">'Enter'</code> keys on row E of the keyboard. The <code class="keycap">#</code> and <code class="keycap">~</code> key on a UK keyboard.</td></tr>
-								<tr><td><code id="code-IntlRo" class="key-code">'IntlRo'</code></td>
-									<td>0x87</td><td>Located between the <code class="key-code">'Slash'</code> and <code class="key-code">'ShiftRight'</code> keys. The <code class="keycap">\</code> and <code class="keycap">ろ</code> (<span class="phonetic">ro</span>) key on a Japanese keyboard.</td></tr>
-								<tr><td><code id="code-IntlYen" class="key-code">'IntlYen'</code></td>
-									<td>0x89</td><td>Located between the <code class="key-code">'Equal'</code> and <code class="key-code">'Backspace'</code> keys. The <code class="keycap">¥</code> (<span class="phonetic">yen</span>) key on a Japanese keyboard. The <code class="keycap">\</code> and <code class="keycap">/</code> key on a Russian keyboard.</td></tr>
-
-								<tr><td><code id="code-KeyA" class="key-code">'KeyA'</code></td>
-									<td>0x04</td><td><code class="keycap">a</code> on a US keyboard. Labelled <code class="keycap">q</code> on an AZERTY (e.g., French) keyboard.</td></tr>
-								<tr><td><code id="code-KeyB" class="key-code">'KeyB'</code></td>
-									<td>0x05</td><td><code class="keycap">b</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyC" class="key-code">'KeyC'</code></td>
-									<td>0x06</td><td><code class="keycap">c</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyD" class="key-code">'KeyD'</code></td>
-									<td>0x07</td><td><code class="keycap">d</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyE" class="key-code">'KeyE'</code></td>
-									<td>0x08</td><td><code class="keycap">e</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyF" class="key-code">'KeyF'</code></td>
-									<td>0x09</td><td><code class="keycap">f</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyG" class="key-code">'KeyG'</code></td>
-									<td>0x0a</td><td><code class="keycap">g</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyH" class="key-code">'KeyH'</code></td>
-									<td>0x0b</td><td><code class="keycap">h</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyI" class="key-code">'KeyI'</code></td>
-									<td>0x0c</td><td><code class="keycap">i</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyJ" class="key-code">'KeyJ'</code></td>
-									<td>0x0d</td><td><code class="keycap">j</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyK" class="key-code">'KeyK'</code></td>
-									<td>0x0e</td><td><code class="keycap">k</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyL" class="key-code">'KeyL'</code></td>
-									<td>0x0f</td><td><code class="keycap">l</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyM" class="key-code">'KeyM'</code></td>
-									<td>0x10</td><td><code class="keycap">m</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyN" class="key-code">'KeyN'</code></td>
-									<td>0x11</td><td><code class="keycap">n</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyO" class="key-code">'KeyO'</code></td>
-									<td>0x12</td><td><code class="keycap">o</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyP" class="key-code">'KeyP'</code></td>
-									<td>0x13</td><td><code class="keycap">p</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyQ" class="key-code">'KeyQ'</code></td>
-									<td>0x14</td><td><code class="keycap">q</code> on a US keyboard. Labelled <code class="keycap">a</code> on an AZERTY (e.g., French) keyboard.</td></tr>
-								<tr><td><code id="code-KeyR" class="key-code">'KeyR'</code></td>
-									<td>0x15</td><td><code class="keycap">r</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyS" class="key-code">'KeyS'</code></td>
-									<td>0x16</td><td><code class="keycap">s</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyT" class="key-code">'KeyT'</code></td>
-									<td>0x17</td><td><code class="keycap">t</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyU" class="key-code">'KeyU'</code></td>
-									<td>0x18</td><td><code class="keycap">u</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyV" class="key-code">'KeyV'</code></td>
-									<td>0x19</td><td><code class="keycap">v</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyW" class="key-code">'KeyW'</code></td>
-									<td>0x1a</td><td><code class="keycap">w</code> on a US keyboard. Labelled <code class="keycap">z</code> on an AZERTY (e.g., French) keyboard.</td></tr>
-								<tr><td><code id="code-KeyX" class="key-code">'KeyX'</code></td>
-									<td>0x1b</td><td><code class="keycap">x</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-KeyY" class="key-code">'KeyY'</code></td>
-									<td>0x1c</td><td><code class="keycap">y</code> on a US keyboard. Labelled <code class="keycap">z</code> on a QWERTZ (e.g., German) keyboard.</td></tr>
-								<tr><td><code id="code-KeyZ" class="key-code">'KeyZ'</code></td>
-									<td>0x1d</td><td><code class="keycap">z</code> on a US keyboard. Labelled <code class="keycap">w</code> on an AZERTY (e.g., French) keyboard, and <code class="keycap">y</code> on a QWERTZ (e.g., German) keyboard.</td></tr>
-
-								<tr><td><code id="code-Minus" class="key-code">'Minus'</code></td>
-									<td>0x2d</td><td><code class="keycap">-</code> and <code class="keycap">_</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-Period" class="key-code">'Period'</code></td>
-									<td>0x37</td><td><code class="keycap">.</code> and <code class="keycap">&gt;</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-Quote" class="key-code">'Quote'</code></td>
-									<td>0x34</td><td><code class="keycap">'</code> and <code class="keycap">"</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-Semicolon" class="key-code">'Semicolon'</code></td>
-									<td>0x33</td><td><code class="keycap">;</code> and <code class="keycap">:</code> on a US keyboard.</td></tr>
-								<tr><td><code id="code-Slash" class="key-code">'Slash'</code></td>
-									<td>0x38</td><td><code class="keycap">/</code> and <code class="keycap">?</code> on a US keyboard.</td></tr>
-							</tbody>
-						</table>
-					</section>
-
-					<section id="key-alphanumeric-functional">
-						<h1>Functional Keys</h1>
-						<p>The Functional keys (<em>not to be confused with the
-						   <a href="#key-function-section">Function keys</a> described later</em>) are those
-						   keys in the Alphanumeric section that provide general editing functions that are common to all locales
-						   (like Shift, Tab, Enter and Backspace).
-						   With a few exceptions, these keys do not change meaning based on the current keyboard layout.
-						</p>
-
-						<figure id="figure-keyboard-codes-alphanum2">
-							<img src='images/keyboard-codes-alphanum2.svg' width="653" height="225" />
-							<figcaption>The standard set of functional keys in the alphanumeric section</figcaption>
-						</figure>
-
-						<table id="table-key-code-alphanumeric-functional-1" class="data-table full-width">
-							<caption>List of code values for functional keys in the Alphanumeric section.</caption>
-							<thead><tr><th>Code Value</th><th>USB Usage ID<br/>Page 0x07<br/>(Informative)</th><th>Notes (Informative)</th></tr></thead>
-							<tbody>
-								<tr><td><code id="code-AltLeft" class="key-code">'AltLeft'</code></td>
-									<td>0xe2</td><td>Labelled <code class="keycap">Alt</code> or <code class="keycap">Option</code>.</td></tr>
-								<tr><td><code id="code-AltRight" class="key-code">'AltRight'</code></td>
-									<td>0xe6</td><td>Labelled <code class="keycap">Alt</code> or <code class="keycap">Option</code>. This is the <code class="keycap">AltGr</code> key on many keyboard layouts.</td></tr>
-								<tr><td><code id="code-CapsLock" class="key-code">'CapsLock'</code></td>
-									<td>0x39</td><td></td></tr>
-								<tr><td><code id="code-ContextMenu" class="key-code">'ContextMenu'</code></td>
-									<td>0x65</td><td>The application context menu key, which is typically found between the right OS key and the right Control key.</td></tr>
-								<tr><td><code id="code-ControlLeft" class="key-code">'ControlLeft'</code></td>
-									<td>0xe0</td><td></td></tr>
-								<tr><td><code id="code-ControlRight" class="key-code">'ControlRight'</code></td>
-									<td>0xe4</td><td></td></tr>
-								<tr><td><code id="code-Enter" class="key-code">'Enter'</code></td>
-									<td>0x28</td><td>Labelled <code class="keycap">Enter</code> and <code class="keycap">Return</code> on Macintosh keyboards.</td></tr>
-								<tr><td><code id="code-OSLeft" class="key-code">'OSLeft'</code></td>
-									<td>0xe3</td><td>The Windows, <code class="keycap">⌘</code>, <code class="keycap">Command</code> or other OS symbol key.</td></tr>
-								<tr><td><code id="code-OSRight" class="key-code">'OSRight'</code></td>
-									<td>0xe7</td><td>The Windows, <code class="keycap">⌘</code>, <code class="keycap">Command</code> or other OS symbol key.</td></tr>
-								<tr><td><code id="code-ShiftLeft" class="key-code">'ShiftLeft'</code></td>
-									<td>0xe1</td><td></td></tr>
-								<tr><td><code id="code-ShiftRight" class="key-code">'ShiftRight'</code></td>
-									<td>0xe5</td><td></td></tr>
-								<tr><td><code id="code-Space" class="key-code">'Space'</code></td>
-									<td>0x2c</td><td>The <code class="keycap">&nbsp;</code> key.</td></tr>
-								<tr><td><code id="code-Tab" class="key-code">'Tab'</code></td>
-									<td>0x2b</td><td></td></tr>
-							</tbody>
-						</table>
-						<p>On some keyboards (notably Japanese and Korean) the spacebar is reduced in size to make room
-						   for extra keys on the bottom row. These keys typically allow the users to change the current input
-						   mode. Note that even though some of these Japanese and Korean keys occupy the same physical location on the
-						   keyboard, they use different <code>code</code> values.
-						</p>
-						
-						<figure id="figure-function-row-a">
-							<img src='images/functional-row-a.svg' width="700" height="160" />
-							<figcaption>Comparison of the lower row of functional keys on different keyboards</figcaption>
-						</figure>
-						
-						<table id="table-key-code-alphanumeric-functional-2" class="data-table full-width">
-							<caption>List of code values for functional keys found on Japanese and Korean keyboards.</caption>
-							<thead><tr><th>Code Value</th><th>USB Usage ID<br/>Page 0x07<br/>(Informative)</th><th>Notes (Informative)</th></tr></thead>
-							<tbody>
-								<tr><td><code id="code-Convert" class="key-code">'Convert'</code></td>
-									<td>0x8a</td><td>Japanese: <code class="keycap">変換</code> (<span class="phonetic">henkan</span>)</td></tr>
-								<tr><td><code id="code-KanaMode" class="key-code">'KanaMode'</code></td>
-									<td>0x88</td><td>Japanese: <code class="keycap">カタカナ/ひらがな/ローマ字</code> (<span class="phonetic">katakana/hiragana/romaji</span>)</td></tr>
-								<tr><td><code id="code-Lang1" class="key-code">'Lang1'</code></td>
-									<td>0x90</td>
-									<td>Korean: <code class="keycap">한/영</code> (<span class="phonetic">han/yeong</span>)<br/>
-										Japanese (Mac keyboard): <code class="keycap">かな</code> (<span class="phonetic">kana</span>)
-										</td></tr>
-								<tr><td><code id="code-Lang2" class="key-code">'Lang2'</code></td>
-									<td>0x91</td>
-									<td>Korean: <code class="keycap">한자</code> (<span class="phonetic">hanja</span>)<br/>
-										Japanese (Mac keyboard): <code class="keycap">英数</code> (<span class="phonetic">eisu</span>)
-										</td></tr>
-								<tr><td><code id="code-Lang3" class="key-code">'Lang3'</code></td>
-									<td>0x92</td>
-									<td>Japanese (word-processing keyboard): Katakana
-										</td></tr>
-								<tr><td><code id="code-Lang4" class="key-code">'Lang4'</code></td>
-									<td>0x93</td>
-									<td>Japanese (word-processing keyboard): Hiragana
-										</td></tr>
-								<tr><td><code id="code-Lang5" class="key-code">'Lang5'</code></td>
-									<td>0x94</td>
-									<td>Japanese (word-processing keyboard): Zenkaku/Hankaku
-										</td></tr>
-								<tr><td><code id="code-NoConvert" class="key-code">'NoConvert'</code></td>
-									<td>0x8b</td><td>Japanese: <code class="keycap">無変換</code> (<span class="phonetic">muhenkan</span>)</td></tr>
-							</tbody>
-						</table>
-						<p>On Apple keyboards, some keys on the bottom row are omitted and others are arranged in
-						   a different order.
-						</p>
-					</section>
-				</section>
-
-				<section id="key-controlpad-section">
-					<h1>Control Pad Section</h1>
-					<p>The Control Pad contains keys for navigating and editing documents.
-					</p>
-					
-					<figure id="figure-control-pad">
-						<img src='images/control-pad.svg' width="495" height="135" />
-						<figcaption>Standard Control Pad layouts</figcaption>
-					</figure>
-					
-					<table id="table-key-code-controlpad" class="data-table full-width">
-						<caption>List of code values for keys in the ControlPad section.</caption>
+					<table id="table-key-code-alphanumeric-writing-system" class="data-table full-width">
+						<caption>List of code values for writing system keys in the Alphanumeric section.</caption>
 						<thead><tr><th>Code Value</th><th>USB Usage ID<br/>Page 0x07<br/>(Informative)</th><th>Notes (Informative)</th></tr></thead>
 						<tbody>
-							<tr><td><code id="code-Delete" class="key-code">'Delete'</code></td>
-								<td>0x4c</td><td></td></tr>
-							<tr><td><code id="code-End" class="key-code">'End'</code></td>
-								<td>0x4d</td><td></td></tr>
-							<tr><td><code id="code-Help" class="key-code">'Help'</code></td>
-								<td>0x75</td><td>Not present on standard PC keyboards.</td></tr>
-							<tr><td><code id="code-Home" class="key-code">'Home'</code></td>
-								<td>0x4a</td><td></td></tr>
-							<tr><td><code id="code-Insert" class="key-code">'Insert'</code></td>
-								<td>0x49</td><td>Not present on Apple keyboards.</td></tr>
-							<tr><td><code id="code-PageUp" class="key-code">'PageDown'</code></td>
-								<td>0x4e</td><td></td></tr>
-							<tr><td><code id="code-PageDown" class="key-code">'PageUp'</code></td>
-								<td>0x4b</td><td></td></tr>
-						</tbody>
-					</table>
-					<p>Note: The <code>code</code> for the <code class="key-code">'Fn'</code> key (found on
-					   some Apple keyboards) is defined below in the Function Section.
-					</p>
-				</section>
+							<tr><td><code id="code-Backquote" class="key-code">'Backquote'</code></td>
+								<td>0x35</td><td><code class="keycap">`</code> and <code class="keycap">~</code> on a US keyboard. This is the <code class="keycap">半角/全角/漢字</code> (<span class="phonetic">hankaku/zenkaku/kanji</span>) key on Japanese keyboards</td></tr>
+							<tr><td><code id="code-Backslash" class="key-code">'Backslash'</code></td>
+								<td>0x31</td><td><code class="keycap">\</code> and <code class="keycap">|</code> on a US keyboard. Found only on standard 101-key layouts.</td></tr>
+							<tr><td><code id="code-Backspace" class="key-code">'Backspace'</code></td>
+								<td>0x2a</td><td>Labelled <code class="keycap">Delete</code> on Macintosh keyboards.</td></tr>
+							<tr><td><code id="code-BracketLeft" class="key-code">'BracketLeft'</code></td>
+								<td>0x2f</td><td><code class="keycap">[</code> and <code class="keycap">{</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-BracketRight" class="key-code">'BracketRight'</code></td>
+								<td>0x30</td><td><code class="keycap">]</code> and <code class="keycap">}</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-Comma" class="key-code">'Comma'</code></td>
+								<td>0x36</td><td><code class="keycap">,</code> and <code class="keycap">&lt;</code> on a US keyboard.</td></tr>
 
-				<section id="key-arrowpad-section">
-					<h1>Arrow Pad Section</h1>
-					<p>The Arrow Pad section contains the 4 arrow keys.
-					</p>
-					
-					<figure id="figure-arrow-pad">
-						<img src='images/arrow-pad.svg' width="160" height="115" />
-						<figcaption>Standard Arrow Pad layout</figcaption>
-					</figure>
-					
-					<table id="table-key-code-arrowpad" class="data-table full-width">
-						<caption>List of code values for keys in the ArrowPad section.</caption>
-						<thead><tr><th>Code Value</th><th>USB Usage ID<br/>Page 0x07<br/>(Informative)</th><th>Notes (Informative)</th></tr></thead>
-						<tbody>
-							<tr><td><code id="code-ArrowDown" class="key-code">'ArrowDown'</code></td>
-								<td>0x51</td><td></td></tr>
-							<tr><td><code id="code-ArrowLeft" class="key-code">'ArrowLeft'</code></td>
-								<td>0x50</td><td></td></tr>
-							<tr><td><code id="code-ArrowRight" class="key-code">'ArrowRight'</code></td>
-								<td>0x4f</td><td></td></tr>
-							<tr><td><code id="code-ArrowUp" class="key-code">'ArrowUp'</code></td>
-								<td>0x52</td><td></td></tr>
+							<tr><td><code id="code-Digit-0" class="key-code">'Digit0'</code></td>
+								<td>0x27</td><td><code class="keycap">0</code> and <code class="keycap">)</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-Digit-1" class="key-code">'Digit1'</code></td>
+								<td>0x1e</td><td><code class="keycap">1</code> and <code class="keycap">!</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-Digit-2" class="key-code">'Digit2'</code></td>
+								<td>0x1f</td><td><code class="keycap">2</code> and <code class="keycap">@</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-Digit-3" class="key-code">'Digit3'</code></td>
+								<td>0x20</td><td><code class="keycap">3</code> and <code class="keycap">#</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-Digit-4" class="key-code">'Digit4'</code></td>
+								<td>0x21</td><td><code class="keycap">4</code> and <code class="keycap">$</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-Digit-5" class="key-code">'Digit5'</code></td>
+								<td>0x22</td><td><code class="keycap">5</code> and <code class="keycap">%</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-Digit-6" class="key-code">'Digit6'</code></td>
+								<td>0x23</td><td><code class="keycap">6</code> and <code class="keycap">^</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-Digit-7" class="key-code">'Digit7'</code></td>
+								<td>0x24</td><td><code class="keycap">7</code> and <code class="keycap">&</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-Digit-8" class="key-code">'Digit8'</code></td>
+								<td>0x25</td><td><code class="keycap">8</code> and <code class="keycap">*</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-Digit-9" class="key-code">'Digit9'</code></td>
+								<td>0x26</td><td><code class="keycap">9</code> and <code class="keycap">(</code> on a US keyboard.</td></tr>
+
+							<tr><td><code id="code-Equal" class="key-code">'Equal'</code></td>
+								<td>0x2e</td><td><code class="keycap">=</code> and <code class="keycap">+</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-IntlBackslash" class="key-code">'IntlBackslash'</code></td>
+								<td>0x64</td><td>Located between the <code class="key-code">'ShiftLeft'</code> and <code class="key-code">'KeyZ'</code> keys. The <code class="keycap">\</code> and <code class="keycap">|</code> key on a UK keyboard.</td></tr>
+							<tr><td><code id="code-IntlHash" class="key-code">'IntlHash'</code></td>
+								<td>0x32</td><td>Located between the <code class="key-code">'Quote'</code> and <code class="key-code">'Enter'</code> keys on row E of the keyboard. The <code class="keycap">#</code> and <code class="keycap">~</code> key on a UK keyboard.</td></tr>
+							<tr><td><code id="code-IntlRo" class="key-code">'IntlRo'</code></td>
+								<td>0x87</td><td>Located between the <code class="key-code">'Slash'</code> and <code class="key-code">'ShiftRight'</code> keys. The <code class="keycap">\</code> and <code class="keycap">ろ</code> (<span class="phonetic">ro</span>) key on a Japanese keyboard.</td></tr>
+							<tr><td><code id="code-IntlYen" class="key-code">'IntlYen'</code></td>
+								<td>0x89</td><td>Located between the <code class="key-code">'Equal'</code> and <code class="key-code">'Backspace'</code> keys. The <code class="keycap">¥</code> (<span class="phonetic">yen</span>) key on a Japanese keyboard. The <code class="keycap">\</code> and <code class="keycap">/</code> key on a Russian keyboard.</td></tr>
+
+							<tr><td><code id="code-KeyA" class="key-code">'KeyA'</code></td>
+								<td>0x04</td><td><code class="keycap">a</code> on a US keyboard. Labelled <code class="keycap">q</code> on an AZERTY (e.g., French) keyboard.</td></tr>
+							<tr><td><code id="code-KeyB" class="key-code">'KeyB'</code></td>
+								<td>0x05</td><td><code class="keycap">b</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyC" class="key-code">'KeyC'</code></td>
+								<td>0x06</td><td><code class="keycap">c</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyD" class="key-code">'KeyD'</code></td>
+								<td>0x07</td><td><code class="keycap">d</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyE" class="key-code">'KeyE'</code></td>
+								<td>0x08</td><td><code class="keycap">e</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyF" class="key-code">'KeyF'</code></td>
+								<td>0x09</td><td><code class="keycap">f</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyG" class="key-code">'KeyG'</code></td>
+								<td>0x0a</td><td><code class="keycap">g</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyH" class="key-code">'KeyH'</code></td>
+								<td>0x0b</td><td><code class="keycap">h</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyI" class="key-code">'KeyI'</code></td>
+								<td>0x0c</td><td><code class="keycap">i</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyJ" class="key-code">'KeyJ'</code></td>
+								<td>0x0d</td><td><code class="keycap">j</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyK" class="key-code">'KeyK'</code></td>
+								<td>0x0e</td><td><code class="keycap">k</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyL" class="key-code">'KeyL'</code></td>
+								<td>0x0f</td><td><code class="keycap">l</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyM" class="key-code">'KeyM'</code></td>
+								<td>0x10</td><td><code class="keycap">m</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyN" class="key-code">'KeyN'</code></td>
+								<td>0x11</td><td><code class="keycap">n</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyO" class="key-code">'KeyO'</code></td>
+								<td>0x12</td><td><code class="keycap">o</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyP" class="key-code">'KeyP'</code></td>
+								<td>0x13</td><td><code class="keycap">p</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyQ" class="key-code">'KeyQ'</code></td>
+								<td>0x14</td><td><code class="keycap">q</code> on a US keyboard. Labelled <code class="keycap">a</code> on an AZERTY (e.g., French) keyboard.</td></tr>
+							<tr><td><code id="code-KeyR" class="key-code">'KeyR'</code></td>
+								<td>0x15</td><td><code class="keycap">r</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyS" class="key-code">'KeyS'</code></td>
+								<td>0x16</td><td><code class="keycap">s</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyT" class="key-code">'KeyT'</code></td>
+								<td>0x17</td><td><code class="keycap">t</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyU" class="key-code">'KeyU'</code></td>
+								<td>0x18</td><td><code class="keycap">u</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyV" class="key-code">'KeyV'</code></td>
+								<td>0x19</td><td><code class="keycap">v</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyW" class="key-code">'KeyW'</code></td>
+								<td>0x1a</td><td><code class="keycap">w</code> on a US keyboard. Labelled <code class="keycap">z</code> on an AZERTY (e.g., French) keyboard.</td></tr>
+							<tr><td><code id="code-KeyX" class="key-code">'KeyX'</code></td>
+								<td>0x1b</td><td><code class="keycap">x</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-KeyY" class="key-code">'KeyY'</code></td>
+								<td>0x1c</td><td><code class="keycap">y</code> on a US keyboard. Labelled <code class="keycap">z</code> on a QWERTZ (e.g., German) keyboard.</td></tr>
+							<tr><td><code id="code-KeyZ" class="key-code">'KeyZ'</code></td>
+								<td>0x1d</td><td><code class="keycap">z</code> on a US keyboard. Labelled <code class="keycap">w</code> on an AZERTY (e.g., French) keyboard, and <code class="keycap">y</code> on a QWERTZ (e.g., German) keyboard.</td></tr>
+
+							<tr><td><code id="code-Minus" class="key-code">'Minus'</code></td>
+								<td>0x2d</td><td><code class="keycap">-</code> and <code class="keycap">_</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-Period" class="key-code">'Period'</code></td>
+								<td>0x37</td><td><code class="keycap">.</code> and <code class="keycap">&gt;</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-Quote" class="key-code">'Quote'</code></td>
+								<td>0x34</td><td><code class="keycap">'</code> and <code class="keycap">"</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-Semicolon" class="key-code">'Semicolon'</code></td>
+								<td>0x33</td><td><code class="keycap">;</code> and <code class="keycap">:</code> on a US keyboard.</td></tr>
+							<tr><td><code id="code-Slash" class="key-code">'Slash'</code></td>
+								<td>0x38</td><td><code class="keycap">/</code> and <code class="keycap">?</code> on a US keyboard.</td></tr>
 						</tbody>
 					</table>
 				</section>
 
-				<section id="key-numpad-section">
-					<h1>Numpad Section</h1>
-					<p>The Numpad Section contains numeric and mathematical operator keys arranged in a calculator-grid
-					   to facilitate numeric data entry.
-					</p>
-					
-					<figure id="figure-numpad">
-						<img src='images/numpad.svg' width="606" height="247" />
-						<figcaption>Standard Numpad layouts</figcaption>
-					</figure>
-					
-					<p>The standard Numpad is sometimes extended with additional keys for parentheses, operators,
-					   hexadecimal symbols, or calculator functions (like backspace). Some of the commonly added keys are
-					   listed in the table below.
+				<section id="key-alphanumeric-functional">
+					<h1>Functional Keys</h1>
+					<p>The Functional keys (<em>not to be confused with the
+					   <a href="#key-function-section">Function keys</a> described later</em>) are those
+					   keys in the Alphanumeric section that provide general editing functions that are common to all locales
+					   (like Shift, Tab, Enter and Backspace).
+					   With a few exceptions, these keys do not change meaning based on the current keyboard layout.
 					</p>
-					<table id="table-key-code-numpad" class="data-table full-width">
-						<caption>List of code values for keys in the Numpad section.</caption>
-						<thead><tr><th>Code Value</th><th>USB Usage ID<br/>Page 0x07<br/>(Informative)</th><th>Notes (Informative)</th></tr></thead>
-						<tbody>
-							<tr><td><code id="code-NumLock" class="key-code">'NumLock'</code></td>
-								<td>0x53</td><td></td></tr>
-							<tr><td><code id="code-Numpad0" class="key-code">'Numpad0'</code></td>
-								<td>0x62</td><td><code class="keycap">0</code> and <code class="keycap">Insert</code></td></tr>
-							<tr><td><code id="code-Numpad1" class="key-code">'Numpad1'</code></td>
-								<td>0x59</td><td><code class="keycap">1</code> and <code class="keycap">End</code></td></tr>
-							<tr><td><code id="code-Numpad2" class="key-code">'Numpad2'</code></td>
-								<td>0x5a</td><td><code class="keycap">2</code> and <code class="keycap">ArrowDown</code></td></tr>
-							<tr><td><code id="code-Numpad3" class="key-code">'Numpad3'</code></td>
-								<td>0x5b</td><td><code class="keycap">3</code> and <code class="keycap">PageDown</code></td></tr>
-							<tr><td><code id="code-Numpad4" class="key-code">'Numpad4'</code></td>
-								<td>0x5c</td><td><code class="keycap">4</code> and <code class="keycap">ArrowLeft</code></td></tr>
-							<tr><td><code id="code-Numpad5" class="key-code">'Numpad5'</code></td>
-								<td>0x5d</td><td><code class="keycap">5</code></td></tr>
-							<tr><td><code id="code-Numpad6" class="key-code">'Numpad6'</code></td>
-								<td>0x5e</td><td><code class="keycap">6</code> and <code class="keycap">ArrowRight</code></td></tr>
-							<tr><td><code id="code-Numpad7" class="key-code">'Numpad7'</code></td>
-								<td>0x5f</td><td><code class="keycap">7</code> and <code class="keycap">Home</code></td></tr>
-							<tr><td><code id="code-Numpad8" class="key-code">'Numpad8'</code></td>
-								<td>0x60</td><td><code class="keycap">8</code> and <code class="keycap">ArrowUp</code></td></tr>
-							<tr><td><code id="code-Numpad9" class="key-code">'Numpad9'</code></td>
-								<td>0x61</td><td><code class="keycap">9</code> and <code class="keycap">PageUp</code></td></tr>
-							<tr><td><code id="code-NumpadAdd" class="key-code">'NumpadAdd'</code></td>
-								<td>0x57</td><td><code class="keycap">+</code></td></tr>
-							<tr><td><code id="code-NumpadBackspace" class="key-code">'NumpadBackspace'</code></td>
-								<td>0xbb</td><td>Found on the Microsoft Natural Keyboard.</td></tr>
-							<tr><td><code id="code-NumpadClear" class="key-code">'NumpadClear'</code></td>
-								<td>0xd8</td><td></td></tr>
-							<tr><td><code id="code-NumpadClearEntry" class="key-code">'NumpadClearEntry'</code></td>
-								<td>0xd9</td><td></td></tr>
-							<tr><td><code id="code-NumpadComma" class="key-code">'NumpadComma'</code></td>
-								<td>0x85</td><td><code class="keycap">,</code> (thousands separator). For locales where the thousands separator is a <code class="glyph">'.'</code> (e.g., Brazil), this key may generate a <code class="glyph">'.'</code>.</td></tr>
-							<tr><td><code id="code-NumpadDecimal" class="key-code">'NumpadDecimal'</code></td>
-								<td>0x63</td><td><code class="keycap">.</code> (decimal separator) and <code class="keycap">Delete</code>. For locales where the decimal separator is <code class="glyph">','</code> (e.g., Brazil), this key may generate a <code class="glyph">','</code>.</td></tr>
-							<tr><td><code id="code-NumpadDivide" class="key-code">'NumpadDivide'</code></td>
-								<td>0x54</td><td><code class="keycap">/</code></td></tr>
-							<tr><td><code id="code-NumpadEnter" class="key-code">'NumpadEnter'</code></td>
-								<td>0x58</td><td></td></tr>
-							<tr><td><code id="code-NumpadEqual" class="key-code">'NumpadEqual'</code></td>
-								<td>0x67</td><td><code class="keycap">=</code></td></tr>
-							<tr><td><code id="code-NumpadMemoryAdd" class="key-code">'NumpadMemoryAdd'</code></td>
-								<td>0xd3</td><td></td></tr>
-							<tr><td><code id="code-NumpadMemoryClear" class="key-code">'NumpadMemoryClear'</code></td>
-								<td>0xd2</td><td></td></tr>
-							<tr><td><code id="code-NumpadMemoryRecall" class="key-code">'NumpadMemoryRecall'</code></td>
-								<td>0xd1</td><td></td></tr>
-							<tr><td><code id="code-NumpadMemoryStore" class="key-code">'NumpadMemoryStore'</code></td>
-								<td>0xd0</td><td></td></tr>
-							<tr><td><code id="code-NumpadMemorySubtract" class="key-code">'NumpadMemorySubtract'</code></td>
-								<td>0xd4</td><td></td></tr>
-							<tr><td><code id="code-NumpadMultiply" class="key-code">'NumpadMultiply'</code></td>
-								<td>0x55</td><td><code class="keycap">*</code></td></tr>
-							<tr><td><code id="code-NumpadParenLeft" class="key-code">'NumpadParenLeft'</code></td>
-								<td>0xb6</td><td><code class="keycap">(</code> Found on the Microsoft Natural Keyboard.</td></tr>
-							<tr><td><code id="code-NumpadParenRight" class="key-code">'NumpadParenRight'</code></td>
-								<td>0xb7</td><td><code class="keycap">)</code> Found on the Microsoft Natural Keyboard.</td></tr>
-							<tr><td><code id="code-NumpadSubtract" class="key-code">'NumpadSubtract'</code></td>
-								<td>0x56</td><td><code class="keycap">-</code></td></tr>
-						</tbody>
-					</table>
-					<p>For Numpads that provide keys not listed here, a <code>code</code> value string should be created by
-					   starting with 'Numpad' and appending an appropriate description of the key.
-					</p>
-				</section>
 
-				<section id="key-function-section">
-					<h1>Function Section</h1>
-					<p>The Function section runs along the top of the keyboard and contains the function keys and
-					   a few additional special keys (for example, <code class="key-code">'Escape'</code> and
-					   <code class="key-code">'PrintScreen'</code>).
-					</p>
-					<p>On some keyboards (especially those found on laptops or other portable computers), the function keys
-					   (<code class="key-code">'F1'</code> ... <code class="key-code">'F12'</code>)
-					   are defined to have other primary functions (like controlling display brightness or
-					   audio volume) and require that a separate <code class="key-code">'Fn'</code> key
-					   be pressed to make them act as function keys.
-					   Unfortunately, the primary functions assigned to these keys varies widely from one manufacturer to the next.
-					   Because of this, the <code>code</code> is always set to the function key name.
-					</p>
-					<table id="table-key-code-function" class="data-table full-width">
-						<caption>List of code values for keys in the Function section.</caption>
+					<figure id="figure-keyboard-codes-alphanum2">
+						<img src='images/keyboard-codes-alphanum2.svg' width="653" height="225" />
+						<figcaption>The standard set of functional keys in the alphanumeric section</figcaption>
+					</figure>
+
+					<table id="table-key-code-alphanumeric-functional-1" class="data-table full-width">
+						<caption>List of code values for functional keys in the Alphanumeric section.</caption>
 						<thead><tr><th>Code Value</th><th>USB Usage ID<br/>Page 0x07<br/>(Informative)</th><th>Notes (Informative)</th></tr></thead>
 						<tbody>
-							<tr><td><code id="code-Escape" class="key-code">'Escape'</code></td>
-								<td>0x29</td><td></td></tr>
-							<tr><td><code id="code-F1" class="key-code">'F1'</code></td>
-								<td>0x3a</td><td></td></tr>
-							<tr><td><code id="code-F2" class="key-code">'F2'</code></td>
-								<td>0x3b</td><td></td></tr>
-							<tr><td><code id="code-F3" class="key-code">'F3'</code></td>
-								<td>0x3c</td><td></td></tr>
-							<tr><td><code id="code-F4" class="key-code">'F4'</code></td>
-								<td>0x3d</td><td></td></tr>
-							<tr><td><code id="code-F5" class="key-code">'F5'</code></td>
-								<td>0x3e</td><td></td></tr>
-							<tr><td><code id="code-F6" class="key-code">'F6'</code></td>
-								<td>0x3f</td><td></td></tr>
-							<tr><td><code id="code-F7" class="key-code">'F7'</code></td>
-								<td>0x40</td><td></td></tr>
-							<tr><td><code id="code-F8" class="key-code">'F8'</code></td>
-								<td>0x41</td><td></td></tr>
-							<tr><td><code id="code-F9" class="key-code">'F9'</code></td>
-								<td>0x42</td><td></td></tr>
-							<tr><td><code id="code-F10" class="key-code">'F10'</code></td>
-								<td>0x43</td><td></td></tr>
-							<tr><td><code id="code-F11" class="key-code">'F11'</code></td>
-								<td>0x44</td><td></td></tr>
-							<tr><td><code id="code-F12" class="key-code">'F12'</code></td>
-								<td>0x45</td><td></td></tr>
-							<tr><td><code id="code-Fn" class="key-code">'Fn'</code></td>
-								<td></td><td>This is typically a hardware key that does not generate a separate code. Most keyboards do not place this key in the Function section, but it is included here to keep with related keys.</td></tr>
-							<tr><td><code id="code-FLock" class="key-code">'FLock'</code></td>
-								<td></td><td>Found on the Microsoft Natural Keyboard.</td></tr>
-							<tr><td><code id="code-PrintScreen" class="key-code">'PrintScreen'</code></td>
-								<td>0x46</td><td><code class="keycap">PrintScreen</code> and <code class="keycap">SysReq</code></td></tr>
-							<tr><td><code id="code-ScrollLock" class="key-code">'ScrollLock'</code></td>
-								<td>0x47</td><td></td></tr>
-							<tr><td><code id="code-Pause" class="key-code">'Pause'</code></td>
-								<td>0x48</td><td><code class="keycap">Pause</code> and <code class="keycap">Break</code></td></tr>
+							<tr><td><code id="code-AltLeft" class="key-code">'AltLeft'</code></td>
+								<td>0xe2</td><td>Labelled <code class="keycap">Alt</code> or <code class="keycap">Option</code>.</td></tr>
+							<tr><td><code id="code-AltRight" class="key-code">'AltRight'</code></td>
+								<td>0xe6</td><td>Labelled <code class="keycap">Alt</code> or <code class="keycap">Option</code>. This is the <code class="keycap">AltGr</code> key on many keyboard layouts.</td></tr>
+							<tr><td><code id="code-CapsLock" class="key-code">'CapsLock'</code></td>
+								<td>0x39</td><td></td></tr>
+							<tr><td><code id="code-ContextMenu" class="key-code">'ContextMenu'</code></td>
+								<td>0x65</td><td>The application context menu key, which is typically found between the right OS key and the right Control key.</td></tr>
+							<tr><td><code id="code-ControlLeft" class="key-code">'ControlLeft'</code></td>
+								<td>0xe0</td><td></td></tr>
+							<tr><td><code id="code-ControlRight" class="key-code">'ControlRight'</code></td>
+								<td>0xe4</td><td></td></tr>
+							<tr><td><code id="code-Enter" class="key-code">'Enter'</code></td>
+								<td>0x28</td><td>Labelled <code class="keycap">Enter</code> and <code class="keycap">Return</code> on Macintosh keyboards.</td></tr>
+							<tr><td><code id="code-OSLeft" class="key-code">'OSLeft'</code></td>
+								<td>0xe3</td><td>The Windows, <code class="keycap">⌘</code>, <code class="keycap">Command</code> or other OS symbol key.</td></tr>
+							<tr><td><code id="code-OSRight" class="key-code">'OSRight'</code></td>
+								<td>0xe7</td><td>The Windows, <code class="keycap">⌘</code>, <code class="keycap">Command</code> or other OS symbol key.</td></tr>
+							<tr><td><code id="code-ShiftLeft" class="key-code">'ShiftLeft'</code></td>
+								<td>0xe1</td><td></td></tr>
+							<tr><td><code id="code-ShiftRight" class="key-code">'ShiftRight'</code></td>
+								<td>0xe5</td><td></td></tr>
+							<tr><td><code id="code-Space" class="key-code">'Space'</code></td>
+								<td>0x2c</td><td>The <code class="keycap">&nbsp;</code> key.</td></tr>
+							<tr><td><code id="code-Tab" class="key-code">'Tab'</code></td>
+								<td>0x2b</td><td></td></tr>
 						</tbody>
 					</table>
-					<p>For keyboards that provide more than 12 function keys, the <code>code</code> value follows the pattern
-					   shown above with 'F' followed by the function key number - <code class="key-code">'F13'</code>, <code class="key-code">'F14'</code>,
-					   <code class="key-code">'F15'</code>, and so on.
+					<p>On some keyboards (notably Japanese and Korean) the spacebar is reduced in size to make room
+					   for extra keys on the bottom row. These keys typically allow the users to change the current input
+					   mode. Note that even though some of these Japanese and Korean keys occupy the same physical location on the
+					   keyboard, they use different <code>code</code> values.
 					</p>
-					<p>Note: Apple keyboards may have <code class="key-code">'Eject'</code> or <code class="key-code">'Power'</code>
-					   keys in the Function section. The <code>code</code> values
-					   for these keys are defined in the Media Keys section.
+					
+					<figure id="figure-function-row-a">
+						<img src='images/functional-row-a.svg' width="700" height="160" />
+						<figcaption>Comparison of the lower row of functional keys on different keyboards</figcaption>
+					</figure>
+					
+					<table id="table-key-code-alphanumeric-functional-2" class="data-table full-width">
+						<caption>List of code values for functional keys found on Japanese and Korean keyboards.</caption>
+						<thead><tr><th>Code Value</th><th>USB Usage ID<br/>Page 0x07<br/>(Informative)</th><th>Notes (Informative)</th></tr></thead>
+						<tbody>
+							<tr><td><code id="code-Convert" class="key-code">'Convert'</code></td>
+								<td>0x8a</td><td>Japanese: <code class="keycap">変換</code> (<span class="phonetic">henkan</span>)</td></tr>
+							<tr><td><code id="code-KanaMode" class="key-code">'KanaMode'</code></td>
+								<td>0x88</td><td>Japanese: <code class="keycap">カタカナ/ひらがな/ローマ字</code> (<span class="phonetic">katakana/hiragana/romaji</span>)</td></tr>
+							<tr><td><code id="code-Lang1" class="key-code">'Lang1'</code></td>
+								<td>0x90</td>
+								<td>Korean: <code class="keycap">한/영</code> (<span class="phonetic">han/yeong</span>)<br/>
+									Japanese (Mac keyboard): <code class="keycap">かな</code> (<span class="phonetic">kana</span>)
+									</td></tr>
+							<tr><td><code id="code-Lang2" class="key-code">'Lang2'</code></td>
+								<td>0x91</td>
+								<td>Korean: <code class="keycap">한자</code> (<span class="phonetic">hanja</span>)<br/>
+									Japanese (Mac keyboard): <code class="keycap">英数</code> (<span class="phonetic">eisu</span>)
+									</td></tr>
+							<tr><td><code id="code-Lang3" class="key-code">'Lang3'</code></td>
+								<td>0x92</td>
+								<td>Japanese (word-processing keyboard): Katakana
+									</td></tr>
+							<tr><td><code id="code-Lang4" class="key-code">'Lang4'</code></td>
+								<td>0x93</td>
+								<td>Japanese (word-processing keyboard): Hiragana
+									</td></tr>
+							<tr><td><code id="code-Lang5" class="key-code">'Lang5'</code></td>
+								<td>0x94</td>
+								<td>Japanese (word-processing keyboard): Zenkaku/Hankaku
+									</td></tr>
+							<tr><td><code id="code-NoConvert" class="key-code">'NoConvert'</code></td>
+								<td>0x8b</td><td>Japanese: <code class="keycap">無変換</code> (<span class="phonetic">muhenkan</span>)</td></tr>
+						</tbody>
+					</table>
+					<p>On Apple keyboards, some keys on the bottom row are omitted and others are arranged in
+					   a different order.
 					</p>
 				</section>
+			</section>
 
-				<section id="key-media">
-					<h1>Media Keys</h1>
-					<p>Keys that fall outside the sections listed above are referred to as "media keys" since
-					   they commonly provide "media" functions like play, pause or volume control.
-					</p>
-					<p>These are extra keys that many keyboard manufacturers add, but do not have a consistent location.
-					   These keys are often distinct from normal typing keys in appearance and may be recessed in the
-					   keyboard.
-					</p>
-					<p>On laptop keyboards, these keys are often merged with the Function keys, with the "media" interpretation
-					   being the primary function of the key and the "function key" interpretation requiring the
-					   <code class="key-code">'Fn'</code> key to be pressed at the same time. In this configuration the
-					   <code>code</code> should be set to match the function key (<code class="key-code">'F1'</code> ...
-					   <code class="key-code">'F12'</code>). When the keys are merged in this fashion, the <code>code</code>
-					   values are taken from the function key value since the "media" value is not consistent across
-					   keyboards.
+			<section id="key-controlpad-section">
+				<h1>Control Pad Section</h1>
+				<p>The Control Pad contains keys for navigating and editing documents.
+				</p>
+				
+				<figure id="figure-control-pad">
+					<img src='images/control-pad.svg' width="495" height="135" />
+					<figcaption>Standard Control Pad layouts</figcaption>
+				</figure>
+				
+				<table id="table-key-code-controlpad" class="data-table full-width">
+					<caption>List of code values for keys in the ControlPad section.</caption>
+					<thead><tr><th>Code Value</th><th>USB Usage ID<br/>Page 0x07<br/>(Informative)</th><th>Notes (Informative)</th></tr></thead>
+					<tbody>
+						<tr><td><code id="code-Delete" class="key-code">'Delete'</code></td>
+							<td>0x4c</td><td></td></tr>
+						<tr><td><code id="code-End" class="key-code">'End'</code></td>
+							<td>0x4d</td><td></td></tr>
+						<tr><td><code id="code-Help" class="key-code">'Help'</code></td>
+							<td>0x75</td><td>Not present on standard PC keyboards.</td></tr>
+						<tr><td><code id="code-Home" class="key-code">'Home'</code></td>
+							<td>0x4a</td><td></td></tr>
+						<tr><td><code id="code-Insert" class="key-code">'Insert'</code></td>
+							<td>0x49</td><td>Not present on Apple keyboards.</td></tr>
+						<tr><td><code id="code-PageUp" class="key-code">'PageDown'</code></td>
+							<td>0x4e</td><td></td></tr>
+						<tr><td><code id="code-PageDown" class="key-code">'PageUp'</code></td>
+							<td>0x4b</td><td></td></tr>
+					</tbody>
+				</table>
+				<p>Note: The <code>code</code> for the <code class="key-code">'Fn'</code> key (found on
+				   some Apple keyboards) is defined below in the Function Section.
+				</p>
+			</section>
+
+			<section id="key-arrowpad-section">
+				<h1>Arrow Pad Section</h1>
+				<p>The Arrow Pad section contains the 4 arrow keys.
+				</p>
+				
+				<figure id="figure-arrow-pad">
+					<img src='images/arrow-pad.svg' width="160" height="115" />
+					<figcaption>Standard Arrow Pad layout</figcaption>
+				</figure>
+				
+				<table id="table-key-code-arrowpad" class="data-table full-width">
+					<caption>List of code values for keys in the ArrowPad section.</caption>
+					<thead><tr><th>Code Value</th><th>USB Usage ID<br/>Page 0x07<br/>(Informative)</th><th>Notes (Informative)</th></tr></thead>
+					<tbody>
+						<tr><td><code id="code-ArrowDown" class="key-code">'ArrowDown'</code></td>
+							<td>0x51</td><td></td></tr>
+						<tr><td><code id="code-ArrowLeft" class="key-code">'ArrowLeft'</code></td>
+							<td>0x50</td><td></td></tr>
+						<tr><td><code id="code-ArrowRight" class="key-code">'ArrowRight'</code></td>
+							<td>0x4f</td><td></td></tr>
+						<tr><td><code id="code-ArrowUp" class="key-code">'ArrowUp'</code></td>
+							<td>0x52</td><td></td></tr>
+					</tbody>
+				</table>
+			</section>
+
+			<section id="key-numpad-section">
+				<h1>Numpad Section</h1>
+				<p>The Numpad Section contains numeric and mathematical operator keys arranged in a calculator-grid
+				   to facilitate numeric data entry.
+				</p>
+				
+				<figure id="figure-numpad">
+					<img src='images/numpad.svg' width="606" height="247" />
+					<figcaption>Standard Numpad layouts</figcaption>
+				</figure>
+				
+				<p>The standard Numpad is sometimes extended with additional keys for parentheses, operators,
+				   hexadecimal symbols, or calculator functions (like backspace). Some of the commonly added keys are
+				   listed in the table below.
+				</p>
+				<table id="table-key-code-numpad" class="data-table full-width">
+					<caption>List of code values for keys in the Numpad section.</caption>
+					<thead><tr><th>Code Value</th><th>USB Usage ID<br/>Page 0x07<br/>(Informative)</th><th>Notes (Informative)</th></tr></thead>
+					<tbody>
+						<tr><td><code id="code-NumLock" class="key-code">'NumLock'</code></td>
+							<td>0x53</td><td></td></tr>
+						<tr><td><code id="code-Numpad0" class="key-code">'Numpad0'</code></td>
+							<td>0x62</td><td><code class="keycap">0</code> and <code class="keycap">Insert</code></td></tr>
+						<tr><td><code id="code-Numpad1" class="key-code">'Numpad1'</code></td>
+							<td>0x59</td><td><code class="keycap">1</code> and <code class="keycap">End</code></td></tr>
+						<tr><td><code id="code-Numpad2" class="key-code">'Numpad2'</code></td>
+							<td>0x5a</td><td><code class="keycap">2</code> and <code class="keycap">ArrowDown</code></td></tr>
+						<tr><td><code id="code-Numpad3" class="key-code">'Numpad3'</code></td>
+							<td>0x5b</td><td><code class="keycap">3</code> and <code class="keycap">PageDown</code></td></tr>
+						<tr><td><code id="code-Numpad4" class="key-code">'Numpad4'</code></td>
+							<td>0x5c</td><td><code class="keycap">4</code> and <code class="keycap">ArrowLeft</code></td></tr>
+						<tr><td><code id="code-Numpad5" class="key-code">'Numpad5'</code></td>
+							<td>0x5d</td><td><code class="keycap">5</code></td></tr>
+						<tr><td><code id="code-Numpad6" class="key-code">'Numpad6'</code></td>
+							<td>0x5e</td><td><code class="keycap">6</code> and <code class="keycap">ArrowRight</code></td></tr>
+						<tr><td><code id="code-Numpad7" class="key-code">'Numpad7'</code></td>
+							<td>0x5f</td><td><code class="keycap">7</code> and <code class="keycap">Home</code></td></tr>
+						<tr><td><code id="code-Numpad8" class="key-code">'Numpad8'</code></td>
+							<td>0x60</td><td><code class="keycap">8</code> and <code class="keycap">ArrowUp</code></td></tr>
+						<tr><td><code id="code-Numpad9" class="key-code">'Numpad9'</code></td>
+							<td>0x61</td><td><code class="keycap">9</code> and <code class="keycap">PageUp</code></td></tr>
+						<tr><td><code id="code-NumpadAdd" class="key-code">'NumpadAdd'</code></td>
+							<td>0x57</td><td><code class="keycap">+</code></td></tr>
+						<tr><td><code id="code-NumpadBackspace" class="key-code">'NumpadBackspace'</code></td>
+							<td>0xbb</td><td>Found on the Microsoft Natural Keyboard.</td></tr>
+						<tr><td><code id="code-NumpadClear" class="key-code">'NumpadClear'</code></td>
+							<td>0xd8</td><td></td></tr>
+						<tr><td><code id="code-NumpadClearEntry" class="key-code">'NumpadClearEntry'</code></td>
+							<td>0xd9</td><td></td></tr>
+						<tr><td><code id="code-NumpadComma" class="key-code">'NumpadComma'</code></td>
+							<td>0x85</td><td><code class="keycap">,</code> (thousands separator). For locales where the thousands separator is a <code class="glyph">'.'</code> (e.g., Brazil), this key may generate a <code class="glyph">'.'</code>.</td></tr>
+						<tr><td><code id="code-NumpadDecimal" class="key-code">'NumpadDecimal'</code></td>
+							<td>0x63</td><td><code class="keycap">.</code> (decimal separator) and <code class="keycap">Delete</code>. For locales where the decimal separator is <code class="glyph">','</code> (e.g., Brazil), this key may generate a <code class="glyph">','</code>.</td></tr>
+						<tr><td><code id="code-NumpadDivide" class="key-code">'NumpadDivide'</code></td>
+							<td>0x54</td><td><code class="keycap">/</code></td></tr>
+						<tr><td><code id="code-NumpadEnter" class="key-code">'NumpadEnter'</code></td>
+							<td>0x58</td><td></td></tr>
+						<tr><td><code id="code-NumpadEqual" class="key-code">'NumpadEqual'</code></td>
+							<td>0x67</td><td><code class="keycap">=</code></td></tr>
+						<tr><td><code id="code-NumpadMemoryAdd" class="key-code">'NumpadMemoryAdd'</code></td>
+							<td>0xd3</td><td></td></tr>
+						<tr><td><code id="code-NumpadMemoryClear" class="key-code">'NumpadMemoryClear'</code></td>
+							<td>0xd2</td><td></td></tr>
+						<tr><td><code id="code-NumpadMemoryRecall" class="key-code">'NumpadMemoryRecall'</code></td>
+							<td>0xd1</td><td></td></tr>
+						<tr><td><code id="code-NumpadMemoryStore" class="key-code">'NumpadMemoryStore'</code></td>
+							<td>0xd0</td><td></td></tr>
+						<tr><td><code id="code-NumpadMemorySubtract" class="key-code">'NumpadMemorySubtract'</code></td>
+							<td>0xd4</td><td></td></tr>
+						<tr><td><code id="code-NumpadMultiply" class="key-code">'NumpadMultiply'</code></td>
+							<td>0x55</td><td><code class="keycap">*</code></td></tr>
+						<tr><td><code id="code-NumpadParenLeft" class="key-code">'NumpadParenLeft'</code></td>
+							<td>0xb6</td><td><code class="keycap">(</code> Found on the Microsoft Natural Keyboard.</td></tr>
+						<tr><td><code id="code-NumpadParenRight" class="key-code">'NumpadParenRight'</code></td>
+							<td>0xb7</td><td><code class="keycap">)</code> Found on the Microsoft Natural Keyboard.</td></tr>
+						<tr><td><code id="code-NumpadSubtract" class="key-code">'NumpadSubtract'</code></td>
+							<td>0x56</td><td><code class="keycap">-</code></td></tr>
+					</tbody>
+				</table>
+				<p>For Numpads that provide keys not listed here, a <code>code</code> value string should be created by
+				   starting with 'Numpad' and appending an appropriate description of the key.
+				</p>
+			</section>
+
+			<section id="key-function-section">
+				<h1>Function Section</h1>
+				<p>The Function section runs along the top of the keyboard and contains the function keys and
+				   a few additional special keys (for example, <code class="key-code">'Escape'</code> and
+				   <code class="key-code">'PrintScreen'</code>).
+				</p>
+				<p>On some keyboards (especially those found on laptops or other portable computers), the function keys
+				   (<code class="key-code">'F1'</code> ... <code class="key-code">'F12'</code>)
+				   are defined to have other primary functions (like controlling display brightness or
+				   audio volume) and require that a separate <code class="key-code">'Fn'</code> key
+				   be pressed to make them act as function keys.
+				   Unfortunately, the primary functions assigned to these keys varies widely from one manufacturer to the next.
+				   Because of this, the <code>code</code> is always set to the function key name.
+				</p>
+				<table id="table-key-code-function" class="data-table full-width">
+					<caption>List of code values for keys in the Function section.</caption>
+					<thead><tr><th>Code Value</th><th>USB Usage ID<br/>Page 0x07<br/>(Informative)</th><th>Notes (Informative)</th></tr></thead>
+					<tbody>
+						<tr><td><code id="code-Escape" class="key-code">'Escape'</code></td>
+							<td>0x29</td><td></td></tr>
+						<tr><td><code id="code-F1" class="key-code">'F1'</code></td>
+							<td>0x3a</td><td></td></tr>
+						<tr><td><code id="code-F2" class="key-code">'F2'</code></td>
+							<td>0x3b</td><td></td></tr>
+						<tr><td><code id="code-F3" class="key-code">'F3'</code></td>
+							<td>0x3c</td><td></td></tr>
+						<tr><td><code id="code-F4" class="key-code">'F4'</code></td>
+							<td>0x3d</td><td></td></tr>
+						<tr><td><code id="code-F5" class="key-code">'F5'</code></td>
+							<td>0x3e</td><td></td></tr>
+						<tr><td><code id="code-F6" class="key-code">'F6'</code></td>
+							<td>0x3f</td><td></td></tr>
+						<tr><td><code id="code-F7" class="key-code">'F7'</code></td>
+							<td>0x40</td><td></td></tr>
+						<tr><td><code id="code-F8" class="key-code">'F8'</code></td>
+							<td>0x41</td><td></td></tr>
+						<tr><td><code id="code-F9" class="key-code">'F9'</code></td>
+							<td>0x42</td><td></td></tr>
+						<tr><td><code id="code-F10" class="key-code">'F10'</code></td>
+							<td>0x43</td><td></td></tr>
+						<tr><td><code id="code-F11" class="key-code">'F11'</code></td>
+							<td>0x44</td><td></td></tr>
+						<tr><td><code id="code-F12" class="key-code">'F12'</code></td>
+							<td>0x45</td><td></td></tr>
+						<tr><td><code id="code-Fn" class="key-code">'Fn'</code></td>
+							<td></td><td>This is typically a hardware key that does not generate a separate code. Most keyboards do not place this key in the Function section, but it is included here to keep with related keys.</td></tr>
+						<tr><td><code id="code-FLock" class="key-code">'FLock'</code></td>
+							<td></td><td>Found on the Microsoft Natural Keyboard.</td></tr>
+						<tr><td><code id="code-PrintScreen" class="key-code">'PrintScreen'</code></td>
+							<td>0x46</td><td><code class="keycap">PrintScreen</code> and <code class="keycap">SysReq</code></td></tr>
+						<tr><td><code id="code-ScrollLock" class="key-code">'ScrollLock'</code></td>
+							<td>0x47</td><td></td></tr>
+						<tr><td><code id="code-Pause" class="key-code">'Pause'</code></td>
+							<td>0x48</td><td><code class="keycap">Pause</code> and <code class="keycap">Break</code></td></tr>
+					</tbody>
+				</table>
+				<p>For keyboards that provide more than 12 function keys, the <code>code</code> value follows the pattern
+				   shown above with 'F' followed by the function key number - <code class="key-code">'F13'</code>, <code class="key-code">'F14'</code>,
+				   <code class="key-code">'F15'</code>, and so on.
+				</p>
+				<p>Note: Apple keyboards may have <code class="key-code">'Eject'</code> or <code class="key-code">'Power'</code>
+				   keys in the Function section. The <code>code</code> values
+				   for these keys are defined in the Media Keys section.
+				</p>
+			</section>
+
+			<section id="key-media">
+				<h1>Media Keys</h1>
+				<p>Keys that fall outside the sections listed above are referred to as "media keys" since
+				   they commonly provide "media" functions like play, pause or volume control.
+				</p>
+				<p>These are extra keys that many keyboard manufacturers add, but do not have a consistent location.
+				   These keys are often distinct from normal typing keys in appearance and may be recessed in the
+				   keyboard.
+				</p>
+				<p>On laptop keyboards, these keys are often merged with the Function keys, with the "media" interpretation
+				   being the primary function of the key and the "function key" interpretation requiring the
+				   <code class="key-code">'Fn'</code> key to be pressed at the same time. In this configuration the
+				   <code>code</code> should be set to match the function key (<code class="key-code">'F1'</code> ...
+				   <code class="key-code">'F12'</code>). When the keys are merged in this fashion, the <code>code</code>
+				   values are taken from the function key value since the "media" value is not consistent across
+				   keyboards.
+				</p>
+				<table id="table-key-code-media" class="data-table full-width">
+					<caption>List of code values for media keys.</caption>
+					<thead><tr><th>Code Value</th><th>Notes (Informative)</th></tr></thead>
+					<tbody>
+						<tr><td><code id="code-BrowserBack" class="key-code">'BrowserBack'</code></td>
+							<td>Some laptops place this key to the left of the <code class="key-code">'ArrowUp'</code> key.</td></tr>
+						<tr><td><code id="code-BrowserFavorites" class="key-code">'BrowserFavorites'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-BrowserForward" class="key-code">'BrowserForward'</code></td>
+							<td>Some laptops place this key to the right of the <code class="key-code">'ArrowUp'</code> key.</td></tr>
+						<tr><td><code id="code-BrowserHome" class="key-code">'BrowserHome'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-BrowserRefresh" class="key-code">'BrowserRefresh'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-BrowserSearch" class="key-code">'BrowserSearch'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-BrowserStop" class="key-code">'BrowserStop'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-Eject" class="key-code">'Eject'</code></td>
+							<td>This key is placed in the Function section on some Apple keyboards.</td></tr>
+						<tr><td><code id="code-LaunchApp1" class="key-code">'LaunchApp1'</code></td>
+							<td>Sometimes labelled <code class="keycap">My Computer</code> on the keyboard</td></tr>
+						<tr><td><code id="code-LaunchApp2" class="key-code">'LaunchApp2'</code></td>
+							<td>Sometimes labelled <code class="keycap">Calculator</code> on the keyboard</td></tr>
+						<tr><td><code id="code-LaunchMail" class="key-code">'LaunchMail'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-MediaNextTrack" class="key-code">'MediaNextTrack'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-MediaPlayPause" class="key-code">'MediaPlayPause'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-MediaPreviousTrack" class="key-code">'MediaPreviousTrack'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-MediaSelect" class="key-code">'MediaSelect'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-MediaStop" class="key-code">'MediaStop'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-Power" class="key-code">'Power'</code></td>
+							<td>This key is placed in the Function section on some Apple keyboards, replacing the <code class="key-code">'Eject'</code> key.</td></tr>
+						<tr><td><code id="code-Sleep" class="key-code">'Sleep'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-VolumeDown" class="key-code">'VolumeDown'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-VolumeMute" class="key-code">'VolumeMute'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-VolumeUp" class="key-code">'VolumeUp'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-WakeUp" class="key-code">'WakeUp'</code></td>
+							<td></td></tr>
+					</tbody>
+				</table>
+			</section>
+
+			<section id="key-legacy">
+				<h1>Legacy Keys and Non-Standard Keys</h1>
+
+				<p>These keys are not found on modern standard keyboards.
+				   They are listed here for reference purposes.
 					</p>
-					<table id="table-key-code-media" class="data-table full-width">
-						<caption>List of code values for media keys.</caption>
-						<thead><tr><th>Code Value</th><th>Notes (Informative)</th></tr></thead>
-						<tbody>
-							<tr><td><code id="code-BrowserBack" class="key-code">'BrowserBack'</code></td>
-								<td>Some laptops place this key to the left of the <code class="key-code">'ArrowUp'</code> key.</td></tr>
-							<tr><td><code id="code-BrowserFavorites" class="key-code">'BrowserFavorites'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-BrowserForward" class="key-code">'BrowserForward'</code></td>
-								<td>Some laptops place this key to the right of the <code class="key-code">'ArrowUp'</code> key.</td></tr>
-							<tr><td><code id="code-BrowserHome" class="key-code">'BrowserHome'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-BrowserRefresh" class="key-code">'BrowserRefresh'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-BrowserSearch" class="key-code">'BrowserSearch'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-BrowserStop" class="key-code">'BrowserStop'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-Eject" class="key-code">'Eject'</code></td>
-								<td>This key is placed in the Function section on some Apple keyboards.</td></tr>
-							<tr><td><code id="code-LaunchApp1" class="key-code">'LaunchApp1'</code></td>
-								<td>Sometimes labelled <code class="keycap">My Computer</code> on the keyboard</td></tr>
-							<tr><td><code id="code-LaunchApp2" class="key-code">'LaunchApp2'</code></td>
-								<td>Sometimes labelled <code class="keycap">Calculator</code> on the keyboard</td></tr>
-							<tr><td><code id="code-LaunchMail" class="key-code">'LaunchMail'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-MediaNextTrack" class="key-code">'MediaNextTrack'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-MediaPlayPause" class="key-code">'MediaPlayPause'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-MediaPreviousTrack" class="key-code">'MediaPreviousTrack'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-MediaSelect" class="key-code">'MediaSelect'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-MediaStop" class="key-code">'MediaStop'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-Power" class="key-code">'Power'</code></td>
-								<td>This key is placed in the Function section on some Apple keyboards, replacing the <code class="key-code">'Eject'</code> key.</td></tr>
-							<tr><td><code id="code-Sleep" class="key-code">'Sleep'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-VolumeDown" class="key-code">'VolumeDown'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-VolumeMute" class="key-code">'VolumeMute'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-VolumeUp" class="key-code">'VolumeUp'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-WakeUp" class="key-code">'WakeUp'</code></td>
-								<td></td></tr>
-						</tbody>
-					</table>
-				</section>
 
-				<section id="key-legacy">
-					<h1>Legacy Keys and Non-Standard Keys</h1>
-
-					<p>These keys are not found on modern standard keyboards.
-					   They are listed here for reference purposes.
-						</p>
+				<table id="table-key-code-legacy" class="data-table full-width">
+					<caption>List of code values for legacy keys.</caption>
+					<thead><tr><th>Code Value</th><th>Notes (Informative)</th></tr></thead>
+					<tbody>
+						<tr><td><code id="code-Abort" class="key-code">'Abort'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-Hyper" class="key-code">'Hyper'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-Meta" class="key-code">'Meta'</code></td>
+							<td>Do not use <code class="key-code">'Meta'</code> as a key <code>code</code>. The key labelled <code class="keycap">Meta</code> should be encoded as <code class="key-code">'OSLeft'</code>.</td></tr>
+						<tr><td><code id="code-Resume" class="key-code">'Resume'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-Super" class="key-code">'Super'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-Suspend" class="key-code">'Suspend'</code></td>
+							<td></td></tr>
+						<tr><td><code id="code-Turbo" class="key-code">'Turbo'</code></td>
+							<td></td></tr>
+					</tbody>
+				</table>
 
-					<table id="table-key-code-legacy" class="data-table full-width">
-						<caption>List of code values for legacy keys.</caption>
-						<thead><tr><th>Code Value</th><th>Notes (Informative)</th></tr></thead>
-						<tbody>
-							<tr><td><code id="code-Abort" class="key-code">'Abort'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-Hyper" class="key-code">'Hyper'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-Meta" class="key-code">'Meta'</code></td>
-								<td>Do not use <code class="key-code">'Meta'</code> as a key <code>code</code>. The key labelled <code class="keycap">Meta</code> should be encoded as <code class="key-code">'OSLeft'</code>.</td></tr>
-							<tr><td><code id="code-Resume" class="key-code">'Resume'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-Super" class="key-code">'Super'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-Suspend" class="key-code">'Suspend'</code></td>
-								<td></td></tr>
-							<tr><td><code id="code-Turbo" class="key-code">'Turbo'</code></td>
-								<td></td></tr>
-						</tbody>
-					</table>
+				<p>The following keys may be found on non-standard international keyboards.
+					</p>
 
-					<p>The following keys may be found on non-standard international keyboards.
-						</p>
+				<table id="table-key-code-international" class="data-table full-width">
+					<caption>List of code values for keys found on international keyboards.</caption>
+					<thead><tr><th>Code Value</th><th>Notes (Informative)</th></tr></thead>
+					<tbody>
+						<tr><td><code id="code-Hiragana" class="key-code">'Hiragana'</code></td>
+							<td>Use for dedicated <code class="keycap">ひらがな</code> key found on some Japanese word processing keyboards.</td></tr>
+						<tr><td><code id="code-Katakana" class="key-code">'Katakana'</code></td>
+							<td>Use for dedicated <code class="keycap">カタカナ</code> key found on some Japanese word processing keyboards.</td></tr>
+					</tbody>
+				</table>
 
-					<table id="table-key-code-international" class="data-table full-width">
-						<caption>List of code values for keys found on international keyboards.</caption>
-						<thead><tr><th>Code Value</th><th>Notes (Informative)</th></tr></thead>
-						<tbody>
-							<tr><td><code id="code-Hiragana" class="key-code">'Hiragana'</code></td>
-								<td>Use for dedicated <code class="keycap">ひらがな</code> key found on some Japanese word processing keyboards.</td></tr>
-							<tr><td><code id="code-Katakana" class="key-code">'Katakana'</code></td>
-								<td>Use for dedicated <code class="keycap">カタカナ</code> key found on some Japanese word processing keyboards.</td></tr>
-						</tbody>
-					</table>
+			</section>
 
-				</section>
-
-			</section><!-- keyboard-key-codes -->
-		
-		</section>  <!-- code-value-tables -->
+		</section><!-- keyboard-key-codes -->
+	
+	</section>  <!-- code-value-tables -->
 		
 	<!-- Appendix G: Acknowledgements ========================================================-->
 	<section id="acknowledgements-contributors">
@@ -982,6 +982,18 @@
 			<h2>Normative References</h2>
 
 			<dl>
+				<dt id="references-ISO-9995-2-3"><strong>[ISO9995-2/3]</strong></dt>
+				<dd><cite><a href="http://www.iso.org/iso/search.htm?qt=9995&amp;published=on">ISO/IEC 9995, Information technology
+					-- Keyboard layouts for text and office systems
+					-- Part 2: Alphanumeric Section and Part 3: Complementary layouts of the alphanumeric zone of the alphanumeric section.</a></cite>
+					</dd>
+
+				<dt id="references-ISO-9995-8"><strong>[ISO9995-8]</strong></dt>
+				<dd><cite><a href="http://www.iso.org/iso/search.htm?qt=9995&amp;published=on">ISO/IEC 9995-8:2006, Information technology
+					-- Keyboard layouts for text and office systems
+					-- Part 8: Allocation of letters to the keys of a numeric keypad.</a></cite>
+					</dd>
+
 				<dt id="references-Unicode"><strong>[Unicode]</strong></dt>
 				<dd><cite>The Unicode Standard, Version 5.0</cite>,<br/>
 					ISBN 0-321-48091-0, as updated periodically by the publication of new versions.<br/>
--- a/html/DOM3Events-key.html	Sat Apr 26 08:04:46 2014 -0700
+++ b/html/DOM3Events-key.html	Sat Apr 26 08:26:40 2014 -0700
@@ -94,449 +94,449 @@
 
 	<!-- Section 6: Keyboard and key values ========================================================-->
 
-		<section id="key-value-tables">
-			<h3>Keyboard Event <code>key</code> Value Tables</h3>
-
-			<p>This section defines a list of <code>key</code> values which implementations MUST support, at a minimum, in addition to support for the full range of Unicode [<a href="#references-Unicode">Unicode</a>]
-				codepoints.  Implementations MAY support additional key values, in a manner conforming to the <a href="#keys-guidelines">guidelines for selecting and defining key values</a>.
-				The <a href="#widl-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> attribute of an event MUST always contain one of these control key
-				or character values (even if the value is <a href="#key-Unidentified"><code class="key">'Unidentified'</code></a>). If the key represents one of the set of printable
-				control characters which has a Unicode character entry, such as the tab key, the <a href="#widl-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> attribute
-				MUST have the key value (e.g., <a href="#key-Tab"><code class="key">'Tab'</code></a>).</p>
-
-			<p>Implementations that are unable to identify a key MUST use the key value <a href="#key-Unidentified"><code class="key">'Unidentified'</code></a>.</p>
-
-			<p class="warning"><strong>Warning!</strong> Conforming implementations MUST only use <a href="#key-Unidentified"><code class="key">'Unidentified'</code></a>
-				as a key value when there is no way for the implementation to detect the key value.
-				Exposing only this value MUST NOT indicate a conforming implementation.</p>
+	<section id="key-value-tables">
+		<h1>Keyboard Event <code>key</code> Value Tables</h1>
 
-			<p>The <a class="def" href="#glossary-key-value">key values</a> defined in this specification are based in part on the sets of keycodes from
-				the <code>java.awt.event.KeyEvent</code> interface of the Java Platform, Standard Edition 6 API Specification
-					[<cite><a class="informative" href="#references-KeyEvent">KeyEvent for Java</a></cite>],
-				and the <code>System.Windows.Forms.Keys</code> key enumeration of the Microsoft .NET Framework 4.0 Class Library
-					[<cite><a class="informative" href="#references-Keys">Keys enumeration for .Net</a></cite>].
-				</p>
-
-			<p class="note"><strong>Note:</strong> The keys on the numeric keypad (e.g., the keypad <code>'1'</code> key) do not generate distinct <code>key</code> values
-				from their non-keypad counterparts (e.g., the <code>'1'</code> key in the main part of the keyboard).
-				The <a href="#widl-KeyboardEvent-location"><code>KeyboardEvent.location</code></a> attribute can be used to determine if a key originated from the numeric keypad.</p>
+		<p>This section defines a list of <code>key</code> values which implementations MUST support, at a minimum, in addition to support for the full range of Unicode [<a href="#references-Unicode">Unicode</a>]
+			codepoints.  Implementations MAY support additional key values, in a manner conforming to the <a href="#keys-guidelines">guidelines for selecting and defining key values</a>.
+			The <a href="#widl-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> attribute of an event MUST always contain one of these control key
+			or character values (even if the value is <a href="#key-Unidentified"><code class="key">'Unidentified'</code></a>). If the key represents one of the set of printable
+			control characters which has a Unicode character entry, such as the tab key, the <a href="#widl-KeyboardEvent-key"><code>KeyboardEvent.key</code></a> attribute
+			MUST have the key value (e.g., <a href="#key-Tab"><code class="key">'Tab'</code></a>).</p>
 
-			<div class="note">
-				<p><strong>Note:</strong> There are special internationalization considerations for ECMAScript escaped characters.  CharMod conformance [<cite><a class="normative"
-					href="#references-charmod">CharMod</a></cite>] <a href="http://www.w3.org/TR/charmod/#C045">expects</a> the use of code points rather than surrogate pairs in escapes.
-					ECMAScript escaped characters use surrogate pairs for characters outside the Basic Multilingual Plane (<code class="char">"\uD84E\uDDC2"</code> for <code class="glyph">'&#x239C2;'</code>,
-					a Chinese character meaning <q>untidy</q>), rather than C-style fixed-length characters (<code class="char">"\U000239c2"</code> for <code class="glyph">'&#x239C2;'</code>) or delimited escapes
-					such as Numeric Character References (<code>"&amp;#x239C2;"</code>). Characters escaped in this manner:</p>
+		<p>Implementations that are unable to identify a key MUST use the key value <a href="#key-Unidentified"><code class="key">'Unidentified'</code></a>.</p>
 
-				<ul>
-					<li>are based on UTF-16 encoding, in that it uses surrogate pairs for values outside the Basic Multilingual Plane</li>
-					<li>are expressed using surrogate pairs, which makes it difficult for a human to look up the value, and might require unnecessary overhead for machine processing
-						&mdash; this can also cause problems with software written in the incorrect belief that Unicode is a 16-bit character set</li>
-					<li>are problematic for characters on supplementary planes (emoji, or Chinese characters on plane 2), some of which are expected to be input using a keyboard</li>
-					<li>are not be suitable for Java or C, which use different escaping mechanisms (could be solved with a normalizing method)</li>
-				</ul>
+		<p class="warning"><strong>Warning!</strong> Conforming implementations MUST only use <a href="#key-Unidentified"><code class="key">'Unidentified'</code></a>
+			as a key value when there is no way for the implementation to detect the key value.
+			Exposing only this value MUST NOT indicate a conforming implementation.</p>
+
+		<p>The <a class="def" href="#glossary-key-value">key values</a> defined in this specification are based in part on the sets of keycodes from
+			the <code>java.awt.event.KeyEvent</code> interface of the Java Platform, Standard Edition 6 API Specification
+				[<cite><a class="informative" href="#references-KeyEvent">KeyEvent for Java</a></cite>],
+			and the <code>System.Windows.Forms.Keys</code> key enumeration of the Microsoft .NET Framework 4.0 Class Library
+				[<cite><a class="informative" href="#references-Keys">Keys enumeration for .Net</a></cite>].
+			</p>
+
+		<p class="note"><strong>Note:</strong> The keys on the numeric keypad (e.g., the keypad <code>'1'</code> key) do not generate distinct <code>key</code> values
+			from their non-keypad counterparts (e.g., the <code>'1'</code> key in the main part of the keyboard).
+			The <a href="#widl-KeyboardEvent-location"><code>KeyboardEvent.location</code></a> attribute can be used to determine if a key originated from the numeric keypad.</p>
+
+		<div class="note">
+			<p><strong>Note:</strong> There are special internationalization considerations for ECMAScript escaped characters.  CharMod conformance [<cite><a class="normative"
+				href="#references-charmod">CharMod</a></cite>] <a href="http://www.w3.org/TR/charmod/#C045">expects</a> the use of code points rather than surrogate pairs in escapes.
+				ECMAScript escaped characters use surrogate pairs for characters outside the Basic Multilingual Plane (<code class="char">"\uD84E\uDDC2"</code> for <code class="glyph">'&#x239C2;'</code>,
+				a Chinese character meaning <q>untidy</q>), rather than C-style fixed-length characters (<code class="char">"\U000239c2"</code> for <code class="glyph">'&#x239C2;'</code>) or delimited escapes
+				such as Numeric Character References (<code>"&amp;#x239C2;"</code>). Characters escaped in this manner:</p>
+
+			<ul>
+				<li>are based on UTF-16 encoding, in that it uses surrogate pairs for values outside the Basic Multilingual Plane</li>
+				<li>are expressed using surrogate pairs, which makes it difficult for a human to look up the value, and might require unnecessary overhead for machine processing
+					&mdash; this can also cause problems with software written in the incorrect belief that Unicode is a 16-bit character set</li>
+				<li>are problematic for characters on supplementary planes (emoji, or Chinese characters on plane 2), some of which are expected to be input using a keyboard</li>
+				<li>are not be suitable for Java or C, which use different escaping mechanisms (could be solved with a normalizing method)</li>
+			</ul>
+		</div>
+
+		<p>The following sub-sections contain the normative list of case-sensitive key values, their character values (where applicable), an informative description of typical usage,
+			and an informative categorization.  A conforming implementation of the <a href="#interface-KeyboardEvent">KeyboardEvent</a> interface MUST support at least this set
+			of values for use in the <a href="#widl-KeyboardEvent-key"><code>KeyboardEvent.key</code></a>
+			attributes, though not all values MAY be available on all platforms or devices.</p>
+		
+		<p>Future versions of this specification MAY include key values not included here, which have become common since the publication of this specification.</p>
+
+		<section id="keys-special">
+			<h4>Special Key Values</h4>
+
+			<!-- Key tables. Note that all keys must be defined within a <div class="key-table"> -->
+			<div id="key-table-general" class="key-table">
+				<key name="Unidentified">This key value is used when an implementation is unable to identify another key value, due to either hardware, platform, or software constraints.</key>
+			</div>
+		</section><!-- keys-general -->
+
+		<section id="keys-modifier">
+			<h4>Modifier Keys</h4>
+			<div id="key-table-modifier" class="key-table">
+				<key name="Alt">The Alternative (Alt, Option, Menu) key.  Enable alternate modifier function for interpreting concurrent or subsequent keyboard input.
+					This key value is also used for the Apple <code>'Option'</code> key.
+					</key>
+				<key name="AltGraph">The Alternate Graphics (AltGr or AltGraph) key.
+					This key is used enable the ISO Level 3 shift modifier (the standard <code>'Shift'</code> key is the level 2 modifier).
+					</key>
+				<key name="CapsLock">The Caps Lock (Capital) key.
+					Toggle capital character lock function for interpreting subsequent keyboard input event.
+					</key>
+				<key name="Control">The Control (Ctrl) key, to enable control modifier function for interpreting concurrent or subsequent keyboard input.</key>
+				<key name="Fn">The Function switch (Fn) key.
+					Activating this key simultaneously with another key changes that key's value to an alternate character or function.
+					This key is often handled directly in the keyboard hardware and does not usually generate key events.
+					</key>
+				<key name="FnLock">The Function-Lock (FnLock, F-Lock) key. 
+					Activating this key switches the mode of the keyboard to changes some keys' values to an alternate character or function.
+					This key is often handled directly in the keyboard hardware and does not usually generate key events.
+					</key>
+				<key name="Hyper">The Hyper key.</key>
+				<key name="Meta">The Meta key, to enable meta modifier function for interpreting concurrent or subsequent keyboard input.
+					This key value is also used for the Apple <code>'Command'</code> key.
+					</key>
+				<key name="NumLock">The Number Lock key, to toggle numer-pad mode function for interpreting subsequent keyboard input.</key>
+				<key name="OS">The operating system key (e.g. the <q>Windows Logo</q> key).</key>
+				<key name="ScrollLock">The Scroll Lock key, to toggle between scrolling and cursor movement modes.</key>
+				<key name="Shift">The Shift key, to enable shift modifier function for interpreting concurrent or subsequent keyboard input.</key>
+				<key name="Super">The Super key.</key>
+				<key name="Symbol">The Symbol modifier key (used on some virtual keyboards).</key>
+				<key name="SymbolLock">The Symbol Lock key.</key>
+			</div>
+		</section><!-- keys-modifier -->
+
+		<section id="keys-whitespace">
+			<h4>Whitespace Keys</h4>
+			<div id="key-table-whitespace" class="key-table">
+				<key name="Enter">The Enter key, to activate current selection or accept current input.
+					This key value is also used for the <code class="key">'Return'</code> (Macintosh numpad) key.
+					</key>
+				<key name="Separator">The Separator key, for context-sensitive text separators.</key>
+				<key name="Tab">The Horizontal Tabulation (Tab) key.</key>
+			</div>
+			<p class="note"><strong>Note:</strong> The space or spacebar key is encoded as <code class="glyph">'&nbsp;'</code>.
+				</p>
+		</section><!-- keys-whitespace -->
+
+		<section id="keys-navigation">
+			<h4>Navigation Keys</h4>
+			<div id="key-table-navigation" class="key-table">
+				<key name="ArrowDown">The down arrow key, to navigate or traverse downward.</key>
+				<key name="ArrowLeft">The left arrow key, to navigate or traverse leftward.</key>
+				<key name="ArrowRight">The right arrow key, to navigate or traverse rightward.</key>
+				<key name="ArrowUp">The up arrow key, to navigate or traverse upward.</key>
+				<key name="End">The End key, used with keyboard entry to go to the end of content.</key>
+				<key name="Home">The Home key, used with keyboard entry, to go to start of content.</key>
+				<key name="PageDown">The Page Down key, to scroll down or display next page of content.</key>
+				<key name="PageUp">The Page Up key, to scroll up or display previous page of content.</key>
+			</div>
+		</section><!-- keys-navigation -->
+
+		<section id="keys-editing">
+			<h4>Editing Keys</h4>
+			<div id="key-table-editing" class="key-table">
+				<key name="Backspace">The Backspace key.
+					This key value is also used for the key labeled <code>'delete'</code> on MacOS keyboards.
+					</key>
+				<key name="Clear">The Clear key, for removing current selected input.</key>
+				<key name="Copy">The Copy key.</key>
+				<key name="CrSel">The Cursor Select (Crsel) key.</key>
+				<key name="Cut">The Cut key.</key>
+				<key name="Delete">The Delete (Del) Key.
+					This key value is also used for the key labeled <code>'delete'</code> on MacOS keyboards when modified by the <code class="key">'Fn'</code> key.
+					</key>
+				<key name="EraseEof">The Erase to End of Field key.  This key deletes all characters from the current cursor position to the end of the current field.</key>
+				<key name="ExSel">The Extend Selection (Exsel) key.</key>
+				<key name="Insert">The Insert (Ins) key, to toggle between text modes for insertion or overtyping.</key>
+				<key name="Paste">The Paste key.</key>
+				<key name="Redo">The Redo key.</key>
+				<key name="Undo">The Undo key.</key>
+			</div>
+		</section><!-- keys-editing -->
+
+		<section id="keys-ui">
+			<h4>UI Keys</h4>
+			<div id="key-table-ui" class="key-table">
+				<key name="Accept">The Accept (Commit, OK) key. Accept current option or input method sequence conversion.</key>
+				<key name="Again">The Again key, to redo or repeat an action.</key>
+				<key name="Attn">The Attention (Attn) key.</key>
+				<key name="Cancel">The Cancel key.</key>
+				<key name="ContextMenu">Show the application's context menu.
+					This key is commonly found between the right <code>'OS'</code> key and the right <code>'Control'</code> key.
+					</key>
+				<key name="Escape">The Escape (Esc) key, to initiate an escape sequence.</key>
+				<key name="Execute">The Execute key.</key>
+				<key name="Find">The Find key.</key>
+				<key name="Help">Toggle display of help information.</key>
+				<key name="Pause">Pause the current state or application (as appropriate).
+					<p class="note"><strong>Note:</strong> Do not use this value for the pause button on media controllers. Use <code>'MediaPause'</code> instead.</p>
+					</key>
+				<key name="Play">Play or resume the current state or application (as appropriate).
+					<p class="note"><strong>Note:</strong> Do not use this value for the play button on media controllers. Use <code>'MediaPlay'</code> instead.</p>
+					</key>
+				<key name="Props">The properties (Props) key.</key>
+				<key name="Select">The Select key.</key>
+				<key name="ZoomIn">The ZoomIn key.</key>
+				<key name="ZoomOut">The ZoomOut key.</key>
+			</div>
+		</section><!-- keys-ui -->
+
+		<section id="keys-device">
+			<h4>Device Keys</h4>
+			<div id="key-table-device" class="key-table">
+				<key name="BrightnessDown">The Brightness Down key. Typically controls the display brightness.</key>
+				<key name="BrightnessUp">The Brightness Up key. Typically controls the display brightness.</key>
+				<key name="Camera">The Camera key.</key>
+				<key name="Eject">Toggle removable media to eject (open) and insert (close) state.</key>
+				<key name="LogOff">The LogOff key.</key>
+				<key name="Power">Toggle power state.
+					<p class="note"><strong>Note:</strong> Some devices might not expose this key to the operating environment.</p>
+					</key>
+				<key name="PowerOff">The PowerOff key. Sometime called "PowerDown".</key>
+				<key name="PrintScreen">The Print Screen (PrintScrn, SnapShot) key, to initiate print-screen function.</key>
+				<key name="Hibernate">The Hibernate key.
+					This key saves the current state of the computer to disk so that it can be restored. The computer will then shutdown.
+					</key>
+				<key name="Standby">The Standby key.
+					This key turns off the display and places the computer into a low-power mode without completely shutting down.
+					It is sometimes called the "Suspend" or "Sleep" key.
+					</key>
+				<key name="WakeUp">The WakeUp key.</key>
+			</div>
+		</section><!-- keys-device -->
+
+		<section id="keys-composition">
+			<h4>IME and Composition Keys</h4>
+			<div id="key-table-composition" class="key-table">
+				<key name="AllCandidates">The All Candidates key, to initate the multi-candidate mode.</key>
+				<key name="Alphanumeric">The Alphanumeric key.</key>
+				<key name="CodeInput">The Code Input key, to initiate the Code Input mode to allow characters to be entered by their code points.</key>
+				<key name="Compose">The Compose key, also known as <em>Multi_key</em> on the X Window System.  This key acts in a manner similar to a
+					<a class="def" href="#glossary-dead-key">dead key</a>, triggering a mode where subsequent key presses are combined to produce a different character.
+					</key>
+				<key name="Convert">The Convert key, to convert the current input method sequence.</key>
+				<key name="FinalMode">The Final Mode (Final) key used on some Asian keyboards, to enable the final mode for IMEs.</key>
+				<key name="GroupFirst">Switch to the first character group. (ISO/IEC 9995)</key>
+				<key name="GroupLast">Switch to the last character group. (ISO/IEC 9995)</key>
+				<key name="GroupNext">Switch to the next character group. (ISO/IEC 9995)</key>
+				<key name="GroupPrevious">Switch to the previous character group. (ISO/IEC 9995)</key>
+				<key name="ModeChange">The Mode Change key, to toggle between or cycle through input modes of IMEs.</key>
+				<key name="NextCandidate">The Next Candidate function key.</key>
+				<key name="NonConvert">The Nonconvert (Don't Convert) key, to accept current input method sequence without conversion in IMEs.</key>
+				<key name="PreviousCandidate">The Previous Candidate function key.</key>
+				<key name="Process">The Process key.</key>
+				<key name="SingleCandidate">The Single Candidate function key.</key>
 			</div>
 
-			<p>The following sub-sections contain the normative list of case-sensitive key values, their character values (where applicable), an informative description of typical usage,
-				and an informative categorization.  A conforming implementation of the <a href="#interface-KeyboardEvent">KeyboardEvent</a> interface MUST support at least this set
-				of values for use in the <a href="#widl-KeyboardEvent-key"><code>KeyboardEvent.key</code></a>
-				attributes, though not all values MAY be available on all platforms or devices.</p>
-			
-			<p>Future versions of this specification MAY include key values not included here, which have become common since the publication of this specification.</p>
-
-			<section id="keys-special">
-				<h4>Special Key Values</h4>
-
-				<!-- Key tables. Note that all keys must be defined within a <div class="key-table"> -->
-				<div id="key-table-general" class="key-table">
-					<key name="Unidentified">This key value is used when an implementation is unable to identify another key value, due to either hardware, platform, or software constraints.</key>
-				</div>
-			</section><!-- keys-general -->
-
-			<section id="keys-modifier">
-				<h4>Modifier Keys</h4>
-				<div id="key-table-modifier" class="key-table">
-					<key name="Alt">The Alternative (Alt, Option, Menu) key.  Enable alternate modifier function for interpreting concurrent or subsequent keyboard input.
-						This key value is also used for the Apple <code>'Option'</code> key.
-						</key>
-					<key name="AltGraph">The Alternate Graphics (AltGr or AltGraph) key.
-						This key is used enable the ISO Level 3 shift modifier (the standard <code>'Shift'</code> key is the level 2 modifier).
-						</key>
-					<key name="CapsLock">The Caps Lock (Capital) key.
-						Toggle capital character lock function for interpreting subsequent keyboard input event.
-						</key>
-					<key name="Control">The Control (Ctrl) key, to enable control modifier function for interpreting concurrent or subsequent keyboard input.</key>
-					<key name="Fn">The Function switch (Fn) key.
-						Activating this key simultaneously with another key changes that key's value to an alternate character or function.
-						This key is often handled directly in the keyboard hardware and does not usually generate key events.
-						</key>
-					<key name="FnLock">The Function-Lock (FnLock, F-Lock) key. 
-						Activating this key switches the mode of the keyboard to changes some keys' values to an alternate character or function.
-						This key is often handled directly in the keyboard hardware and does not usually generate key events.
-						</key>
-					<key name="Hyper">The Hyper key.</key>
-					<key name="Meta">The Meta key, to enable meta modifier function for interpreting concurrent or subsequent keyboard input.
-						This key value is also used for the Apple <code>'Command'</code> key.
-						</key>
-					<key name="NumLock">The Number Lock key, to toggle numer-pad mode function for interpreting subsequent keyboard input.</key>
-					<key name="OS">The operating system key (e.g. the <q>Windows Logo</q> key).</key>
-					<key name="ScrollLock">The Scroll Lock key, to toggle between scrolling and cursor movement modes.</key>
-					<key name="Shift">The Shift key, to enable shift modifier function for interpreting concurrent or subsequent keyboard input.</key>
-					<key name="Super">The Super key.</key>
-					<key name="Symbol">The Symbol modifier key (used on some virtual keyboards).</key>
-					<key name="SymbolLock">The Symbol Lock key.</key>
-				</div>
-			</section><!-- keys-modifier -->
-
-			<section id="keys-whitespace">
-				<h4>Whitespace Keys</h4>
-				<div id="key-table-whitespace" class="key-table">
-					<key name="Enter">The Enter key, to activate current selection or accept current input.
-						This key value is also used for the <code class="key">'Return'</code> (Macintosh numpad) key.
-						</key>
-					<key name="Separator">The Separator key, for context-sensitive text separators.</key>
-					<key name="Tab">The Horizontal Tabulation (Tab) key.</key>
-				</div>
-				<p class="note"><strong>Note:</strong> The space or spacebar key is encoded as <code class="glyph">'&nbsp;'</code>.
-					</p>
-			</section><!-- keys-whitespace -->
-
-			<section id="keys-navigation">
-				<h4>Navigation Keys</h4>
-				<div id="key-table-navigation" class="key-table">
-					<key name="ArrowDown">The down arrow key, to navigate or traverse downward.</key>
-					<key name="ArrowLeft">The left arrow key, to navigate or traverse leftward.</key>
-					<key name="ArrowRight">The right arrow key, to navigate or traverse rightward.</key>
-					<key name="ArrowUp">The up arrow key, to navigate or traverse upward.</key>
-					<key name="End">The End key, used with keyboard entry to go to the end of content.</key>
-					<key name="Home">The Home key, used with keyboard entry, to go to start of content.</key>
-					<key name="PageDown">The Page Down key, to scroll down or display next page of content.</key>
-					<key name="PageUp">The Page Up key, to scroll up or display previous page of content.</key>
-				</div>
-			</section><!-- keys-navigation -->
-
-			<section id="keys-editing">
-				<h4>Editing Keys</h4>
-				<div id="key-table-editing" class="key-table">
-					<key name="Backspace">The Backspace key.
-						This key value is also used for the key labeled <code>'delete'</code> on MacOS keyboards.
-						</key>
-					<key name="Clear">The Clear key, for removing current selected input.</key>
-					<key name="Copy">The Copy key.</key>
-					<key name="CrSel">The Cursor Select (Crsel) key.</key>
-					<key name="Cut">The Cut key.</key>
-					<key name="Delete">The Delete (Del) Key.
-						This key value is also used for the key labeled <code>'delete'</code> on MacOS keyboards when modified by the <code class="key">'Fn'</code> key.
-						</key>
-					<key name="EraseEof">The Erase to End of Field key.  This key deletes all characters from the current cursor position to the end of the current field.</key>
-					<key name="ExSel">The Extend Selection (Exsel) key.</key>
-					<key name="Insert">The Insert (Ins) key, to toggle between text modes for insertion or overtyping.</key>
-					<key name="Paste">The Paste key.</key>
-					<key name="Redo">The Redo key.</key>
-					<key name="Undo">The Undo key.</key>
-				</div>
-			</section><!-- keys-editing -->
-
-			<section id="keys-ui">
-				<h4>UI Keys</h4>
-				<div id="key-table-ui" class="key-table">
-					<key name="Accept">The Accept (Commit, OK) key. Accept current option or input method sequence conversion.</key>
-					<key name="Again">The Again key, to redo or repeat an action.</key>
-					<key name="Attn">The Attention (Attn) key.</key>
-					<key name="Cancel">The Cancel key.</key>
-					<key name="ContextMenu">Show the application's context menu.
-						This key is commonly found between the right <code>'OS'</code> key and the right <code>'Control'</code> key.
-						</key>
-					<key name="Escape">The Escape (Esc) key, to initiate an escape sequence.</key>
-					<key name="Execute">The Execute key.</key>
-					<key name="Find">The Find key.</key>
-					<key name="Help">Toggle display of help information.</key>
-					<key name="Pause">Pause the current state or application (as appropriate).
-						<p class="note"><strong>Note:</strong> Do not use this value for the pause button on media controllers. Use <code>'MediaPause'</code> instead.</p>
-						</key>
-					<key name="Play">Play or resume the current state or application (as appropriate).
-						<p class="note"><strong>Note:</strong> Do not use this value for the play button on media controllers. Use <code>'MediaPlay'</code> instead.</p>
-						</key>
-					<key name="Props">The properties (Props) key.</key>
-					<key name="Select">The Select key.</key>
-					<key name="ZoomIn">The ZoomIn key.</key>
-					<key name="ZoomOut">The ZoomOut key.</key>
-				</div>
-			</section><!-- keys-ui -->
-
-			<section id="keys-device">
-				<h4>Device Keys</h4>
-				<div id="key-table-device" class="key-table">
-					<key name="BrightnessDown">The Brightness Down key. Typically controls the display brightness.</key>
-					<key name="BrightnessUp">The Brightness Up key. Typically controls the display brightness.</key>
-					<key name="Camera">The Camera key.</key>
-					<key name="Eject">Toggle removable media to eject (open) and insert (close) state.</key>
-					<key name="LogOff">The LogOff key.</key>
-					<key name="Power">Toggle power state.
-						<p class="note"><strong>Note:</strong> Some devices might not expose this key to the operating environment.</p>
-						</key>
-					<key name="PowerOff">The PowerOff key. Sometime called "PowerDown".</key>
-					<key name="PrintScreen">The Print Screen (PrintScrn, SnapShot) key, to initiate print-screen function.</key>
-					<key name="Hibernate">The Hibernate key.
-						This key saves the current state of the computer to disk so that it can be restored. The computer will then shutdown.
-						</key>
-					<key name="Standby">The Standby key.
-						This key turns off the display and places the computer into a low-power mode without completely shutting down.
-						It is sometimes called the "Suspend" or "Sleep" key.
-						</key>
-					<key name="WakeUp">The WakeUp key.</key>
-				</div>
-			</section><!-- keys-device -->
-
-			<section id="keys-composition">
-				<h4>IME and Composition Keys</h4>
-				<div id="key-table-composition" class="key-table">
-					<key name="AllCandidates">The All Candidates key, to initate the multi-candidate mode.</key>
-					<key name="Alphanumeric">The Alphanumeric key.</key>
-					<key name="CodeInput">The Code Input key, to initiate the Code Input mode to allow characters to be entered by their code points.</key>
-					<key name="Compose">The Compose key, also known as <em>Multi_key</em> on the X Window System.  This key acts in a manner similar to a
-						<a class="def" href="#glossary-dead-key">dead key</a>, triggering a mode where subsequent key presses are combined to produce a different character.
-						</key>
-					<key name="Convert">The Convert key, to convert the current input method sequence.</key>
-					<key name="FinalMode">The Final Mode (Final) key used on some Asian keyboards, to enable the final mode for IMEs.</key>
-					<key name="GroupFirst">Switch to the first character group. (ISO/IEC 9995)</key>
-					<key name="GroupLast">Switch to the last character group. (ISO/IEC 9995)</key>
-					<key name="GroupNext">Switch to the next character group. (ISO/IEC 9995)</key>
-					<key name="GroupPrevious">Switch to the previous character group. (ISO/IEC 9995)</key>
-					<key name="ModeChange">The Mode Change key, to toggle between or cycle through input modes of IMEs.</key>
-					<key name="NextCandidate">The Next Candidate function key.</key>
-					<key name="NonConvert">The Nonconvert (Don't Convert) key, to accept current input method sequence without conversion in IMEs.</key>
-					<key name="PreviousCandidate">The Previous Candidate function key.</key>
-					<key name="Process">The Process key.</key>
-					<key name="SingleCandidate">The Single Candidate function key.</key>
-				</div>
-
-				<p>Keys specific to Korean keyboards</p>
-				<div id="key-table-ime-korean" class="key-table">
-					<key name="RomanCharacters">The Roman Characters function key, also known as the <code>'Youngja'</code> or <code>'Young'</code> key.</key>
-					<key name="HangulMode">The Hangul (Korean characters) Mode key, to toggle between Hangul and English modes.</key>
-					<key name="HanjaMode">The Hanja (Korean characters) Mode key.</key>
-					<key name="JunjaMode">The Junja (Korean characters) Mode key.</key>
-				</div>
-
-				<p>Keys specific to Japanese keyboards</p>
-				<div id="key-table-ime-japanese" class="key-table">
-					<key name="Zenkaku">The Zenkaku (Full-Width) Characters key.</key>
-					<key name="Hankaku">The (Half-Width) Characters key.</key>
-					<key name="ZenkakuHankaku">The Zenkaku/Hankaku (full-width/half-width) toggle key.</key>
-					<key name="KanaMode">The Kana Mode (Kana Lock) key.</key>
-					<key name="KanjiMode">The Kanji (Japanese name for ideographic characters of Chinese origin) Mode key.</key>
-					<key name="Hiragana">The Hiragana (Japanese Kana characters) key.</key>
-					<key name="Katakana">The Katakana (Japanese Kana characters) key.</key>
-					<key name="HiraganaKatakana">The Hiragana/Katakana toggle key.</key>
-					<key name="Eisu">The Eisu key. This key may close the IME, but it's purpose is defined by the current IME.</key>
-				</div>
-			</section><!-- keys-composition -->
+			<p>Keys specific to Korean keyboards</p>
+			<div id="key-table-ime-korean" class="key-table">
+				<key name="RomanCharacters">The Roman Characters function key, also known as the <code>'Youngja'</code> or <code>'Young'</code> key.</key>
+				<key name="HangulMode">The Hangul (Korean characters) Mode key, to toggle between Hangul and English modes.</key>
+				<key name="HanjaMode">The Hanja (Korean characters) Mode key.</key>
+				<key name="JunjaMode">The Junja (Korean characters) Mode key.</key>
+			</div>
 
-			<section id="keys-function">
-				<h4>General-Purpose Function Keys</h4>
-				<p>The exact number of these general purpose function keys varies on different platforms, and only the first
-					few are defined explicitly here.  Additional function key names are implicitly defined by incrementing the
-					base-10 index at the end of the function key name. Thus, <span class="key">'F24'</span>
-					and <span class="key">'Soft8'</span> are all valid key values.
-					</p>
-				<div id="key-table-function" class="key-table">
-					<key name="F1">The F1 key, a general purpose function key, as index 1.</key>
-					<key name="F2">The F2 key, a general purpose function key, as index 2.</key>
-					<key name="F3">The F3 key, a general purpose function key, as index 3.</key>
-					<key name="F4">The F4 key, a general purpose function key, as index 4.</key>
-					<key name="F5">The F5 key, a general purpose function key, as index 5.</key>
-					<key name="F6">The F6 key, a general purpose function key, as index 6.</key>
-					<key name="F7">The F7 key, a general purpose function key, as index 7.</key>
-					<key name="F8">The F8 key, a general purpose function key, as index 8.</key>
-					<key name="F9">The F9 key, a general purpose function key, as index 9.</key>
-					<key name="F10">The F10 key, a general purpose function key, as index 10.</key>
-					<key name="F11">The F11 key, a general purpose function key, as index 11.</key>
-					<key name="F12">The F12 key, a general purpose function key, as index 12.</key>
-					<key name="Soft1">General purpose virtual function key, as index 1.</key>
-					<key name="Soft2">General purpose virtual function key, as index 2.</key>
-					<key name="Soft3">General purpose virtual function key, as index 3.</key>
-					<key name="Soft4">General purpose virtual function key, as index 4.</key>
-				</div>
-			</section><!-- keys-function -->
-
-			<section id="keys-multimedia">
-				<h4>Multimedia Keys</h4>
-				<p>These are extra keys found on "multimedia" keyboards.</p>
-
-				<div id="key-table-multimedia" class="key-table">
-					<key name="Close">Close the current document or message.</key>
-					<key name="MailForward">Open an editor to forward the current message.</key>
-					<key name="MailReply">Open an editor to reply to the current message.</key>
-					<key name="MailSend">Send the current message.</key>
-					<key name="MediaPlayPause">Toggle media between play and pause states.</key>
-					<key name="MediaSelect">Select media.</key>
-					<key name="MediaStop">Stop media playing, pausing, forwarding, rewinding, or recording, if not already stopped.</key>
-					<key name="MediaTrackNext">Seek to next media or program track.</key>
-					<key name="MediaTrackPrevious">Seek to previous media or program track.</key>
-					<key name="New">Open a new document or message.</key>
-					<key name="Open">Open an existing document or message.</key>
-					<key name="Print">Print the current document or message.</key>
-					<key name="Save">Save the current document or message.</key>
-					<key name="SpellCheck">Spellcheck the current document or selection.</key>
-					<key name="VolumeDown">Decrease audio volume.</key>
-					<key name="VolumeUp">Increase audio volume.</key>
-					<key name="VolumeMute">Toggle between muted state and prior volume level.</key>
-				</div>
-			</section><!-- keys-multimedia -->
-
-			<section id="keys-apps">
-				<h4>Application Keys</h4>
-				<p>The Application Keys are special keys that are assigned to launch a particular application.
-					Additional application key names can be defined by concatenating 'Launch' with the name
-					of the application.
-					</p>
-				<!-- Key tables. Note that all keys must be defined within a <div class="key-table"> -->
-				<div id="key-table-apps" class="key-table">
-					<key name="LaunchCalculator">The 'Calculator' key. This is often the generic 'LaunchApplication' key, as index 2.</key>
-					<key name="LaunchCalendar">The 'Calendar' key.</key>
-					<key name="LaunchMail">The 'Mail' key.</key>
-					<key name="LaunchMediaPlayer">The 'Media Player' key.</key>
-					<key name="LaunchMusicPlayer">The 'Music Player' key.</key>
-					<key name="LaunchMyComputer">The 'My Computer' key. This is often the generic 'LaunchApplication' key, as index 1.</key>
-					<key name="LaunchScreenSaver">The 'Screen Saver' key.</key>
-					<key name="LaunchSpreadsheet">The 'Spreadsheet' key.</key>
-					<key name="LaunchWebBrowser">The 'Web Browser' key.</key>
-					<key name="LaunchWebCam">The 'WebCam' key.</key>
-					<key name="LaunchWordProcessor">The 'Word Processor' key.</key>
-					<!--key name="List">Toggle display listing of currently available content or programs.</key-->
-				</div>
-			</section><!-- keys-apps -->
-
-			<section id="keys-browser">
-				<h4>Browser Keys</h4>
-				<div id="key-table-browser" class="key-table">
-					<key name="BrowserBack">Navigate to previous content or page in current history.</key>
-					<key name="BrowserFavorites">The Browser Favorites key.</key>
-					<key name="BrowserForward">Navigate to next content or page in current history.</key>
-					<key name="BrowserHome">The Browser Home key, used with keyboard entry, to go to the home page.</key>
-					<key name="BrowserRefresh">The Browser Refresh key, to refresh the current page or content.</key>
-					<key name="BrowserSearch">The Browser Search key, to call up the user's preferred search page.</key>
-					<key name="BrowserStop">The Browser Stop key, to stop loading the current page or content.</key>
-				</div>
-			</section><!-- keys-browser -->
-
-			<section id="keys-media-controller">
-				<h4>Media Controller Keys</h4>
+			<p>Keys specific to Japanese keyboards</p>
+			<div id="key-table-ime-japanese" class="key-table">
+				<key name="Zenkaku">The Zenkaku (Full-Width) Characters key.</key>
+				<key name="Hankaku">The (Half-Width) Characters key.</key>
+				<key name="ZenkakuHankaku">The Zenkaku/Hankaku (full-width/half-width) toggle key.</key>
+				<key name="KanaMode">The Kana Mode (Kana Lock) key.</key>
+				<key name="KanjiMode">The Kanji (Japanese name for ideographic characters of Chinese origin) Mode key.</key>
+				<key name="Hiragana">The Hiragana (Japanese Kana characters) key.</key>
+				<key name="Katakana">The Katakana (Japanese Kana characters) key.</key>
+				<key name="HiraganaKatakana">The Hiragana/Katakana toggle key.</key>
+				<key name="Eisu">The Eisu key. This key may close the IME, but it's purpose is defined by the current IME.</key>
+			</div>
+		</section><!-- keys-composition -->
 
-				<p>The <a class="def" href="#glossary-key-value">key values</a> for media controllers (e.g. remote controls for television, audio systems, and set-top boxes)
-					are derived in part from the consumer electronics technical specifications:</p>
-					<ul>
-						<li>DTV Application Software Environment [<cite><a href="#references-DASE">DASE</a></cite>]</li>
-						<li>Open Cable Application Platform 1.1.3 [<cite><a href="#references-OCAP">OCAP</a></cite>]</li>
-						<li>ANSI/CEA-2014-B, Web-based Protocol and Framework for Remote User Interface on UPnPTM Networks and the Internet [<cite><a href="#references-WEB4CE">WEB4CE</a></cite>]</li>
-					</ul>
-				<p></p>
-				
-				<div id="key-table-media-controller" class="key-table">
-					<key name="AudioBalanceLeft">Adjust audio balance leftward. (VK_AUDIO_BALANCE_LEFT)</key>
-					<key name="AudioBalanceRight">Adjust audio balance rightward. (VK_AUDIO_BALANCE_RIGHT)</key>
-					<key name="AudioBassBoostDown">Decrease audio bass boost or cycle down through bass boost states. (VK_BASS_BOOST_DOWN)</key>
-					<key name="AudioBassBoostUp">Increase audio bass boost or cycle up through bass boost states. (VK_BASS_BOOST_UP)</key>
-					<key name="AudioFaderFront">Adjust audio fader towards front. (VK_FADER_FRONT)</key>
-					<key name="AudioFaderRear">Adjust audio fader towards rear. (VK_FADER_REAR)</key>
-					<key name="AudioSurroundModeNext">Advance surround audio mode to next available mode. (VK_SURROUND_MODE_NEXT)</key>
-					<key name="ChannelDown">Select next (numerically or logically) lower channel. (VK_CHANNEL_DOWN)</key>
-					<key name="ChannelUp">Select next (numerically or logically) higher channel. (VK_CHANNEL_UP)</key>
-					<key name="ColorF0Red">General purpose color-coded media function key, as index 0 (red). (VK_COLORED_KEY_0)</key>
-					<key name="ColorF1Green">General purpose color-coded media function key, as index 1 (green). (VK_COLORED_KEY_1)</key>
-					<key name="ColorF2Yellow">General purpose color-coded media function key, as index 2 (yellow). (VK_COLORED_KEY_2)</key>
-					<key name="ColorF3Blue">General purpose color-coded media function key, as index 3 (blue). (VK_COLORED_KEY_3)</key>
-					<key name="ColorF4Grey">General purpose color-coded media function key, as index 4 (grey). (VK_COLORED_KEY_4)</key>
-					<key name="ColorF5Brown">General purpose color-coded media function key, as index 5 (brown). (VK_COLORED_KEY_5)</key>
-					<key name="ClosedCaptionToggle">Toggle the display of Closed Captions. (VK_CC)</key>
-					<key name="Dimmer">Adjust brightness of device, by toggling between or cycling through states. (VK_DIMMER)</key>
-					<key name="DisplaySwap">Swap video sources. (VK_DISPLAY_SWAP)</key>
-					<key name="Exit">Exit the current application. (VK_EXIT)</key>
-					<key name="FavoriteClear0">Clear program or content stored as favorite 0. (VK_CLEAR_FAVORITE_0)</key>
-					<key name="FavoriteClear1">Clear program or content stored as favorite 1. (VK_CLEAR_FAVORITE_1)</key>
-					<key name="FavoriteClear2">Clear program or content stored as favorite 2. (VK_CLEAR_FAVORITE_2)</key>
-					<key name="FavoriteClear3">Clear program or content stored as favorite 3. (VK_CLEAR_FAVORITE_3)</key>
-					<key name="FavoriteRecall0">Select (recall) program or content stored as favorite 0. (VK_RECALL_FAVORITE_0)</key>
-					<key name="FavoriteRecall1">Select (recall) program or content stored as favorite 1. (VK_RECALL_FAVORITE_1)</key>
-					<key name="FavoriteRecall2">Select (recall) program or content stored as favorite 2. (VK_RECALL_FAVORITE_2)</key>
-					<key name="FavoriteRecall3">Select (recall) program or content stored as favorite 3. (VK_RECALL_FAVORITE_3)</key>
-					<key name="FavoriteStore0">Store current program or content as favorite 0. (VK_STORE_FAVORITE_0)</key>
-					<key name="FavoriteStore1">Store current program or content as favorite 1. (VK_STORE_FAVORITE_1)</key>
-					<key name="FavoriteStore2">Store current program or content as favorite 2. (VK_STORE_FAVORITE_2)</key>
-					<key name="FavoriteStore3">Store current program or content as favorite 3. (VK_STORE_FAVORITE_3)</key>
-					<key name="Guide">Toggle display of program or content guide. (VK_GUIDE)</key>
-					<key name="GuideNextDay">If guide is active and displayed, then display next day's content. (VK_NEXT_DAY)</key>
-					<key name="GuidePreviousDay">If guide is active and displayed, then display previous day's content. (VK_PREV_DAY)</key>
-					<key name="Info">Toggle display of information about currently selected context or media. (VK_INFO)</key>
-					<key name="InstantReplay">Toggle instant replay. (VK_INSTANT_REPLAY)</key>
-					<key name="Link">Launch linked content, if available and appropriate. (VK_LINK)</key>
-					<key name="ListProgram">List the current program. (VK_LIST)</key>
-					<key name="LiveContent">Toggle display listing of currently available live content or programs. (VK_LIVE)</key>
-					<key name="Lock">Lock or unlock current content or program. (VK_LOCK)</key>
-					<key name="MediaApps">Show a list of media applications. (VK_APPS)
-						<p class="note"><strong>Note:</strong> Do not confuse this key value with the Windows' VK_APPS / VK_CONTEXT_MENU key, which is encoded as <code>'ContextMenu'</code>.</p>
-						</key>
-					<key name="MediaFastForward">Initiate or continue forward playback at faster than normal speed, or increase speed if already fast forwarding. (VK_FAST_FWD)</key>
-					<key name="MediaLast">Select previously selected channel or media. (VK_LAST)</key>
-					<key name="MediaPause">Pause the currently playing media. (VK_PAUSE)
-						<p class="note"><strong>Note:</strong> Media controller devices should use this value rather than <code>'Pause'</code> for their pause keys.</p>
-						</key>
-					<key name="MediaPlay">Initiate or continue media playback at normal speed, if not currently playing at normal speed. (VK_PLAY)</key>
-					<key name="MediaRecord">Initiate or resume recording of currently selected media. (VK_RECORD)</key>
-					<key name="MediaRewind">Initiate or continue reverse playback at faster than normal speed, or increase speed if already rewinding. (VK_REWIND)</key>
-					<key name="MediaSkip">Skip forward to next content or program. (VK_SKIP)</key>
-					<key name="NextFavoriteChannel">Cycle to next favorite channel (in favorites list). (VK_NEXT_FAVORITE_CHANNEL)</key>
-					<key name="NextUserProfile">Cycle to next user profile (if there are multiple user profiles). (VK_USER)</key>
-					<key name="OnDemand">Access on-demand content or programs. (VK_ON_DEMAND)</key>
-					<key name="PinPDown">Move picture-in-picture window down. (VK_PINP_DOWN)</key>
-					<key name="PinPMove">Move picture-in-picture window. (VK_PINP_MOVE)</key>
-					<key name="PinPToggle">Toggle display of picture-in-picture window. (VK_PINP_TOGGLE)</key>
-					<key name="PinPUp">Move picture-in-picture window up. (VK_PINP_UP)</key>
-					<key name="PlaySpeedDown">Decrease media playback speed. (VK_PLAY_SPEED_DOWN)</key>
-					<key name="PlaySpeedReset">Reset playback to normal speed. (VK_PLAY_SPEED_RESET)</key>
-					<key name="PlaySpeedUp">Increase media playback speed. (VK_PLAY_SPEED_UP)</key>
-					<key name="RandomToggle">Toggle random media or content shuffle mode. (VK_RANDOM_TOGGLE)</key>
-					<key name="RcLowBattery">Not a physical key, but this key code is sent when the remote control battery is low. (VK_RC_LOW_BATTERY)</key>
-					<key name="RecordSpeedNext">Toggle or cycle between media recording speeds. (VK_RECORD_SPEED_NEXT)</key>
-					<key name="RfBypass">Toggle RF (radio frequency) input bypass mode (pass RF input directly to the RF output). (VK_RF_BYPASS)</key>
-					<key name="ScanChannelsToggle">Toggle scan channels mode. (VK_SCAN_CHANNELS_TOGGLE)</key>
-					<key name="ScreenModeNext">Advance display screen mode to next available mode. (VK_SCREEN_MODE_NEXT)</key>
-					<key name="Settings">Toggle display of device settings screen. (VK_SETTINGS)</key>
-					<key name="SplitScreenToggle">Toggle split screen mode. (VK_SPLIT_SCREEN_TOGGLE)</key>
-					<key name="Subtitle">Toggle display of subtitles, if available. (VK_SUBTITLE)</key>
-					<key name="Teletext">Toggle display of teletext, if available (VK_TELETEXT).</key>
-					<key name="VideoModeNext">Advance video mode to next available mode.(VK_VIDEO_MODE_NEXT)</key>
-					<key name="Wink">Cause device to identify itself in some manner, e.g., audibly or visibly. (VK_WINK)</key>
-					<key name="ZoomToggle">Toggle between full-screen and scaled content, or alter magnification level. (VK_ZOOM)</key>
-				</div>
+		<section id="keys-function">
+			<h4>General-Purpose Function Keys</h4>
+			<p>The exact number of these general purpose function keys varies on different platforms, and only the first
+				few are defined explicitly here.  Additional function key names are implicitly defined by incrementing the
+				base-10 index at the end of the function key name. Thus, <span class="key">'F24'</span>
+				and <span class="key">'Soft8'</span> are all valid key values.
+				</p>
+			<div id="key-table-function" class="key-table">
+				<key name="F1">The F1 key, a general purpose function key, as index 1.</key>
+				<key name="F2">The F2 key, a general purpose function key, as index 2.</key>
+				<key name="F3">The F3 key, a general purpose function key, as index 3.</key>
+				<key name="F4">The F4 key, a general purpose function key, as index 4.</key>
+				<key name="F5">The F5 key, a general purpose function key, as index 5.</key>
+				<key name="F6">The F6 key, a general purpose function key, as index 6.</key>
+				<key name="F7">The F7 key, a general purpose function key, as index 7.</key>
+				<key name="F8">The F8 key, a general purpose function key, as index 8.</key>
+				<key name="F9">The F9 key, a general purpose function key, as index 9.</key>
+				<key name="F10">The F10 key, a general purpose function key, as index 10.</key>
+				<key name="F11">The F11 key, a general purpose function key, as index 11.</key>
+				<key name="F12">The F12 key, a general purpose function key, as index 12.</key>
+				<key name="Soft1">General purpose virtual function key, as index 1.</key>
+				<key name="Soft2">General purpose virtual function key, as index 2.</key>
+				<key name="Soft3">General purpose virtual function key, as index 3.</key>
+				<key name="Soft4">General purpose virtual function key, as index 4.</key>
+			</div>
+		</section><!-- keys-function -->
 
-				<p>Some of the keys defined in the media controller standards already have appropriate keys defined in other sections of this specification.
-					These following table summarizes the key values that MUST be used:
+		<section id="keys-multimedia">
+			<h4>Multimedia Keys</h4>
+			<p>These are extra keys found on "multimedia" keyboards.</p>
+
+			<div id="key-table-multimedia" class="key-table">
+				<key name="Close">Close the current document or message.</key>
+				<key name="MailForward">Open an editor to forward the current message.</key>
+				<key name="MailReply">Open an editor to reply to the current message.</key>
+				<key name="MailSend">Send the current message.</key>
+				<key name="MediaPlayPause">Toggle media between play and pause states.</key>
+				<key name="MediaSelect">Select media.</key>
+				<key name="MediaStop">Stop media playing, pausing, forwarding, rewinding, or recording, if not already stopped.</key>
+				<key name="MediaTrackNext">Seek to next media or program track.</key>
+				<key name="MediaTrackPrevious">Seek to previous media or program track.</key>
+				<key name="New">Open a new document or message.</key>
+				<key name="Open">Open an existing document or message.</key>
+				<key name="Print">Print the current document or message.</key>
+				<key name="Save">Save the current document or message.</key>
+				<key name="SpellCheck">Spellcheck the current document or selection.</key>
+				<key name="VolumeDown">Decrease audio volume.</key>
+				<key name="VolumeUp">Increase audio volume.</key>
+				<key name="VolumeMute">Toggle between muted state and prior volume level.</key>
+			</div>
+		</section><!-- keys-multimedia -->
+
+		<section id="keys-apps">
+			<h4>Application Keys</h4>
+			<p>The Application Keys are special keys that are assigned to launch a particular application.
+				Additional application key names can be defined by concatenating 'Launch' with the name
+				of the application.
 				</p>
-				
-				<div id="key-table-media-controller-dup" class="key-table">
-					<key name="BrowserBack" noid>Navigate to previous content or page in current history. (VK_BACK)</key>
-					<key name="BrowserForward" noid>Navigate to next content or page in current history. (VK_FORWARD)</key>
-					<key name="ContextMenu" noid>Toggle display of the on-screen menu. (VK_MENU)</key>
-					<key name="Eject" noid>Toggle removable media to eject (open) and insert (close) state. (VK_EJECT_TOGGLE)</key>
-					<key name="End" noid>The End key, used with keyboard entry to go to the end of content. (VK_GO_TO_END)</key>
-					<key name="Enter" noid>The Enter key, to activate current selection or accept current input. (VK_SELECT)</key>
-					<key name="Home" noid>The Home key, used with keyboard entry, to go to start of content. (VK_GO_TO_START)</key>
-					<key name="MediaPlayPause" noid>Toggle media between play and pause states. (VK_PLAY_PAUSE)</key>
-					<key name="MediaStop" noid>Stop media playing, pausing, forwarding, rewinding, or recording, if not already stopped. (VK_STOP)</key>
-					<key name="MediaTrackNext" noid>Seek to next media or program track. (VK_TRACK_NEXT)</key>
-					<key name="MediaTrackPrevious" noid>Seek to previous media or program track. (VK_TRACK_PREV)</key>
-					<key name="Power" noid>Toggle power state. (VK_POWER)</key>
-					<key name="Unidentified" noid>This key value is used when an implementations is unable to identify another key value, due to either hardware, platform, or software constraints. (VK_UNDEFINED)</key>
-					<key name="VolumeDown" noid>Decrease audio volume. (VK_VOLUME_DOWN)</key>
-					<key name="VolumeUp" noid>Increase audio volume. (VK_VOLUME_UP)</key>
-					<key name="VolumeMute" noid>Toggle between muted state and prior volume level. (VK_VOLUME_MUTE)</key>
-				</div>
+			<!-- Key tables. Note that all keys must be defined within a <div class="key-table"> -->
+			<div id="key-table-apps" class="key-table">
+				<key name="LaunchCalculator">The 'Calculator' key. This is often the generic 'LaunchApplication' key, as index 2.</key>
+				<key name="LaunchCalendar">The 'Calendar' key.</key>
+				<key name="LaunchMail">The 'Mail' key.</key>
+				<key name="LaunchMediaPlayer">The 'Media Player' key.</key>
+				<key name="LaunchMusicPlayer">The 'Music Player' key.</key>
+				<key name="LaunchMyComputer">The 'My Computer' key. This is often the generic 'LaunchApplication' key, as index 1.</key>
+				<key name="LaunchScreenSaver">The 'Screen Saver' key.</key>
+				<key name="LaunchSpreadsheet">The 'Spreadsheet' key.</key>
+				<key name="LaunchWebBrowser">The 'Web Browser' key.</key>
+				<key name="LaunchWebCam">The 'WebCam' key.</key>
+				<key name="LaunchWordProcessor">The 'Word Processor' key.</key>
+				<!--key name="List">Toggle display listing of currently available content or programs.</key-->
+			</div>
+		</section><!-- keys-apps -->
 
-			</section><!-- keys-media-controller -->
+		<section id="keys-browser">
+			<h4>Browser Keys</h4>
+			<div id="key-table-browser" class="key-table">
+				<key name="BrowserBack">Navigate to previous content or page in current history.</key>
+				<key name="BrowserFavorites">The Browser Favorites key.</key>
+				<key name="BrowserForward">Navigate to next content or page in current history.</key>
+				<key name="BrowserHome">The Browser Home key, used with keyboard entry, to go to the home page.</key>
+				<key name="BrowserRefresh">The Browser Refresh key, to refresh the current page or content.</key>
+				<key name="BrowserSearch">The Browser Search key, to call up the user's preferred search page.</key>
+				<key name="BrowserStop">The Browser Stop key, to stop loading the current page or content.</key>
+			</div>
+		</section><!-- keys-browser -->
 
-		</section>  <!-- key-value-tables -->
+		<section id="keys-media-controller">
+			<h4>Media Controller Keys</h4>
+
+			<p>The <a class="def" href="#glossary-key-value">key values</a> for media controllers (e.g. remote controls for television, audio systems, and set-top boxes)
+				are derived in part from the consumer electronics technical specifications:</p>
+				<ul>
+					<li>DTV Application Software Environment [<cite><a href="#references-DASE">DASE</a></cite>]</li>
+					<li>Open Cable Application Platform 1.1.3 [<cite><a href="#references-OCAP">OCAP</a></cite>]</li>
+					<li>ANSI/CEA-2014-B, Web-based Protocol and Framework for Remote User Interface on UPnPTM Networks and the Internet [<cite><a href="#references-WEB4CE">WEB4CE</a></cite>]</li>
+				</ul>
+			<p></p>
+			
+			<div id="key-table-media-controller" class="key-table">
+				<key name="AudioBalanceLeft">Adjust audio balance leftward. (VK_AUDIO_BALANCE_LEFT)</key>
+				<key name="AudioBalanceRight">Adjust audio balance rightward. (VK_AUDIO_BALANCE_RIGHT)</key>
+				<key name="AudioBassBoostDown">Decrease audio bass boost or cycle down through bass boost states. (VK_BASS_BOOST_DOWN)</key>
+				<key name="AudioBassBoostUp">Increase audio bass boost or cycle up through bass boost states. (VK_BASS_BOOST_UP)</key>
+				<key name="AudioFaderFront">Adjust audio fader towards front. (VK_FADER_FRONT)</key>
+				<key name="AudioFaderRear">Adjust audio fader towards rear. (VK_FADER_REAR)</key>
+				<key name="AudioSurroundModeNext">Advance surround audio mode to next available mode. (VK_SURROUND_MODE_NEXT)</key>
+				<key name="ChannelDown">Select next (numerically or logically) lower channel. (VK_CHANNEL_DOWN)</key>
+				<key name="ChannelUp">Select next (numerically or logically) higher channel. (VK_CHANNEL_UP)</key>
+				<key name="ColorF0Red">General purpose color-coded media function key, as index 0 (red). (VK_COLORED_KEY_0)</key>
+				<key name="ColorF1Green">General purpose color-coded media function key, as index 1 (green). (VK_COLORED_KEY_1)</key>
+				<key name="ColorF2Yellow">General purpose color-coded media function key, as index 2 (yellow). (VK_COLORED_KEY_2)</key>
+				<key name="ColorF3Blue">General purpose color-coded media function key, as index 3 (blue). (VK_COLORED_KEY_3)</key>
+				<key name="ColorF4Grey">General purpose color-coded media function key, as index 4 (grey). (VK_COLORED_KEY_4)</key>
+				<key name="ColorF5Brown">General purpose color-coded media function key, as index 5 (brown). (VK_COLORED_KEY_5)</key>
+				<key name="ClosedCaptionToggle">Toggle the display of Closed Captions. (VK_CC)</key>
+				<key name="Dimmer">Adjust brightness of device, by toggling between or cycling through states. (VK_DIMMER)</key>
+				<key name="DisplaySwap">Swap video sources. (VK_DISPLAY_SWAP)</key>
+				<key name="Exit">Exit the current application. (VK_EXIT)</key>
+				<key name="FavoriteClear0">Clear program or content stored as favorite 0. (VK_CLEAR_FAVORITE_0)</key>
+				<key name="FavoriteClear1">Clear program or content stored as favorite 1. (VK_CLEAR_FAVORITE_1)</key>
+				<key name="FavoriteClear2">Clear program or content stored as favorite 2. (VK_CLEAR_FAVORITE_2)</key>
+				<key name="FavoriteClear3">Clear program or content stored as favorite 3. (VK_CLEAR_FAVORITE_3)</key>
+				<key name="FavoriteRecall0">Select (recall) program or content stored as favorite 0. (VK_RECALL_FAVORITE_0)</key>
+				<key name="FavoriteRecall1">Select (recall) program or content stored as favorite 1. (VK_RECALL_FAVORITE_1)</key>
+				<key name="FavoriteRecall2">Select (recall) program or content stored as favorite 2. (VK_RECALL_FAVORITE_2)</key>
+				<key name="FavoriteRecall3">Select (recall) program or content stored as favorite 3. (VK_RECALL_FAVORITE_3)</key>
+				<key name="FavoriteStore0">Store current program or content as favorite 0. (VK_STORE_FAVORITE_0)</key>
+				<key name="FavoriteStore1">Store current program or content as favorite 1. (VK_STORE_FAVORITE_1)</key>
+				<key name="FavoriteStore2">Store current program or content as favorite 2. (VK_STORE_FAVORITE_2)</key>
+				<key name="FavoriteStore3">Store current program or content as favorite 3. (VK_STORE_FAVORITE_3)</key>
+				<key name="Guide">Toggle display of program or content guide. (VK_GUIDE)</key>
+				<key name="GuideNextDay">If guide is active and displayed, then display next day's content. (VK_NEXT_DAY)</key>
+				<key name="GuidePreviousDay">If guide is active and displayed, then display previous day's content. (VK_PREV_DAY)</key>
+				<key name="Info">Toggle display of information about currently selected context or media. (VK_INFO)</key>
+				<key name="InstantReplay">Toggle instant replay. (VK_INSTANT_REPLAY)</key>
+				<key name="Link">Launch linked content, if available and appropriate. (VK_LINK)</key>
+				<key name="ListProgram">List the current program. (VK_LIST)</key>
+				<key name="LiveContent">Toggle display listing of currently available live content or programs. (VK_LIVE)</key>
+				<key name="Lock">Lock or unlock current content or program. (VK_LOCK)</key>
+				<key name="MediaApps">Show a list of media applications. (VK_APPS)
+					<p class="note"><strong>Note:</strong> Do not confuse this key value with the Windows' VK_APPS / VK_CONTEXT_MENU key, which is encoded as <code>'ContextMenu'</code>.</p>
+					</key>
+				<key name="MediaFastForward">Initiate or continue forward playback at faster than normal speed, or increase speed if already fast forwarding. (VK_FAST_FWD)</key>
+				<key name="MediaLast">Select previously selected channel or media. (VK_LAST)</key>
+				<key name="MediaPause">Pause the currently playing media. (VK_PAUSE)
+					<p class="note"><strong>Note:</strong> Media controller devices should use this value rather than <code>'Pause'</code> for their pause keys.</p>
+					</key>
+				<key name="MediaPlay">Initiate or continue media playback at normal speed, if not currently playing at normal speed. (VK_PLAY)</key>
+				<key name="MediaRecord">Initiate or resume recording of currently selected media. (VK_RECORD)</key>
+				<key name="MediaRewind">Initiate or continue reverse playback at faster than normal speed, or increase speed if already rewinding. (VK_REWIND)</key>
+				<key name="MediaSkip">Skip forward to next content or program. (VK_SKIP)</key>
+				<key name="NextFavoriteChannel">Cycle to next favorite channel (in favorites list). (VK_NEXT_FAVORITE_CHANNEL)</key>
+				<key name="NextUserProfile">Cycle to next user profile (if there are multiple user profiles). (VK_USER)</key>
+				<key name="OnDemand">Access on-demand content or programs. (VK_ON_DEMAND)</key>
+				<key name="PinPDown">Move picture-in-picture window down. (VK_PINP_DOWN)</key>
+				<key name="PinPMove">Move picture-in-picture window. (VK_PINP_MOVE)</key>
+				<key name="PinPToggle">Toggle display of picture-in-picture window. (VK_PINP_TOGGLE)</key>
+				<key name="PinPUp">Move picture-in-picture window up. (VK_PINP_UP)</key>
+				<key name="PlaySpeedDown">Decrease media playback speed. (VK_PLAY_SPEED_DOWN)</key>
+				<key name="PlaySpeedReset">Reset playback to normal speed. (VK_PLAY_SPEED_RESET)</key>
+				<key name="PlaySpeedUp">Increase media playback speed. (VK_PLAY_SPEED_UP)</key>
+				<key name="RandomToggle">Toggle random media or content shuffle mode. (VK_RANDOM_TOGGLE)</key>
+				<key name="RcLowBattery">Not a physical key, but this key code is sent when the remote control battery is low. (VK_RC_LOW_BATTERY)</key>
+				<key name="RecordSpeedNext">Toggle or cycle between media recording speeds. (VK_RECORD_SPEED_NEXT)</key>
+				<key name="RfBypass">Toggle RF (radio frequency) input bypass mode (pass RF input directly to the RF output). (VK_RF_BYPASS)</key>
+				<key name="ScanChannelsToggle">Toggle scan channels mode. (VK_SCAN_CHANNELS_TOGGLE)</key>
+				<key name="ScreenModeNext">Advance display screen mode to next available mode. (VK_SCREEN_MODE_NEXT)</key>
+				<key name="Settings">Toggle display of device settings screen. (VK_SETTINGS)</key>
+				<key name="SplitScreenToggle">Toggle split screen mode. (VK_SPLIT_SCREEN_TOGGLE)</key>
+				<key name="Subtitle">Toggle display of subtitles, if available. (VK_SUBTITLE)</key>
+				<key name="Teletext">Toggle display of teletext, if available (VK_TELETEXT).</key>
+				<key name="VideoModeNext">Advance video mode to next available mode.(VK_VIDEO_MODE_NEXT)</key>
+				<key name="Wink">Cause device to identify itself in some manner, e.g., audibly or visibly. (VK_WINK)</key>
+				<key name="ZoomToggle">Toggle between full-screen and scaled content, or alter magnification level. (VK_ZOOM)</key>
+			</div>
+
+			<p>Some of the keys defined in the media controller standards already have appropriate keys defined in other sections of this specification.
+				These following table summarizes the key values that MUST be used:
+			</p>
+			
+			<div id="key-table-media-controller-dup" class="key-table">
+				<key name="BrowserBack" noid>Navigate to previous content or page in current history. (VK_BACK)</key>
+				<key name="BrowserForward" noid>Navigate to next content or page in current history. (VK_FORWARD)</key>
+				<key name="ContextMenu" noid>Toggle display of the on-screen menu. (VK_MENU)</key>
+				<key name="Eject" noid>Toggle removable media to eject (open) and insert (close) state. (VK_EJECT_TOGGLE)</key>
+				<key name="End" noid>The End key, used with keyboard entry to go to the end of content. (VK_GO_TO_END)</key>
+				<key name="Enter" noid>The Enter key, to activate current selection or accept current input. (VK_SELECT)</key>
+				<key name="Home" noid>The Home key, used with keyboard entry, to go to start of content. (VK_GO_TO_START)</key>
+				<key name="MediaPlayPause" noid>Toggle media between play and pause states. (VK_PLAY_PAUSE)</key>
+				<key name="MediaStop" noid>Stop media playing, pausing, forwarding, rewinding, or recording, if not already stopped. (VK_STOP)</key>
+				<key name="MediaTrackNext" noid>Seek to next media or program track. (VK_TRACK_NEXT)</key>
+				<key name="MediaTrackPrevious" noid>Seek to previous media or program track. (VK_TRACK_PREV)</key>
+				<key name="Power" noid>Toggle power state. (VK_POWER)</key>
+				<key name="Unidentified" noid>This key value is used when an implementations is unable to identify another key value, due to either hardware, platform, or software constraints. (VK_UNDEFINED)</key>
+				<key name="VolumeDown" noid>Decrease audio volume. (VK_VOLUME_DOWN)</key>
+				<key name="VolumeUp" noid>Increase audio volume. (VK_VOLUME_UP)</key>
+				<key name="VolumeMute" noid>Toggle between muted state and prior volume level. (VK_VOLUME_MUTE)</key>
+			</div>
+
+		</section><!-- keys-media-controller -->
+
+	</section>  <!-- key-value-tables -->
 
 	<!-- Appendix G: Acknowledgements ========================================================-->
 	<section id="acknowledgements-contributors">
@@ -560,10 +560,14 @@
 			<h2>Normative References</h2>
 
 			<dl>
-				<dt id="references-UnicodeNormalization"><strong>[UAX #15]</strong></dt>
-				<dd><cite><a href="http://www.unicode.org/reports/tr15/">Unicode Normalization Forms</a></cite>,<br/>
-					The Unicode Standard Annex #15. The Unicode Consortium, 2006.<br/>
-					The latest version of this annex is available at http://www.unicode.org/reports/tr15/.
+				<dt id="references-charmod"><strong>[CharMod]</strong></dt>
+				<dd><cite><a href="http://www.w3.org/TR/2005/REC-charmod-20050215/">Character Model for the World Wide Web 1.0: Fundamentals</a></cite>,<br/>
+					M. D&#xFC;rst, F. Yergeau, R. Ishida, M. Wolf, T. Texin, Editors.<br/>
+					World Wide Web Consortium, 15 February 2005.<br/>
+					This version of the Character Model for the World Wide Web 1.0: Fundamentals specification is
+						http://www.w3.org/TR/2005/REC-charmod-20050215/.<br/>
+					The <a class="normative" href="http://www.w3.org/TR/charmod/">latest version of Character Model for
+					the World Wide Web 1.0: Fundamentals</a> is available at http://www.w3.org/TR/charmod/.
 					</dd>
 
 				<dt id="references-Unicode"><strong>[Unicode]</strong></dt>
@@ -603,6 +607,14 @@
 					03 June 2010.<br/>
 					Available at <a href="http://www.cablelabs.com/specifications/OC-SP-OCAP1.1.3-100603.pdf">http://www.cablelabs.com/specifications/OC-SP-OCAP1.1.3-100603.pdf</a>.
 					</dd>
+
+				<dt id="references-WEB4CE"><strong>[WEB4CE]</strong></dt>
+				<dd><cite><a href="http://www.ce.org/Standards/Standard-Listings/R7-Home-Network-Committee/CEA-2014-B-(ANSI%29.aspx">ANSI/CEA-2014-B,
+					Web-based Protocol and Framework for Remote User Interface on UPnPTM Networks and the Internet (Web4CE)</a></cite>.<br/>
+					Consumer Electronics Association, January 2011.<br/>
+					Available at
+						<a href="http://www.ce.org/Standards/Standard-Listings/R7-Home-Network-Committee/CEA-2014-B-(ANSI).aspx">http://www.ce.org/Standards/Standard-Listings/R7-Home-Network-Committee/CEA-2014-B-(ANSI%29.aspx</a>.
+					</dd>
 			</dl>
 		</section>
 	</section>  <!-- references -->