2014-06-19 42 views
2

我在互聯網上看到的很多是,HTML5標籤上的ARIA角色大多是標籤名稱本身的完全重複(含義)。你爲什麼想這麼做?我想說你可以通過查看標籤名稱來扣除某些角色。HTLM5標籤上的「重複」ARIA角色

例如對這個「ARIA Role Cheat Sheet website」我看到以下內容:

<nav role="navigation></nav> 
<main role="main"></main> 
<aside role="complimentory"></aside> 

同樣在Twitter的引導中的示例形式具有的作用形式:如<form role="form">

我會說,不開玩笑?當它具有類似搜索角色<form role="search">時,它實際上提供了不能從標籤本身中扣除的上下文。

在前面提到的情況下將角色留空是否正確?它沒有提供任何有關標籤的額外信息。

回答

2

WAI-ARIA比HTML5更早。在HTML5成爲主流之前,屏幕閱讀器實現了對ARIA角色的支持,因此對於某些用戶來說,即使等效的HTML5元素不支持,ARIA角色也能提供好處。

雖然屏幕閱讀器正在迎頭趕上,請記住,升級屏幕閱讀器(不像升級瀏覽器)是一個昂貴的過程,所以老屏幕閱讀器都在使用中比舊的瀏覽器更長的時間。

3

的ARIA(無障礙富因特網應用程序)的屬性意在用於該用於創建在不能從標記否則推導出的方式的用戶界面元素。原因是這可能有助於用戶代理和輔助軟件幫助用戶使用這些元素。考慮用作提交按鈕,複選框或文本輸入窗口小部件的span元素。

因此,我們不希望使用ARIA屬性來表示其簡單自然的意義。因此,在原則上是多餘的聲明role=navigation用於nav元件,因爲該元件具有這樣的作用作爲默認作爲唯一允許的角色(根據當前規範和草稿)。但正如@Alohci所指出的那樣,如果用戶代理已經足夠先進以識別該屬性,但不足以知道該元素,該屬性可能仍然有幫助。

文檔Using WAI-ARIA in HTML(工作草案,2013年10月3日)呈現在明確指定ARIA屬性提出了一些建議,基於有關用戶代理的信息。這樣的信息當然是可變的,但我們可以預料任何規定爲冗餘的屬性都將保持多餘。尤其是,對於navmainaside,應該指定role屬性,但不包含form(因爲用戶代理肯定知道form元素)。

相比之下,W3C HTML5草案最近已移回到LC狀態says:「在大多數情況下,設置與缺省隱式ARIA語義相匹配的ARIA角色和/或aria- *屬性是不必要的,不推薦,因爲這些屬性已經由瀏覽器設定。」這明確表示,role屬性不應該爲navmainaside進行設置時,其價值將匹配默認值。