用户界面事件键盘事件 key 属性值(UI Events KeyboardEvent key Values)

翻译草案,

More details about this document
本版本:
https://mangwu.github.io/uievents-key-cn/
最新提案:
https://w3c.github.io/uievents-key/
上个版本:
https://www.w3.org/TR/2016/WD-uievents-key-20161024/
历史记录:
https://www.w3.org/standards/history/uievents-key
规范反馈:
GitHub-w3c-uievents-key-issues
翻译反馈:
GitHub-mangwu-uievents-key-cn-issues
实现报告:
https://mangwu.github.io/uievents-key-cn/impl-report.html
编辑者:
(Google)
(Invited Expert)
翻译者:

Abstract

摘要

本规范定义的 键属性值 必须用于 KeyboardEvent 事件的 key 属性,该键属性被定义为用户界面事件规范 [UIEvents] 的一部分。

文档状态

本节介绍了本文件发布时的状态。 当前 W3C 出版物列表和本技术报告的最新修订版可在 W3C 技术报告索引 中找到,网址为 https://www.w3.org/TR/ 。

本文件由 网络应用程序工作组 作为 编辑草稿 (Editors Draft)发布。 本文档旨在成为W3C推荐标准

本文件由 网络应用程序工作组 作为 工作草案 (Working Draft)发布。 欢迎对本规范提出反馈和意见。请使用 GitHub issues 对源文档进行问题讨论; 请使用 GitHub issues 对翻译文档进行问题讨论; 官方的问题存档地址为 public-webapps@w3.org archives

作为编辑草案出版并不意味着 W3C 及其成员的认可。 这是一份草案文档,可以随时被其他文档更新、替换或作废。 本文档不适合被其它正在编写的规范作为引用。

本文档由一个根据 W3C 专利政策 运作的小组编写。 W3C 保留了一份与该小组可交付成果相关的 所有可披露专利的公开列表 ; 该页面还包括公开一份专利的说明。 对认为包含 基本权利要求 ( Essential Claim(s) )的专利有实际了解的个人必须根据 W3C专利政策第6节 公开信息。

本文件受 2021 11月2日 W3C处理文档 规范管理。

Status of this document

1. 简介

本文档指定了一组有效的 键属性值 集合,它们 必须KeyboardEvent 事件的 key 属性中使用,以对键的含义进行编码。 请注意,特定键的 key 值将根据用户当前的区域设置而有所不同。 有关仅基于键在键盘上的物理位置而不因区域设置而变化的值,请参阅 [UIEvents-Code] 中描述的 code

1.1. 格式规约

本规范遵循以下规约:

UIEvents 规范本体的格式规约中,也对键帽,字符,码点和键(key), 码(code)的属性值进行了说明,但是渲染显示不一样,本规范中的渲染会更显眼。

关于 "键值" 的说明: 键盘事件上包含两个与按下的物理按键有关的属性,一个是 key 而一个是 code ,在 [UIEvents-key] 中也经常出现 "键值"的说法,也就是按键的值,现在需要明确一点: "键值"表示的是 key 的属性值 ,在 [UIEvents] 系列规范中都是如此。如果在翻译时要指代 code ,会说明成 code 值,键码值,按键码属性值等。

2. 键盘事件 key 属性值

键属性值 被定义为包含如下内容的一个 DOMString :

一个 键属性值 必须 始终包含属于这两个类别之一的值(即使该值为 "Unidentified" )。

键盘上的多个键可以生成相同的 键属性值 。例如,在一个 EN-US 键盘布局上, 数字 小键盘 上的键(例如,小键盘 1 键) 将生成与其非小键盘一对一(例如,键盘主要部分 [字母数字区域] 中的 1 键)相同的键属性值。 KeyboardEventlocation 属性可用于确定按键是否源自数字 小键盘

2.1. Unicode 值

几乎每个 Unicode 字符都可以用作有效字符 键属性值 , 但是有一小部分 Unicode 字符集合 不得 使用。 我们引入了 键字符串 的概念,以标识适合用作 键属性值 的 Unicode 字符集合。

键字符串 (key string)是一个字符串,包含0个或1个 非控制字符 ("基础"字符),后跟0个或多个 组合字符 。字符串 必须 采用规范化形式 C (Normalized Form C , NFC),如 [UAX15] 中所述。

非控制字符 (non-control character) 是任何有效的 Unicode 字符,但排除那些属于"其他,控制(Other,Control)" ("Cc")一般类别(General Category)的字符。

组合字符 (combining character) 是"标记、间距组合(Mark,Spacing Combining)"("Mc")一般类别 (General Category)中的,或具有非零组合类别(non-zero Combining Class)的任何有效 Unicode 字符。

这里对键字符串的定义基于对 Unicode 字符类别的认识,其中 "Other, Control" 是 Unicode 的一个字符类别,类别码为 [Cc] ,包含 65 个字符( 网络资料 查阅得知); 而 "Mark ,Spacing Combining" 同样是 Unicode 的一个字符类别,类别码为 [Mc] ,包含 452 个字符( 网络资料 查阅得知)。关于组合字符以及非零组合类别可以查阅 Unicode 标准的 第3章
总之,本节对于非控制字符,组合字符的定义是为了确定键字符串在 Unicode 中使用的字符范围以及字符串的组合形式。这样就保证了 键属性值 的字符串的确定性。
以下是一些简单 键字符串 的例子:
除了 TabEnter (参见 § 2.1.1 控制字符 ),所有非控制空白 Unicode 字符都被视为有效的 键字符串
空格的形式是多样的,在 Unicode 中有 "Separator, Space" 这一组字符类别( 网络资料 查阅得知),类别码为 [Zs] ,它包含 17 个字符, 都是关于空格分隔符的,不同的空格符号有不同的宽度和用法,查阅维基百科 Whitespace_character 获取更多信息,如下是空格字符宽度对比的图像:
不同空格字符的宽度对比
不同空格字符的宽度对比域
以下是一些拥有 组合字符键字符串 的例子:
预组字符(precomposed character)是 Unicode 字符集中的实体, 定义为一个或多字符序列。预组字符可以表示一个字母与一个附加符号,例如 "é" (小写拉丁字母e带一个尖音符)。 技术上, "é" (U+00E9)是一个字符, 可以分解为 Unicode 等效字符串 "e" (U+0065)与尖音符 " ́" (U+0301)。 —— 维基百科 预组字符
这里给出了这些组合字符的具体 Unicode 编码,并对这些编码的合理性进行解释 ——不是简单的用单码字符拼接而成,而使用已有的预组字符。其中 "ḍ̇" 的编码是用预组字符 "ḍ" 和 单字符 " ̇" 组合而成,因为不存在这三个符号的预组字符, 同时也说明了组合字符时,单字符排序的问题。
以上非引用说法不一定准确,请参阅 [UAX15] 标准以获取准确信息。

2.1.1. 控制字符

支持 Unicode "Cc" 一般类别(General Category)中的少量字符作为 命名键属性值 这些命名值如下所示: A small number of characters in the Unicode "Cc" General Category are supported as 命名键属性值. These named values are as follows:

这里的 "Cc" 就是 "'Other, Control" Unicode 字符类别的类别码, 查看键字符串的 非标准注释 以获取更多信息。

2.2. 选择 key 属性值

字形修饰键 (glyph modifier key) 是其中的任何一个修饰符键: Shift, CapsLockAltGr

