Nu HTML Checker上的验证错误:"元素输入上属性类型的错误值无线电。"

时间:2016-11-06 04:42:33

标签: html w3c-validation wai-aria

我收到此错误

  

错误:元素输入上属性类型的错误值无线电。

尝试在https://validator.w3.org/nu/#file

上验证以下HTML时
<fieldset>
<p class="city" id="citypref">Generally, I would prefer to live in...</p>
<br>
<label for="la" id="laLabel">
<br>
<input type="radio" name="city" id="la" value="la" aria-required="false" aria-labelledby="laLabel" role="radiogroup" >Los Angeles, California</label>
<br>
<label for="boston" id="bostonLabel">
<input type="radio" name="city" id="boston" value="boston" aria-required="false" aria-labelledby="bostonLabel" role="radiogroup" >Boston, Massachusetts</label>
<br>
<label for="both" id="bothLabel">
<input type="radio" name="city" id="both" value="both" aria-required="false" aria-labelledby="bothLabel" role="radiogroup" >Both</label>
<br>
<label for="neither" id="neitherLabel">
<input type="radio" name="city" id="neither" value="neither" aria-required="false" aria-labelledby="neitherLabel" role="radiogroup" >Neither</label>
<br>
</fieldset>

任何提示?

2 个答案:

答案 0 :(得分:5)

  

似乎https://validator.w3.org/尚未配备   以下代码

它实现了在https://www.w3.org/TR/html-aria/ prohibits role=radiogroup on input type="radio"中定义的HTML中使用ARIA的一致性要求。它定义了所有元素的有效角色值。没有input元素允许role="radio"role="menuitemradio"仅允许input type="radio"

另一个答案错误地建议使用ul role="radiogroup"li role="radio"。但ARIA采用HTML prohibits role="radiogroup" for ulprohibits role="radio" for li

请注意,ARIA 1.1中引入了一些验证程序无法识别的角色和属性属性。这项工作正在进行中。

如果您对w3c验证器有疑问,建议filing an issue

答案 1 :(得分:0)

似乎https://validator.w3.org/尚未配备以下代码:

aria-required="false"
aria-labelledby="neitherLabel"
role="radiogroup"

一旦删除它们,您的代码就会毫无问题地通过。

W3网站提供了有关如何在此页面上使用前3个代码的示例:https://www.w3.org/TR/WCAG20-TECHS/ARIA2.html。 这是他们提供的一个例子:

<form action="#" method="post" id="alerts1">
<label for="acctnum" data-required="true">Account Number</label>
<input size="12" type="text" id="acctnum"
  aria-required="true" name="acctnum" />

<p id="radio_label" data-required="true">Please send an alert when balance exceeds $3,000.</p>

<ul  id="rg" role="radiogroup" aria-required="true" aria-labelledby="radio_label">
<li id="rb1" role="radio">Yes</li>
<li id="rb2" role="radio">No</li>
</ul>
</form>

当我复制他们自己的example并将其粘贴在验证器上时,它无法通过,并向我提供了您收到的相同错误消息。

因此,我建议直接与他们联系,要求他们将之前的3个代码添加到验证者数据库作为有效用途。

<强>更新

查看史蒂夫的回答澄清。