在Flex 4.5中,DataGroup是否可以为其所有单个项目提供accessibilityEnabled?

时间:2012-05-03 15:26:09

标签: flex accessibility itemrenderer section508

我正在构建一个必须易于访问并符合508条款准则的Flex应用程序。一些预先构建的部分正在大量使用DataGroup,DataGrid和ItemRenderers。我无法获得使用ItemRenderers创建的任何内容甚至可以获得键盘焦点,因此似乎无法显示其accessibilityProperties。

是否有将焦点提供给ItemRenderer的技巧?或者我可以使用一些替代方案?

1 个答案:

答案 0 :(得分:0)

解决方案:

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

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

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