无障碍要求中的单选按钮组(radio group)必填属性

9
当我有一个必须的单选按钮组时,哪些元素应该有aria-required =“true”属性?基本上,我有一堆共享相同名称并在<fieldset>下分组的<input type =“radio”>元素。

  1. 我应该在<fieldset>上放置aria-required吗?
  2. 我应该在每个单选按钮上放置aria-required吗?
  3. 或者您会说“不应该有强制单选按钮组;设置默认值,使单选按钮组永远不能处于未选择状态”?——也许这是一个单独的可用性讨论主题。
4个回答

14
作为一个屏幕阅读器用户,我建议选择方案一或三。我不想听到我的屏幕阅读器在每次更改单选按钮选择时都宣布“必填”。如果我正在查看不同的选项,每个选项都宣布“必填”会很快变得重复。我希望在fieldset元素上具有必填属性,这样我就知道这是需要填写的表单部分。
从可用性角度来看,我更喜欢有一个默认选择,因为如果我看到一个默认选择,我通常会跳过到表单的下一部分,假设默认选择不明显错误。您是否愿意提供用户一个默认选择而不强制他们进行选择,取决于您的应用程序所需信息的重要性以及该信息错误时的后果。

在你的第一句话中,我猜你想写的是“选项一或三”。选项一是在<fieldset>上设置属性。 - Ates Goral

3

我尝试过并发现无法向fieldset元素添加aria-required属性。


可以解释得更详细一些吗?https://dev59.com/WJLea4cB1Zd3GeqPxxnc#34322810 - lordvcs

1
您可能想考虑在放置在<fieldset>直接后面的<legend>上添加一个“必填”提示。对于单选组中的错误消息,也可以使用相同的方法。一般来说,在组的情况下远离aria属性是一个好主意,因为不同屏幕阅读器的体验非常令人困惑。Tenon已经做了大量研究,您可以在此处阅读到相关信息。他们针对单选组和复选框组的一般指导如下:
  1. 元素组应该放在一个<fieldset>元素中,并由一个<legend>描述。
  2. 为了让大多数屏幕阅读器识别<legend>,它必须是<fieldset>打开后的下一个元素。请不要在<fieldset>的开标签和<legend>之间放置任何其他HTML。
  3. <input>等控件不同,没有可靠的方法将错误消息或内容提示连接到<fieldset>。因此,这些消息必须呈现在<legend>元素中。如果这个文本不需要可见,可以使用视觉隐藏内容的样式来隐藏它。
  4. 当设置焦点到这个组时,焦点应该落在组的第一个<input type="checkbox"><input type="radio">上。

1
正确的处理方法是在radiogroup元素本身上指定required属性,而不是在每个单选按钮元素上指定。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接