[英]Is there a way to use aria-describedby in <option> tags, so the description is read after the option?
考慮以下 HTML 代碼:
<select>
<option aria-describedby="paragraph-a">Option A</option>
<option aria-describedby="paragraph-b">Option B</option>
<option aria-describedby="paragraph-c">Option C</option>
</select>
<p id="paragraph-a">This is a description for option A</p>
<p id="paragraph-b">This is a description for option B</p>
<p id="paragraph-c">This is a description for option C</p>
直觀地說,這應該工作的方式是像 chromevox 或 Windows Narrator 這樣的屏幕閱讀器應該閱讀選項,然后是描述(例如“選項 A,這是選項 A 的描述)。但是,這似乎不起作用帶有<option>
標簽,或一般的<select>
標簽。
aria-labelledby 似乎也不適用於<option>
,除非您打開下拉菜單並 select 從那里選擇選項(某些屏幕閱讀器,例如 chromevox,不允許您這樣做,因為您應該更改使用向上和向下箭頭選擇的選項)。
是否有可行的方法來實現所需的行為?
雖然根據標准演示的方式是有效的,但實際輔助技術的支持可能會有所不同。
實現這一點的唯一方法是使用可訪問的自定義 combobox確保所有元素都被實際渲染而不是替換元素。
但即使它有效,它似乎也不是很用戶友好:
因此,為了以更普遍的方式實現這一目標,我建議在每個人的選項中包含描述:
<label for="the-select">You have options</label>
<select id="the-select">
<option>Option A (This is a description for option A)</option>
<option>Option B (This is a description for option B)</option>
<option>Option C (This is a description for option C)</option>
</select>
您還可以考慮設置自定義 combobox 的樣式,並在展開的選項列表中顯示兩行 - 如果描述在折疊的 state 中也不相關。
使用 CSS、偽元素和data-
屬性可能會為折疊的 select 顯示不同的文本。
ChromeVox 相對較新,因此它對輔助功能的支持沒有得到很好的記錄或測試,並且它顯示了一些奇怪的行為,例如禁止擴展 combobox。
屏幕閱讀器的用戶通常在瀏覽器之外也需要它,因此只有 0.3% 的這些用戶使用 ChromeVox 作為他們的主要閱讀器。 Narrator 也不是很受歡迎,只有 0.5%。
根據使用數據和您的目標受眾,您可能會決定針對更流行的屏幕閱讀器進行優化,而 ChromeVox 會迎頭趕上。 常見的選擇是 JAWS、NVDA(免費)和 VoiceOver。
aria-describedby
是將錯誤消息與輸入字段相關聯的常用方法,ChromeVox 甚至不支持此屬性。
以上所有內容都為<select>
元素讀取aria-describedby
。
以上所有都允許擴展選項列表。
以上所有尊重<option aria-label="…
Orca 和 NVDA 也會閱讀<option>
元素的描述,但僅在 select 折疊時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.