【尝鲜,杜绝功能键缺失,自由开关触摸板,添加Application键】NVDA开发板新特性之“自定义模拟按键”

我们都知道,键盘对于使用屏幕阅读器的视障者来说是必不可少的,但如今很多设计师为了各种目的考虑,会一再阉割本就紧凑的笔记本键盘上的功能键,这无形之中就给我们视障用户带来了许多困扰。

基于此,我们或是直接改用外接键盘,或是使用Keymap之类的程序映射特定的键,前者是彻底妥协的结果,而后者却又会改动系统配置,但我们既然使用屏幕阅读器,倘若能在屏幕阅读器层面上对键盘实现一些模拟映射,以便我们更方便的使用屏幕阅读器的某些功能,且不会改动系统配置,这岂不妙哉!

NVDA在最新的Alpha版便增加了这样的一个小特性——可以让用户自定义模拟按键,只要我们运行该版本,打开“输入首饰”对话框,焦点停留在“模拟系统按键”类别上,按一下Tab键找到“添加”按钮并点击,随后可按下被模拟的按键或按键组合,就会在“模拟系统按键”类别下增加相应的项目,随后将焦点停留至该项目,并再次点击“添加”按钮并按下触发该按键动作所需的按键,选择好所属的键盘布局并确认,即可设置成功。

该特性当前只在开发板上适用,正式版需等到2020.3才可拥有此功能,但我们依然有办法让其他的旧版本享受到该特性,思路清晰的朋友也一定发现了:“假如我的笔记本压根儿就没有提供‘Application’键,和谈按下该键,又如何模拟呢?”这的确是个“先有鸡还是先有蛋”的问题,下面我们来看看,通用的方法:不依赖开发板新特性,且不依赖实体键盘。

当我们使用NVDA的自定义热键功能时,其实我们定义的热键信息被保存到了一个配置文件中,所以我们只要手动更改此配置文件,便可达到上面的目的。

以 NVDA2020.2 安装版为例,我们打开其用户配置目录,方法是Win + R 打开运行对话框,输入 %appdata%\nvda 并回车。

随后在打开的目录中找到“gestures.ini”这个配置文件并打开,通常第一行是“[globalCommands.GlobalCommands]”,这就是全局首饰的配置节,在这一行后,回车一下,输入以下内容并保存(实现 NVDA+' 模拟按下 Application键):
kb:applications = kb:nvda+'
保存后重新启动NVDA便可使用 NVDA+' 来模拟按下Application键了,书写格式非常简单易懂。

应用举例

在本实例中需要实现模拟音量控制键(增大音量、减小音量、静音),以及开关触摸板功能的组合键。

具体模拟键分配

  • Ctrl + F1 静音;
  • Ctrl + F2 减小音量;
  • Ctrl + F3 增大音量;
  • Ctrl + F4 开关触摸板;

实现步骤

打开NVDA用户配置目录(运行输入%appdata%\nvda),在打开的 NVDA 配置目录中找到 “gestures.ini”并在其中的[globalCommands.GlobalCommands]下添加以下条目:

  • kb:volumemute = kb:control+f1
  • kb:volumedown = kb:control+f2
  • kb:volumeup = kb:control+f3
  • kb:windows+control+f24 = kb:control+f4

下面附上一些键盘按键在Python脚本中的写法,多数字母键、数字键和符号键写法就是他们本身,本表不断更新中。

按键名称书写方法
静音volumemute
增加音量volumeup
减小音量volumedown
窗口键windows
CTRL键control
Shift键shift
Alt键alt
ESC键escape
F1f1
F2f2
F3f3
F4f4
F5f5
F6f6
F7f7
F8f8
F9f9
F10f10
F11f11
F12f12
暂停键pause
滚动锁定键scrolllock
回车键enter
Apps键applications
空格键space
退格键backspace
NVDA键nvda
删除键delete
行首键home
行尾键end
上翻页键PageUp
下翻页键PageDown
上箭头uparrow
下箭头downarrow
左箭头leftarrow
右箭头rightarrow
小键盘1numpad1
小键盘2numpad2
小键盘3numpad3
小键盘4numpad4
小键盘5numpad5
小键盘6numpad6
小键盘7numpad7
小键盘8numpad8
小键盘9numpad9
小键盘除号numpaddivide
小键盘乘号multiply
小键盘减号numpadminus
小键盘加号numpadplus
小键盘删除numpaddelete
小键盘回车numpadenter

标签: none

添加新评论