2010-02-08 81 views
0

如果我有一個通過AJAX更新的表單,原始值字段(如輸出到瀏覽器)與表單字段現在的內容不匹配。Jaws(和其他屏幕閱讀器)是否從輸入值屬性或屏幕上的文本中讀取?

我從一個盲人用戶那裏得知,我有時會幫助Jaws 9和後來對富互聯網應用(特別是AJAX和DOM的變化)有強大的支持,但我不確定這種支持是否會回到Jaws 7 (正如他們的發佈歷史所暗示的)。

基本上有兩個問題:

  • 如果我加載形式沒有設定的值全部爲空白,然後使用AJAX來加載在頁加載的數據(或用戶點擊一個按鈕後),大白鯊會讀取插入的值嗎?

  • 如果我通過設置值來加載表單,並通過AJAX更改這些值,讀者將讀取數值或屏幕上的內容?

我的希望是,這是一個情況下舊版本的缺陷將努力我的青睞,而且它總是讀無論是在屏幕上(在輸入字段)而忽略值。而且它希望表單值能夠改變,因此它可以讀取任何當前的內容,而不僅僅是讀取哪些內容。

但是我當然寧願知道,而不是稍後再發現。

+0

這是最好的,只是試試這個。大白鯊有自己的想法,但通常似乎遵循「什麼是DOM」與「什麼是可見的」。我們(按客戶需求)最終使用'警報和頁面刷新。 (我見過的一個「小竅門」是將內容推到一個「移出屏幕」的頁面上,以便它被大白鯊收回,但不是普通的收看者。) – 2010-02-08 23:24:50

+0

頁面刷新整個點的殺手,它呢?通過頁面外的屏幕,你的意思是打開一個新的窗口? iFrame會工作,還是更不可能? – Anthony 2010-02-08 23:42:28

回答

2

屏幕閱讀器與他們自己的接口版本進行交互 - 一個「虛擬緩衝區」。屏幕閱讀器(至少,JAWS,至少)與網頁交互實際上似乎是從DOM中讀取節點和掃描顯示在屏幕上的內容的組合。所以,我想答案是「取決於」。正如@pst所說,實際上沒有替代實際進行測試的可能性,如果可能的話,屏幕閱讀器用戶也無法取代。

您的解決方案選項看起來有點像這樣:

對於一個現代的方法來與像屏幕閱讀器輔助軟件通信,退房WAI ARIA。 Gez Lemon寫了一個好的Introduction to WAI ARIA - 非常值得花時間閱讀。

較舊的屏幕閱讀器不擅長更新虛擬緩衝區,但JAWS 7.1和更高版本爲開發人員提供了一個機制。 Gez Lemon又一次在他的博客Improving Ajax applications for JAWS users中提供幫助。如果你想更深入地研究這一點,有一些很好的背景閱讀和research by James Edwards這也值得一讀。