在nsDialogs

时间:2018-03-02 09:01:03

标签: accessibility nsis nsdialogs

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

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

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

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

2 个答案:

答案 0 :(得分:1)

如果在nsDialogs.nsh中使用${NSD_Create*}宏,则将为按钮控件设置WS_TABSTOP样式,并且可以 Tab 。但是,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样式也会在键盘导航中起作用。

答案 1 :(得分:0)

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

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

当我通过对NSD_CreateRadioButton的两次后续调用创建单选按钮然后添加描述标签时,通过向上箭头向下箭头进行导航。如果之间有另一个NSD_Create*的来电,则会中断分组。