Qt 5 Accessibility APIs

作者:Bai Jing | Jul 13, 2012 11:35:30 AM

原文地址:Frederik Gladhorn - Qt 5 Accessibility APIs

Qt 5是一个Qt 4的渐进而平缓的升级版。 除了一些我们认为绝对必要的情况以外基本没有打破源码兼容性。其中一个我们决定作出重大改变并影响人们移植到Qt 5的是Accessibility。 (而作出改变的)原因是我们被老API的状态束缚了手脚,无法改进Qt的accessibility在所有平台上的实现使之适应现代需要。

目前我们把所有的accessibility的API标记为内部使用。 意味着它们是“隐藏”的,不会出现在文档中。 这是因为经过我们的大幅修改,不确信新的API测试已经充分。 我们认为Qt 5.1发布将是正确的时机, 但所有的支持都已就位, 任何想要尝试的人都可以直接进行, 不需要特殊的设置。 也就是说即使目前尚无文档,你仍然可以预期这部分已经比Qt 4更好地工作。

在新的Linux accessibility bridge上所做的工作, 我们在用户提供的反馈帮助下发现了很多不足,现在我们正在尽可能解决。原始API以Windows 95支持的MSSA为灵感。不用想也猜得到,既然世界不断前进,很多帮助开发者更好地支持用户并让用户更好地使用他们的电脑的技术出现了。但我们并没有做任何革命性的改变,很多细节被润色, API更清晰不易出错。 一个重大的改进是通知发送给平台的方式, 终于可以为工具提供足够的信息。
Qt 5 在经历了小退一步之后, 我们改进了Mac, Window和Linux平台的集成。 这将是第一个提供所有桌面平台、好的accessibility特性的Qt版本。 除了传统的QWidget世界,我们还扩大了向QML的努力。 仍然有一些未解决的问题, 但当前系统实际上已经过广泛测试, 例如在广受使用Ubuntu的屏幕阅读器的用户喜爱的软件Unity-2d中显示,QML和accessibility可以齐头并进。

在Mac平台上我们终于提供了基于Cocoa的后端,代替古老的Carbon后端。 这个桥(连接Qt的Accessibility API和Mac的API)仍然新鲜稚嫩,需要你们帮助测试和润色。现在Windows的accessibility桥在MSAA之后支持 IAccessible 2, 应该能为屏幕阅读器提供众多元素--诸如表格、列表--更好的支持。在Linux平台上新的qt-at-spi桥在Qt 4经过测试, 能和Gnome和KDE工作。 Qt 5的这部分经过很大的改进, 将作为插件集成为Qt的一部分, 随Qt 5.0或Qt 5.1发布。

应用程序开发者应能获得在所有平台上的更多的accessibility特性,更好的可直接使用的屏幕阅读器。 但可以预料的是这个功能并不完美, 所以请给我们反馈意见。 如果你曾实现支持更多的accessibility功能,而且你的窗体派生了QAccessibleInterface,我们将特别希望收到你的反馈。 文档都在代码中, 请尽情阅读.cpp文件中的解释类的改进的注释。