如何让自定义按钮在屏幕阅读器中正确读出? 程序员利娇 提问于 2026-03-08 18:33:17 阅读 53 前端 我用 <div> 做了一个按钮,加了点击事件,但用 VoiceOver 测试时发现它根本不会被识别为按钮。我试过加 role="button",但还是不行,焦点也进不去。是不是还得加别的属性? 现在的代码大概是这样的: <div role="button" onclick="doSomething()">点我</div> 我来解答 赞 7 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 迷人的春芳 Lv1 缺了tabindex,加上这个就能聚焦了: 点我 最好再加个键盘事件,光有click事件不够用: divElement.addEventListener('keypress', (e) => { if (e.key === 'Enter' || e.key === ' ') { doSomething(); } }); PS:这种破事我踩坑不下十次了,每次都得重新查文档... 回复 点赞 5 2026-03-08 19:01 加载更多 相关推荐 1 回答 61 浏览 自定义按钮组件如何正确支持键盘访问和屏幕阅读器? 我写了个自定义的按钮组件,用div模拟的,但发现Tab键没法聚焦,屏幕阅读器也读不出它是按钮。加了role="button"还是不行,是不是还缺啥? 下面是我现在的代码: <div role="... 翌耀酱~ 组件 2026-03-02 10:53:19 2 回答 49 浏览 如何正确给自定义按钮添加无障碍支持? 我用 div 做了一个按钮,点击能触发操作,但屏幕阅读器好像读不出来。加了 role="button" 也不行,是不是还缺啥? 试过加上 tabindex="0" 让它能聚焦,键盘也能按回车触发,但读... UP主~金静 前端 2026-03-03 14:48:20 1 回答 50 浏览 如何正确为自定义按钮添加无障碍支持? 我用 <div> 做了一个按钮,点击能触发功能,但用屏幕阅读器读不出来。我加了 role="button",但好像还不够?按 Tab 键也聚焦不到它。 是不是还得加 tabindex?或者... 端木艺晗 前端 2026-03-03 10:56:20 1 回答 46 浏览 低代码引擎中如何正确注册自定义组件? 我在用 LowCodeEngine 接入自定义的按钮组件,但注册后设计器里找不到,控制台也没报错,不知道是哪步漏了。 我照着文档写了 registerNode 和物料配置,但拖到画布上就显示“组件未注... 端木若溪 框架 2026-03-27 10:20:20 2 回答 50 浏览 自定义组件单元测试时如何正确模拟 DOM 结构? 我写了一个简单的自定义按钮组件,想用 Jest + Testing Library 做单元测试,但每次渲染都报错说找不到对应的 DOM 节点。我明明在测试里用了 render 啊,是不是我的组件结构有... Zz会静 组件 2026-03-16 15:24:22 1 回答 95 浏览 Material-UI按钮样式覆盖不了自定义的CSS如何解决? 我在用Vue和Material-UI做按钮组件时遇到问题,想给按钮加个悬停效果,但自定义的CSS样式完全没生效... 代码是这样的: 点击我 .custom-btn { background: #4C... IT人凡敬 组件 2026-01-28 11:07:26 2 回答 70 浏览 自定义按钮组件的屏幕阅读器读的是图标而不是文本怎么办? 我在用Vue写一个带图标的按钮组件,结构是这样:<button><span>删除</span><svg>...</svg></butt... 瑞玲的笔记 组件 2026-01-28 10:43:32 1 回答 58 浏览 NodeGui 中如何正确绑定按钮点击事件? 我在用 NodeGui 写一个桌面应用,想给按钮加个点击事件,但试了好几次都没反应。控制台也不报错,就是点按钮没效果。是不是事件绑定方式不对? 我现在的代码是这样的: const { QPushBut... ♫秀丽 框架 2026-03-29 13:28:12 2 回答 86 浏览 Vant ActionSheet 如何自定义取消按钮样式? 我在用 Vant 的 ActionSheet 组件,想改一下底部“取消”按钮的颜色和字体大小,但文档里没找到相关属性。试过传 cancel-text 只能改文字,没法改样式。 也尝试在外层加 clas... 怡冉🍀 组件 2026-03-26 10:03:20 1 回答 49 浏览 移动端按钮如何正确添加无障碍支持? 我在做一个移动端的 React 项目,页面上有个“立即购买”按钮,用的是 <button> 标签。但测试时发现 iOS 的 VoiceOver 读出来只是“按钮”,没有具体作用说明。我试过... 长孙英杰 移动 2026-03-23 22:15:19
最好再加个键盘事件,光有click事件不够用:
PS:这种破事我踩坑不下十次了,每次都得重新查文档...