单选按钮或复选框是不是允许使用 aria-required?
Posted
技术标签:
【中文标题】单选按钮或复选框是不是允许使用 aria-required?【英文标题】:Is aria-required allowed on radio buttons or checkboxes?单选按钮或复选框是否允许使用 aria-required? 【发布时间】:2016-03-21 21:19:53 【问题描述】:我正在使用 ax Chrome 扩展程序来检查可访问性,但我的单选按钮和复选框收到违规消息。查看“aria-required”的 W3C 文档,您可以在此处找到它:W3C on aria-required,没有为使用的角色列出任何输入。
根据这个问题:html5: How to use the “required” attribute with a “radio” input field,您只需将一个单选按钮标记为必需。但是,我正在尝试将 aria 与旧版浏览器一起使用,但我收到了违反 Elements must only use allowed ARIA attributes 的问题,说我的任何类型的收音机或带有 aria-required 的复选框的输入都不允许使用“aria-required”。
这与该工具是否存在差异,所需的 HTML5 工作方式是否略有不同,或者收音机或复选框实际上不允许使用 aria-required?
【问题讨论】:
单选按钮很简单。将它们放在一个容器元素中,并赋予容器元素一个“radiogroup”的角色。将 aria-required 属性添加到同一容器元素。复选框,不,不允许。不知道为什么。 对于复选框,无论是否选中,都会通过表单传递值。如果您想传达用户必须选中复选框才能继续/提交,那么应该通过指向文本容器的 aria- describeby 属性(通过该容器的 ID 属性)关联此类消息。 【参考方案1】:如wai-aria documentation 中所示,aria-required
可用于radiogroup 元素。
您可以设置fieldset
(具有相应的aria-required
属性)。
<fieldset aria-required="true">
<legend>Do you like ARIA? (mandatory question)</legend>
<input type="radio" name="answer" required="required" value="Yes"/>
<input type="radio" name="answer" required="required" value="No"/>
</fieldset>
请注意,您必须同时设置aria-required
和required
属性,并明确指出该字段是必填字段。
如果您没有使用正确的 HTML 输入,您也可以使用 <div role=radiogroup>
(请参阅下面的评论)
【讨论】:
根据 HTML 建议,radiogroup 不是 fieldset 元素的允许角色。 w3.org/TR/html52/sec-forms.html#elementdef-fieldset 这里不需要radiogroup 角色。 radiogroup 角色的目的是以编程方式指定哪些收音机属于哪个单选按钮组,以便浏览器可以正确构建可访问性树。当收音机不是正确的 HTML 输入时,这是必要的。但是对于 HTML<input type="radio" name="foo">
,单选按钮组是根据 name
属性计算的。
@andrewmacpherson 你是对的,但很快就会改变github.com/w3c/html-aria/commit/…以上是关于单选按钮或复选框是不是允许使用 aria-required?的主要内容,如果未能解决你的问题,请参考以下文章