Update proposed alt spec (with key/code table split out).
authorGary Kacmarcik <garykac@google.com>
Thu, 06 Mar 2014 08:35:10 -0800
changeset 567 9c2e969466ca
parent 566 d73c063c1120
child 568 eab211d2898a
Update proposed alt spec (with key/code table split out).

Move more non-normative info into the code spec.
html/DOM3-Events-alt.html
html/DOM3Events-code.html
--- a/html/DOM3-Events-alt.html	Wed Mar 05 20:23:41 2014 -0800
+++ b/html/DOM3-Events-alt.html	Thu Mar 06 08:35:10 2014 -0800
@@ -6035,360 +6035,6 @@
 			be misrepresented or unavailable in the PDF version or printed version of this specification.
 			</p>
 
-		<section id="keyboard-input">
-			<h2>Keyboard Input</h2>
-
-			<p><em>This section is informative</em></p>
-
-			<p>The relationship of each key to the complete keyboard has three separate aspects,
-				each of which vary among different models and configurations of keyboards, particularly
-				for locale-specific reasons:
-				</p>
-
-			<ul>
-				<li><strong>Mechanical layout:</strong> the dimensions, size, and placement of the physical keys on the keyboard</li>
-				<li><strong>Visual markings:</strong> the labels (or <em>legends</em>) that mark each key</li>
-				<li><strong>Functional mapping:</strong> the abstract key-value association of each key.</li>
-			</ul>
-
-			<p>This specification only defines the functional mapping, in terms of
-					<a href="#keys-keyvalues"><code>key</code></a> values and
-					<a href="#keys-codevalues"><code>code</code></a> values,
-				but briefly describes
-					<a href="#keyboard-layout">keyboard layout</a> and
-					<a href="#key-legends">key legends</a>
-				for background.
-				</p>
-
-			<section id="key-legends">
-				<h3>Key Legends</h3>
-
-				<p><em>This section is informative</em></p>
-
-				<p>The key legend is the visual marking that is printed or embossed on the <em>key cap</em> (the rectangular
-					'cap' that covers the mechanical switch for the key).
-					These markings normally consist of one or more characters that a keystroke on that key
-					will produce (such as
-						<code class="glyph">'F'</code>,
-						<code class="glyph">'8'</code>, or
-						<code class="glyph">'ш'</code>),
-					or names or symbols which indicate that key's function (such as an upward-pointing arrow
-					<code class="glyph">&#x21E7;</code> indicating <code class="key">'Shift'</code>,
-					or the string <code>'Enter'</code>).
-					Keys are often referred to by this marking
-					(e.g., <q>Press the <code>'Shift'</code> and <code>'F'</code> keys.</q>).
-					Note, however, that the visual appearance of the key has no bearing on its digital representation,
-					and in many configurations may be completely inaccurate.
-					Even the control and function keys, such as <code>'Enter'</code>, MAY be mapped to different
-					functionality, or even mapped as character keys.
-					</p>
-
-				<p>For historical reasons, the character keys are typically marked with the capital-letter equivalents
-					of the character value they produce, e.g., the <code>'F'</code> key (the key marked with the glyph
-					<code class="glyph">'F'</code>), will produce the character value <code class="char">'f'</code> when
-					pressed without an active modifier key (<code class="key">'Shift'</code>) or modifier state
-					(<code class="key">'CapsLock'</code>).
-					</p>
-
-				<p class="note"><strong>Note:</strong>
-					Many keyboards contain keys that do not normally produce any characters, even though the symbol might
-					have a Unicode equivalent.
-					For example, the <code class="key">'Shift'</code> key might bear the symbol
-					<code class="glyph">&#x21E7;</code>, which has the
-					<a class="def" href="#glossary-unicode-code-point">Unicode code point</a> <code class="char">'\u21E7'</code>,
-					but pressing the <code class="key">'Shift'</code> key will not produce this character value, and
-					there is no <a class="def" href="#glossary-unicode-code-point">Unicode code point</a> for
-					<code class="key">'Shift'</code>.
-					</p>
-			</section>  <!-- key-legends -->
-
-			<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>
-
-						<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>  <!-- keyboard-input -->
-
 		<section id="keys-codevalues">
 			<h1>Key codes</h1>
 			
@@ -6402,6 +6048,9 @@
 				(unaffected by the current keyboard state) that uniquely identifies each key on the keyboard.
 				</p>
 
+			<p class="note"><strong>Note:</strong> See the <a href="DOM3Events-code.html">DOM Level 3 KeyboardEvent code Specification</a>
+				for a normative list of <code>code</code> values.</p>
+
 			<section id="code-motivation">
 				<h1>Motivation for Adding the <code>code</code> Attribute</h1>
 
@@ -6562,12 +6211,6 @@
 			
 		</section>  <!-- keys-codevalues -->
 
-		<section id="code-value-tables">
-			<h3>Keyboard Event <code>code</code> Value Tables</h3>
-		
-		
-		</section>  <!-- code-value-tables -->
-		
 		<section id="keys-keyvalues">
 			<h2>Keyboard Event <code>key</code> Values</h2>
 
@@ -6576,6 +6219,9 @@
 				as for keyboard shortcuts).  This specification defines a set of common key values (defined in the <a href="#key-value-tables">Key Value Tables</a>), and rules for production
 				of new key values.</p>
 
