1

这个问题与我在这里的其他问题相关(但不同于):Give focus to browser

我的页面上有一个嵌入式 Flash 对象,我希望它包含在选项卡循环中。我已经设置tabindex好了,它在 FireFox 中有效,但在 Google Chrome 和 Apple Safari 中的焦点仍然过去了。

下面是一些简单的测试代码:

<a href="#" tabindex=1>A</a>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width=550 height=400 id=movie_name tabindex=1>
    <param name=movie value="http://helpx.adobe.com/content/help/en/flash-player/kb/find-version-flash-player/_jcr_content/main-pars/flash_1/file.res/theFile.swf"/>
    <embed src="http://helpx.adobe.com/content/help/en/flash-player/kb/find-version-flash-player/_jcr_content/main-pars/flash_1/file.res/theFile.swf" name=movie_name type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" tabindex=1 />
</object>
<a href="#" tabindex=1>Z</a>
<button onclick="document.movie_name.focus()">Force focus into Flash</button>

(在小提琴中:http: //jsfiddle.net/tcDGq/

一切都有一个tabindexof 1(我也尝试过 , 等的变体00,1,2,但不可能用键盘聚焦 flash 对象。单击它可以工作,按下按钮也可以,这会触发一些简单的 JavaScript。您可以通过捣碎 TAB 来判断它是否集中;它永远不会通过键盘放弃焦点,因此您永远不会看到任何突出显示。

好的,所以我可以一起破解一个拦截 TAB 键并在特定情况下强制聚焦的修复程序,但坦率地说,这是一个可怕的解决方案。我在这里错过了一些属性吗?如果可能的话,我正在寻找一个纯 HTML 修复程序。

4

1 回答 1

2

原来这是 WebKit 中的一个已知错误,因此影响 Chrome 和 Safari(不是 FireFox,我不知道 Internet Explorer 或 Opera)

相关的跟踪器在这里:https ://bugs.webkit.org/show_bug.cgi?id=32292

巧合的是,这个问题几天前就解决了,所以希望它很快就会公开发布。由于 Chrome 和 Safari 都设法让大多数用户保持最新状态,我认为在此期间构建解决方法不值得(但如果有人确实有很好的解决方法,请在此处发布!)

于 2013-04-06T15:17:49.327 回答