Qt无障碍小部件

3
我正在尝试为我的Qt应用程序实现无障碍功能。我想要支持NVDA (http://www.nvda-project.org/)和Freedom Scientific的JAWS (http://www.freedomscientific.com/products/fs/jaws-product-page.asp)这两个屏幕阅读器。
为了让屏幕阅读器读取这些信息,我正在分配小部件的accessibleName和accessibleDescription属性 (http://doc.trolltech.com/4.7/qwidget.html#accessibleDescription-prop)。
例如:
saveButton->setAccessibleName("save");
saveButton->setAccessibleDescription("Save the options you have entered above");

在使用鼠标时,两种屏幕阅读器都可以正常工作。但是,当焦点在小部件中发生变化时,所有阅读器都只会读取“pane”。为什么Qt没有提供我所需的可访问性信息呢?
2个回答

3

要使Qt具有可访问小部件,您需要导入一个插件。这可以让屏幕阅读器读取对象的名称和层次结构。

为此,您需要将“qtaccessible”小部件添加到您的qmake项目文件中:

QTPLUGIN += qtaccessiblewidgets

在 main.cpp 文件中添加一个 Q_IMPORT_PLUGIN 指令。

Q_IMPORT_PLUGIN(qtaccessiblewidgets)

接下来,屏幕阅读器将能够准确朗读:

"按钮。保存。保存你已经输入的选项。按空格键激活按钮。"

当你通过Tab键或其他方式聚焦于按钮时。


-1
在一个教程视频中,我看到Qt表面组件具有“AccessibleName”和“AccessibleDescription”属性。这表明可以开发可屏幕阅读的Qt应用程序。在编程语言Java和C#中,这些属性被称为相同的名称。我正在Windows 10上开发Python。
问题: 是否有关于如何使Python Qt应用程序适合屏幕阅读器的指南?

OP已经知道使用Qt通常是可能的,并且了解这两个属性。该问题在文本和源代码中都提到了它们。 - BlackJack
如果你有自己的问题,请将它们发布到网站上作为问题。谢谢。 - BlackJack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接