[英]Make screen reader read “16” as “sixteen”
我目前有一個帶有標簽的表單元素:
<label for="number">16-digit number</label>
這是由OS X El Capitan的VoiceOver Utility讀出的,是“ 1 6位數”,但我想讀為“ 16位數” 。 這可能嗎? 如果是這樣,怎么辦?
我嘗試了以下方法:
<label for="number"><span>16</span>-digit number</label>
<label for="number"><span style="speak-numeral: continuous !important;">16</span>-digit number</label>
<label for="number"><span style="speak-as: normal !important;">16</span>-digit number</label>
<label for="number"><span style="speak-numeral: continuous !important; speak-as: normal !important;">16</span>-digit number</label>
可能還有其他我不記得的選擇。 任何建議將不勝感激。
如果有人在奮斗后發現此問題,請用一些失敗的搜索詞發表評論,以幫助其他人找到此有用信息。 謝謝。
也許:
<label for="number">
<span class="sr-only">sixteen</span>
<span aria-hidden="true">16-</span>
digit number
</label>
其中sr-only
是:
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
}
計算完標簽的替代文本(“ 16位數字 ”)后,它會盡可能考慮將16位作為單個單詞(以及某種字母數字首字母縮寫詞)進行讀取。
因此,放入label
標簽中的不同CSS指令不會產生任何效果,因為已經計算出了替代文本。
您可以使用aria-label
:
<label for="number" aria-label="16 digit number">16-digit number</label>
您也可以嘗試添加一個不可見的暫停,或某種形式的字符代替/補充連字符。 根據Voiceover計算文本的方式,以下操作可能會起作用。
<label for="number">16-­digit number</label>
<label for="number">16‐digit number</label>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.