在nsDialogs中处理键盘导航

问题描述 投票:0回答:2

我正在使用nsDialogs在我的应用程序的安装程序中创建自定义页面,用户可以在标准和便携式安装之间做出决定。

为此,我通过NSD_CreateRadioButton创建了两个单选按钮控件,以便用户可以决定两种安装模式。

在收到盲人用户的反馈后,我想增加在这两个单选按钮之间通过键盘导航的可能性。到目前为止,按Tab键直接导航到下方导航栏中的下一个按钮,而不是导航栏。向上箭头/向下箭头无效。

如何使用nsDialogs为键盘导航添加这种可能性?

accessibility nsis nsdialogs
2个回答
1
投票

如果你在nsDialogs.nsh中使用${NSD_Create*}宏,那么将为按钮控件设置WS_TABSTOP样式,你可以选择它们。但是,Tab键顺序为:对话框中按钮前的底部按钮。

分配access key以允许用户直接访问控件。您可以通过在特定字符之前向文本标签添加&符号来实现此目的:

${NSD_CreateRadioButton} 0 13u 100% 15u "Click &Me" ; Activate by pressing Alt+M
Pop $0
${NSD_CreateRadioButton} 0 30u 100% 15u "&Or Me"
Pop $0

一旦单选按钮具有焦点,箭头键也可以工作。如果您有多组不相关的单选按钮,则WS_GROUP样式也会在键盘导航中起作用。


0
投票

通过试验@Anders提供的建议,我找到了解决这个问题的方法。

在两次打电话给NSD_CreateRadioButton之间,我再次打电话给NSD_CreateLabel,这显然混淆了两个单选按钮之间的分组。

当我通过两次后续调用NSD_CreateRadioButton创建单选按钮然后添加描述标签时,通过向上箭头和向下箭头向下导航工作。如果在中间再次调用NSD_Create*,则会打破分组。

© www.soinside.com 2019 - 2024. All rights reserved.