我正在构建一个必须易于访问并符合508条款准则的Flex应用程序。一些预先构建的部分正在大量使用DataGroup,DataGrid和ItemRenderers。我无法获得使用ItemRenderers创建的任何内容甚至可以获得键盘焦点,因此似乎无法显示其accessibilityProperties。
是否有将焦点提供给ItemRenderer的技巧?或者我可以使用一些替代方案?
答案 0 :(得分:0)
解决方案:
我偶然发现了这一点,我不完全确定为什么会这样,但解决方案很简单。只需将implements="mx.managers.IFocusManagerComponent"
添加到自定义ItemRenderer
的根标记中,然后列表中的每个项目都能够获得焦点并公开其accessibilityProperties
。
奇怪的是,如果自定义渲染器无法实现所需的IFocusManagerComponent
方法,Flex编译器不会抱怨。我不知道为什么,但我推测这些方法是在代码链的某个地方实现的,除非组件显式实现IFocusManagerComponent
,否则不会使用它们。
我现在唯一的问题是只有可见的项目会显示他们的accessibilityProperties
,这是有道理的,因为ItemRenderers
仅为屏幕上的可见项目创建,但我应该找到一些方法如果最后一个可见的ItemRenderer
失去焦点,则自动滚动列表。