Speech を使用した UI 要素の呼び出しUsing Speech to Invoke UI Elements

音声認識シェル (VES) は、Windows Speech プラットフォームの拡張機能であり、アプリ内でファーストクラスの音声エクスペリエンスを可能にします。これにより、ユーザーは、画面上のコントロールを呼び出したり、ディクテーションを使用してテキストを挿入したりできます。Voice Enabled Shell (VES) is an extension to the Windows Speech Platform that enables a first-class speech experience inside apps, allowing users to use speech for invoking on-screen controls and to insert text via dictation. VES は、すべての Windows シェルおよびデバイスで、エンドツーエンドの一般情報を提供します。アプリ開発者にとって最小限の労力が必要になります。VES strives to provide a common end-to-end see-it-say-it experience on all Windows Shells and devices, with minimum effort required from app developers. これを実現するために、Microsoft Speech Platform と UI Automation (UIA) フレームワークを活用しています。To achieve this, it leverages the Microsoft Speech Platform and the UI Automation (UIA) framework.

ユーザーエクスペリエンスのチュートリアルUser experience walkthrough

次に示すのは、Xbox で VES を使用する場合のユーザーエクスペリエンスの概要であり、VES の動作の詳細について説明する前に、コンテキストを設定するのに役立ちます。The following is an overview of what a user would experience when using VES on Xbox, and it should help set the context before diving into the details of how VES works.

  • ユーザーは Xbox コンソールをオンにして、アプリを参照して目的のものを見つける必要があります。User turns on the Xbox console and wants to browse through their apps to find something of interest:

    ユーザー: "Cortana、ゲームとアプリを開く"User: "Hey Cortana, open My Games and Apps"

  • ユーザーは、アクティブリスニングモード (ALM) のままになっています。これは、コンソールが、毎回 "Cortana" を知らなくても、画面上に表示されるコントロールを呼び出すことを待機していることを意味します。User is left in Active Listening Mode (ALM), meaning the console is now listening for the user to invoke a control that’s visible on the screen, without needing to say, “Hey Cortana” each time. ユーザーは、アプリの表示に切り替えて、アプリの一覧をスクロールできるようになりました。User can now switch to view apps and scroll through the app list:

    ユーザー: "アプリケーション"User: "applications"

  • ビューをスクロールするために、ユーザーは次のように簡単に表示できます。To scroll the view, user can simply say:

    ユーザー: "下へスクロール"User: "scroll down"

  • ユーザーには、関心のあるアプリケーションのボックスアートが表示されますが、名前は忘れられています。User sees the box art for the app they are interested in but forgot the name. ユーザーが音声ヒントラベルを表示するよう求められます。User asks for voice tip labels to be displayed:

    ユーザー: "ラベルの表示"User: "show labels"

  • 言うまでもありませんが、アプリを起動できます。Now that it's clear what to say, the app can be launched:

    ユーザー: "映画と TV"User: "movies and TV"

  • アクティブなリスニングモードを終了するために、ユーザーは Xbox にリッスンを停止するように指示します。To exit active listening mode, user tells Xbox to stop listening:

    ユーザー: "リッスンの停止"User: "stop listening"

  • 後で、次のようにして、新しいアクティブなリッスンセッションを開始できます。Later on, a new active listening session can be started with:

    ユーザー: "Cortana について、選択する" または "Cortana を選択してください"User: "Hey Cortana, make a selection" or "Hey Cortana, select"

UI オートメーションの依存関係UI automation dependency

VES は UI オートメーションクライアントであり、UI オートメーションプロバイダーを通じてアプリによって公開される情報に依存します。VES is a UI Automation client and relies on information exposed by the app through its UI Automation providers. これは、Windows プラットフォームのナレーター機能によって既に使用されているインフラストラクチャと同じです。This is the same infrastructure already being used by the Narrator feature on Windows platforms. UI オートメーションを使用すると、コントロールの名前、その型、実装するコントロールパターンなど、ユーザーインターフェイス要素へのプログラムによるアクセスが可能になります。UI Automation enables programmatic access to user interface elements, including the name of the control, its type and what control patterns it implements. アプリで UI が変更されると、VES は UIA update イベントに応答し、更新された UI オートメーションツリーを再解析して、この情報を使用して音声認識文法を構築し、アクション可能なすべての項目を検索します。As the UI changes in the app, VES will react to UIA update events and re-parse the updated UI Automation tree to find all the actionable items, using this information to build a speech recognition grammar.

