2011-07-26 90 views
1

我在現有的html佈局上實施ARIA里程碑式的角色。我需要改變更好的代碼越少。我發現的所有例子都使用整個容器的地標。例如, 。詠歎調標誌性的角色,僅適用於容器?

<div id="content" role="main"> 
<p>....</p> 
<ul>...</ul> 
</div> 

在我的模板中,並不總是有一個容器圍繞我不想標記爲ARIA地標的內容。有時候,爲了實現,不要標記整個容器,而只是在相關內容的開始處設置標記。

因此,這將是這樣的:

<div role="main"></div> 
<p>....<p> 
<ul>...</ul> 

從視屏幕閱讀器或其他軟件語義點不知道什麼時候該結束的內容或可能認爲內容爲空。這可能是一個問題嗎?

我用JAWS屏幕閱讀器測試了它,它似乎表現得一樣。 JAWAS只尋找地標的開始。 這是不是一個?或者我可以用這種方式嗎?

回答

0

嗯,這裏有一些事情正在進行。

首先,雖然這對屏幕閱讀器都會表現得很好,並且行爲方式相同,但我的經驗是,它更像是瀏覽器戰爭,所以使用role =「main」會變得不同對於不同的讀者,並不一定對你有幫助。

順便說一句,關於任何角色屬性的部分,在內容何時結束方面都沒有得到承認,這是我見過的所有支持ARIA的情況(並且只有一些)。因此,最後,我的建議 - 我認爲你應該使用不同的角色。區域角色更具通用性,但仍會幫助用戶指定重要內容的位置。另一方面,如果你想保持真正的通用性和跨屏閱讀器的可用性,那麼就把角色概念完全放在一個隱藏的h2頭部標籤中,然後用它來表示你想要調用它的任何東西。雖然它不是花哨的,但它保證了工作,而且這個社區中的任何人都不會發出什麼聲音。

所以它就是這樣,使用像區域這樣的通用角色來標記它,或者更好的是,完全取消角色構想並返回到樣板h2標籤以獲得統一的兼容性。

+0

詠歎調的支持真的很糟糕,它不能被使用嗎? 這裏看起來不那麼糟糕http://www.accessibleculture.org/research/html5-aria-2011/ – yvess

+0

我想補充一點,像'main'和'banner'這樣的角色是要定義的* *只有一次。**但根據我的經驗,屏幕閱讀器無論如何都會循環瀏覽。這聽起來像是一種不同的方法。同時也要注意新的HTML5結構,比如'article','header'等。如果沒有更多關於網頁內容的信息,很難再提供幫助。以下ARIA角色鏈接可能會有所幫助:http://www.paciellogroup.com/blog/2010/10/using-wai-aria-landmark-roles/ –

0

同意,它只是標誌着內容的開始。既然如此,而不是創建一個空的div,爲什麼不把角色=「main」放在第一個元素上,你會考慮啓動主要內容?在你上面的例子中,這將是<p>標籤。

可以使用role =「main」的另一種方式是爲「跳轉到主內容」鏈接提供錨點。這也支持將角色放置在<p>標記上的方法。

總之,如果他們使用跳過鏈接或在輔助技術中使用捷徑,您希望他們跳到哪裏?我只在增強導航方面看到了收穫,它被認爲是「里程碑式」的角色......這對我來說,提供了一個里程碑。

0

我絕對不是WAI-ARIA的專家(雖然最近才學習),但我的理解是,讀者事實上了解被標記爲角色的區域內的內容,而不僅僅是關於標記區域開始。

此外,從here引用:

可能是將地標最重要的規則是,以確保所有內容駐留在具有里程碑意義的區域,以確保沒有內容是孤立的。這樣屏幕閱讀器用戶就可以安全地使用地標導航而不會丟失內容。

要做到這一點,你可能需要修改你的模板比你希望的更多。

相關問題