0

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

有没有一个技巧可以让 ItemRenderer 获得焦点?或者我可以使用一些替代方案?

4

1 回答 1

0

解决方案:

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

奇怪的是,如果自定义渲染器未能实现所需的IFocusManagerComponent方法,Flex 编译器不会抱怨。我不知道为什么,但我推测这些方法是在代码链的某处实现的,除非组件明确实现IFocusManagerComponent.

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

于 2012-05-07T17:58:13.983 回答