すべての UWP アプリは UI オートメーションフレームワークにアクセスでき、UI に関する情報を、構築されたグラフィックスフレームワーク (XAML、DirectX、Direct3D、Xamarin など) に依存せずに公開できます。All UWP apps have access to the UI Automation framework and can expose information about the UI independent of which graphics framework they are built upon (XAML, DirectX/Direct3D, Xamarin, etc.). 場合によっては、XAML と同様に、大量の処理の大部分がフレームワークによって実行されるため、ナレーターと VES をサポートするために必要な作業が大幅に減少します。In some cases, like XAML, most of the heavy lifting is done by the framework, greatly reducing the work required to support Narrator and VES.

UI オートメーションの詳細については、「 Ui オートメーションの基礎」を参照してください。For more info on UI Automation see UI Automation Fundamentals.

コントロールの呼び出し名Control invocation name

VES では、コントロールの名前として音声認識エンジンに登録する語句を決定するために、次のヒューリスティックを使用します (つまり、ユーザーがコントロールを呼び出すために読み上げる必要があること)。VES employs the following heuristic for determining what phrase to register with the speech recognizer as the control’s name (ie. what the user needs to speak to invoke the control). これは、音声ヒントラベルに表示される語句でもあります。This is also the phrase that will show up in the voice tip label.

優先順位に従った名前のソース:Source of Name in order of priority:

  1. 要素に添付プロパティがある場合 LabeledBy 、VES は AutomationProperties.Name このテキストラベルのを使用します。If the element has a LabeledBy attached property, VES will use the AutomationProperties.Name of this text label.
  2. AutomationProperties.Name 要素の。AutomationProperties.Name of the element. XAML では、コントロールのテキストコンテンツがの既定値として使用され AutomationProperties.Name ます。In XAML, the text content of the control will be used as the default value for AutomationProperties.Name.
  3. コントロールが ListItem または Button の場合、VES は、有効なを持つ最初の子要素を検索し AutomationProperties.Name ます。If the control is a ListItem or Button, VES will look for the first child element with a valid AutomationProperties.Name.

アクション可能なコントロールActionable controls

VES は、次のオートメーションコントロールパターンのいずれかを実装すると、コントロールが実行可能であると見なされます。VES considers a control actionable if it implements one of the following Automation control patterns:

  • Invokepattern (例InvokePattern (eg. ボタン)-1 つの明確なアクションを開始または実行し、アクティブになったときに状態を保持しないコントロールを表します。Button)- Represents controls that initiate or perform a single, unambiguous action and do not maintain state when activated.

  • TogglePattern (例TogglePattern (eg. チェックボックス)-一連の状態を順番に切り替え、状態を一度設定したコントロールを表します。Check Box) - Represents a control that can cycle through a set of states and maintain a state once set.

  • SelectionItemPattern (例SelectionItemPattern (eg. コンボボックス)-選択可能な子項目のコレクションのコンテナーとして機能するコントロールを表します。Combo Box) - Represents a control that acts as a container for a collection of selectable child items.

  • ExpandCollapsePattern (例ExpandCollapsePattern (eg. コンボボックス)-コンテンツを表示するために視覚的に展開し、コンテンツを非表示にするために折りたたむコントロールを表します。Combo Box) - Represents controls that visually expand to display content and collapse to hide content.

  • Scrollpattern (例ScrollPattern (eg. List)-子要素のコレクションのスクロール可能なコンテナーとして機能するコントロールを表します。List) - Represents controls that act as scrollable containers for a collection of child elements.

スクロール可能なコンテナーScrollable containers

ScrollPattern をサポートするスクロール可能なコンテナーの場合、VES は、"左へスクロール"、"右にスクロール" などの音声コマンドをリッスンし、ユーザーがこれらのコマンドのいずれかをトリガーするときに、適切なパラメーターを使用してスクロールを呼び出します。For scrollable containers that support the ScrollPattern, VES will listen for voice commands like “scroll left”, “scroll right”, etc. and will invoke Scroll with the appropriate parameters when the user triggers one of these commands. Scroll コマンドは、プロパティとプロパティの値に基づいて挿入され HorizontalScrollPercent VerticalScrollPercent ます。Scroll commands are injected based on the value of the HorizontalScrollPercent and VerticalScrollPercent properties. たとえば、 HorizontalScrollPercent が0より大きい場合は、[左にスクロール] が追加され、100未満の場合は [右にスクロール] が追加されます。For instance, if HorizontalScrollPercent is greater than 0, “scroll left” will be added, if it’s less than 100, “scroll right” will be added, and so on.

