1. 引言
本文档概述了各种键盘布局,并规定了应为每个按键使用的 code
值。与 key
值不同(详见 [UIEvents-key]),code
的值仅依据按键在键盘上的物理位置,与用户当前的地区设置无关。
本规范之前标题为 DOM Level 3 KeyboardEvent code
Values。
1.1. 格式规范
本规范使用下列约定:
2. 键盘布局
本节为非规范内容。
字母数字键盘是用户产生键盘事件的最常用方式。本节概述了标准键盘及其物理布局。
2.1. 标准键盘布局
本节描述常见键盘上的物理布局。
2.1.1. 键盘区块
在讨论键盘布局时,方便将标准键盘分为不同区域并为每一行命名。
这些键盘区块包括:
为方便识别按键,键盘每一行都命名从底部的 “A” 行到顶部的 “E” 行,功能区键为 “K” 行。该命名方法与 [ISO9995-1] 保持一致。
需要注意,许多键盘(现代或老式)会有一些额外按键,未能明确归类于上述分区。其中部分见 § 3.6 媒体按键。
2.1.2. 标准“101”键盘布局
标准“101”键盘(通常称为“美国布局”)只有 "Backslash" 键(标签为 \|)位于单排 Enter 键上方,其它布局则无此键,而是将 Enter 扩展为双排。
现代标准“101”布局的键盘实际上有104个按键:61个在 字母数字区,43个在 数字小键盘、控制区、方向区和 功能区。
“101”名称是因为最初该标准键盘确实有101个按键,后来增加了两个 Meta 键(常标注为操作系统专用标签)和 Menu 键,使总数达到104。
2.1.3. 替代“101”键盘布局
替代“101”键盘拥有较大的 Enter 键,并缩小 Backspace 键以腾出空间给 "IntlYen"(取代标准101布局中的 "Backslash"),该键名来源于日文布局,标签为 ¥(yen),俄文布局中该键标签为 \/。
现代替代“101”布局的键盘也有104个按键:61个在 字母数字区,43个在 数字小键盘、控制区、方向区和 功能区。
2.1.4. 标准“102”键盘布局
标准“102”键盘在欧洲很常见,新增了一个“101”布局没有的键:"IntlBackslash"(标签为 \|,位于左Shift旁)。
还增加了第二个键(标签为 #~,位于 Enter 下方)编码为 "Backslash",与“101”布局上的 \|
键使用同一编码。根据 [USB-HID],美式和英式这些键本应是两个独立按键,但它们不同时在一个键盘上出现,所以平台通常赋予相同扫描码,故难区分。本规范均用
"Backslash" 编码。
现代“102”布局键盘有105个按键:62个在 字母数字区,43个在 数字小键盘、控制区、方向区和 功能区。
2.1.5. 韩国“103”键盘布局
韩国“103”键盘以替代101布局为基础,额外增加两个按键(位于空格两侧)以适应韩文输入模式。这两个键为 "Lang2"(“Hanja”,标签为 한자
hanja)和 "Lang1"(“HangulMode”,标签为 한/영
han/yeong)。
现代“103”布局键盘有106个按键:63个在 字母数字区,43个在 数字小键盘、控制区、方向区和 功能区。
2.1.6. 巴西“104”键盘布局
巴西采用的“104”布局新增4个按键:两个来自“102”布局("Backslash"和 "IntlBackslash"),以及 "IntlRo"(在右Shift旁)和一个新的 数字小键盘键。该数字区新键为 "NumpadComma",代表千位分隔符。在巴西布局上标签为 .,而 "NumpadDecimal"
标签为 ,。
现代“104”布局键盘有107个按键:63个在 字母数字区,44个在 数字小键盘、控制区、方向区和 功能区。部分巴西键盘不含额外 数字小键盘键,仅有106键。
2.1.7. 日本“106”键盘布局
日本“106”键盘布局新增3个按键:"IntlYen"(标签为 ¥_)、"Backslash"(标签为 ]む)和 "IntlRo"(标签为 \ろ)。同时缩小空格键以给3个输入模式键留空间:"NonConvert"(标签为 無変換
muhenkan)、"Convert"(标签为
変換 henkan)以及 "KanaMode"(标签为 カタカナ/ひらがな/ローマ字 katakana/hiragana/romaji)。
现代“106”布局键盘有109个按键:66个在 字母数字区,43个在 数字小键盘、控制区、方向区和 功能区。
2.1.8. 苹果键盘布局
总体而言,苹果键盘布局与PC键盘一致,但下面的图示有一些差异。
图中绿色按键表示位置被移动,蓝色表明新增。
2.1.9. 笔记本键盘布局
笔记本键盘空间有限,常需调整物理按键布局以容纳所有必需按键。书写系统按键一般保持在 字母数字区,但其它区通常并入其它按键或被省略。
在此苹果笔记本键盘中,为腾出右侧半高方向键,移除右控制键并在左侧新增 Fn 键。
PC笔记本键盘变化较大,此样例展示常见部分。控制区按键增加在右侧,方向区按键集中在底部。右侧 Shift 键常缩小以容纳上箭头,右侧 Meta 键通常被移除。
2.1.10. 其它地区键盘布局
规范未专门描述其它地区键盘,因为这些键盘均从现有布局起步,通过更换按键帽和重新映射按键完成适应。
由于这些键盘未引入新的物理按键,因此无需单独记录。
这些键盘通常以标准或替代“101”或“102”布局为基础。例如,常见的阿拉伯文、斯拉夫文、希腊文、印地文、高棉文和泰文键盘均源自“101”或“102”键盘布局。
2.2. 手机键盘
若内容作者需依赖移动键盘机械布局,建议采用 [ISO9995-8]
规范,定义数字键区布局及 Unicode 字符(范围 U+0061 ... U+007A,即
"a" - "z")在数字键 2 到 9 上的二次分配,适合国际场景。
该键盘布局及字母分布适合英语设备,但多数用户的设备并不匹配。内容作者不能依赖任何特定布局,需创建可国际化与本地化的内容。
2.3. 媒体遥控器
许多键盘包含专为媒体功能设计的按键。媒体设备(特别是电视)日益支持网络功能,混合键盘/遥控器设备逐渐普及。为满足这些 Web/媒体混合设备需求,本规范补充了遥控常用按键编码,补足传统键盘按键。
由于体积较小,遥控器上的按键通常是模式切换键,同一按键可根据屏幕内容执行不同操作;许多按键仍作为切换键(toggle),实现两个或更多状态之间的变换。遥控器按钮通常无修饰键状态,每个按钮只分配单一功能(如 Play、Pause、Up、Menu 或 Exit)。
2.4. 虚拟键盘与和弦键盘
虚拟键盘为软件式按键集,常见于触屏设备,排列形式多样,支持多种模式切换(如字母、数字、符号等)。由于缺乏物理限制,虚拟键盘可呈现更丰富字符(包括表情、符号)。但建议虚拟键盘尽量产生标准键盘事件及键值,以便内容开发和兼容。
和弦键盘(即键组输入或和弦输入),通过组合或串按多个键来输出字符或命令,适合单手操作。此类设备可能有模式键以切换不同键值,最终输出的键值应与本规范一致。
对这些及其它可切换模式的键盘,推荐使用 key
值 "Alphanumeric"、"CapsLock"、"NumLock" 以及 "SymbolLock"
作为模式切换键。
3. 键盘事件 code
值表
本节定义了一组适用于 code
的值。
code
属性值即本节所有表格“KeyboardEvent.code”栏内所列出的所有编码。
各表格都有“必需”栏,标明值是否为规范实现所必需。“必需”为“No”的条目为可选项,可用于支持特殊键盘(如多媒体或老式键盘)。
注:部分被列为“必需”的键在所有平台或设备上可能不可用,例如Mac键盘没有 Insert 键,标准PC键盘没有
Help 键。
对所有规范标为“必需”的按键,只要该平台可用,实现 KeyboardEvent
接口的浏览器必须返回正确值。
注:虽然本规范尽力列出全部编码,仍可能因新硬件输入设备不断涌现,需定期补充新值。为了防止各浏览器厂商自定义 code 属性值(往往不兼容),建议通过反馈方式更新标准。
3.1. 字母数字区
字母数字区是键盘的主区块。含两类按键:书写系统按键根据当前布局变化,功能键则大多各布局一致。
3.1.1. 书写系统按键
书写系统按键是指根据当前地区和键盘布局改变意义(即产生不同 key
值)的按键。
本图显示了一个假设性键盘,融合了各种键盘上的所有书写系统按键(以蓝色和绿色表示)。蓝色按键在所有标准键盘上都存在,绿色按键仅在部分键盘上存在。
每个按键标注的名称为分配给该按键的 code。编码名称尽量以美式键盘该位置上的按键命名(即,遵循美式键盘布局),与
[USB-HID]
命名约定一致。美式键盘没有的按键则采用英式或日式布局中的命名。
注意:图中出现了两个 "Backslash"
键:一个是101键布局中D行末尾的大按键,另一个是在102、104和106键布局C行的 "Quote" 和
"Enter" 之间的小按键。一个键盘布局只会出现一个 "Backslash" 键。
KeyboardEvent
code
| 必需 | 说明(非规范性) |
|---|---|---|
"Backquote"
| 是 | `~(美式键盘)。日文键盘为 半角/全角/漢字(hankaku/zenkaku/kanji)
|
"Backslash"
| 是 | 用于美式键盘 \|(101键布局),也用于102、104、106布局C行上 "
和 Enter 之间的按键。英式键盘(102)标签为 #~。
|
"BracketLeft"
| 是 | [{(美式键盘)。
|
"BracketRight"
| 是 | ]}(美式键盘)。
|
"Comma"
| 是 | ,<(美式键盘)。
|
"Digit0"
| 是 | 0)(美式键盘)。
|
"Digit1"
| 是 | 1!(美式键盘)。
|
"Digit2"
| 是 | 2@(美式键盘)。
|
"Digit3"
| 是 | 3#(美式键盘)。
|
"Digit4"
| 是 | 4$(美式键盘)。
|
"Digit5"
| 是 | 5%(美式键盘)。
|
"Digit6"
| 是 | 6^(美式键盘)。
|
"Digit7"
| 是 | 7&(美式键盘)。
|
"Digit8"
| 是 | 8*(美式键盘)。
|
"Digit9"
| 是 | 9((美式键盘)。
|
"Equal"
| 是 | =+(美式键盘)。
|
"IntlBackslash"
| 是 | 位于左 Shift 和 Z 之间。英式键盘标签为 \|。
|
"IntlRo"
| 是 | 位于 / 和右 Shift 之间。日文键盘标签为 \ろ(ro)。
|
"IntlYen"
| 是 | 位于 = 和 Backspace 之间。日文键盘标签为 ¥(yen),俄文键盘标签为 \/。
|
"KeyA"
| 是 | 美式键盘 a;AZERTY(如法语)为 q。
|
"KeyB"
| 是 | b(美式键盘)。
|
"KeyC"
| 是 | c(美式键盘)。
|
"KeyD"
| 是 | d(美式键盘)。
|
"KeyE"
| 是 | e(美式键盘)。
|
"KeyF"
| 是 | f(美式键盘)。
|
"KeyG"
| 是 | g(美式键盘)。
|
"KeyH"
| 是 | h(美式键盘)。
|
"KeyI"
| 是 | i(美式键盘)。
|
"KeyJ"
| 是 | j(美式键盘)。
|
"KeyK"
| 是 | k(美式键盘)。
|
"KeyL"
| 是 | l(美式键盘)。
|
"KeyM"
| 是 | m(美式键盘)。
|
"KeyN"
| 是 | n(美式键盘)。
|
"KeyO"
| 是 | o(美式键盘)。
|
"KeyP"
| 是 | p(美式键盘)。
|
"KeyQ"
| 是 | 美式键盘 q;AZERTY(如法语)为 a。
|
"KeyR"
| 是 | r(美式键盘)。
|
"KeyS"
| 是 | s(美式键盘)。
|
"KeyT"
| 是 | t(美式键盘)。
|
"KeyU"
| 是 | u(美式键盘)。
|
"KeyV"
| 是 | v(美式键盘)。
|
"KeyW"
| 是 | 美式键盘 w;AZERTY(如法语)为 z。
|
"KeyX"
| 是 | x(美式键盘)。
|
"KeyY"
| 是 | 美式键盘 y;QWERTZ(如德语)为 z。
|
"KeyZ"
| 是 | 美式键盘 z;AZERTY(如法语)为 w,QWERTZ(如德语)为 y。
|
"Minus"
| 是 | -_(美式键盘)。
|
"Period"
| 是 | .>(美式键盘)。
|
"Quote"
| 是 | '"(美式键盘)。
|
"Semicolon"
| 是 | ;:(美式键盘)。
|
"Slash"
| 是 | /?(美式键盘)。
|
3.1.2. 功能按键
功能按键(不与后文描述的 功能键混淆)是指字母数字区中,为所有地区通用的编辑功能提供支持的按键(如 Shift、Tab、Enter、Backspace)。除少数情况外,这些按键不随键盘布局而改变意义。
"AltRight"(绿色高亮)是唯一一个在不同地区生成不同 功能按键的 key
值。有些地区生成 "Alt",有些则为 "AltGraph"。
KeyboardEvent
code
| 必需 | 说明(非规范性) |
|---|---|---|
"AltLeft"
| 是 | Alt、Option 或 ⌥
|
"AltRight"
| 是 | Alt、Option 或 ⌥。在许多键盘布局上标签为 AltGr
|
"Backspace"
| 是 | Backspace 或 ⌫。苹果键盘标签为 Delete。
|
"CapsLock"
| 是 | CapsLock 或 ⇪
|
"ContextMenu"
| 是 | 应用程序上下文菜单键,通常位于右 Meta 键和右 Control 键之间。
|
"ControlLeft"
| 是 | Control 或 ⌃
|
"ControlRight"
| 是 | Control 或 ⌃
|
"Enter"
| 是 | Enter 或 ↵。苹果键盘标签为 Return。
|
"MetaLeft"
| 是 | Windows、⌘、Command 或其它操作系统符号键
|
"MetaRight"
| 是 | Windows、⌘、Command 或其它操作系统符号键
|
"ShiftLeft"
| 是 | Shift 或 ⇧
|
"ShiftRight"
| 是 | Shift 或 ⇧
|
"Space"
| 是 | (空格)
|
"Tab"
| 是 | Tab 或 ⇥
|
部分键盘(特别是日文和韩文键盘)空间键缩小以便在底行(A行)容纳更多附加按键。这些按键通常用于切换当前输入模式。注意即使部分日文和韩文按键占据键盘同一物理位置,其 code
值是不同的。
KeyboardEvent
code
| 必需 | 说明(非规范性) |
|---|---|---|
"Convert"
| 是 | 日文:変換(henkan)
|
"KanaMode"
| 是 | 日文:カタカナ/ひらがな/ローマ字(katakana/hiragana/romaji)
|
"Lang1"
| 否 | 韩文:HangulMode 한/영(han/yeong)日文(Mac键盘): かな(kana)
|
"Lang2"
| 否 | 韩文:Hanja 한자(hanja)日文(Mac键盘): 英数(eisu)
|
"Lang3"
| 否 | 日文(文字处理键盘):Katakana |
"Lang4"
| 否 | 日文(文字处理键盘):Hiragana |
"Lang5"
| 否 | 日文(文字处理键盘):Zenkaku/Hankaku |
"NonConvert"
| 是 | 日文:無変換(muhenkan)
|
苹果键盘底行省略了一些按键,剩余按键也按不同顺序排列。
3.2. 控制区
控制区是键盘上的一组(通常为6个)用于导航和编辑操作的按键,例如 Home、PageUp 和 Insert。
KeyboardEvent
code
| 必需 | 说明(非规范性) |
|---|---|---|
"Delete"
| 是 | ⌦。前向删除键。注意苹果键盘主键区标签为 Delete 的键应编码为 "Backspace"。
|
"End"
| 是 | End 或 ↘
|
"Help"
| 是 | Help。标准PC键盘上无此键。
|
"Home"
| 是 | Home 或 ↖
|
"Insert"
| 是 | Insert 或 Ins。苹果键盘上无此键。
|
"PageDown"
| 是 | Page Down、PgDn 或 ⇟
|
"PageUp"
| 是 | Page Up、PgUp 或 ⇞
|
3.3. 方向区
方向区包含4个方向按键。按键通常以“倒T型”排列。
KeyboardEvent
code
| 必需 | 说明(非规范性) |
|---|---|---|
"ArrowDown"
| 是 | ↓
|
"ArrowLeft"
| 是 | ←
|
"ArrowRight"
| 是 | →
|
"ArrowUp"
| 是 | ↑
|
3.4. 数字小键盘区
数字小键盘区是指键盘上如计算器或手机一般以网格排列的一组按键。该区域包含数字及数学运算符按键,通常还有NumLock键,可切换按键的数字功能与模拟控制区和方向区功能。笔记本与紧凑型键盘常因空间有限而省略这些键。
数字键区是数字小键盘区的另一种叫法。
本节所列code值也适用于以网格排列数字按键的手机数字键区及遥控设备。
标准数字小键盘区有时会扩展出括号、运算符、十六进制符号或计算器功能(如Backspace)等附加按键,常见扩展键如下表:
KeyboardEvent
code
| 必需 | 说明(非规范性) |
|---|---|---|
"NumLock"
| 是 | Mac平台应使用"NumLock"编码数字键区Clear键。
|
"Numpad0"
| 是 | 键盘0 Ins;手机或遥控器0
|
"Numpad1"
| 是 | 键盘1 End;手机或遥控器1或1 QZ
|
"Numpad2"
| 是 | 键盘2 ↓;手机或遥控器2 ABC
|
"Numpad3"
| 是 | 键盘3 PgDn;手机或遥控器3 DEF
|
"Numpad4"
| 是 | 键盘4 ←;手机或遥控器4 GHI
|
"Numpad5"
| 是 | 键盘5;手机或遥控器5 JKL
|
"Numpad6"
| 是 | 键盘6 →;手机或遥控器6 MNO
|
"Numpad7"
| 是 | 键盘7 Home;手机或遥控器7 PQRS或7 PRS
|
"Numpad8"
| 是 | 键盘8 ↑;手机或遥控器8 TUV
|
"Numpad9"
| 是 | 键盘9 PgUp;手机或遥控器9 WXYZ或9 WXY
|
"NumpadAdd"
| 是 | +
|
"NumpadBackspace"
| 否 | 见于Microsoft自然键盘。 |
"NumpadClear"
| 否 | C或AC(全部清除)。适用于拥有独立Clear而非NumLock键的数字键区。Mac上该Clear键编码始终为"NumLock"。
|
"NumpadClearEntry"
| 否 | CE(清除当前输入)
|
"NumpadComma"
| 否 | ,(千位分隔符)。如巴西地区分隔符为“.”时,该键可输出.。
|
"NumpadDecimal"
| 是 | . Del。如巴西等地区小数分隔符为“,”时,该键可输出,。
|
"NumpadDivide"
| 是 | /
|
"NumpadEnter"
| 是 | |
"NumpadEqual"
| 否 | =
|
"NumpadHash"
| 否 | 手机及遥控器#键,常位于9下方、0右侧。
|
"NumpadMemoryAdd"
| 否 | M+ 加当前条目到内存。
|
"NumpadMemoryClear"
| 否 | MC 清除内存值。
|
"NumpadMemoryRecall"
| 否 | MR 用内存值替换当前输入。
|
"NumpadMemoryStore"
| 否 | MS 把当前输入存入内存,替换原值。
|
"NumpadMemorySubtract"
| 否 | M- 当前条目减去内存值。
|
"NumpadMultiply"
| 是 | 键盘*,适用于具备+、-、*、/功能的数字键区。手机与遥控器 *用"NumpadStar"
|
"NumpadParenLeft"
| 否 | ( 见于Microsoft自然键盘。
|
"NumpadParenRight"
| 否 | ) 见于Microsoft自然键盘。
|
"NumpadStar"
| 否 | 手机及遥控器*键,常位于7下方、0左侧。数字键区用"NumpadMultiply"
|
"NumpadSubtract"
| 是 | -
|
如数字小键盘区有未列出的按键,则code可用“Numpad”加适当描述创建。
3.5. 功能区
功能区分布于键盘顶部(字母数字区上方),包含功能键和少量特殊按键(如Esc、Print Screen)。
功能键是指标签为F1至F12的按键,应用或操作系统可分配其自定义功能或动作。
部分键盘(尤其笔记本等便携设备)上的功能键(F1至F12)默认分配了其他主要功能(如亮度调节、音量控制),需配合Fn键才可作为功能键。不同厂商分配功能不一,因此code始终设为功能键名称。
KeyboardEvent
code
| 必需 | 说明(非规范性) |
|---|---|---|
"Escape"
| 是 | Esc 或 ⎋
|
"F1"
| 是 | F1
|
"F2"
| 是 | F2
|
"F3"
| 是 | F3
|
"F4"
| 是 | F4
|
"F5"
| 是 | F5
|
"F6"
| 是 | F6
|
"F7"
| 是 | F7
|
"F8"
| 是 | F8
|
"F9"
| 是 | F9
|
"F10"
| 是 | F10
|
"F11"
| 是 | F11
|
"F12"
| 是 | F12
|
"Fn"
| 否 | Fn 通常为硬件键,不会单独生成编码。大多数键盘该键不位于功能区,但为便于归类归此。
|
"FnLock"
| 否 | FLock或FnLock。功能锁键,见于Microsoft自然键盘。
|
"PrintScreen"
| 是 | PrtScr SysRq或Print Screen
|
"ScrollLock"
| 是 | Scroll Lock
|
"Pause"
| 是 | Pause Break
|
如键盘提供超过12个功能键,则code按照上述模式,“F”加上功能键编号使用,如"F13"、"F14"、"F15"等。
苹果键盘功能区可能有Eject或Power键,其code编码见§ 3.6 媒体按键。
3.6. 媒体按键
媒体按键是增加在键盘上,提供媒体相关功能(如播放、暂停或音量控制)的附加按键。这些按键在键盘上没有标准位置,不同厂商的键盘按键排列或按键集合可能完全不同。
媒体按键常在外观上区别于普通输入按键,可能嵌入键盘。
在笔记本键盘上,这些按键常与功能键合并,此时媒体按键是该键的主功能,而功能键需同时按下Fn键才可实现。在这种情况下,code
应设置为对应的功能键("F1" ... "F12")。
合并时按键编码取自功能键,因为媒体按键在不同键盘上无统一名称。
KeyboardEvent
code
| 可选 | 说明(非规范性) |
|---|---|---|
"BrowserBack"
| 否 | 部分笔记本将该键放在↑左侧。
|
"BrowserFavorites"
| 否 | |
"BrowserForward"
| 否 | 部分笔记本将该键放在↑右侧。
|
"BrowserHome"
| 否 | |
"BrowserRefresh"
| 否 | |
"BrowserSearch"
| 否 | |
"BrowserStop"
| 否 | |
"Eject"
| 否 | Eject或⏏。苹果键盘部分放在功能区。
|
"LaunchApp1"
| 否 | 有时标签为我的电脑
|
"LaunchApp2"
| 否 | 有时标签为计算器
|
"LaunchMail"
| 否 | |
"MediaPlayPause"
| 否 | |
"MediaSelect"
| 否 | |
"MediaStop"
| 否 | |
"MediaTrackNext"
| 否 | |
"MediaTrackPrevious"
| 否 | |
"Power"
| 否 | 苹果键盘部分功能区有此键,代替Eject。
|
"Sleep"
| 否 | |
"AudioVolumeDown"
| 否 | |
"AudioVolumeMute"
| 否 | |
"AudioVolumeUp"
| 否 | |
"WakeUp"
| 否 |
3.7. 传统、非标准及特殊按键
这些按键在现代标准键盘上已不常见,仅供参考。
KeyboardEvent
code
| 可选 | 说明(非规范性) |
|---|---|---|
"Hyper"
| 否 | |
"Super"
| 否 | |
"Turbo"
| 否 |
KeyboardEvent
code
| 可选 | 说明(非规范性) |
|---|---|---|
"Abort"
| 否 | |
"Resume"
| 否 | |
"Suspend"
| 否 |
KeyboardEvent
code
| 可选 | 说明(非规范性) |
|---|---|---|
"Again"
| 否 | Sun USB键盘有此键。 |
"Copy"
| 否 | Sun USB键盘有此键。 |
"Cut"
| 否 | Sun USB键盘有此键。 |
"Find"
| 否 | Sun USB键盘有此键。 |
"Open"
| 否 | Sun USB键盘有此键。 |
"Paste"
| 否 | Sun USB键盘有此键。 |
"Props"
| 否 | Sun USB键盘有此键。 |
"Select"
| 否 | Sun USB键盘有此键。 |
"Undo"
| 否 | Sun USB键盘有此键。 |
以下按键可能出现在非标准国际键盘上。
KeyboardEvent
code
| 可选 | 说明(非规范性) |
|---|---|---|
"Hiragana"
| 否 | 部分日语文字处理键盘专用ひらがな键。
|
"Katakana"
| 否 | 部分日语文字处理键盘专用カタカナ键。
|
最后,下列 code
值仅当对应按键无法对应本规范其他地方给出的任何 code
值时才能使用。
此值适用于按键排列方式与物理键盘不同的虚拟键盘。
KeyboardEvent
code
| 必需 | 说明(非规范性) |
|---|---|---|
"Unidentified"
| 是 | 当规范内所有其他值都不适用时,使用此code。 |
只有无法判定按键code时,规范实现才可用"Unidentified"作为按键编码。仅返回此code值不代表实现合规。
4. 可访问性
本规范仅定义了可用于code属性的一组值,不引入任何需关注可访问性的功能。
已完成FAST清单,且无可适用项。
关于FAST清单此项的说明:“如果技术提供了国际化支持”。本规范本身为键盘定义了code值,并提供了如“ShiftLeft”、“ControlRight”、“AltGr”或“KeyQ”等人类可读名称。
这些特殊键值定义为人类可读字符串,便于识别特殊按键。虽然这些值并非直接面向终端用户,也可以直接显示给用户。应用如需展示这些值,需要判断是否翻译这些字符串(例如将“Backspace”显示为法语“Suppr. arrière”)。
5. 国际化
已完成国际化清单,并有如下补充说明:
-
“描述了可能需要本地化的格式或数据”:本规范定义的值并非用于直接向用户展示,当然也不妨碍网站展示这些值。
6. 安全注意事项
已完成安全与隐私自查问卷,备注如下:
-
2.1 本功能可能向网站或相关方暴露哪些信息、为何有必要暴露?: 本规范定义了
code属性在各类按键事件中的合法值。这有助于平台无关地标识实际按下的物理按键(如游戏中的WASD键)。 -
2.17 本功能如何处理非“完全激活”的文档?: 该属性仅在按键事件关联,如果文档未完全激活,则不会发送相关事件。
关于code的安全注意详见[UIEvents]规范。
7. 隐私注意事项
已完成安全与隐私自查问卷,备注如下:
-
2.6 本规范中的功能是否会向来源暴露底层平台信息?:
code属性内存储的是用户按下按键的平台无关“扫描码”值。部分特殊code值可标识特定键盘(如`IntlBackslash`、`IntlRo`和`IntlYen`),但只有用户实际按下这些键才会暴露。 -
3.5 合理的滥用情景: 网站可捕获全部按键事件,建立键盘生成值的映射。如果用户输入足够多且不切换键盘,网站可尝试与已知键盘布局数据库比对以推断用户键盘布局。但这属于针对
key属性的担忧(详见[UIEvents]规范),与本规范定义的值无关。
关于code的隐私注意详见[UIEvents]规范。
8. 致谢
感谢下列WebApps工作组成员为规范制定过程贡献了重要内容:
Gary Kacmarcik(Google),Masayuki Nakano(Mozilla)