html - 如何使用使用选项卡按钮的文本区域处理可访问性选项卡?
问题描述
我有一个网页,其中包含一个<textarea>
使用 JavaScript 的网页,以便利用键盘输入(如tab
键)来缩进行等,就像普通的文字处理器或文本编辑器一样。
在确保屏幕阅读器可以访问我的网页时,在这种情况下如何处理 tab 键?用户可以很好地在网页上进行选项卡,但是当他们进入网页时,textarea
他们无法退出网页,因为在 textarea 中将选项卡键用于不同的目的。
确保屏幕阅读器对此没有问题的最佳解决方案是什么?
解决方案
很好的问题,感谢您考虑可访问性。此问题不仅适用于屏幕阅读器用户,也适用于其他行动不便且无法使用鼠标且仅依靠键盘进行输入的用户。
您要防止的问题是WCAG 2.1.2 No Keyboard Trap。
使用tab键允许文本缩进是为 textareas 提供的一种自然的事情。解决此问题的一种方法是允许esc您退出“编辑模式”,以便tab键现在可以自然地将焦点移动到下一个对象。
我猜你有一个键盘事件处理程序,它preventDefault()
要求tab. 如果用户按下esc,改变你处理选项卡的方式,让它自然冒泡(即不要调用preventDefault()
)。要返回“编辑模式”,用户可以按下enter或者他们可以关闭文本区域,然后返回到它(即,进入“编辑模式”onfocus)。
WCAG 2.1.2 的一个关键点是
如果 [tabbing off the object] 需要的不仅仅是未修改的箭头键或 Tab 键或其他标准退出方法,则建议用户使用移开焦点的方法。
因此,如果您使用esc,您将需要一些屏幕上的指示来告诉用户按下escthentab以将焦点从对象上移开,并且这些指示应该与<textarea>
via相关联,aria-describedby
以便屏幕阅读器了解它。
<div id="foo">Press ESC then TAB to move the focus off the field</div>
<label for="stuff">Enter your info here</label>
<textarea id="stuff" aria-describedby="foo"></textarea>
推荐阅读
- python - Python:随机选择组中的子组
- ios - OSLog 将结构值写入文件并将日志绘制到文件中
- kubernetes - 云端点、Kubernetes 和 SSL
- html - 以较小尺寸查看时,高质量的英雄图像会变得模糊
- python-3.x - 两个日期之间的天数差,直到满足条件
- c# - 有谁知道 EF Core 3.0 中的 IPluralizer、ICandidateNamingService 和 CandidateNamingService 发生了什么?
- python-3.x - 使用带有单个 USB 网络摄像头的 Python OpenCV Raspbian RPi4 选择超时
- javascript - 找不到模块:无法解析 'react-datepicker
- sql - 骡子软数据库选择查询与在哪里条件
- javascript - 如何垂直对齐CSS中的所有文本?