2014-12-06 25 views
1

在我目前正在開發用戶界面的應用程序中,菜單由各有一個標題的子菜單組成。爲此,我正在使用描述列表,但想要將菜單組件添加唱名角色。規範中似乎沒有菜單標題的作用。以下是一個示例佈局。任何關於正確角色的想法? Labeled-by似乎並沒有削減它,但也許這是正確的。什麼ARIA角色將用於菜單標題?

<dl role="menubar"> 
    <dt role="menuitem">Item One</dt> 
    <dt role="menuitem">Item Two</dt> 
    <dd> 
     <dl role="menu"> 
      <dt role="???">Sub menu</dt> 
      <dd role="menuitem">Item One</dd> 
      <dd role="menuitem">Item Two</dd> 
     </dl> 
    </dd> 
</dl> 
+0

你爲什麼認爲有這種需求?輔助技術知道如何處理列表,並且如果列表被標記爲菜單角色,則暗示列表項是菜單的一部分。 – isherwood 2014-12-07 00:02:34

+0

這是一個很好的觀點,但是爲什麼我們有一個規範來定義ARIA角色的使用?我同意大多數輔助技術都理解列表,但他們是否在我使用它們的上下文中理解它們?我剛開始分支使用ARIA角色,所以我只是好奇。 – Jeff 2014-12-07 00:09:47

+0

您需要一個角色來指示列表是一個菜單,因爲列表還有其他用途。之後,它很清楚,不是嗎? – isherwood 2014-12-07 00:10:17

回答

0

好的,你應該沒有使用和相關的標籤,沒有理由不簡單地使用ul和li。看看這個實現:

http://dylanb.github.io/bower_components/a11yfy/examples/menu.html

ARIA使用層次來決定「標題」,上面的例子會告訴你如何與UL和李來做到這一點。你可以用dl實現同樣的功能,但是我沒有看到它完成。

爲了讓菜單正確宣佈,還必須記住一件事:層次結構中的所有元素都必須具有角色。如果角色不是菜單角色之一,那麼您必須添加role =「presentation」或者菜單的順序公告將是錯誤的。