[英]Pausing in a screen reader for accessibility
我一直在使用 Mac OSX 的內置屏幕閱讀器來測試我的網站,我知道它不是最好的,但它是我現在擁有的全部。 但我發現它並沒有在元素的末尾暫停……這是有道理的; 但我發現自己放置了隱藏的句點以使事情可讀:
<div class="breakdown">
<strong>35</strong> New<span class="visuallyhidden">.</span><br>
<strong>4</strong> Overdue<span class="visuallyhidden">.</span>
</div>
我覺得這樣做真的很臟,但如果我不這樣做,那么它要么破壞設計,要么在一個無法理解的連續句子中閱讀。
有沒有人有這種事情的經驗可以提供?
如果您在語義上格式化代碼,它應該可以正常工作。 從 HTML 結構的外觀來看,您正在使用<br>
標記進行展示。 這不是換行符的目的,因此不是標記的語義使用。
您特別希望每一行都是分開的,因此您應該將它們放在包裝塊級標簽中。 您可以將每一行包裝在p
或div
標簽中,然后屏幕閱讀器會正確地將它們分開。
當您希望屏幕閱讀器說出與標簽的 html 標記中包含的內容不同的內容時,我建議使用aria-label
。
我會將您的代碼更新為:
<div class="breakdown">
<span aria-label="35 New.">
<strong>35</strong> New
</span>
<br>
<span aria-label="4 Overdue.">
<strong>4</strong> Overdue
</span>
</div>
有了這個,屏幕閱讀器將在每個時間段停頓一下:
35 新。 4 逾期。
我們專門針對 ChromeVox,但這應該適用於所有屏幕閱讀器。
aria-label
想法aria-label
的目的,也是我看到它在其他項目中經常使用的方式。aria-label
字符串對於人類來說讀取/理解/編輯的速度更快。aria-label
比隱藏元素少。aria-label
查找特定字符串。 快照也會捕捉變化,但開發人員必須意識到這一點。aria-label
相比,額外的標記讓人感覺很笨拙。 如果用戶選擇屏幕上的文本並且選擇跨越隱藏元素中的內容,則在用戶執行復制命令時將復制隱藏內容,並在用戶執行粘貼命令時粘貼。 考慮到所有優點/缺點,從長遠來看,我敢打賭您會發現選擇aria-label
將提供最佳的開發人員、翻譯人員和用戶可訪問性體驗。
如果元素由同級元素的文本內容描述,請考慮使用aria-labeledby
來鏈接元素。
這個答案是在被問到 6 年后出現的……但希望它會有所幫助。
問這個問題已經有一段時間了,但值得注意的是,問題中提出的技術沒有任何問題。 我可以確認當前版本的 Jaws,Jaws 18.0,將暫停逗號或句點,這與冒號或項目符號等標記不同,這些標記是直接宣布的。 當前版本的 iOS VoiceOver 也可以很好地暫停逗號。 你的標點符號(如果它不是你設計的一部分)可以通過上面建議的僅屏幕閱讀器的 CSS隱藏,或者,在適當的情況下,aria-label 屬性可以包含暫停的標點符號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.