这个问题与我的另一个问题有关(但不同于此):Give focus to browser
我的页面上有一个嵌入式Flash对象,我希望它包含在标签周期中。我已经设置了tabindex
,它可以在FireFox中运行,但在谷歌浏览器中,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/)
所有内容都有tabindex
1
(我还尝试了0
,0,1,2
等的变体),但是无法用键盘聚焦flash对象。点击它就像按下按钮一样有效,这会触发一些简单的JavaScript。你可以通过捣碎TAB来判断它是否成为焦点;它永远不会通过键盘放弃焦点,所以你永远不会看到任何亮点。
好的,所以我可以修复一个拦截TAB键并在特定情况下强调焦点的修复,但坦率地说这是一个可怕的解决方案。我错过了一些属性吗?如果可能的话,我正在寻找纯HTML修补程序。
答案 0 :(得分:2)
原来这是WebKit中的已知错误,因此影响Chrome和Safari(不是FireFox,我不知道Internet Explorer或Opera)
相关跟踪器位于:https://bugs.webkit.org/show_bug.cgi?id=32292
巧合的是,这个问题在几天前得到了解决,所以希望很快就会公开发布。由于Chrome和Safari都能让大多数用户保持最新状态,我认为不值得在此期间构建解决方法(但如果有人确实有一个很好的解决方法,请在此处发布!)