ナレーターの重なりNarrator overlap

ナレーターアプリケーションは、UI オートメーションクライアントでもあり、プロパティを、 AutomationProperties.Name 現在選択されている ui 要素に対して読み取るテキストのソースの1つとして使用します。The Narrator application is also a UI Automation client and uses the AutomationProperties.Name property as one of the sources for the text it reads for the currently selected UI element. ユーザー補助機能を向上させるために、多くのアプリ開発者は、 Name ナレーターで読み取られるときにより多くの情報とコンテキストを提供することを目的として、長い説明的なテキストを使用してプロパティをオーバーロードするようにしました。To provide a better accessibility experience many app developers have resorted to overloading the Name property with long descriptive text with the goal of providing more information and context when read by Narrator. ただし、これにより、2つの機能の間で競合が発生します。 VES では、コントロールの表示テキストに一致するか、またはそれに一致する短い語句が必要です。また、ナレーターは長い時間がかかり、より適切なコンテキストを提供するためのわかりやすい語句が得られます。However, this causes a conflict between the two features: VES needs short phrases that match or closely match the visible text of the control, while Narrator benefits from longer, more descriptive phrases to give better context.

これを解決するには、Windows 10 の作成者の更新プログラムから、ナレーターが更新され、プロパティも表示されるようになりました AutomationProperties.HelpTextTo resolve this, starting with Windows 10 Creators Update, Narrator was updated to also look at the AutomationProperties.HelpText property. このプロパティが空でない場合は、に加えて、ナレーターによって内容が読み上げられ AutomationProperties.Name ます。If this property is not empty, Narrator will speak its contents in addition to AutomationProperties.Name. HelpTextが空の場合、ナレーターは名前の内容のみを読み取ります。If HelpText is empty, Narrator will only read the contents of Name. これにより、必要に応じてより長い説明的な文字列を使用できるようになりますが、プロパティにはより短い音声認識のわかりやすい語句が保持され Name ます。This will enable longer descriptive strings to be used where needed, but maintains a shorter, speech recognition friendly phrase in the Name property.

AutomationProperties.Name と Automationproperties.automationid が含まれているボタンの背後にあるコードを示す図。これは、音声対応シェルが構成名をリッスンすることを示しています。

詳細については、「 UI でユーザー補助機能をサポートするためのオートメーションプロパティ」を参照してください。For more info see Automation Properties for Accessibility Support in UI.

アクティブリスニングモード (ALM)Active Listening Mode (ALM)

ALM の入力Entering ALM

Xbox では、VES が音声入力を常にリッスンしているわけではありません。On Xbox, VES is not constantly listening for speech input. ユーザーは次のようにして、アクティブなリッスンモードに明示的に入力する必要があります。The user needs to enter Active Listening Mode explicitly by saying:

  • 「Cortana、select」、または“Hey Cortana, select”, or
  • "Cortana さん、選択してください"“Hey Cortana, make a selection”

他にもいくつかの Cortana コマンドを使用して、ユーザーが完了時にアクティブになるのを待っています。たとえば、"コルタナさん、サインイン"、"Cortana さん、帰宅しています" などです。There are several other Cortana commands that also leave the user in active listening upon completion, for example “Hey Cortana, sign in” or “Hey Cortana, go home”.

ALM を入力すると、次のようになります。Entering ALM will have the following effect:

  • Cortana オーバーレイが右上隅に表示され、ユーザーに表示される内容を伝えることができます。The Cortana overlay will be shown in the top right corner, telling the user they can say what they see. ユーザーが話している間、音声認識エンジンによって認識される語句フラグメントもこの場所に表示されます。While the user is speaking, phrase fragments that are recognized by the speech recognizer will also be shown in this location.

  • VES は、UIA ツリーを解析し、実行可能なすべてのコントロールを検索し、音声認識文法にそのテキストを登録して、継続的なリスニングセッションを開始します。VES parses the UIA tree, finds all actionable controls, registers their text in the speech recognition grammar and starts a continuous listening session.

    [ラベルの表示] オプションが強調表示されているというラベルを表示するスクリーンショット。

ALM の終了Exiting ALM

ユーザーが音声を使用して UI を操作している間、システムは ALM のままになります。The system will remain in ALM while the user is interacting with the UI using voice. ALM を終了するには、次の2つの方法があります。There are two ways to exit ALM:

  • ユーザーが明示的に "リッスンを停止する"、またはUser explicitly says, “stop listening”, or
  • ALM を入力してから17秒以内に肯定認識がない場合、または最後の肯定認識後に、タイムアウトが発生します。A timeout will occur If there isn’t a positive recognition within 17 seconds of entering ALM or since the last positive recognition

呼び出し (コントロールを)Invoking controls

ALM では、ユーザーは音声を使用して UI を操作できます。When in ALM the user can interact with the UI using voice. UI が正しく構成されている (表示されているテキストと一致する名前プロパティがある) 場合、音声を使用してアクションを実行するのはシームレスで、自然なエクスペリエンスです。If the UI is configured correctly (with Name properties matching the visible text), using voice to perform actions should be a seamless, natural experience. ユーザーは、画面に表示されている内容を簡単に読み上げることができます。The user should be able to just say what they see on the screen.

Xbox でのオーバーレイ UIOverlay UI on Xbox

VES がコントロールに対して派生する名前は、UI で実際に表示されるテキストとは異なる場合があります。The name VES derives for a control may be different than the actual visible text in the UI. これは、 Name コントロールのプロパティ、またはアタッチされた LabeledBy 要素が別の文字列に明示的に設定されていることが原因である可能性があります。This can be due to the Name property of the control or the attached LabeledBy element being explicitly set to different string. または、コントロールに GUI テキストはありませんが、icon 要素または image 要素のみが含まれています。Or, the control does not have GUI text but only an icon or image element.

このような場合、ユーザーは、このようなコントロールを呼び出すために、どのようなことが必要かを確認する方法を必要とします。In these cases, users need a way to see what needs to be said in order to invoke such a control. したがって、アクティブなリスニングでは、"ラベルを表示する" という音声ヒントを表示できます。Therefore, once in active listening, voice tips can be displayed by saying “show labels”. これにより、すべてのアクション可能なコントロールの上に音声ヒントラベルが表示されます。This causes voice tip labels to appear on top of every actionable control.

1つのラベルには100の制限があります。そのため、アプリの UI に100よりも多くのアクション可能なコントロールがある場合は、音声ヒントのラベルが表示されないものがあります。There is a limit of 100 labels, so if the app’s UI has more actionable controls than 100 there will be some that will not have voice tip labels shown. この場合、どのラベルが選択されるかは決定的ではありません。これは、UIA ツリーで最初に列挙される現在の UI の構造と構成に依存しているためです。Which labels are chosen in this case is not deterministic, as it depends on the structure and composition of the current UI as first enumerated in the UIA tree.

音声ヒントのラベルを表示した後は、非表示にするコマンドがないため、次のいずれかのイベントが発生するまで表示されたままになります。Once voice tip labels are shown there is no command to hide them, they will remain visible until one of the following events occur:

  • ユーザーがコントロールを呼び出すuser invokes a control
  • ユーザーが現在のシーンから移動するuser navigates away from the current scene
  • ユーザーは "リッスンを停止する"user says, “stop listening”
  • アクティブなリッスンモードのタイムアウトactive listening mode times out

音声ヒントラベルの場所Location of voice tip labels

音声ヒントラベルは、コントロールの BoundingRectangle 内で水平方向および垂直方向に中央揃えで配置されます。Voice tip labels are horizontally and vertically centered within the control’s BoundingRectangle. コントロールが小さく、緊密にグループ化されていると、ラベルが重なったり、他のユーザーによって隠されたりする可能性があります。 VES は、これらのラベルを分割し、それらが表示されるようにします。When controls are small and tightly grouped, the labels can overlap/become obscured by others and VES will try to push these labels apart to separate them and ensure they are visible. ただし、これは100% の時間にわたって動作することは保証されていません。However, this is not guaranteed to work 100% of the time. 非常に混雑している UI がある場合は、一部のラベルが他のユーザーによって隠されている可能性があります。If there is a very crowded UI, it will likely result in some labels being obscured by others. "ラベルの表示" を使用して UI を確認し、音声ヒントを表示するための十分な領域があることを確認してください。Please review your UI with “show labels” to ensure there is adequate room for voice tip visibility.

コントロールの外接する四角形内で水平方向および垂直方向に配置される、音声ヒントラベルのスクリーンショット。

コンボボックスCombo boxes

コンボボックスが展開されると、コンボボックス内の個々の項目が独自の音声ヒントラベルを取得し、多くの場合、ドロップダウンリストの背後にある既存のコントロールの上に表示されます。When a combo box is expanded each individual item in the combo box gets its own voice tip label and often these will be on top of existing controls behind drop down list. コンボボックスが展開されているときに、その子項目のラベルだけが表示されるようにするには、(コンボボックスの項目ラベルがコンボボックスの背後にあるコントロールのラベルと混在している) muddle のラベルを表示しないようにします。 その他のすべての音声ヒントラベルは非表示になります。To avoid presenting a cluttered and confusing muddle of labels (where combo box item labels are intermixed with the labels of controls behind the combo box) when a combo box is expanded only the labels for its child items will be shown; all other voice tip labels will be hidden. ユーザーは、ドロップダウン項目のいずれかを選択するか、コンボボックスを閉じることができます。The user can then either select one of the drop-down items or “close” the combo box.

  • 折りたたまれたコンボボックスのラベル:Labels on collapsed combo boxes:

    折りたたまれたコンボボックスにラベルが表示された [ディスプレイとサウンド] ビデオ出力ウィンドウのスクリーンショット。

  • 展開されたコンボボックスのラベル:Labels on expanded combo box:

    展開されたコンボボックスにラベルが表示された [ディスプレイとサウンド] ビデオ出力ウィンドウのスクリーンショット。

スクロール可能なコントロールScrollable controls

スクロール可能なコントロールの場合、スクロールコマンドの音声ヒントは、コントロールの各端の中央に配置されます。For scrollable controls, the voice tips for the scroll commands will be centered on each of the edges of the control. 音声ヒントは、実行可能なスクロール方向に対してのみ表示されます。たとえば、垂直スクロールが使用できない場合、"上へスクロール" と "下へスクロール" が表示されません。Voice tips will only be shown for the scroll directions that are actionable, so for example if vertical scrolling is not available, “scroll up” and “scroll down” will not be shown. 複数のスクロール可能な領域が存在する場合、VES は序数を使用してそれらを区別します (例として、When multiple scrollable regions are present VES will use ordinals to differentiate between them (eg. "Right 1"、"Scroll right 2" など)。“Scroll right 1”, “Scroll right 2”, etc.).

水平スクロール U I に対して、左にスクロールして、右にスクロールするためのスクリーンショット。

曖昧性の除去Disambiguation

複数の UI 要素に同じ名前が付けられている場合、または音声認識エンジンが複数の候補に一致した場合、VES は非不明瞭モードになります。When multiple UI elements have the same Name, or the speech recognizer matched multiple candidates, VES will enter disambiguation mode. このモードでは、ユーザーが適切な要素を選択できるように、関連する要素に対して音声ヒントラベルが表示されます。In this mode voice tip labels will be shown for the elements involved so that the user can select the right one. ユーザーは、"キャンセル" という指示によって非不明瞭モードを取り消すことができます。The user can cancel out of disambiguation mode by saying "cancel".

次に例を示します。For example:

  • アクティブなリスニングモードで、あいまいさを解消する前。ユーザーは、「あいまいな」と言っています。In Active Listening Mode, before disambiguation; user says, "Am I Ambiguous":

    アクティブなリスニングモードのスクリーンショットは、表示されているオプションと、ボタンにラベルが表示されていないことを示すことができるようになりました。

  • 両方のボタンが一致しました。非不明瞭の開始:Both buttons matched; disambiguation started:

    オプションが表示されているアクティブなリスニングモードのスクリーンショット、および項目1と項目2のラベルがボタンに表示されます。

  • "選択 2" が選択されたときのクリックアクションの表示:Showing click action when "Select 2" was chosen:

    アクティブなリスニングモードのスクリーンショットは、表示されているオプションと、最初のボタンのラベルがあいまいであることを言うことができます。

