摘要Active Accessibility推出的目標是方便身患殘疾的人士使用電腦——可 用於放大器、螢幕助讀程式,以及觸覺型滑鼠。它還可用來開發驅動其它軟體的應用程式,最 後,其類比使用者輸入的能力尤其適合測試軟體的開發。
本文從Active Accessibility 的 基本概念出發,帶你領略一個測試應用程式軟體的開發過程。你將會看到這個測試程式是如 何與常用的控制項以及其它UI元素互動,並處理隨後的WinEvents的。
Microsoft® Active Accessibility®是一種相對較新的技術(1.0版在1997年5月份推出),它通過提 供一種從任意UI元素提取資訊的有效方法,實現了對UI元素的程式式訪問。有了這種功能 ,程式員就能獲得有關UI元素的資訊從而與之完成互動。例如,你可以從程式裡按下一個按 鈕,從一個列表中選擇一項,或者拉下一個組合框。最初,這種技術是為了方便缺陷人群使 用軟體(例如視力很差的人),而實際上它得到了更為廣泛的應用,例如放大器,螢幕閱讀 器,以及觸覺型滑鼠。
Active Accessibility可以運行於Windows98®和 Windows2000®。為了在Windows95®(英文版)和windows NT4.0®(Service Pack 6及其以上)下使用,你可以安裝Active Accessibility RDK和SDK,它們可以從下面的 網站下載:http://msdn.microsoft.com/isapi/gomscom.asp?TARGET=/enable/msaa/.
有關Active Accessibility的其它資訊,也可以在此網站找到。
Active Accessibility的實質使得它非常適用於設計驅動其它軟體產品的程式。一類能夠很好的利用 Active Accessibility的程式是測試程式。另一類可能是執行一系列使用者定義的響應UI元素 狀態確認的鍵盤和滑鼠輸入的程式——例如,一個使得Windows Media™播 放器自動響應“Windows Media Player Error”訊息,從而不間斷的嘗試串連到 一個繁忙的伺服器的程式,這種自動響應包括關閉這個對話方塊,單擊適當的菜單而繼續中斷 的串連過程。
有兩種Active Accessibility有關的程式:相容Active Accessibility 的程式,操縱它們的工具。本文研究後一類型:開發Active Accessibility工具去控制其它 軟體產品。作為重點,我將集中討論測試程式的開發。這些不僅是有用的,而且它們展示了 Active Accessibility的幾乎所有特性。
Active Accessibility基礎
Active Accessibility的主要思想是提供以編製程式方式訪問UI元素以得到這些元素資訊的功能。稱 支援這種功能的UI元素是可訪問的。在大多數情況下,這意味著一個UI元素支援Iaccessible 介面。你也可以說在Active Accessibility的世界裡,一個可訪問的UI元素可表示為 Iaccessible介面。
每當你需要有關一個元素的資訊,在其上執行一個動作,或者使 用Active Accessibility做其它的什麼,你只需要通過使用代表這個元素的Iaccessible介面 的一種方法或者屬性來引用這個元素。後面,我將說明一個Iaccessible介面/子 ID對如何表 示一個UI元素。現在,我們暫時集中討論Iaccessible介面。
有幾種方法取得代表一 個可訪問UI元素的Iaccessible介面的指標。最普通的方法是使用Active Accessibility提供 的一種函數,例如AccessibleObjectFromPoint, AccessibleObjectFromWindow等等,或者 使用Iaccessible支援的方法,例如get_accChild,get_accParent。這些功能和方法將在後 面詳細描述。
Iaccessible介面支援允許你得到各UI元素資訊的屬性,而其中對於測 試軟體最重要的屬性是名字、角色和狀態。它們大多數將通過例子加以描述。讓我們來看一 下Windows NT 4.0 Windows Explorer Find:所有的檔案對話方塊顯示在圖1中,包括一個標示 為“Look in:”的組合列表框,它的名字是Look in:,角色是combobox,狀態是 可見。UI元素的狀態反映了元素的目前狀態。
Figure 1 The IAccessible Example