2.2.1. 选择一个适合的键属性值

选择一个适合的键属性值 以保存在 KeyboardEventkey 属性中,请运行以下步骤:
  1. 声明一个 DOMString 类型的 key 变量,初始化为 "Unidentified"

  2. 如果对于这个按键事件,存在一个适合的 命名键属性值 ,那么

    1. 赋值 key 为那个 命名键属性值.

  3. 否则,如果按键事件生成了一个有效的 键字符串 ,那么

    1. 赋值 key 为那个 键字符串 值.

  4. 否则,如果按键事件关联了除了 字形修饰键 之外的任何修饰符按键,那么

    1. 赋值 key 为 指定的 键字符串 ,这个 键字符串 由按键事件生成,但保证在键入时的关联按键是 字形修饰键 之外的所有修饰符键。

  5. key 作为此按键事件的 键属性值 返回。

在标准的美国键盘上,按键键帽标签为 Q键属性值"q" (如果同时按住 Shift 字形修饰键 ,则为 "Q" )。

例子 4 中 键属性值 的结果 "q" ,源于上面步骤的第 3 步。 另外,这里配合 Shift 将键入字符 "q" 修饰成大写的, 是在大写锁定状态是默认关闭的情况下(没有 字形修饰键 CapsLock 的影响)。

在标准的美国键盘上, Control + Q 组合键的 键属性值"q"

在使用右手德沃夏克式键映射的美国键盘上,按键键帽标签为 Q键属性值"5" (如果同时按住 Shift 字形修饰键 ,则为 "%" )。

在与前面的示例相同的德沃夏克式的美国键盘布局上,Control + Q 组合键的 键属性值"5"

关于德沃夏克键盘,请参阅维基百科 Dvorak keyboard layout

在一个 Bolnagri 式键盘布局上,按键键帽标签为 Q键属性值 是一个 包含单个 Unicode 字符 —— U+200C 的字符串 (显示为 ZWNJ 或零宽度断字符(Zero Width Non-Joining Space))

Bolnagri 是印地语的一种键盘布局。零宽度空格符 (zero-width space) U+200B : 用于较长单词的换行分隔; 零宽度断字符 (Zero-width non-joiner) U+200C : 用于阿拉伯文,德文,印度语系等文字中, 阻止会发生连字的字符间的连字效果。查阅维基百科 Zero-width non-joiner 以获取更多信息, 如下是零宽度断字符在键盘上的显示:
零宽度断字符
零宽度断字符

在具有标准法语映射的法式 PC 键盘上, ^ 键充当组合扬抑音符的死键( dead key )。这个键盘事件的 键属性值"Dead"

同样在具有标准法语映射的法式键盘上,é 键(对应于美国键盘上的 2 键)的 键属性值"é" ( U+00E9 )。

在具有标准韩语映射的韩式 PC 键盘上, Ha/En 键的主要功能是在韩语和英语输入之间切换(输入模式切换)。 这个按键有一个作为 命名键属性值 的记录,即 "HangulMode" , 因此应将其用作 键属性值

3. 命名 key 属性值

命名键属性值 (named key attribute value) 是在本规范的本节中的任何一个表的 键属性值 列中给定的任何值。

定义在这里的 命名键属性值 是部分基于 Java 平台(标准版6 API规范 [KeyEventJava] )的 java.awt.event.KeyEvent 接口、和 Microsoft.NET Framework 4.0 Class Library [KeysNet] 中的按键枚举 (System.Windows.Forms.Keys) 的键码集(keycodes)。 本规范中的其他信息来自 Microsoft 的 WM_APPCOMMAND messages [WmAppCommand] , 以及本文档中提到的其他更专业的规范。

KeyboardEvent 接口的一个符合规范的实现 必须 支持在 key 属性中使用的这组值, 但是并非所有值都可以在所有平台或设备上使用。

本规范的未来版本可能将新增的 key 值包含此处, 这些键值是那些自本规范发布以来(在实现中)又变得很常见的键值。

注意:虽然已经尽一切努力使该值列表尽可能完整,但随着新输入设备的引入, 需要定期定义新值。与其允许用户代理定义自己的 命名键属性值 (这些属性值很难在多个用户代理机构之间统一), 应当 提供一种归档方法来更新这个规范, 以便可以检测到这些漏洞(bugs)。

3.0. 翻译说明

按键的 key 属性值集合不像按键码(code)值, 它不与物理按键一一对应,修饰键可能改变这些按键的键值,要对应的设备繁多, 一个按键可能拥有多个键值,所以在翻译时难免理解不清楚, 特别是有关多媒体,媒体控制器,电视按键的键值部分。 而且本规定定义的很多键值来源于其它电子设备技术规范, 这进一步增加了它的翻译难度, 故而在后半部分的许多按键的典型用途列中使用机器翻译, 但是 会在键值名称后加上原始的英文按键名称 ,例如, "模拟地面流传(Analog Terrestrial)","切换到部件输入(component input) #1"等。

3.1. 特殊按键

如果遇到一个无法识别的按键,实现必须 必须 使用 "Unidentified" 作为 键属性值

键属性值 必需的 典型用途 (非规范性的)
"Unidentified" 当一个实现由于硬件、平台或软件限制而无法识别另一个键值时 ,会使用此键值。

当实现无法确定 键属性值 时,符合本规范的实现 必须 只能使用 "Unidentified" 作为键属性值。 但仅使用(Exposing)该值 不得 表明实现符合本规范。

3.2. 修饰键

键属性值 必需的 典型用途 (非规范性的)
"Alt" Alt (Alternative,转换)键。
此键启用转换修饰符功能,用于解译(interpreting) 并行或连续的键盘输入。
此键值也见于苹果的 Option 键。
"AltGraph" 转换字形(Alternate Graphics, AltGrAltGraph )键。此键用于启用 ISO 3 级上档(shift)修饰符功能 (标准 Shift 键是级别 2 的修饰键)。参见 [ISO9995-1]
"CapsLock" Caps Lock (大写锁定)键。触发(Toggle) 大写字符锁定功能以解译(interpreting)后续键盘输入事件。
"Control" ControlCtrl 键, 此键启用控制修饰符功能,用于解译(interpreting) 并行或连续的键盘输入。
"Fn" 功能(Function)开关 Fn 键。
与另一个 功能键 同时激活该键会将 功能键 的键值更改为备用字符(alternate character)或其他功能。
Fn 键通常在键盘硬件中直接处理,并且通常不生成按键事件。
"FnLock" 功能锁定( FnLockF-Lock )键。 激活此键可切换键盘模式,将 功能键 的值更改为备用字符 (alternate character)或其他功能。 FnLock 通常在键盘硬件中直接处理,并且通常不生成键事件。
"Meta" Meta 键,此键启用变换修饰符功能,以解译 (interpreting)并行或连续的键盘输入。此键值用于 Windows 徽标 键和苹果的 Command 键。
"NumLock" NumLock 或数字锁定(Number Lock)键,用于触发 小键盘 的功能模式,以解译(interpreting)连续的键盘输入。
"ScrollLock" Scroll Lock (滚动锁定)键, 用于在滚动和光标移动模式之间切换。
"Shift" Shift 键,此键启用上档(shift)修饰符功能,以解译 (interpreting)并行或连续的键盘输入。
"Symbol" 符号(Symbol)修饰符键(用于某些虚拟键盘)。
"SymbolLock" 符号锁定(Symbol Lock)键。

