我有一个选项列表,可以从中选择一个。出于所有意图和目的 HTML<select>
元素涵盖了这一点。由于我们需要不同的视觉呈现,我正在考虑使用WAI ARIA 角色=“listbox” http://www.w3.org/WAI/PF/aria/roles#listbox。我不清楚如何使用aria-activedescendant
, aria-selected
and aria-checked
.
关于焦点/活动状态的问题:
- 如果我使用
aria-activedescendant
在列表框中指向[role="option"]
当前处于活动状态(具有“虚拟焦点”),我会使用[aria-selected]
。我如何最好地告诉选项元素本身它是活动的(具有“虚拟焦点”)以在视觉上表示它? (:focus
毕竟在列表框中)
- an
[role="option"]
可以有[aria-checked]
and [aria-selected]
。我想我需要[aria-selected]
但不知道我会用什么[aria-checked]
for.
- 有没有一个技巧可以避免在每个选项上简单地添加 ID,以便可以引用它
aria-activedescendant
?
有关问题键盘交互 http://www.w3.org/WAI/PF/aria-practices/#Listbox:
- “复选框 - 如果列表项可检查,则空格切换复选框” - 如何确定它们是否可检查或可选择?
有关验证的问题:
如果列表框有[aria-required="true"]
必须执行某种验证。特别是如果已选择(或选中)某个选项。
- 我什么时候触发验证?已开启
blur
充足的?
- 无效时,除了设置之外我还需要做什么
[aria-invalid="true"]
在列表框中?
aria-checked
确实更适合一系列非常密切相关的选项,其中包含可以打开或关闭的实际可见复选框。这在 Windows 世界中最为常见。资源管理器可以设置为这种伪多选模式,或者某些应用程序使用它来激活或停用一组帐户。在 Mac 上,您可以想到 Adium 中的帐户列表,可以检查(活动)或不检查。选项始终存在,并且可以选中或不选中一个或多个复选框。
aria-selected
始终指示选项的选定状态。例如当使用箭头键遍历列表时,aria-selected="true"
从一个项目移动到另一个项目,而其他人则必须获得aria-selected="false"
。正如 Patrick 所说,您还可以使用它来生成一些漂亮的 CSS。
至于键盘交互:向上和向下箭头将选择一个项目,如果该项目也可以选中,则空格将切换当前所选项目的选中或未选中状态。
在真正的多选中,例如 html:select @size>1,并且 multiselectable 为 true,交互将是:
- 箭头键选择单个项目。
-
Ctrl+Arrow keys would move focus from item to item, but not select the item yet.
-
Ctrl+Space would select the item.
-
Shift+up and down arrows would select contiguous items.
这又是标准的 Windows 范例,例如可以在资源管理器的详细信息视图中观察到。
至于验证:onBlur
就足够了,或者您可以通过更改选择/焦点项目动态地执行此操作,确保至少选择一个项目,或者您需要的任何验证。
aria-invalid="true"
屏幕阅读器知道就足够了,但是错误消息和可能的视觉指示可以让每个人都知道出了什么问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)