关闭按钮应直接使用语义化 关闭,需添加 aria-label(图标无文字时)、支持 Enter/Space 键、设置最小触控尺寸 44×44px,并避免 title 属性。

button 元素本身已是语义化关闭按钮,无需额外包装
HTML 中 只写 默认
关闭按钮看似简单,但语义、焦点、键盘、触控、可访问性这五条线缺一不可。最容易被跳过的,是键盘事件的 天然具有可点击、可聚焦、可被屏幕阅读器识别为交互控件的语义。只要它有明确意图(比如关闭弹窗),加上合适的文本或 aria-label 就足够——不需要套 冒充。
,type="button" 防止表单意外提交aria-label="关闭",否则屏幕阅读器读不出意图 单独使用,符号“×”对视障用户无意义,也不利于国际化关闭按钮必须绑定 JavaScript 事件,但别漏掉键盘支持
onclick 不够。用户可能用 Enter 或 Space 触发,而默认 对 Space 的响应需手动补全,否则键盘操作会失效。
click 和 keydown 两个事件,检查 event.key === 'Enter' || event.key === ' '
keydown 里调用 event.preventDefault(),防止空格触发页面滚动button.addEventListener('keydown', e => {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
handleClose();
}
});
别用
title 属性替代可访问性说明title 属性不是无障碍方案:它延迟显示、不兼容多数屏幕阅读器、移动端基本不触发。想表达“关闭当前提示框”,就得靠真实文本或 aria-label。
(title 不可靠,且“×”无文本)aria-controls 指向被控制的区域 ID,增强上下文关联移动端点击区域太小是常见失效原因
在 iOS/Android 上可能小于 44×44px,导致点不准、被系统忽略。这不是语义问题,但会让“能用”变成“难用”。
min-width: 44px; min-height: 44px;
padding 扩展可点区域,别只靠字体大小撑开Space 支持和移动端的点击热区。写完别只点鼠标,按两下空格再戳戳手机屏幕。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