遗留修饰键:

键属性值 必需的 典型用途 (非规范性的)
"Hyper" Hyper 键。
"Super" Super 键.

3.3. 空格键

键属性值 必需的 典型用途 (非规范性的)
"Enter" Enter 键, 用于激活当前选择或接受当前输入。
此键值也用做 Return (在 Macintosh 数字板 上)键。
此键值也用做 Android KEYCODE_DPAD_CENTER
"Tab" 水平制表(Horizontal Tabulation) Tab 键。

空格或空格键编码为 " "

3.4. 导航按键

键属性值 必需的 典型用途 (非规范性的)
"ArrowDown" 下箭头键,用于向下导航或遍历。(KEYCODE_DPAD_DOWN)
"ArrowLeft" 左箭头键,用于向左导航或遍历。(KEYCODE_DPAD_LEFT)
"ArrowRight" 右箭头键,用于向右导航或遍历。(KEYCODE_DPAD_RIGHT)
"ArrowUp" 上箭头键,用于向上导航或遍历。(KEYCODE_DPAD_UP)
"End" 结束(End)键,配合键盘输入使用,用于跳转到输入内容的末尾 (KEYCODE_MOVE_END)。
"Home" 起始(Home)键,配合键盘输入使用,用于跳转到输入内容的开头 (KEYCODE_MOVE_HOME)。
对于手机 Home 键 (用于进入手机主屏幕),请使用 "GoHome"
"PageDown" 向下翻页(Page Down)键,向下滚动或显示下一页内容。
"PageUp" 向上翻页(Page Up)键, 向上滚动或显示上一页内容。

3.5. 编辑键

键属性值 必需的 典型用途 (非规范性的)
"Backspace" 回退(Backspace)键。在 MacOS 键盘上, 该键值也对应的按键键帽标签为 Delete
"Clear" 删除当前选定的输入。
"Copy" 复制当前选择对象。 (APPCOMMAND_COPY)
"CrSel" 光标选择(Cursor Select (Crsel))键。
"Cut" 剪切当前选择对象。 (APPCOMMAND_CUT)
"Delete" 删除(Delete (Del))键。 当被 Fn 键修饰时,在 MacOS 键盘上, 该键值对应的按键键帽标签为 Delete
在 MacOS 键盘上,其键帽为 BackspaceDelete 的按键的键值分别为 "Delete""Backspace" (和标准美式键盘正好相反),类似地,按键的 code 值也是相反的,分别为 "Delete""Backspace" (见 [UIEvents-Code] )。此处将 Fn 键引入, 说明键值是可以被修饰符修改的(而 code 值不会), 并且在 MacOS 中,将 Delete 原初的 "Backspace" 键值修改成了 "Delete"
"EraseEof" 擦除到字段末尾(Erase to End of Field)键。 该键删除从当前光标位置到当前字段末尾的所有字符。
"ExSel" 展开所选内容(Extend Selection (Exsel))键。
"Insert" 插入(Insert (Ins))键, 在文本模式之间切换以进行插入或覆写 (KEYCODE_INSERT)。
详见 回车键和编辑键 中的插入键。
"Paste" 粘贴(Paste)键。 (APPCOMMAND_PASTE)
"Redo" 重做上一个操作。 (APPCOMMAND_REDO)
"Undo" 撤消上一个操作。 (APPCOMMAND_UNDO)

3.6. UI(用户界面)按键

键属性值 必需的 典型用途 (非规范性的)
"Accept" 接收(Accept,Commit,OK,提交,确定)键。 接收当前选项结果或接收当前输入法下序列的转换结果。
"Again" 再次(Again)键,重做或重复一个动作。
"Attn" 注意(Attention,Attn)键。
"Cancel" 取消(Cancel)键。
"ContextMenu" 显示应用程序的上下文菜单。该键通常位于右侧 Meta 键和右侧 Control 键之间。
"Escape" Esc 键。该键最初用于生成转义字符(Escape character)序列,但现在更常用于退出或"逃离"当前上下文, 例如关闭对话框或退出全屏模式。
"Execute" 执行(Execute)键。
"Find" 打开"查找(Find)"对话框。(APPCOMMAND_FIND)
"Help" 打开帮助对话框或切换帮助信息的显示(display)。 (APPCOMMAND_HELP, KEYCODE_HELP)
"Pause" 暂停当前状态或应用程序(视情况而定)。

不要将此值用于媒体控制器(media controller)上的 Pause 按钮。如果想要用媒体暂停,请改用 "MediaPause"

"Play" 继续或恢复当前状态或应用程序(视情况而定)。

不要将此值用于媒体控制器(media controller)上的 Play 按钮。如果想要用媒体暂停,请改用 "MediaPlay"

"Props" 属性(properties ,Props)键。
"Select" 选择(Select)键。
"ZoomIn" 放大(ZoomIn)键。(KEYCODE_ZOOM_IN)
"ZoomOut" 缩小(ZoomOut)键。(KEYCODE_ZOOM_OUT)

3.7. 设备(Device)按键

键属性值 必需的 典型用途 (非规范性的)
"BrightnessDown" 降低亮度(Brightness Down)键。 通常用于控制显示器的亮度。 (KEYCODE_BRIGHTNESS_DOWN)
"BrightnessUp" 提高亮度(Brightness Up)键。 通常用于控制显示器的亮度。 (KEYCODE_BRIGHTNESS_UP)
"Eject" 将可移动媒介(removable media)切换到弹出 (打开)和插入(关闭)状态。(KEYCODE_MEDIA_EJECT)
"LogOff" 注销(LogOff)键。
"Power" 切换电源状态(电源开关)。(KEYCODE_POWER)

注意: 某些设备可能不会将此键暴露给操作环境。

"PowerOff" PowerOff 键。 有时候键帽标签也是 PowerDown
"PrintScreen" Print ScreenSnapShot (截屏)键, 启动屏幕打印的功能。
"Hibernate" 睡眠(Hibernate)键。此键将计算机的当前状态保存到磁盘, 以便(之后开机时)对其进行恢复。在这之后计算机会停止工作。
"Standby" 待机(Standby)键。 此键可关闭显示器并将计算机置于低功耗模式, 但计算机不会完全停止工作。有时改键值对应的键帽标签为 SuspendSleep 键。(KEYCODE_SLEEP)
"WakeUp" 唤醒(WakeUp)键。 (KEYCODE_WAKEUP)

3.8. 输入法和组合(IME and Composition)键

