2017-06-09 124 views
0

我試圖找到一種方法來讓Windows Narrator的NVDA等屏幕閱讀器停止讀取輸入值,並僅改爲讀取aria-describedbyARIA - 在屏幕閱讀器中跳過閱讀輸入值(NVDA/Windows)

下面是這種情況,我有一個Web組件是一個掩碼輸入字段。假設它配置了一個電話掩碼設置爲(___) ___-____,其中下劃線只能是數字。現在屏幕閱讀器會讀取left parens, 3 lines, right parens, space...等等,然後閱讀我設置爲aria-describedby的值,該值將類似於「電話號碼1231231234」,它使用我的組件的未屏蔽值。

我想要什麼,將是屏幕閱讀器,只說「電話號碼,1231231234」,這是我的aria-describedby值,並跳過其餘所以它保持短,避免可能弄得受損的用戶說的東西..

有一點背景,也許這可以改變一點響應,我的組件是用Aurelia構建的,我利用綁定系統來更新值。

這是可能的嗎?我有幾個選擇?我完全偏離了我想要實現的目標?

謝謝!

回答

0

使用這種方法保持可訪問性並不是很多。屏幕閱讀器讀取輸入字段的內容非常重要,否則當用戶鍵入一個數字時,它不會告訴他們該數字是什麼 - 同樣如果他們決定返回一個字符或轉發一個字符,價值將讀取標籤,而不是他們輸入的內容。我想你正在使用的輸入掩碼是用javascript來替換一個用戶在按鍵上提交的掩碼字符?

一般來說,最好的做法是概述標籤或與標籤相關的描述性文本中所需的輸入格式。這將使有視力的用戶能夠輕鬆地匹配所需的格式,並且還允許視覺殘疾的用戶在充分了解所需格式的情況下使用他們的鍵盤來導航輸入值。我已經把這個簡單的例子拋在一起。

<label for="textInput">Phone Number</label> 
 
<span id="phoneDesc">Please use the following format: (xxx)xxx-xxxx</span> 
 
<input id="textInput" type="text" aria-describedby="phoneDesc" />

它也可能是有幫助尋找到輸入掩碼的通用性 - 很多人往往會發現他們麻煩。 https://www.nngroup.com/articles/stop-password-masking/

如果你決定使用它們,不介意從你的「線」基於不同的方式方法,也許給politespace一試(我沒有試過,但它可能是值得評估您的需求) https://github.com/filamentgroup/politespace