accesskey仅支持单个ascii字母、数字及少数符号,不支持中文、emoji或组合键;触发需配合平台修饰键(windows/linux为alt,macos为ctrl+option),且易与浏览器快捷键冲突,移动端基本不支持。

accesskey 属性能用哪些字符做快捷键
浏览器对 accesskey 支持的字符范围很窄,不是任意字母或数字都行。主流浏览器(Chrome、Firefox、Edge)只接受单个 Unicode 字符,且优先支持 ASCII 字母(a–z、A–Z)、数字(0–9)和少数符号(如 -、=、[、])。中文、emoji、组合键(如 Ctrl+S)完全不被识别——accesskey 本身不处理修饰键,它只是定义“触发该元素的基准键”,实际触发仍需配合平台默认修饰键(Windows/Linux 是 Alt,macOS 是 Ctrl+Option)。
常见错误是写 accesskey="ctrl+s" 或 accesskey="保存",这会导致属性被忽略,控制台无报错但快捷键无效。
不同浏览器触发方式不一致,必须按平台习惯操作
即使写了 accesskey="s",用户也得知道怎么按才能触发:Windows 用户要按 Alt+S,macOS 用户得按 Ctrl+Option+S,而 Firefox 在 macOS 上还允许用 Alt+S(取决于系统设置)。更麻烦的是,某些浏览器会与内置快捷键冲突——比如 Chrome 中 accesskey="f" 会和「查找」功能冲突,按下后可能直接唤出浏览器查找框,而不是聚焦你的输入框。
- 测试时务必在目标平台真实按键,不能只看 HTML 是否写对
- 避免使用浏览器已占用的键:如
f(查找)、t(新标签页)、r(刷新)、+(缩放) - 移动端 Safari 和大部分安卓浏览器基本不支持
accesskey,别指望它在手机上生效
focus 和 click 行为由元素类型决定,不是所有元素都响应相同
accesskey 触发后具体做什么,取决于目标元素的语义和是否可交互。对 <button></button> 是触发 click,对 <input> 或 <textarea></textarea> 是调用 focus(),但对普通 <div> 默认无反应——除非你手动监听 <code>keydown 并判断 event.key,或者加 tabindex="0" 让它可聚焦后再绑定逻辑。
示例:这个按钮能用 Alt+S 触发点击
使用tbot机器ID身份文件配合tsh CLI,通过Teleport访问控制SSH登录托管主机或执行远程命令。
<button accesskey="s">保存</button>
但这个 div 不行,需要额外处理:
<div accesskey="h" tabindex="0" onclick="showHelp()">帮助</div>
注意:tabindex="0" 是必要条件,否则 accesskey 对 <div> 无效。
<h3>无障碍支持弱,关键操作别依赖 accesskey</h3>
<p>WCAG 指南明确指出 <code>accesskey 不应作为唯一导航方式,因为冲突风险高、记忆成本大、跨平台不一致。屏幕阅读器用户通常更依赖 tab 键顺序或 ARIA role 导航。如果你真想提升键盘可访问性,优先确保 tabindex 顺序合理、所有交互元素有明确焦点样式,并用 aria-label 补充说明——accesskey 只适合极少数高频、无歧义的操作(如页面顶部「跳转到主内容」链接),且必须提供视觉提示(比如在文字旁用小字标出 [S])。
最常被忽略的一点:没有浏览器会主动告知用户当前页面有哪些 accesskey,你得自己在 UI 上暴露它,否则等于没设。