IME 全称 Input Method Editor ,即输入法编辑器, 是指键盘击键或鼠标移动翻译成字符来输入的操作系统组件,见 [UIEvents]IME 获取更多信息。
键属性值 必需的 典型用途 (非规范性的)
"AllCandidates" 所有候选(All Candidates)键,用于启动多候选模式。
"Alphanumeric" 字母数字(Alphanumeric)键。
"CodeInput" 码元输入(Code Input)键,用于启动"码元输入"模式, 以允许通过字符的码点(code points)输入字符。
"Compose" 组合(Compose)键,在 X Window 系统上也称为 Multi_key。该键的作用方式类似于死键( dead key ), 切换到一种模式,在该模式下, 随后的按键输入组合在一起产生一个不同的字符。
实际上就是生成了预组字符(precomposed character),参见 例子 3 的 非规范注释
"Convert" 変換 (Convert)键,用于转换当前输入法下的序列。
変換 属于日式标准 "106" 键盘布局上的按键,查阅 "Convert" 以获取更多信息。
"Dead" 一个死键组合(dead key combining)键。 它可以是任何键盘布局中的任何组合键。例如,在使用法语映射的 PC/AT 法语键盘上,如果没有激活(activiated)任何修饰键, 该键的键值是 U+0302 组合扬抑音符(COMBINING CIRCUMFLEX ACCENT)。在另一种布局中,这可能是不同的 unicode 组合键。
对于需要区分特定组合字符的应用程序,关联的 compositionupdate 事件的 data 属性提供特定的键值。
"FinalMode" 一些亚洲键盘上使用最终模式(Final Mode Final )键,用于启用 IMEs 的最终模式。
"GroupFirst" 切换到第一个字符组。(ISO/IEC 9995)
"GroupLast" 切换到最后一个字符组。(ISO/IEC 9995)
"GroupNext" 切换到下一个字符组。(ISO/IEC 9995)
"GroupPrevious" 切换到上一个字符组。(ISO/IEC 9995)
"ModeChange" 模式切换(Mode Change)键,以在 IMEs 不同的输入模式之间循环切换。
"NextCandidate" 下一个候选功能(Next Candidate function)键。
"NonConvert" 無変換 (NonConvert ,即"不变换") 键, 用于接收当前输入法下的在 IMEs 中不转换(without conversion) 的序列结果。
無変換 属于日式标准 "106" 键盘布局上的按键,查阅 "NonConvert" 以获取更多信息。
"PreviousCandidate" 上一个候选功能(Previous Candidate function)键。
"Process" 步骤(Process)键。
"SingleCandidate" 单一候选功能(Single Candidate function)键。

韩语键盘专用键:

键属性值 必需的 典型用途 (非规范性的)
"HangulMode" 韩语(Hangul,Korean characters,朝鲜语字符)模式键, 用于在韩语和英语输入模式之间切换。
"HanjaMode" 朝鲜汉字 (Korean characters) 模式键。
"JunjaMode" Junja (Korean characters) 模式键。

日语键盘专用键:

键属性值 必需的 典型用途 (非规范性的)
"Eisu" 英数 (Eisu)键。 此键可以关闭输入法 (转为英文字母输入),但其用途由当前输入法定义。(KEYCODE_EISU)
"Hankaku" 半角字符(Hankaku,Half-Width Characters)键。
"Hiragana" 平假名(Hiragana) (日语假名字符,Japanese Kana characters)键。
"HiraganaKatakana" 平假名/片假名(Hiragana/Katakan)切换键。 (KEYCODE_KATAKANA_HIRAGANA)
"KanaMode" 假名模式(假名锁定,Kana Lock)键。 此键用于进入平假名模式(通常是从罗马字模式切换来)
"KanjiMode" 汉字(Kanji) (中文表意文字的日文名称)模式键。 此键通常用于切换到平假名键盘, 以便将输入转换为汉字。(KEYCODE_KANA)
"Katakana" 片假名(Katakana) (日语假名字符)键。
"Romaji" 罗马字符功能(Roman characters function)键。
"Zenkaku" 全角字符(Zenkaku ,Full-Width Characters)键。
"ZenkakuHankaku" 半/全角切换(Zenkaku/Hankaku (full-width/half-width) toggle)键。 (KEYCODE_ZENKAKU_HANKAKU)

3.9. 通用功能键

每个平台上的通用功能键(general purpose function keys)的准确数量都不相同, 这里只明确定义了前几个。通过在功能键名称末尾增加以10为基数的索引, 可以隐式地定义其他功能键名称。例如, "F24""Soft8" 都是有效的键值。

键属性值 必需的 典型用途 (非规范性的)
"F1" F1 键,一个通用功能键,索引为 1
"F2" F2 键,一个通用功能键,索引为 2
"F3" F3 键,一个通用功能键,索引为 3
"F4" F4 键,一个通用功能键,索引为 4
"F5" F5 键,一个通用功能键,索引为 5
"F6" F6 键,一个通用功能键,索引为 6
"F7" F7 键,一个通用功能键,索引为 7
"F8" F8 键,一个通用功能键,索引为 8
"F9" F9 键,一个通用功能键,索引为 9
"F10" F10 键,一个通用功能键,索引为 10
"F11" F11 键,一个通用功能键,索引为 11
"F12" F12 键,一个通用功能键,索引为 12 KEY_OPT Soft1 通用虚拟功能键,索引为 1。 KEY_OPT Soft2 通用虚拟功能键,索引为 2。 KEY_OPT Soft3 通用虚拟功能键,索引为 3。 KEY_OPT Soft4 通用虚拟功能键,索引为 4。

3.10. 多媒体按键

多媒体按键(multimedia keys)是"多媒体"键盘上的额外按键。

键属性值 必需的 典型用途 (非规范性的)
"ChannelDown" 选择下一个(数字上地或逻辑上地)较低的频道。 (APPCOMMAND_MEDIA_CHANNEL_DOWN, KEYCODE_CHANNEL_DOWN)
"ChannelUp" 选择下一个(数字上地或逻辑上地)较高的频道。 (APPCOMMAND_MEDIA_CHANNEL_UP, KEYCODE_CHANNEL_UP)
"Close" 关闭当前文档或邮件(message,下面翻译都用"邮件") (注意: 这不会关闭应用程序)。(APPCOMMAND_CLOSE)
"MailForward" 打开编辑器以转发当前邮件。(APPCOMMAND_FORWARD_MAIL)
"MailReply" 打开编辑器以回复当前邮件。(APPCOMMAND_REPLY_TO_MAIL)
"MailSend" 发送当前邮件。(APPCOMMAND_SEND_MAIL)
"MediaClose" 关闭当前媒体,例如关闭 CD 或 DVD 托盘。 (KEYCODE_MEDIA_CLOSE)
"MediaFastForward" 以比正常速度更快的速度启动或继续向前播放媒体, 如果已经快进,则增加播放速度。 (APPCOMMAND_MEDIA_FAST_FORWARD, KEYCODE_MEDIA_FAST_FORWARD)
"MediaPause" 暂停当前播放的媒体。 (APPCOMMAND_MEDIA_PAUSE, KEYCODE_MEDIA_PAUSE)

媒体控制器设备的暂停键应使用此值,而不是 "Pause"

"MediaPlay" 如果当前未以正常速度播放, 则以正常速度启动或继续播放媒体。 (APPCOMMAND_MEDIA_PLAY, KEYCODE_MEDIA_PLAY)
"MediaPlayPause" 在媒体的播放和暂停状态之间切换。 (APPCOMMAND_MEDIA_PLAY_PAUSE, KEYCODE_MEDIA_PLAY_PAUSE)
"MediaRecord" 启动或恢复当前所选媒体的录制。 (APPCOMMAND_MEDIA_RECORD, KEYCODE_MEDIA_RECORD)
"MediaRewind" 以比正常速度更快的速度启动或继续回退(reverse) 播放媒体,如果已经回退,则提高回退速度。 (APPCOMMAND_MEDIA_REWIND, KEYCODE_MEDIA_REWIND)
"MediaStop" 停止播放、暂停、快进、回退或录制媒体 (如果尚未停止)。(APPCOMMAND_MEDIA_STOP, KEYCODE_MEDIA_STOP)
"MediaTrackNext" 查找下一个媒体或节目(program track)。 (APPCOMMAND_MEDIA_NEXTTRACK, KEYCODE_MEDIA_NEXT)
"MediaTrackPrevious" 查找上一个媒体或节目(program track)。 (APPCOMMAND_MEDIA_PREVIOUSTRACK, KEYCODE_MEDIA_PREVIOUS)
"New" 打开新文档或邮件。(APPCOMMAND_NEW)
"Open" 打开现有文档或邮件。(APPCOMMAND_OPEN)
"Print" 打印当前文档或邮件。(APPCOMMAND_PRINT)
"Save" 保存当前文档或邮件。(APPCOMMAND_SAVE)
"SpellCheck" 拼写检查当前文档或所选内容。(APPCOMMAND_SPELL_CHECK)

3.11. 多媒体数字键盘键

正常的 0 ... 9 数字键盘键被编码为 "0" ... "9" ,但有些多媒体键盘的按键(buttons)以 1 ... 12 形式编号。在这些情况下, 10 键的键帽通常为 10 /0

注意: 如果设备支持,则键帽标签为 1010 /0 的键 必须 分配一个 "0"key 值。

键属性值 必需的 典型用途 (非规范性的)
"Key11" 出现在媒体数字键盘上的 11 键,数字键盘上海包含有 1 ... 12 按键(buttons)。 KEY_OPT 出现在媒体数字键盘上的 12 键,数字键盘上海包含有 1 ... 12 按键(buttons)。

3.12. 音频键

与音频相关的多媒体键。

键属性值 必需的 典型用途 (非规范性的)
"AudioBalanceLeft" 向左调整音量平衡(audio balance)。 (VK_AUDIO_BALANCE_LEFT)
"AudioBalanceRight" 向右调整音量平衡(audio balance)。 (VK_AUDIO_BALANCE_RIGHT)
"AudioBassBoostDown" 降低音频的低音增强(bass boost) 效果或在低音增强状态之间循环下降(cycle down)。 (APPCOMMAND_BASS_DOWN, VK_BASS_BOOST_DOWN)
"AudioBassBoostToggle" 打开/关闭低音增强(bass boost)。 (APPCOMMAND_BASS_BOOST)
"AudioBassBoostUp" 增加音频的低音增强(bass boost) 效果或在低音增强状态之间循环上升(cycle up)。 (APPCOMMAND_BASS_UP, VK_BASS_BOOST_UP)
"AudioFaderFront" 向前调整音频音量控制器(audio fader)。 (VK_FADER_FRONT)
"AudioFaderRear" 向后调整音频音量控制器(audio fader)。 (VK_FADER_REAR)
"AudioSurroundModeNext" 将环绕立体声模式升级成下一个 (如果存在更高级的模式的话)。(VK_SURROUND_MODE_NEXT)
"AudioTrebleDown" 降低高音(treble)。 (APPCOMMAND_TREBLE_DOWN)
"AudioTrebleUp" 增加高音(treble)。 (APPCOMMAND_TREBLE_UP)
"AudioVolumeDown" 降低音频音量(audio volume)。 (APPCOMMAND_VOLUME_DOWN, KEYCODE_VOLUME_DOWN)
"AudioVolumeUp" 增加音频音量(audio volume)。 (APPCOMMAND_VOLUME_UP, KEYCODE_VOLUME_UP)
"AudioVolumeMute" 在静音状态和先前音量水平(prior volume level) 之间进行切换。(APPCOMMAND_VOLUME_MUTE, KEYCODE_VOLUME_MUTE)
"MicrophoneToggle" 打开/关闭麦克风。 (APPCOMMAND_MIC_ON_OFF_TOGGLE)
"MicrophoneVolumeDown" 降低麦克风音量。 (APPCOMMAND_MICROPHONE_VOLUME_DOWN)
"MicrophoneVolumeUp" 升高麦克风音量。 (APPCOMMAND_MICROPHONE_VOLUME_UP)
"MicrophoneVolumeMute" 将麦克风静音。 (APPCOMMAND_MICROPHONE_VOLUME_MUTE, KEYCODE_MUTE)

3.13. 语音键

与语音识别(speech recognition)相关的多媒体按键。

键属性值 必需的 典型用途 (非规范性的)
"SpeechCorrectionList" 当单词被错误识别时,显示更正列表。 (APPCOMMAND_CORRECTION_LIST)
"SpeechInputToggle" 在听写模式(dictation mode)和命令/控制模式 (command/control mode)之间切换。 (APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE)

3.14. 应用程序键

应用程序按键(Application Keys)是用于启动特定应用程序的特殊按键。 通过将"启动(Launch)"与应用程序的名称连接起来, 可以定义附加的应用程序按键名称。

键属性值 必需的 典型用途 (非规范性的)
"LaunchApplication1" 第一个通用的"LaunchApplication"键。 该按键通常与启动"我的电脑(My Computer)"有关, 并且可能在键帽上有一个电脑符号。(APPCOMMAND_LAUNCH_APP1)
"LaunchApplication2" 第二个通用的"LaunchApplication"键。 该按键通常与启动"计算器(LaunchApplication)"有关, 并且可能在键帽上有一个计算器符号。 (APPCOMMAND_LAUNCH_APP2, KEYCODE_CALCULATOR)
"LaunchCalendar" 日历("Calendar")键。 (KEYCODE_CALENDAR)
"LaunchContacts" 联系人("Contacts")键。 (KEYCODE_CONTACTS)
"LaunchMail" 邮箱("Mail")键。 (APPCOMMAND_LAUNCH_MAIL)
"LaunchMediaPlayer" 媒体播放器("Media Player")键。 (APPCOMMAND_LAUNCH_MEDIA_SELECT)
"LaunchMusicPlayer" 音乐播放器("Music Player")键。
"LaunchPhone" 电话("Phone")键。
"LaunchScreenSaver" 屏幕保护程序("Screen Saver")键。
"LaunchSpreadsheet" 电子表格("Spreadsheet")键。
"LaunchWebBrowser" Web 浏览器("Web Browser")键。
"LaunchWebCam" 网络摄像头("WebCam")键。
"LaunchWordProcessor" 文字处理器("Word Processor")键。

3.15. 浏览器键

键属性值 必需的 典型用途 (非规范性的)
"BrowserBack" 导航到当前历史记录中的上一个内容或页面。 (APPCOMMAND_BROWSER_BACKWARD)
"BrowserFavorites" 打开浏览器收藏夹列表。 (APPCOMMAND_BROWSER_FAVORITES)
"BrowserForward" 导航到当前历史记录中的下一个内容或页面。 (APPCOMMAND_BROWSER_FORWARD)
"BrowserHome" 跳转到用户的首选(自定义)主页。 (APPCOMMAND_BROWSER_HOME)
"BrowserRefresh" 刷新当前页面或内容。(APPCOMMAND_BROWSER_REFRESH)
"BrowserSearch" 调出用户的首选搜索页面。 (APPCOMMAND_BROWSER_SEARCH)
"BrowserStop" 停止加载当前页面或内容。 (APPCOMMAND_BROWSER_STOP)

3.16. 移动电话按键

键属性值 必需的 典型用途 (非规范性的)
"AppSwitch" 应用程序转换(Application switch)键, 它提供了一个可在其中进行切换的最近应用程序的列表。 (KEYCODE_APP_SWITCH)
"Call" 呼叫(Call)键。 (KEYCODE_CALL)
"Camera" 相机(Camera)键。 (KEYCODE_CAMERA)
"CameraFocus" 摄像头焦点(Camera focus)键。 (KEYCODE_FOCUS)
"EndCall" 结束通话(End Call)键。 (KEYCODE_ENDCALL)
"GoBack" 返回(Back)键。 (KEYCODE_BACK)
"GoHome" Home 键,用于进入手机的主屏幕. (KEYCODE_HOME)
"HeadsetHook" 耳机挂钩(Headset Hook)键。 (KEYCODE_HEADSETHOOK)
"LastNumberRedial" 重拨(Last Number Redial)键。
"Notification" 通知(Notification)键。 (KEYCODE_NOTIFICATION)
"MannerMode" 切换(铃声的)模式状态: 静音、振动、响铃... (KEYCODE_MANNER_MODE)
"VoiceDial" 语音拨号(Voice Dial)键。

3.17. 电视(TV)按键

键属性值 必需的 典型用途 (非规范性的)
"TV" 观看电视开关。(KEYCODE_TV)
"TV3DMode" 电视 3D 模式。 (KEYCODE_3D_MODE)
"TVAntennaCable" 在天线和电缆输入之间切换(接收源)。 (KEYCODE_TV_ANTENNA_CABLE)
"TVAudioDescription" 音频描述。(KEYCODE_TV_AUDIO_DESCRIPTION)
"TVAudioDescriptionMixDown" 音频描述降低音量。 (KEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN)
"TVAudioDescriptionMixUp" 音频描述提高音量。 (KEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP)
"TVContentsMenu" 内容菜单。 (KEYCODE_TV_CONTENTS_MENU)
"TVDataService" 内容菜单. (KEYCODE_TV_DATA_SERVICE)
"TVInput" 在外部电视(external TV)上切换输入模式。 (KEYCODE_TV_INPUT)
"TVInputComponent1" 切换到部件输入(component input) #1。 (KEYCODE_TV_INPUT_COMPONENT_1)
"TVInputComponent2" 切换到部件输入(component input) #2。 (KEYCODE_TV_INPUT_COMPONENT_2)
"TVInputComposite1" 切换到复合输入(composite input) #1。 (KEYCODE_TV_INPUT_COMPOSITE_1)
"TVInputComposite2" 切换到复合输入(composite input) #2。 (KEYCODE_TV_INPUT_COMPOSITE_2)
"TVInputHDMI1" 切换到 HDMI 输入 #1。 (KEYCODE_TV_INPUT_HDMI_1)
"TVInputHDMI2" 切换到 HDMI 输入 #2。 (KEYCODE_TV_INPUT_HDMI_2)
"TVInputHDMI3" 切换到 HDMI 输入 #3。 (KEYCODE_TV_INPUT_HDMI_3)
"TVInputHDMI4" 切换到 HDMI 输入 #4。 (KEYCODE_TV_INPUT_HDMI_4)
"TVInputVGA1" 切换到 VGA 输入 #1。 (KEYCODE_TV_INPUT_VGA_1)
"TVMediaContext" 媒体上下文菜单。 (KEYCODE_TV_MEDIA_CONTEXT_MENU)
"TVNetwork" 切换网络。 (KEYCODE_TV_NETWORK)
"TVNumberEntry" 数字输入。 (KEYCODE_TV_NUMBER_ENTRY)
"TVPower" 外部电视上的电源开关。 (KEYCODE_TV_POWER)
"TVRadioService" 音频。 (KEYCODE_TV_RADIO_SERVICE)
"TVSatellite" 卫星。 (KEYCODE_TV_SATELLITE)
"TVSatelliteBS" 广播卫星。 (KEYCODE_TV_SATELLITE_BS)
"TVSatelliteCS" 通信卫星。 (KEYCODE_TV_SATELLITE_CS)
"TVSatelliteToggle" 在可用卫星之间切换。 (KEYCODE_TV_SATELLITE_SERVICE)
"TVTerrestrialAnalog" 模拟地面流传(Analog Terrestrial)。 (KEYCODE_TV_TERRESTRIAL_ANALOG)
"TVTerrestrialDigital" 数字地面流传(Digital Terrestrial)。 (KEYCODE_TV_TERRESTRIAL_DIGITAL)
"TVTimer" 定时器编程。 (KEYCODE_TV_TIMER_PROGRAMMING)

3.18. 媒体控制器按键

媒体控制器(media controllers)的 键属性值 (例如电视、 音频系统和机顶盒的遥控器)部分源自消费者电子技术规范:

键属性值 必需的 典型用途 (非规范性的)
"AVRInput" 在外部 AVR (音频/视频接收器)上切换输入模式。 (KEYCODE_AVR_INPUT)
"AVRPower" 外部 AVR (音频/视频接收器)的电源开关。 (KEYCODE_AVR_POWER)
"ColorF0Red" 通用彩色编码媒体功能键,索引为 0 (红)。 (VK_COLORED_KEY_0, KEYCODE_PROG_RED)
"ColorF1Green" 通用彩色编码媒体功能键,索引为 1 (绿)。 (VK_COLORED_KEY_1, KEYCODE_PROG_GREEN)
"ColorF2Yellow" 通用彩色编码媒体功能键,索引为 2 (黄)。 (VK_COLORED_KEY_2, KEYCODE_PROG_YELLOW)
"ColorF3Blue" 通用彩色编码媒体功能键,索引为 3 (蓝)。 (VK_COLORED_KEY_3, KEYCODE_PROG_BLUE)
"ColorF4Grey" 通用彩色编码媒体功能键,索引为 4 (灰)。 (VK_COLORED_KEY_4)
"ColorF5Brown" 通用彩色编码媒体功能键,索引为 5 (棕)。 (VK_COLORED_KEY_5)
"ClosedCaptionToggle" 触发闭路字幕(Colose Captions)的显示。 (VK_CC, KEYCODE_CAPTIONS)
"Dimmer" 通过在状态之间循环切换来调整设备的亮度。 (VK_DIMMER)
"DisplaySwap" 交换视频源。(VK_DISPLAY_SWAP)
"DVR" 选择数字视频录像机。 (KEYCODE_DVR)
"Exit" 退出当前应用程序。 (VK_EXIT)
"FavoriteClear0" 清除存储为收藏夹第 0 项的节目或内容。 (VK_CLEAR_FAVORITE_0)
"FavoriteClear1" 清除存储为收藏夹第 1 项的节目或内容。 (VK_CLEAR_FAVORITE_1)
"FavoriteClear2" 清除存储为收藏夹第 2 项的节目或内容。 (VK_CLEAR_FAVORITE_2)
"FavoriteClear3" 清除存储为收藏夹第 3 项的节目或内容。 (VK_CLEAR_FAVORITE_3)
"FavoriteRecall0" 选择(调用)存储为收藏夹第 0 项的节目或内容。 (VK_RECALL_FAVORITE_0)
"FavoriteRecall1" 选择(调用)存储为收藏夹第 1 项的节目或内容。 (VK_RECALL_FAVORITE_1)
"FavoriteRecall2" 选择(调用)存储为收藏夹第 2 项的节目或内容。 (VK_RECALL_FAVORITE_2)
"FavoriteRecall3" 选择(调用)存储为收藏夹第 3 项的节目或内容。 (VK_RECALL_FAVORITE_3)
"FavoriteStore0" 将当前节目或内容存储为收藏夹第 0 项。 (VK_STORE_FAVORITE_0)
"FavoriteStore1" 将当前节目或内容存储为收藏夹第 1 项。 (VK_STORE_FAVORITE_1)
"FavoriteStore2" 将当前节目或内容存储为收藏夹第 2 项。 (VK_STORE_FAVORITE_2)
"FavoriteStore3" 将当前节目或内容存储为收藏夹第 3 项。 (VK_STORE_FAVORITE_3)
"Guide" 触发节目或内容指南的显示。 (VK_GUIDE, KEYCODE_GUIDE)
"GuideNextDay" 如果指南处于活动状态并已显示, 则显示第二天的内容。(VK_NEXT_DAY)
"GuidePreviousDay" 如果指南处于活动状态并已显示, 则显示前一天的内容。(VK_PREV_DAY)
"Info" 触发当前所选上下文或媒体信息的显示。 (VK_INFO, KEYCODE_INFO)
"InstantReplay" 触发即时重播(instant replay)。 (VK_INSTANT_REPLAY)
"Link" 启动链接内容(如果可用且适当)。 (VK_LINK)
"ListProgram" 列出当前节目。(VK_LIST)
"LiveContent" 触发当前可看的实时内容或节目的列表显示。 (VK_LIVE)
"Lock" 锁定或解锁当前内容或节目。(VK_LOCK)
"MediaApps" 显示媒体应用程序列表: 音频/ 视频播放器和图像查看器。(VK_APPS)

