在 Flex 4.5 中,数据组是否可以为其所有单个项目启用辅助功能



我正在构建一个 Flex 应用程序,该应用程序必须可访问并符合第 508 节准则。一些预先构建的部分大量使用DataGroup,DataGrid和ItemRenderers。我甚至无法获得使用 ItemRenderers 创建的任何内容来接收键盘焦点,因此似乎不可能显示它们的可访问性属性。

有没有技巧可以让焦点可用于项目渲染器?或者我可以使用一些替代方案?

解决方案:

我偶然发现了这个,我不完全确定为什么会这样,但解决方案很简单。只需将implements="mx.managers.IFocusManagerComponent"添加到自定义ItemRenderer的根标签中,然后列表中的每个项目将能够获得焦点并公开其accessibilityProperties

奇怪的是,如果自定义渲染器无法实现所需的IFocusManagerComponent方法,Flex 编译器不会抱怨。我不知道为什么,但我推测这些方法是在代码链上的某个地方实现的,除非组件显式实现IFocusManagerComponent,否则不会使用。

我现在遇到的唯一问题是只有可见项目显示其accessibilityProperties,这是有道理的,因为ItemRenderers仅为屏幕上的可见项目创建,但是如果最后一个可见ItemRenderer失去焦点,我应该找到某种方法自动滚动列表。

最新更新