Javascript 如何为不可见的HTML元素定义accesskey

Javascript 如何为不可见的HTML元素定义accesskey,javascript,html,css,firefox,Javascript,Html,Css,Firefox,我有一个,上面有一个accesskey。只要按钮可见,accesskey就可以正常工作,但是当我设置display:none或visibility:hidden时,accesskey不再工作 也没有成功: 使用不同的元素类型:a,输入(各种类型,甚至无类型) 将accesskey指定给包装不可见控件的标签 注意,我不确定这是否是标准行为,但在Firefox3之前,accesskey似乎不管可见性如何都能工作。您可以应用负边距将元素推到可见页面之外。我认为许多浏览器和文本阅读器忽略了具有dis

我有一个
,上面有一个accesskey。只要按钮可见,accesskey就可以正常工作,但是当我设置
display:none
visibility:hidden
时,accesskey不再工作

也没有成功:

  • 使用不同的元素类型:a,输入(各种类型,甚至无类型)
  • 将accesskey指定给包装不可见控件的标签

注意,我不确定这是否是标准行为,但在Firefox3之前,accesskey似乎不管可见性如何都能工作。

您可以应用负边距将元素推到可见页面之外。我认为许多浏览器和文本阅读器忽略了具有
display:none
的元素,也可能忽略了
visibility:hidden
您看到的行为是正确的,您无法“访问”未显示的元素。萨尔的建议几乎肯定会奏效,但我可以问一下你这样做的目的是什么吗?也许有更好的方法来完成你想要达到的目标。您是否考虑过使用按键处理程序


我想,如果你不想要按键处理程序,你可能会同意其他建议。试位:绝对;左:-9999px;将您的内容从页面中拉出。或者使用绝对位置,将不透明度更改为零,将z索引更改为-1。通过使用绝对位置,元素不会影响页面上其他内容的位置,设置不透明度将使其不可见。即使不透明度设置为零,您仍然可以单击该元素,尽管您看不到它,但它可能会阻止您单击页面的其他元素,因此使用负z索引将其拉到其他内容后面。

将按钮放置在页面外部,而不是可见性或显示属性

<button accesskey="a" style="position: absolute; top: -9999px">button</button>
按钮

警告:在ie7中使用left而不是top会导致奇怪的显示错误最简单的解决方案:
高度:0px;边际:0px;填充:0px
在CSS中。

根据偏好,用户可能不希望看到按钮(覆盖其他内容),但仍然可以访问对话框。我将考虑一个事件钩子作为最后的手段:这里有脚本:我认为如果你不想要一个按键处理程序,你可能想和其他的建议一起去。试位:绝对;左:-9999px;将您的内容从页面中拉出。或者使用绝对位置,将“不透明度”更改为零,将“z索引”更改为-1。不透明度0在没有z索引-1的情况下执行此操作。跨浏览器都需要吗?谢谢!把这个纳入答案,我会接受这个答案。