不要将此键值与 Windows 的 VK_APPS / VK_CONTEXT_MENU 键混淆, 后者编码为 "ContextMenu"

"MediaAudioTrack" 音轨键。(KEYCODE_MEDIA_AUDIO_TRACK)
"MediaLast" 选择以前选择的频道或媒体。 (VK_LAST, KEYCODE_LAST_CHANNEL)
"MediaSkipBackward" 向后跳过(skip)下一个内容或节目。 (KEYCODE_MEDIA_SKIP_BACKWARD)
"MediaSkipForward" 向前跳过(skip)下一个内容或节目。 (VK_SKIP, KEYCODE_MEDIA_SKIP_FORWARD)
"MediaStepBackward" 后退到下一个内容或节目。 (KEYCODE_MEDIA_STEP_BACKWARD)
"MediaStepForward" 前进到下一个内容或节目。 (KEYCODE_MEDIA_STEP_FORWARD)
"MediaTopMenu" 媒体顶部菜单。 (KEYCODE_MEDIA_TOP_MENU)
"NavigateIn" 导航——进入。 (KEYCODE_NAVIGATE_IN)
"NavigateNext" 导航到下一个键。 (KEYCODE_NAVIGATE_NEXT)
"NavigateOut" 导航——出去。 (KEYCODE_NAVIGATE_OUT)
"NavigatePrevious" 导航到上一个键。 (KEYCODE_NAVIGATE_PREVIOUS)
"NextFavoriteChannel" 循环到下一个收藏夹频道(在收藏夹列表中)。 (VK_NEXT_FAVORITE_CHANNEL)
"NextUserProfile" 循环到下一个用户主页(如果有多个用户主页)。 (VK_USER)
"OnDemand" 访问点播内容或节目。 (VK_ON_DEMAND)
"Pairing" 将按键与设备配对。 (KEYCODE_PAIRING)
"PinPDown" 移下画中画(picture-in-picture)窗口。 (VK_PINP_DOWN)
"PinPMove" 移动画中画(picture-in-picture)窗口。 (VK_PINP_MOVE)
"PinPToggle" 触发画中画(picture-in-picture)窗口的显示。 (VK_PINP_TOGGLE)
"PinPUp" 移上画中画(picture-in-picture)窗口。 (VK_PINP_UP)
"PlaySpeedDown" 降低媒体播放速度。(VK_PLAY_SPEED_DOWN)
"PlaySpeedReset" 将播放速度重置为正常速度。 (VK_PLAY_SPEED_RESET)
"PlaySpeedUp" 提高媒体播放速度。(VK_PLAY_SPEED_UP)
"RandomToggle" 切换到随机媒体或内容混洗模式。 (VK_RANDOM_TOGGLE)
"RcLowBattery" 不是物理按键, 但此键码是在遥控器电池电量不足时发送的。(VK_RC_LOW_BATTERY)
"RecordSpeedNext" 在媒体录制速度之间循环切换。 (VK_RECORD_SPEED_NEXT)
"RfBypass" 触发 RF (射频)输入旁路模式(将 RF 输入直接传递到 RF 输出)。 (VK_RF_BYPASS)
"ScanChannelsToggle" 切换到扫描通道模式。 (VK_SCAN_CHANNELS_TOGGLE)
"ScreenModeNext" 将显示屏模式前进到下一个可用模式。 (VK_SCREEN_MODE_NEXT)
"Settings" 触发设备设置屏幕的显示。 (VK_SETTINGS, KEYCODE_SETTINGS)
"SplitScreenToggle" 切换到分屏模式。 (VK_SPLIT_SCREEN_TOGGLE)
"STBInput" 在外部 STB (机顶盒)上切换输入模式。 (KEYCODE_STB_INPUT)
"STBPower" 外部 STB(机顶盒)的电源开关。 (KEYCODE_STB_POWER)
"Subtitle" 触发字幕的显示(如果可用)。(VK_SUBTITLE)
"Teletext" 触发图文电视的显示(如果可用)。(VK_TELETEXT, KEYCODE_TV_TELETEXT)
"VideoModeNext" 将视频模式前进到下一个可用模式。 (VK_VIDEO_MODE_NEXT)
"Wink" 使设备以某种方式识别自身,例如,听觉或视觉。 (VK_WINK)
"ZoomToggle" 在全屏和缩放内容之间切换,或更改缩放级别 (magnification level)。(VK_ZOOM, KEYCODE_TV_ZOOM_MODE)

媒体控制器标准中定义的一些按键已经在本规范的其他部分中定义了合适的按键。 下表总结了这些键被支持的情况下 必须 使用的键值:

