2009-08-10 30 views
4

我的一位同事在他的一個項目中遇到了問題。由於缺乏屏幕閱讀器和技術方面的經驗,我無法爲他提供幫助,於是我轉向你,SO用戶的驕傲和強大。與屏幕閱讀器(例如大白鯊)的可訪問性

TLDR的總結: 我們在UpdatePanels中的網格不適用於屏幕閱讀器。可能是AJAX工具包的東西?

任何人都可以幫助或提供有關下一步可能採取的措施的建議嗎?

下面是我從我的同事收到(強調的是我的,不是他的,希望能改善可掃描):


我目前無障礙 工作,我遇到了一些問題當它 來到頁面使用Ajax。我使用 屏幕閱讀器來測試頁面的 可訪問性。屏幕閱讀器 嘗試識別或解釋 什麼顯示在屏幕上 藉助音頻 (文本到語音),然後將 信息傳輸給用戶。這對 非常有用,對於盲人, 視力受損,文盲或 學習障礙。以下是關於屏幕閱讀器如何工作的摘要。 屏幕閱讀器拍攝網頁的 的快照,並將內容置於 中的虛擬緩衝區。屏幕閱讀器 使用虛擬緩衝區允許用戶瀏覽內容。 如果內容用 腳本更改,那麼這需要將 中繼到屏幕閱讀器。如果沒有 一種機制來發現什麼 改變,屏幕閱讀器用戶可能 不被通知的內容已經 改變過,或者只通知 內容已被更改,但 將需要讀取整個 文檔發現確切地有 已更改。 爲了測試,我使用了兩個 類型的屏幕閱讀器,Access To Go 3.0.76和Jaws 10.0。

我的發現,同時測試了該 的頁面有更新面板內一個gridview ,例如典型的 搜索頁面,屏幕 讀者會讀,按照往常一樣,所有 的 搜索前的頁面信息(搜索標準)。按 按下搜索按鈕,我們的 gridview包含列標題 和結果集生成。 屏幕閱讀器沒有得到 信息,通知它 新內容已被寫入 頁面,因此聽到沉默。一個 技術已經建議由 微軟員工,涉及 插入 更新面板內隱藏的iframe將觸發 屏幕閱讀器導航到 更新的內容和閱讀。網站 網站說明如何僅通過 UpdatePanel控件實現 可訪問性。我已經測試了這種技術,並且沒有成功地使它工作 。它呈現一個iframe,但 屏幕閱讀器仍然不知道該頁面的更新 。

我們AjaxControlToolKit版本 1.0.11119.0,不提供ARIA(無障礙富互聯網應用程序 )住區域的標記。 Live 區域指示可能發生內容更改 而沒有重點的元素,並提供有關如何處理這些內容更新的技術信息 。 W3C的 建議如何 組織頁面內容語義, 基本上給人一種角色,每個頁面上的 元素,以便輔助 技術能夠傳達 適當的信息提供給用戶。 我不確定這暗示了 我們在技術上的位置。

回答

1

AJAX網頁是不是屏幕閱讀器,至少對大白鯊的一個問題,那就是大約2年前(我開發了一些網絡應用可以與許多Ajax與大白鯊偉大的工作)。

無論如何,你應該使用良好的屏幕CSS佈局和HTML錨點以獲得更好的可訪問性(title,alt,tabindex,label)。

無論如何,如果您真的擔心可訪問性,您應該通過iframe加載所有內容並使用回調來更新父級(使用iframe內容更新父級容器DIV的小標記<script>)。也看看PORK.Iframe(http://schizofreend.nl/Pork.Iframe)。

編輯:有好東西有:Sitepoint article about AJAX and screenreaders

+0

感謝您的帖子艾德里安!我將把這件事傳遞給我的同事,讓他在他的項目中嘗試一下,希望能夠解決這個問題。我會告訴你! – 2009-08-11 12:10:06

+1

看起來iframe和腳本解決方案在我們的例子中沒有解決。網格導致UpdatePanel拒絕被識別。 我們正在研究一種顯示我們的結果而不使用UpdatePanel的替代解決方案。如果這個工作,我會張貼這個答案。 – 2009-08-27 12:33:15

1

嗯,這完全取決於你想給用戶更新的優先級,記住這一點,你不做出最終屏幕閱讀器更加詳細,您可能需要瀏覽ARIA直播區域,根據優先級別,您可以將更新標記爲poliyte atomic或assertive。

相關問題