3

在可访问的 flex 应用程序中,用户可以使用 TAB 键在控件中导航。

用户激活特定链接后,flex 应用程序会在 html 页面顶部弹出,并使用 swfobject.embedSWF 加载。

它在大多数情况下运行良好,但在某些情况下会发生其中一种或两种情况:

a) flex 应用程序加载正常,“flex 焦点”设置在介绍文本标签上以大声朗读,但按 tab 似乎仍在循环浏览后面页面上的链接。(现已修复,请参阅编辑 2)

b) 焦点运行良好,并且在控件中按 Tab 键循环正常,但是在通过它们之后,它会从 flex 应用程序中跳出并进入地址栏.. 甚至尝试在没有的情况下返回 flex 应用程序都变成了一场噩梦点击它..这并不完全是可访问性的。

有什么办法可以防止这些事情发生吗?

编辑:目标浏览器是 IE。似乎是与 Jaws 一起使用最多的

编辑:我设法解决了问题(a)。诀窍是调用焦点在 swf 对象上,但在稍微超时后 - 必须与 flash/js 就绪状态有关。

setTimeout(function(){
   document.getElementById('swfobject').focus()
},25);

问题(b)仍然是一个问题......

4

2 回答 2

3

在您的 mx:Application 组件中,为 keyFocusChange 添加一个事件侦听器并添加以下代码:

protected function application1_keyFocusChangeHandler(event:FocusEvent):void
{
    event.preventDefault();
    focusManager.getNextFocusManagerComponent(event.shiftKey).setFocus();
}
于 2010-12-03T11:03:44.227 回答
0

b) 尝试在 html 中的 swf 之后放置一些可聚焦的元素。当焦点离开 flex 应用程序时,查看该元素的 onfocus 处理程序是否被调用。如果是,您可以从那里重新聚焦 flex 应用程序或将其重定向到您想要的位置。

于 2010-12-03T08:24:17.280 回答