作用中協助工具的運作方式
Microsoft Active Accessibility 的設計目的是協助協助工具協助工具,稱為 用戶端、與其他應用程式和作業系統的標準和自訂 UI 元素互動。 Microsoft Active Accessibility 用戶端是使用 Microsoft Active Accessibility 存取、識別或操作應用程式 UI 元素的任何程式。 用戶端包括協助工具協助工具、自動化測試控管,以及一些以電腦為基礎的訓練應用程式。
使用 Microsoft Active Accessibility,用戶端應用程式可以:
- 查詢資訊;例如,關於特定位置的 UI 元素。
- 在資訊變更時接收通知;例如,當控制項變成灰色或文字字串變更時。
- 執行會影響使用者介面或檔內容的動作;例如,按一下按鈕、下拉式功能表,然後選擇功能表命令。
與 用戶端互動並提供資訊的應用程式稱為 伺服器。 伺服器會使用 Microsoft Active Accessibility 將 UI 元素的相關資訊提供給用戶端。 任何使用 Microsoft Active Accessibility 公開其使用者介面相關資訊的控制項、模組或應用程式,都會被視為 Microsoft Active Accessibility 伺服器。 伺服器會透過傳送事件通知 (來與用戶端通訊,例如呼叫NotifyWinEvent) ,並回應用戶端對 UI 元素的存取要求 (,例如處理從OLEACC) 傳送的WM_GETOBJECT訊息。 伺服器會透過 IAccessible 介面公開資訊。
使用 Microsoft Active Accessibility,伺服器應用程式可以:
- 提供其自訂使用者介面物件及其用戶端視窗內容的相關資訊。
- 當使用者介面變更時傳送通知。
例如,若要讓使用者從字處理器自訂工具列中以語音方式選取命令,語音辨識程式必須具有該工具列的相關資訊。 因此,字處理器必須讓該資訊可供使用。 Microsoft Active Accessibility 提供字處理器公開其自訂工具列的相關資訊,以及語音辨識程式取得該資訊的方法。
用戶端應用程式和作用中協助工具
當伺服器 UI 變更時,必須通知 Microsoft Active Accessibility 用戶端,才能將該資訊傳達給使用者。 為了確保用戶端收到 UI 變更的通知,它會使用稱為 Window Events 或 WinEvents 的機制來註冊以接收通知。 如需詳細資訊,請參閱 WinEvents。
若要瞭解及操作特定 UI 元素,用戶端會使用 Microsoft Active Accessibility Component Object Model (COM) 介面 IAccessible。
用戶端可以透過下列四種方式來擷取 UI 元素的 IAccessible 物件:
- 呼叫 AccessibleObjectFromWindow 並傳遞 UI 元素的視窗控制碼。
- 呼叫 AccessibleObjectFromPoint 並傳遞位於 UI 元素周框內的螢幕位置。
- 設定 WinEvent 攔截、接收通知,並呼叫 AccessibleObjectFromEvent 以擷取產生事件的 UI 元素的 IAccessible 介面指標。
- 呼叫accNavigate或get_accParent等IAccessible方法,以移至不同的IAccessible物件。