如何处理 WAI ARIA role="listbox"

2024-03-12

我有一个选项列表,可以从中选择一个。出于所有意图和目的 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(使用前将#替换为@)

如何处理 WAI ARIA role="listbox" 的相关文章

随机推荐