【问题标题】:Handling keyboard navigation in nsDialogs在 nsDialogs 中处理键盘导航
【发布时间】:2018-03-02 09:01:02
【问题描述】:

我正在使用 nsDialogs 在我的应用安装程序中创建一个自定义页面,用户可以在其中选择标准安装和便携式安装。

为此,我通过NSD_CreateRadioButton 创建了两个单选按钮控件,以便用户可以在两种安装模式之间做出选择。

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

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

【问题讨论】:

    标签: accessibility nsis nsdialogs


    【解决方案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 样式也会在键盘导航中发挥作用。

    【讨论】:

    • 非常感谢您的帮助。我已将其标记为解决方案,因为它基本上类似于有关此事的所有信息。我在下面的帖子描述了我的 OP 中缺少的细节。
    【解决方案2】:

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

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

    当我通过两个后续调用 NSD_CreateRadioButton 创建单选按钮,然后添加描述标签时,通过 Arrow upArrow down 进行导航。如果在其间再次调用NSD_Create*,则会中断分组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-21
      • 2015-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多