2012-06-21 55 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中」。

還是爲了更好的輔助功能:使用一個字段。

詠歎調不是語義,它的可訪問性。