键属性值 必需的 典型用途 (非规范性的)
"AudioVolumeDown" 降低音频音量。(VK_VOLUME_DOWN)
"AudioVolumeUp" 增加音频音量。(VK_VOLUME_UP)
"AudioVolumeMute" 在静音状态和先前音量水平(prior volume level) 之间进行切换。 (VK_VOLUME_MUTE)
"BrowserBack" 导航到当前历史记录中的上一个内容或页面。 (VK_BACK)
"BrowserForward" 导航到当前历史记录中的下一个内容或页面。 (VK_FORWARD)
"ChannelDown" 选择下一个(数字上地或逻辑上地)较低的频道。 (VK_CHANNEL_DOWN)
"ChannelUp" 选择下一个(数字上地或逻辑上地)较高的频道。 (VK_CHANNEL_UP)
"ContextMenu" 触发屏幕菜单的显示。 (VK_MENU)
"Eject" 将可移动媒介(removable media)切换到弹出 (打开)和插入(关闭)状态。(VK_EJECT_TOGGLE)
"End" 结束(End)键,配合键盘输入使用, 用于跳转到输入内容的末尾。 (VK_GO_TO_END)
"Enter" Enter 键,用于激活当前选择或接受当前输入。 (VK_SELECT)
"Home" Home 键,配合键盘输入使用, 用于跳转到输入内容的开头。 (VK_GO_TO_START)
"MediaFastForward" 以比正常速度更快的速度启动或 继续向前播放媒体,如果已经快进,则增加播放速度。 (VK_FAST_FWD)
"MediaPlay" 如果当前未以正常速度播放, 则以正常速度启动或继续播放媒体。 (VK_PLAY)
"MediaPlayPause" 在媒体的播放和暂停状态之间切换。 (VK_PLAY_PAUSE)
"MediaRecord" 启动或恢复当前所选媒体的录制。(VK_RECORD)
"MediaRewind" 以比正常速度更快的速度启动或继续回退 (reverse) 播放媒体,如果已经回退,则提高回退速度。 (VK_REWIND)
"MediaStop" 停止播放、暂停、快进、回退或录制媒体 (如果尚未停止)。 (VK_STOP)
"MediaPause" 暂停当前播放的媒体。 (VK_PAUSE)
"MediaTrackNext" 查找下一个媒体或节目(program track)。 (VK_TRACK_NEXT)
"MediaTrackPrevious" 查找上一个媒体或节目(program track)。 (VK_TRACK_PREV)
"Power" 切换电源状态(电源开关)。 (VK_POWER)
"Unidentified" 当一个实现由于硬件、 平台或软件限制而无法识别另一个键值时 ,会使用此键值。 (VK_UNDEFINED)

4. 无障碍

这个规范简单地定义了一组可在 key 属性中使用的有效值。 因此,它没有引入任何具有无障碍问题的特性(feature)。

FAST 清单 已完成, 本规范不适用其中任何内容。

FAST: Framework for Accessibility in the Specification of Technologies, 技术文档的无障碍框架。FAST的目标是描述网络技术应提供的特性, 以确保能够创建残疾用户可以访问的内容。完整的框架引入了对用户需求的分析, 描述了技术、内容创作和用户代理如何协同工作以满足这些需求, 并为技术开发人员提供了全面的指导。本清单(checklist)从高层次上提取这些信息, 以帮助技术进行自我审查。 规范开发人员可以利用本清单(checklist) 来帮助自己: 确保技术能够解决无障碍倡导者在横向审查期间可能提出的特性。 —— FAST Checklist。

FAST 清单的一个条目是: "如果技术提供国际化支持"。此条目与本规范相关: 本规范本质上为键盘定义了 key 值,这个 key 值支持国际硬件,例如用于不同语言或布局的键盘。同时,本规范也定义了许多人类可读 (human-readable)的键名称(如"Shift"、"Control"、"Home"或"ArrowLeft")。

一些特殊按键的键值被定义为人类可读(human-readable)的字符串, 以便检测特殊键的代码更容易理解。虽然这些值并不打算直接暴露给用户 (没有在键帽上显示),但想要公开这些值无可厚非。 选择公开这些值的应用程序需要确定: 为了显示而翻译这些字符串是否合适 (例如: 为法国用户将"Backspace"显示为"Suppr.arrière")。

5. 国际化(i18n)

简版的 I18n 清单 已完成,本规范不适用其中任何内容。

6. 安全注意事项

安全和隐私的自我审查问卷 已完成,以下是对其中一些有关本规范条目的备注:

[UIEvents] 规范中解决了与 key 属性相关的安全问题。

7. 隐私注意事项

安全和隐私的自我审查问卷 已完成,以下是对其中一些有关本规范条目的备注:

[UIEvents] 规范中解决了与 key 属性相关的隐私问题。

8. 致谢

多年来,许多人为 DOM KeyboardEvent 规范做出了贡献, 其中包括 DOM 工作组和 WebApps 工作组的许多参与者。当前的 key 值集是在此期间迭代许多提议和变体的结果。我们特别感谢以下参与者的贡献:

Gary Kacmarcik (Google), Masayuki Nakano (Mozilla) 和 Travis Leithead (Microsoft)。

Conformance

Document conventions

Conformance requirements are expressed with a combination of descriptive assertions and RFC 2119 terminology. The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in the normative parts of this document are to be interpreted as described in RFC 2119. However, for readability, these words do not appear in all uppercase letters in this specification.

All of the text of this specification is normative except sections explicitly marked as non-normative, examples, and notes. [RFC2119]

Examples in this specification are introduced with the words “for example” or are set apart from the normative text with class="example", like this:

This is an example of an informative example.

Informative notes begin with the word “Note” and are set apart from the normative text with class="note", like this:

Note, this is an informative note.

Conformant Algorithms

Requirements phrased in the imperative as part of algorithms (such as "strip any leading space characters" or "return false and abort these steps") are to be interpreted with the meaning of the key word ("must", "should", "may", etc) used in introducing the algorithm.

Conformance requirements phrased as algorithms or specific steps can be implemented in any manner, so long as the end result is equivalent. In particular, the algorithms defined in this specification are intended to be easy to understand and are not intended to be performant. Implementers are encouraged to optimize.

Index

Terms defined by this specification

Terms defined by reference

References

Normative References

[INFRA]
Anne van Kesteren; Domenic Denicola. Infra Standard. Living Standard. URL: https://infra.spec.whatwg.org/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119
[UAX15]
Ken Whistler. Unicode Normalization Forms. 17 August 2022. Unicode Standard Annex #15. URL: https://www.unicode.org/reports/tr15/tr15-53.html
[UIEvents]
Gary Kacmarcik; Travis Leithead. UI Events. URL: https://w3c.github.io/uievents/
[UIEvents-Code]
Gary Kacmarcik; Travis Leithead. UI Events KeyboardEvent code Values. URL: https://w3c.github.io/uievents-code/
[Unicode]
The Unicode Standard. URL: https://www.unicode.org/versions/latest/

Informative References

[AndroidKeycode]
Android KeyEvent. URL: http://developer.android.com/reference/android/view/KeyEvent.html
[DASE]
ATSC A/100-2, DTV Application Software Environment Level 1 (DASE-1) Part 2: Declarative Applications and Environment. 09 March 2003. URL: http://atsc.org/standard/a100-dtv-application-software-environment-level-1-dase-1/
[ISO9995-1]
ISO/IEC 9995-1:2009 Information technology -- Keyboard layouts for text and office systems -- Part 1: General principles governing keyboard layouts. URL: http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=51645
[KeyEventJava]
Java™ Platform, Standard Edition 6 API Specification, Class java.awt.events.KeyEvent. URL: http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.html
[KeysNet]
.NET Framework 4.5 Class Library, Keys Enumeration. URL: http://msdn.microsoft.com/en-us/library/system.windows.forms.keys.aspx
[OCAP]
Open Cable Application Platform 1.1.3. 03 June 2010. URL: https://apps.cablelabs.com/specification/opencable-application-platform-ocap/
[UIEvents-key]
Gary Kacmarcik; Travis Leithead. UI Events KeyboardEvent key Values. URL: https://w3c.github.io/uievents-key/
[WEB4CE]
ANSI/CTA-2014-B, Web-based Protocol and Framework for Remote User Interface on UPnP Networks and the Internet (Web4CE). January 2011. URL: https://standards.cta.tech/apps/group_public/project/details.php?project_id=220
[WmAppCommand]
MSDN WM_APPCOMMAND message. URL: https://msdn.microsoft.com/en-us/library/windows/desktop/ms646275(v=vs.85).aspx