+			<p class="note"><strong>Note:</strong> See the <a href="DOM3Events-key.html">DOM Level 3 KeyboardEvent key Specification</a>
+				for a normative list of <code>key</code> values.</p>
+
 			<p>Key values can be used to detect the value of a key which has been pressed, using the <a href="#widl-KeyboardEvent-key"><code>KeyboardEvent.key</code></a>
 				attribute.  Content authors can retrieve the <a class="def" href="#glossary-character-value">
 				character value</a> of upper- or lower-case letters, number, symbols, or other character-producing keys, and also the <a class="def" href="#glossary-key-value">key
@@ -7697,23 +7343,6 @@
 			</section>  <!-- keys-guidelines -->
 		</section>  <!-- keys-keyvalues -->
 
-		<section id="key-value-tables">
-			<h3>Keyboard Event <code>code</code> and <code>key</code> Value Tables</h3>
-
-			<section id="key-value-tables-code">
-				<h3><code>code</code> Value Tables</h3>
-				<p>See <a href="DOM3Events-code">DOM Level 3 KeyboardEvent code Specification</a> for a
-					normative list of <code>code</code> values.</p>
-			</section>
-
-			<section id="key-value-tables-key">
-				<h3><code>key</code> Value Tables</h3>
-				<p>See <a href="DOM3Events-key">DOM Level 3 KeyboardEvent key Specification</a> for a
-					normative list of <code>key</code> values.</p>
-			</section>
-
-		</section>  <!-- key-value-tables -->
-
 	</section>  <!-- keys -->
 
 	<!-- Appendix A: Legacy Event Initializers ========================================================-->
--- a/html/DOM3Events-code.html	Wed Mar 05 20:23:41 2014 -0800
+++ b/html/DOM3Events-code.html	Thu Mar 06 08:35:10 2014 -0800
@@ -92,7 +92,361 @@
 			</p>
 	</section>  <!-- sotd -->
 
+
 	<!-- Section 6: Keyboard and key values ========================================================-->
+		<section id="keyboard-input">
+			<h2>Keyboard Input</h2>
+
+			<p><em>This section is informative</em></p>
+
+			<p>The relationship of each key to the complete keyboard has three separate aspects,
+				each of which vary among different models and configurations of keyboards, particularly
+				for locale-specific reasons:
+				</p>
+
+			<ul>
+				<li><strong>Mechanical layout:</strong> the dimensions, size, and placement of the physical keys on the keyboard</li>
+				<li><strong>Visual markings:</strong> the labels (or <em>legends</em>) that mark each key</li>
+				<li><strong>Functional mapping:</strong> the abstract key-value association of each key.</li>
+			</ul>
+
+			<p>This specification only defines the functional mapping, in terms of
+					<a href="#keys-keyvalues"><code>key</code></a> values and
+					<a href="#keys-codevalues"><code>code</code></a> values,
+				but briefly describes
+					<a href="#keyboard-layout">keyboard layout</a> and
+					<a href="#key-legends">key legends</a>
+				for background.
+				</p>
+
+			<section id="key-legends">
+				<h3>Key Legends</h3>
+
+				<p><em>This section is informative</em></p>
+
+				<p>The key legend is the visual marking that is printed or embossed on the <em>key cap</em> (the rectangular
+					'cap' that covers the mechanical switch for the key).
+					These markings normally consist of one or more characters that a keystroke on that key
+					will produce (such as
+						<code class="glyph">'F'</code>,
+						<code class="glyph">'8'</code>, or
+						<code class="glyph">'ш'</code>),
+					or names or symbols which indicate that key's function (such as an upward-pointing arrow
+					<code class="glyph">&#x21E7;</code> indicating <code class="key">'Shift'</code>,
+					or the string <code>'Enter'</code>).
+					Keys are often referred to by this marking
+					(e.g., <q>Press the <code>'Shift'</code> and <code>'F'</code> keys.</q>).
+					Note, however, that the visual appearance of the key has no bearing on its digital representation,
+					and in many configurations may be completely inaccurate.
+					Even the control and function keys, such as <code>'Enter'</code>, MAY be mapped to different
+					functionality, or even mapped as character keys.
+					</p>
+
+				<p>For historical reasons, the character keys are typically marked with the capital-letter equivalents
+					of the character value they produce, e.g., the <code>'F'</code> key (the key marked with the glyph
+					<code class="glyph">'F'</code>), will produce the character value <code class="char">'f'</code> when
+					pressed without an active modifier key (<code class="key">'Shift'</code>) or modifier state
+					(<code class="key">'CapsLock'</code>).
+					</p>
+
+				<p class="note"><strong>Note:</strong>
+					Many keyboards contain keys that do not normally produce any characters, even though the symbol might
+					have a Unicode equivalent.
+					For example, the <code class="key">'Shift'</code> key might bear the symbol
+					<code class="glyph">&#x21E7;</code>, which has the
+					<a class="def" href="#glossary-unicode-code-point">Unicode code point</a> <code class="char">'\u21E7'</code>,
+					but pressing the <code class="key">'Shift'</code> key will not produce this character value, and
+					there is no <a class="def" href="#glossary-unicode-code-point">Unicode code point</a> for
+					<code class="key">'Shift'</code>.
+					</p>
+			</section>  <!-- key-legends -->
+
+			<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>
+
+						<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>  <!-- keyboard-input -->
 
 		<section id="code-value-tables">
 			<h3>Keyboard Event <code>code</code> Value Tables</h3>