2012-06-21 57 views
2

有一些ARIA教程网站使用非语义标记和一些JavaScript在于向世人证明使用role="radiogroup"role="radio"如下面的例子:是角色=“RadioGroup中”和角色=“无线电”真的nessasary?

<ul role="radiogroup"> 
    <li tabindex="-1" role="radio" aria-checked="false"> 
     <img role="presentation" src="radio-unchecked.gif"> 
     Option1 
    </li> 
    <li tabindex="0" role="radio" aria-checked="true"> 
     <img role="presentation" src="radio-checked.gif"> 
     Option2 
    </li> 
</ul> 


但是,什么是点到什么时候我们使用这些role小号已经有类似的语义和JavaScript少的办法:

<ul> 
    <li> 
     <input id="opt1" type="radio" name="opt" value="1"> 
     <label for="opt1">Option1</label> 
    </li> 
    <li> 
     <input id="opt2" type="radio" name="opt" value="2"> 
     <label for="opt2">Option2</label> 
    </li> 
</ul> 

回答

8

因为有一些人谁真的,真的希望定制设计他们的表单控件,将与我代替他们无论是否存在语义上合适的元素,都可以使用mages和一堆JavaScript。

的角色,只允许时,他们这样做可以减轻损害。

+0

虽然第一个代码在语义上也是正确的,但它是一个完全自定义控件的JavaScript示例。 @Denis Chenu在他的回答中说,“咏叹调”属性和属性包含在可访问性(屏幕阅读器和其他技术)中。 对于那些感兴趣的,这里有更多的信息:[链接](http://w3c.github.io/aria-in-html/) –

3

在第二个版本:您需要在UL作用=“RadioGroup中”。

还是为了更好的辅助功能:使用一个字段。

咏叹调不是语义,它的可访问性。