UI オートメーション イベントの概要

Microsoft UI オートメーション イベント通知は、スクリーン リーダーやスクリーン 拡大鏡などの支援技術の重要な機能です。 これらの UI オートメーション クライアントは、UI で何かが発生したときに UI オートメーション プロバイダーが発生させるイベントを追跡し、その情報を使用してエンド ユーザーに通知します。

これらのイベントにサブスクライブしているクライアントがあるか、それともイベントをリッスンするクライアントがなく、サブスクライブしているクライアントがまったくないかに応じて、プロバイダー アプリケーションが選択的にイベントを発生させることで効率が向上します。

UI オートメーションのイベントは、次のカテゴリに分類されます。

イベント カテゴリ 説明
プロパティの変更 UI オートメーション要素またはコントロール パターンのプロパティが変更されたときに発生します。 たとえば、クライアントがアプリケーション チェック ボックス コントロールを監視する必要がある場合、IUIAutomationTogglePattern::CurrentToggleState プロパティのプロパティ変更イベントをリッスンするように登録できます。 チェック ボックス コントロールがオンまたはオフになったときに、プロバイダーがイベントを発生させ、クライアントが必要なアクションを実行できます。
要素のアクション IUIAutomationInvokePattern を使用してボタンがクリックまたは呼び出された場合など、UI の変更がエンド ユーザーまたはプログラムのアクティビティの結果として発生する場合に発生します。
構造の変更 UI オートメーション ツリーの構造が変更された場合に発生します。 構造は、新しい UI 項目が表示された場合、非表示になった場合、またはデスクトップから削除された場合に変更されます。
グローバル デスクトップの変更 ある要素から別の要素にフォーカスが移った場合やウィンドウが閉じられた場合など、クライアントにグローバルに関連するアクションが起こった場合に発生します。
Notification アプリが UiaRaiseNotificationEvent 関数を呼び出したときに発生します。 NotificationKind は 、通知の種類を示します。

 

イベントによっては、必ずしも UI の状態が変更されたことを意味しません。 たとえば、ユーザーがテキスト入力フィールドにタブを移動し、ボタンをクリックしてフィールドを更新すると、ユーザーが実際にテキストを変更しなかった場合でも、 UIA_Text_TextChangedEventId イベントが発生します。 イベントを処理する際、クライアント アプリケーションがアクションを起こす前に、実際に変更が行われたかどうかのチェックが必要となる場合があります。

次のイベントは、UI の状態が変更されていない場合でも発生する可能性があります。

すべてのUI オートメーションイベントの説明については、「イベント識別子」を参照してください。

UI オートメーション イベントのサブスクライブ