【问题标题】:HTML attribute accesskey not working as it shouldHTML 属性 accesskey 无法正常工作
【发布时间】:2009-02-05 13:50:38
【问题描述】:

所以,我正在测试所有不同的 HTML 标记和属性,稍微更新一下,但由于某种原因,accesskey 似乎无法正常工作。

accesskey 属性用于将键分配给元素。根据您的操作系统,按 Alt+那个键 (Windows) 或 Cmd+那个键 (Mac) 会将焦点放在该元素上。

这里有一点:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us">
<head>
    <title>Title</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css">
        a:focus{
            color:red
        }
    </style>
</head>
<body>
    <a accesskey="x" target="new" href="#">Hello</a>
</body>
</html>

所以我正在使用 Windows 机器。因此,我希望当我按下 Alt+x 时锚点会变红。然而事实并非如此。 代码有问题,还是我预期会发生错误的事情?

在 Firefox 上,什么也没有发生。谷歌浏览器打开一个新选项卡(应该是,目标属性说“新”,这意味着在新选项卡/窗口中打开),IE 跳转到锚点,但什么也不做。

【问题讨论】:

  • 顺便说一句,“新”是一个非标准的目标;改用官方的“_blank”。

标签: xhtml accessibility


【解决方案1】:

Firefox 的 accesskey 修饰符是 Shift+Alt。

【讨论】:

  • 你确定吗?在 topicstarter 发布的示例中,当我按下 Shift+Alt+x 时会打开一个新选项卡
  • 谢谢。 Firefox 既会转到锚点,又会打开新标签页,这是 Chrome 和 Firefox 的结合。另外,我注意到了其他一些事情:尝试在此处评论您的帖子。键入几个单词,然后按 Shift+Alt+x 您的文本对齐方式将移动到“右”而不是“左”
  • 而Mac上的Firefox修饰符就是Ctrl。
【解决方案2】:

Alt + [访问键]

    Internet Explorer for Windows
    Chrome for Windows (not that Shift is required in some circumstances
    Safari for Windows

Shift + Alt + [访问键]

    Firefox for Windows

Ctrl + Option + [访问键]

Safari for Mac
Chrome for Mac
Firefox for Mac

【讨论】:

    【解决方案3】:

    如果您决定分配访问密钥(并且可能有充分的理由使用这个实现得非常好的功能),您应该查看WebAIM's page on accesskeys,它概述了您将面临的一些障碍。

    有一点,在 Mac 上,大多数支持 accesskeys 的浏览器——除了 Opera——使用 Control 而不是 Command。 Opera 显然使用 Shift-Esc ......谁知道?

    【讨论】:

      【解决方案4】:

      当链接在 IE 中获得焦点时,您必须按 Enter 键。

      【讨论】:

        【解决方案5】:

        在 Firefox 中,您需要按 shift+alt。在 IE 中点击修改键只会将焦点设置到该元素,这是设计使然。这些是我的屏幕阅读器可以访问的仅有的两个浏览器,因此无法为您提供有关其他浏览器的更多信息。

        【讨论】:

          【解决方案6】:

          如果你在 mac 上使用 firefox,你应该按 ctrl + 'your access key'。

          【讨论】: