我正在开始研究可访问性,我对遇到的不同技术感到有些困惑。
IAccessible 和 IAccessible2 有什么区别?我原本以为 IAccessible2 可能是 IAccessible 的更新版本,但经过进一步研究,它似乎实际上是由微软的竞争对手制造的。维基百科说“它被定位为微软新 UI 自动化 API 的替代品。” MSAA 如何适应这一点?
谁能澄清 IAccessible、IAccessible2、UI 自动化 API 和 MSAA 之间的区别?为什么一个可能比另一个更可取?
我正在开始研究可访问性,我对遇到的不同技术感到有些困惑。
IAccessible 和 IAccessible2 有什么区别?我原本以为 IAccessible2 可能是 IAccessible 的更新版本,但经过进一步研究,它似乎实际上是由微软的竞争对手制造的。维基百科说“它被定位为微软新 UI 自动化 API 的替代品。” MSAA 如何适应这一点?
谁能澄清 IAccessible、IAccessible2、UI 自动化 API 和 MSAA 之间的区别?为什么一个可能比另一个更可取?
Microsoft Active Accessibility (MSAA) 是 Microsoft 最初的辅助功能 API;MSAA 版本 1是 Windows 95 的附加版本。MSAA 在其支持的角色、名称、值和状态集方面受到限制;这意味着可以将可访问性元数据传达给辅助技术(例如屏幕阅读器)的图形组件集是有限的。
IAccessible是 MSAA 的一部分:
IAccessible接口是一组方法,这些方法公开了范围广泛的用户界面 (UI) 元素的最常见属性和行为。UI 元素是一个控件,例如菜单或按钮,它是用户界面的一部分。可访问对象是具有有意义的IAccessible接口的 UI 元素。
MSAA 的局限性拒绝了IAccessible2的开发(最初在 IBM),它旨在填补 MSAA 的空白,例如“支持文本控件、表格、超链接和可访问对象之间的关系”。它与Linux(尤其是 Gnome)上的Accessibility Toolkit (ATK)相协调。IAccessible2 是对 MSAA 的补充,而不是替代品。
Microsoft UI 自动化是 Microsoft 自己的 MSAA 继任者。请参阅UI 自动化和活动可访问性:
Microsoft Active Accessibility 是在 Windows 95 中引入的旧 API,旨在使 Windows 应用程序可访问。Microsoft UI 自动化是适用于 Windows 的新辅助功能模型,旨在满足辅助技术产品和自动化测试工具的需求。UI 自动化提供了对 Microsoft Active Accessibility 的许多改进。
它为用户界面组件提供了一组更丰富的角色、状态和属性,可以与实现 API 的辅助技术进行通信。
这些较新的可访问性 API 至关重要的一个领域是对富 Internet 应用程序的可访问性支持。W3C 的 WAI-ARIA 规范的开发人员审查了存在于各种平台上的可访问性 API,并将可用的角色、状态和属性映射到他们在 WAI-ARIA 规范中提出的对应物。这涉及创建可在 WAI-ARIA 1.0 用户实施指南中找到的映射表。另请参阅Microsoft 文档中的 W3C 可访问富 Internet 应用程序规范的 UI 自动化。在 Microsoft Edge 中,Microsoft 从 MSAA 过渡到 UI 自动化。