[英]Simple Onclick Javascript Drop Down Navigation without using switch / tab
[英]Keyboard navigation in custom drop down without using javascript
我有一个 angular 应用程序,其中有一个组件具有 div 样式作为按钮并单击它打开或关闭另一个 div 列表。
我需要让这个应用程序易于访问。 我可以使用 angular (keyup.enter) 事件处理输入,当打开 div 列表时,我想将焦点移动到该列表中的第一项。 目前我需要在打开列表时按 Tab 键移动焦点。
有什么方法可以使用 ARIA 角色自动移动焦点。 我不想编写 javascript 来处理按键向下/向上和焦点转移代码。
也可以对 windows 和 mac 机器事件使用 angular (keyup.enter) 而不是在 angualar typescript 中编写 keydown 处理程序并匹配键码。
这是供参考的虚拟代码
<div>
<div role="button" tabindex="0">
</div>
<div *ngIf="showList" role="list">
<div role="listitem" tabindex="0">
</div>
<div role="listitem" tabindex="0">
</div>
</div>
</div>
尝试使用 aria roles menu, menuitem 但无法移动焦点并且无法使用列表中的箭头键导航
不好意思,如果要自定义go,需要一路go,自己实现键盘接口。
ARIA 角色不实现交互,它们仅传达交互的本质以管理用户的期望,或提供获取元素的快捷方式。
可能有一些库可以帮助您应用默认模式,如ARIA 创作实践指南 (APG)中所述
如果您检查APG 上的 Select-Only Combobox 示例,您会注意到您还需要一些更多的 ARIA 属性以符合下拉列表中的标准:
aria-expanded
在按钮上显示列表当前是否展开aria-haspopup=listbox
显示按钮打开列表aria-label
或真实文本内容)role=combobox
而不是按钮,实际上role=option
而不是listitem
aria-selected
在活动选项上尽可能使用本机组件通常是个好建议。 它们针对平台进行了优化,速度快,易于访问且需要的资源更少。
您可以应用一些样式和技巧,例如隐藏初始的、未聚焦的输入。 CSS 属性accent-color
还允许现代浏览器中的一些基本样式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.