[英]aria-label being read when it should not screen reader : WCAG
html結構看起來像這樣
<div>
<a href="#"> some info
<div role="button" tabindex ="0"
aria-label = "close"
/>
</a>
</div>
當使用屏幕閱讀器的a
標簽得到讀“一些信息關閉”,然后重點按鈕,它再次讀取“關閉”。 所有我想要a
標簽是“一些信息”和按鈕閱讀“關閉”。 我應該做些什么改變? 我不能改變HTML結構。
jsfiddle https://jsfiddle.net/5c1oywzg/1/
你不能在另一個可聚焦元素中有一個可聚焦元素。
我應該做些什么改變 ? 我不能改變 HTML結構。
獲得HTML代碼后,很難在不更改代碼的情況下進行更改。
a[href]
鏈接看似什么按鈕 如果您可以更改HTML結構,這將是一個更好的代碼:
<div>
<button> some info</button>
<button aria-label="close" />
</div>
遺憾的是,如果您無法更改HTML結構,我們無法更改任何內容,因為您的結構本質上是格式錯誤的。
我們仍然可以使用一些hacks(例如使用javascript),例如將role=description
和tabindex=-1
到a[href]
元素,並用html button
替換“some info”,但這將違反ARIA的第二條規則 :
除非你真的需要,否則不要改變原生語義。
1.)小提琴與您上面發布的代碼不同。 對於我的回答,我使用了小提琴代碼(並為href
屬性添加了一個“缺失"
...)
2.)該按鈕是鏈接的一部分,因此其內容將作為鏈接的一部分進行讀取。 當單擊按鈕和單擊“某些信息”時,您是否真的希望(相同)鏈接同時工作? 看起來“某些信息”應該是鏈接的標簽/評論?
根據你想要的,我要么在按鈕之前關閉a
標簽,要么只將按鈕包裝到a
標簽中,用全文標記它並用aria-hidden = "true"
文本:
<div>
<a href="#">
some info
</a>
<button aria-label = "close">close</button>
</div>
要么
<div>
<span aria-hidden="true">some info</span>
<a href="#">
<button aria-label = "some info, close">close</button>
</a>
</div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.