サンプル UISample UI

XAML ベースの UI の例を次に示します。さまざまな方法で AutomationProperties.Name を設定します。Here’s an example of a XAML based UI, setting the AutomationProperties.Name in various ways:

<Page
    x:Class="VESSampleCSharp.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:VESSampleCSharp"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Button x:Name="button1" Content="Hello World" HorizontalAlignment="Left" Margin="44,56,0,0" VerticalAlignment="Top"/>
        <Button x:Name="button2" AutomationProperties.Name="Launch Game" Content="Launch" HorizontalAlignment="Left" Margin="44,106,0,0" VerticalAlignment="Top" Width="99"/>
        <TextBlock AutomationProperties.Name="Day of Week" x:Name="label1" HorizontalAlignment="Left" Height="22" Margin="168,62,0,0" TextWrapping="Wrap" Text="Select Day of Week:" VerticalAlignment="Top" Width="137"/>
        <ComboBox AutomationProperties.LabeledBy="{Binding ElementName=label1}" x:Name="comboBox" HorizontalAlignment="Left" Margin="310,57,0,0" VerticalAlignment="Top" Width="120">
            <ComboBoxItem Content="Monday" IsSelected="True"/>
            <ComboBoxItem Content="Tuesday"/>
            <ComboBoxItem Content="Wednesday"/>
            <ComboBoxItem Content="Thursday"/>
            <ComboBoxItem Content="Friday"/>
            <ComboBoxItem Content="Saturday"/>
            <ComboBoxItem Content="Sunday"/>
        </ComboBox>
        <Button x:Name="button3" HorizontalAlignment="Left" Margin="44,156,0,0" VerticalAlignment="Top" Width="213">
            <Grid>
                <TextBlock AutomationProperties.Name="Accept">Accept Offer</TextBlock>
                <TextBlock Margin="0,25,0,0" Foreground="#FF5A5A5A">Exclusive offer just for you</TextBlock>
            </Grid>
        </Button>
    </Grid>
</Page>

上記のサンプルを使用すると、UI は、音声ヒントラベルの有無にかかわらず、次のようになります。Using the above sample here is what the UI will look like with and without voice tip labels.

  • アクティブなリスニングモードでは、ラベルは表示されません。In Active Listening Mode, without labels shown:

    [ラベルの表示] オプションが表示されていて、ラベルが表示されていない、アクティブなリスニングモードのスクリーンショット。ラベルを表示します。

  • アクティブなリスニングモードでは、ユーザーは "ラベルの表示" を実行します。In Active Listening Mode, after user says "show labels":

    を使用したアクティブなリスニングモードのスクリーンショット。完了したら、[リッスンを停止する] オプションが表示され、ラベルが U I コントロールに表示されます。

の場合 button1 、XAML は、 AutomationProperties.Name コントロールの表示テキストコンテンツのテキストを使用してプロパティを自動設定します。In the case of button1, XAML auto populates the AutomationProperties.Name property using text from the control’s visible text content. このため、明示的なセットがない場合でも、音声ヒントラベルがあり AutomationProperties.Name ます。This is why there is a voice tip label even though there isn't an explicit AutomationProperties.Name set.

button2 は、を AutomationProperties.Name コントロールのテキスト以外のものに明示的に設定します。With button2, we explicitly set the AutomationProperties.Name to something other than the text of the control.

では comboBox 、プロパティを使用し LabeledBy label1 てオートメーションのソースとしてを参照 Name して label1 います。また、は、 AutomationProperties.Name 画面に表示されるものよりも自然な語句に設定されています ("曜日の選択" ではなく "曜日")。With comboBox, we used the LabeledBy property to reference label1 as the source of the automation Name, and in label1 we set the AutomationProperties.Name to a more natural phrase than what is rendered on screen (“Day of Week” rather than “Select Day of Week”).

最後に、では、が button3 Name button3 設定されていないため、VES は最初の子要素からを取得し AutomationProperties.Name ます。Finally, with button3, VES grabs the Name from the first child element since button3 itself does not have an AutomationProperties.Name set.

参照See also