UI オートメーション イベントの概要
Note
このドキュメントは、System.Windows.Automation 名前空間で定義されているマネージド UI オートメーション クラスを使用する .NET Framework 開発者を対象としています。 UI オートメーションの最新情報については、Windows Automation API の「UI オートメーション」を参照してください。
Microsoft UI オートメーション イベント通知は、スクリーン リーダーやスクリーン拡大鏡などの支援技術にとっての重要な機能です。 これらの UI オートメーション クライアントは、UI で何かが発生したときに UI オートメーション プロバイダーが発生させるイベントを追跡し、その情報を使用してエンド ユーザーに通知します。
これらのイベントにサブスクライブしているクライアントがあるか、それともイベントをリッスンするクライアントがなく、サブスクライブしているクライアントがまったくないかに応じて、プロバイダー アプリケーションが選択的にイベントを発生させることで効率が向上します。
イベントの種類
UI オートメーションのイベントは、次のカテゴリに分類されます。
Event | 説明 |
---|---|
プロパティの変更 | UI オートメーション要素のプロパティまたはコントロール パターンが変更された場合に発生します。 たとえば、クライアントがアプリケーションのチェック ボックス コントロールの監視を必要とする場合に、 ToggleState プロパティ上のプロパティの変更イベントをリッスンするよう登録できます。 チェック ボックス コントロールがオンまたはオフになったときに、プロバイダーがイベントを発生させ、クライアントが必要なアクションを実行できます。 |
要素のアクション | UI の変更がエンド ユーザーまたはプログラムによるアクティビティに起因する場合に発生します。たとえば、ボタンがクリックされたり、InvokePattern を通じて呼び出される場合です。 |
構造の変更 | UI オートメーション ツリーの構造が変更された場合に発生します。 構造は、新しい UI 項目が表示された場合、非表示になった場合、またはデスクトップから削除された場合に変更されます。 |
グローバル デスクトップの変更 | ある要素から別の要素にフォーカスが移った場合やウィンドウが閉じられた場合など、クライアントにグローバルに関連するアクションが起こった場合に発生します。 |
イベントによっては、必ずしも UI の状態が変更されたことを意味しません。 たとえば、ユーザーが Tab キーを押して、テキスト入力フィールドに移動し、フィールドを更新するボタンをクリックした場合、ユーザーが実際にテキストを変更していない場合でも TextChangedEvent
が発生します。 イベントを処理する際、クライアント アプリケーションがアクションを起こす前に、実際に変更が行われたかどうかのチェックが必要となる場合があります。
次のイベントは、UI の状態が変更されていない場合でも発生する可能性があります。
AutomationPropertyChangedEvent
(変更されたプロパティによって変わります)ElementSelectedEvent
InvalidatedEvent
TextChangedEvent
UI オートメーション イベント識別子
Microsoft UI オートメーション イベントは AutomationEvent オブジェクトによって識別されます。 Id プロパティには、イベントの種類を一意に識別する値が含まれます。
Id に指定できる値と、イベント引数に使用する種類を次の表に示します。 クライアントとプロバイダーが使用する識別子は、異なるクラスで同じ名前のフィールドです。
UI オートメーション イベント引数
次のクラスは、イベント引数をカプセル化します。
クラス | 説明 |
---|---|
AsyncContentLoadedEventArgs | 読み込みが完了した割合など、コンテンツの非同期読み込みに関する情報を含んでいます。 |
AutomationEventArgs | 追加データを必要としない単純なイベントに関する情報を含んでいます。 |
AutomationFocusChangedEventArgs | ある要素から別の要素への入力フォーカスの変化に関する情報を含んでいます。 この種類のイベントは、プロバイダーではなく、UI オートメーション システムによって発生します。 |
AutomationPropertyChangedEventArgs | 要素のプロパティ値またはコントロール パターンの変更に関する情報を含んでいます。 |
StructureChangedEventArgs | UI オートメーション ツリーの変更に関する情報を含んでいます。 |
WindowClosedEventArgs | ウィンドウ クローズに関する情報を含んでいます。 |
すべてのイベント引数クラスには、 EventId メンバーが含まれます。 この識別子は AutomationEventにカプセル化されます。
イベントを識別するために使用する AutomationEvent オブジェクトは、 AutomationElementIdentifiers およびコントロール パターン識別子クラス ( DockPatternIdentifiersなど) のフィールドからプロバイダーによって取得されます。 等価のフィールドが、 AutomationElement およびコントロール パターン クラス ( DockPatternなど) のフィールドからクライアント アプリケーションによって取得されます。
イベント識別子の一覧については、「 UI Automation Events for Clients」を参照してください。