2010-10-08 58 views
1

我正在嘗試爲我的Qt應用程序實現可訪問性。我使用NVDA(http://www.nvda-project.org/)和Freedom Scientific的JAWS(http://www.freedomscientific.com/products/fs/jaws-product-page.asp)作爲我想支持的屏幕閱讀器。Qt可訪問小工具

我正在分配控件的accessibleName和accessibleDescription屬性(http://doc.trolltech.com/4.7/qwidget.html#accessibleDescription-prop)以便屏幕閱讀器讀取此信息。

實施例:

saveButton->setAccessibleName("save"); 
saveButton->setAccessibleDescription("Save the options you have entered above"); 

在這兩個屏幕閱讀器一切都使用鼠標時工作正常。但是,當焦點在小部件中發生變化時,所有閱讀者閱讀的內容都是「窗格」。爲什麼Qt不提供我需要的可訪問性信息?

回答

1

你必須導入一個插件才能讓Qt擁有可訪問的小部件。這使屏幕閱讀器可以讀取對象的名稱和層次結構。

爲了得到這一點,你需要qtaccessible小部件添加到您的qmake項目文件:

QTPLUGIN += qtaccessiblewidgets 

而在main.cpp中添加Q_IMPORT_PLUGIN

Q_IMPORT_PLUGIN(qtaccessiblewidgets) 

然後屏幕閱讀器將能夠準確閱讀:

「按鈕。保存。保存上面輸入的選項。按空格激活按鈕。」

當您選項卡(或以其他方式專注於)按鈕