Verwenden von Sprache zum Aufrufen von UI-ElementenUsing Speech to Invoke UI Elements

Voice-aktivierte Shell (VES) ist eine Erweiterung der Windows-Sprachplattform, die eine erstklassige Sprachdarstellung innerhalb von apps ermöglicht, sodass Benutzersprache zum Aufrufen von Bildschirm Steuerelementen und zum Einfügen von Text per Diktat verwenden können.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 ist bestrebt, eine gängige End-to-End-See-it-IT-Darstellung für alle Windows-Shells und-Geräte zu bieten, wobei der minimale Aufwand für App-Entwickler erforderlich ist.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. Um dies zu erreichen, nutzt es die Microsoft Speech Platform und das UI Automation-Framework (UIA).To achieve this, it leverages the Microsoft Speech Platform and the UI Automation (UIA) framework.

Exemplarische Vorgehensweise zur Benutzer DarstellungUser experience walkthrough

Im folgenden finden Sie eine Übersicht über die Möglichkeiten eines Benutzers bei der Verwendung von VES auf Xbox. Außerdem sollte er den Kontext vor dem Einstieg in die Details zur Funktionsweise von ven unterstützen.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.

  • Der Benutzer schaltet die Xbox-Konsole ein und möchte seine apps durchsuchen, um etwas Interessantes zu finden:User turns on the Xbox console and wants to browse through their apps to find something of interest:

    Benutzer: "Hallo Cortana, meine Spiele und apps öffnen"User: "Hey Cortana, open My Games and Apps"

  • Der Benutzer befindet sich im aktiven Lesemodus (ALM), was bedeutet, dass die Konsole jetzt den Benutzer abhört, ein Steuerelement aufzurufen, das auf dem Bildschirm sichtbar ist, ohne dass Sie jedes Mal "Hey Cortana" sagen müssen.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. Der Benutzer kann jetzt zum Anzeigen von apps wechseln und in der APP-Liste einen Bildlauf durchführenUser can now switch to view apps and scroll through the app list:

    Benutzer: "Anwendungen"User: "applications"

  • Zum Scrollen der Ansicht kann der Benutzer einfach Folgendes sagen:To scroll the view, user can simply say:

    Benutzer: "Scrollen nach unten"User: "scroll down"

  • Der Benutzer sieht die Box-Art für die APP, an der er interessiert ist, aber den Namen vergessen hat.User sees the box art for the app they are interested in but forgot the name. Der Benutzer fordert die Anzeige von sprach Tipp Bezeichnungen an:User asks for voice tip labels to be displayed:

    Benutzer: "Bezeichnungen anzeigen"User: "show labels"

  • Nun ist klar, was Sie sagen können: die APP kann gestartet werden:Now that it's clear what to say, the app can be launched:

    Benutzer: "Filme und TV"User: "movies and TV"

  • Um den Modus für aktive Überwachung zu beenden, teilt der Benutzer der Xbox mit, das lauschen anzuhaltenTo exit active listening mode, user tells Xbox to stop listening:

    Benutzer: "lauschen nicht mehr"User: "stop listening"

  • Später kann eine neue aktive Überwachungs Sitzung mit folgenden Aktionen gestartet werden:Later on, a new active listening session can be started with:

    Benutzer: "Hey Cortana, Make a selection" oder "Hey Cortana, Select"User: "Hey Cortana, make a selection" or "Hey Cortana, select"

UI-Automatisierungs AbhängigkeitUI automation dependency

VES ist ein Benutzeroberflächenautomatisierungs-Client und basiert auf Informationen, die von der APP über seine Benutzeroberflächenautomatisierungs-Anbieter verfügbar gemachtVES is a UI Automation client and relies on information exposed by the app through its UI Automation providers. Dies ist die gleiche Infrastruktur, die bereits von der Funktion "Sprachausgabe" auf Windows-Plattformen verwendet wird.This is the same infrastructure already being used by the Narrator feature on Windows platforms. Die Benutzeroberflächen Automatisierung ermöglicht den programmgesteuerten Zugriff auf Benutzeroberflächen Elemente, einschließlich des Namens des Steuer Elements, seines Typs und der von ihm implementierten Steuerelement Muster.UI Automation enables programmatic access to user interface elements, including the name of the control, its type and what control patterns it implements. Wenn sich die Benutzeroberfläche in der app ändert, reagiert VES auf UIA-Aktualisierungs Ereignisse und analysiert die aktualisierte Benutzeroberflächenautomatisierungs-Struktur erneut, um alle umsetzbaren Elemente zu finden. diese Informationen werden verwendet, um eine sprach Erkennungs Grammatik zu erstellen.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.

Alle UWP-apps haben Zugriff auf das Benutzeroberflächenautomatisierungs-Framework und können Informationen über die Benutzeroberfläche unabhängig von dem Grafik Framework verfügbar machen, auf dem Sie basieren (XAML, DirectX/Direct3D, xamarin usw.).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.). In einigen Fällen, wie z. b. XAML, erfolgt der größte Teil der Arbeit durch das FrameworkIn some cases, like XAML, most of the heavy lifting is done by the framework, greatly reducing the work required to support Narrator and VES.

Weitere Informationen zur Benutzeroberflächen Automatisierung finden Sie unter Grundlagen der Benutzeroberflächen Automatisierung.For more info on UI Automation see UI Automation Fundamentals.

Name des Steuerungs aufnamensControl invocation name

Ves verwendet die folgende heuristische, um zu bestimmen, welcher Ausdruck mit der Spracherkennung als Name des Steuer Elements registriert werden soll (d. h., was der Benutzer zum Aufrufen des Steuer Elements sprechen muss).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). Dies ist auch der Ausdruck, der in der Sprech Tip Bezeichnung angezeigt wird.This is also the phrase that will show up in the voice tip label.

Quelle des Namens in der Prioritäts Reihenfolge:Source of Name in order of priority:

  1. Wenn das Element über eine LabeledBy angefügte Eigenschaft verfügt, verwendet Ves den AutomationProperties.Name dieser Text Bezeichnung.If the element has a LabeledBy attached property, VES will use the AutomationProperties.Name of this text label.
  2. AutomationProperties.Name des-Elements.AutomationProperties.Name of the element. In XAML wird der Text Inhalt des-Steuer Elements als Standardwert für verwendet AutomationProperties.Name .In XAML, the text content of the control will be used as the default value for AutomationProperties.Name.
  3. Wenn das Steuerelement ein ListItem oder eine Schaltfläche ist, sucht Ves nach dem ersten untergeordneten Element mit einem gültigen AutomationProperties.Name .If the control is a ListItem or Button, VES will look for the first child element with a valid AutomationProperties.Name.

Handlungsfähige SteuerelementeActionable controls

Ves betrachtet, dass ein Steuerelement handlungsfähig ist, wenn eines der folgenden Automatisierungs Steuerelement Muster implementiert wird:VES considers a control actionable if it implements one of the following Automation control patterns:

  • InvokePattern (z. b.InvokePattern (eg. Button): stellt Steuerelemente dar, die eine einzelne, eindeutige Aktion initiieren oder ausführen und den Zustand bei der Aktivierung nicht beibehalten.Button)- Represents controls that initiate or perform a single, unambiguous action and do not maintain state when activated.

  • TogglePattern (z. b.TogglePattern (eg. Kontrollkästchen): stellt ein Steuerelement dar, das eine Reihe von Zuständen durchlaufen und einen Zustand beibehalten kann, sobald er festgelegt ist.Check Box) - Represents a control that can cycle through a set of states and maintain a state once set.

  • SelectionItemPattern (z. b.SelectionItemPattern (eg. Kombinations Feld): stellt ein Steuerelement dar, das als Container für eine Auflistung von auswählbaren untergeordneten Elementen fungiert.Combo Box) - Represents a control that acts as a container for a collection of selectable child items.

  • Expandredusepattern (z. b.ExpandCollapsePattern (eg. Kombinations Feld): stellt Steuerelemente dar, die visuell erweitert werden, um Inhalt anzuzeigen und zu reduzieren, um Inhalt auszublendenCombo Box) - Represents controls that visually expand to display content and collapse to hide content.

  • ScrollPattern (z. b.ScrollPattern (eg. List): stellt Steuerelemente dar, die als scrollbare Container für eine Auflistung von untergeordneten Elementen fungieren.List) - Represents controls that act as scrollable containers for a collection of child elements.

Scrollbare ContainerScrollable containers

Für Bild lauffähige Container, die das ScrollPattern unterstützen, lauscht VES auf Sprachbefehle wie "Scroll Left", "Scroll right" usw. und führt einen Bildlauf mit den entsprechenden Parametern aus, wenn der Benutzer einen dieser Befehle auslöst.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. Scrollbefehle werden basierend auf dem Wert der HorizontalScrollPercent Eigenschaften und eingefügt VerticalScrollPercent .Scroll commands are injected based on the value of the HorizontalScrollPercent and VerticalScrollPercent properties. Wenn beispielsweise HorizontalScrollPercent größer als 0 ist, wird "Scroll Left" hinzugefügt, wenn es kleiner als 100 ist, "Scroll right" hinzugefügt wird usw.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.

Sprachausgabe ÜberlappungNarrator overlap

Die Sprachausgabe Anwendung ist auch ein Benutzeroberflächenautomatisierungs-Client und verwendet die- AutomationProperties.Name Eigenschaft als eine der Quellen für den Text, den Sie für das aktuell ausgewählte UI-Element liest.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. Um eine bessere Barrierefreiheits Funktion bereitzustellen, haben viele App-Entwickler die- Name Eigenschaft mit langem beschreibenden Text überladen, der beim Lesen durch die Sprachausgabe Weitere Informationen und Kontext bereitstellt.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. Dies verursacht jedoch einen Konflikt zwischen den beiden Features: Ves benötigt kurze Ausdrücke, die mit dem sichtbaren Text des Steuer Elements übereinstimmen oder genau übereinstimmen, während die Sprachausgabe von längeren, aussagekräftigeren Ausdrücken profitiert, um einen besseren Kontext zu bieten.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.

Um dieses Problem zu beheben, wurde mit Windows 10 Creators Update die Sprachausgabe aktualisiert, um auch die-Eigenschaft zu überprüfen AutomationProperties.HelpText .To resolve this, starting with Windows 10 Creators Update, Narrator was updated to also look at the AutomationProperties.HelpText property. Wenn diese Eigenschaft nicht leer ist, wird der Inhalt von der Sprachausgabe zusätzlich zu gesprochen AutomationProperties.Name .If this property is not empty, Narrator will speak its contents in addition to AutomationProperties.Name. Wenn HelpText leer ist, liest die Sprachausgabe nur den Inhalt des Namens.If HelpText is empty, Narrator will only read the contents of Name. Dies ermöglicht es, dass bei Bedarf längere beschreibende Zeichen folgen verwendet werden, behält aber einen kürzeren Ausdrucks Erkennungs Ausdruck in der- Name Eigenschaft bei.This will enable longer descriptive strings to be used where needed, but maintains a shorter, speech recognition friendly phrase in the Name property.

Ein Diagramm, das den Code hinter der Schaltfläche mit AutomationProperties.Name und AutomationProperties. HelpText anzeigt, die anzeigt, dass die Voice-aktivierte Shell auf den Namen "configure" lauscht.

Weitere Informationen finden Sie unter Automatisierungs Eigenschaften für die Barrierefreiheits Unterstützung in der Benutzeroberfläche.For more info see Automation Properties for Accessibility Support in UI.

Aktiver Überwachungsmodus (ALM)Active Listening Mode (ALM)

Wechseln in AlmEntering ALM

Auf der Xbox lauscht VES nicht ständig auf Spracheingaben.On Xbox, VES is not constantly listening for speech input. Der Benutzer muss den aktiven Lesemodus explizit eingeben, indem er Folgendes sagt:The user needs to enter Active Listening Mode explicitly by saying:

  • "Hallo Cortana, Select" oder“Hey Cortana, select”, or
  • "Hallo Cortana, treffen Sie eine Auswahl"“Hey Cortana, make a selection”

Es gibt mehrere andere Cortana-Befehle, die den Benutzer auch aktiv überwachen, wenn der Abschluss abgeschlossen ist, z. b. "Hey Cortana, Sign in" oder "Hey Cortana, Go Home".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”.

Die Eingabe von Alm hat die folgenden Auswirkungen:Entering ALM will have the following effect:

  • Die Cortana-Überlagerung wird in der oberen rechten Ecke angezeigt, und der Benutzer wird darüber informiert, was Sie sehen.The Cortana overlay will be shown in the top right corner, telling the user they can say what they see. Während der Benutzer spricht, werden auch Ausdrucks Fragmente, die von der Spracherkennung erkannt werden, an dieser Stelle angezeigt.While the user is speaking, phrase fragments that are recognized by the speech recognizer will also be shown in this location.

  • Ves analysiert die UIA-Struktur, sucht alle handlungsfähigen Steuerelemente, registriert Ihren Text in der sprach Erkennungs Grammatik und startet eine fortlaufende Überwachungs Sitzung.VES parses the UIA tree, finds all actionable controls, registers their text in the speech recognition grammar and starts a continuous listening session.

    Screenshot mit der markierten Option "Bezeichnungen anzeigen" hervorgehoben.

Alm wird beendetExiting ALM

Das System bleibt in Alm, während der Benutzer mit der Benutzeroberfläche über die Stimme interagiert.The system will remain in ALM while the user is interacting with the UI using voice. Es gibt zwei Möglichkeiten, Alm zu beenden:There are two ways to exit ALM:

  • Der Benutzer hat explizit Folgendes gesagt: "lauschen Abbrechen", oderUser explicitly says, “stop listening”, or
  • Ein Timeout tritt auf, wenn innerhalb von 17 Sekunden nach der Aktivierung von Alm oder seit der letzten positiven Erkennung keine positive Kennung vorhanden ist.A timeout will occur If there isn’t a positive recognition within 17 seconds of entering ALM or since the last positive recognition

Aufrufen von SteuerelementenInvoking controls

In Alm kann der Benutzer mithilfe von Voice mit der Benutzeroberfläche interagieren.When in ALM the user can interact with the UI using voice. Wenn die Benutzeroberfläche ordnungsgemäß konfiguriert ist (mit namens Eigenschaften, die mit dem sichtbaren Text übereinstimmen), sollte die Verwendung von Voice zum Ausführen von Aktionen eine nahtlose, natürliche Oberfläche seinIf the UI is configured correctly (with Name properties matching the visible text), using voice to perform actions should be a seamless, natural experience. Der Benutzer sollte in der Lage sein, nur zu sagen, was er auf dem Bildschirm angezeigt wird.The user should be able to just say what they see on the screen.

Overlay-Benutzeroberfläche auf XboxOverlay UI on Xbox

Der Name des-Steuer Elements, das für ein Steuerelement abgeleitet ist, kann sich von dem tatsächlich sichtbaren Text in der BenutzeroberflächeThe name VES derives for a control may be different than the actual visible text in the UI. Dies kann darauf zurückzuführen sein, dass die- Name Eigenschaft des Steuer Elements oder das angefügte LabeledBy Element explizit auf eine andere Zeichenfolge festgelegt wird.This can be due to the Name property of the control or the attached LabeledBy element being explicitly set to different string. Oder das Steuerelement verfügt über keinen GUI-Text, sondern nur über ein Symbol oder Bildelement.Or, the control does not have GUI text but only an icon or image element.

In diesen Fällen benötigen Benutzer eine Möglichkeit, um zu sehen, was zu sagen ist, um ein solches Steuerelement aufzurufen.In these cases, users need a way to see what needs to be said in order to invoke such a control. Aus diesem Grund können Sie nach dem aktiven lauschen die sprach Tipps anzeigen, indem Sie "Bezeichnungen anzeigen" sagen.Therefore, once in active listening, voice tips can be displayed by saying “show labels”. Dies bewirkt, dass Sprech Tip Bezeichnungen oberhalb jedes umsetzbaren Steuer Elements angezeigt werden.This causes voice tip labels to appear on top of every actionable control.

Es gibt ein Limit von 100 Bezeichnungen. wenn die Benutzeroberfläche der APP mehr handlungsfähige Steuerelemente als 100 hat, gibt es einige, für die keine sprach Tipp Bezeichnungen angezeigt werden.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. Die Bezeichnungen, die in diesem Fall ausgewählt werden, sind nicht deterministisch, da Sie von der Struktur und der Komposition der aktuellen Benutzeroberfläche als erste in der UIA-Struktur aufgezählt sind.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.

Wenn die Bezeichnungen der Sprech Tip angezeigt werden, gibt es keinen Befehl, Sie auszublenden. Sie bleiben sichtbar, bis eines der folgenden Ereignisse eintritt:Once voice tip labels are shown there is no command to hide them, they will remain visible until one of the following events occur:

  • Benutzer ruft ein Steuerelement auf.user invokes a control
  • der Benutzer navigiert von der aktuellen Szene.user navigates away from the current scene
  • der Benutzer sagt: "lauschen nicht mehr"user says, “stop listening”
  • Timeout für aktiven Lesemodusactive listening mode times out

Speicherort der Sprech Tip BezeichnungenLocation of voice tip labels

Sprach Tipp Bezeichnungen werden horizontal und vertikal innerhalb des boundingrechteck des Steuer Elements zentriert.Voice tip labels are horizontally and vertically centered within the control’s BoundingRectangle. Wenn die Steuerelemente klein und eng gruppiert sind, können sich die Bezeichnungen von anderen überlappen bzw. durch andere verdeckt werden, und Ves versucht, diese Bezeichnungen zu trennen, um Sie zu trennen und sicherzustellen, dass Sie sichtbar sindWhen 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. Es ist jedoch nicht garantiert, dass 100% der Fälle funktionieren.However, this is not guaranteed to work 100% of the time. Wenn eine stark überfüllte Benutzeroberfläche vorliegt, führt dies wahrscheinlich dazu, dass einige Bezeichnungen von anderen Personen verdeckt werden.If there is a very crowded UI, it will likely result in some labels being obscured by others. Überprüfen Sie Ihre Benutzeroberfläche mit "Bezeichnungen anzeigen", um sicherzustellen, dass ausreichend Platz für die Sichtbarkeit von sprach Tipps vorliegt.Please review your UI with “show labels” to ensure there is adequate room for voice tip visibility.

Screenshot der sprach Tipp Bezeichnungen, die horizontal und vertikal innerhalb des umgebenden Rechtecks des Steuer Elements zentriert sind.

Kombinations FelderCombo boxes

Wenn ein Kombinations Feld erweitert wird, erhält jedes einzelne Element im Kombinations Feld eine eigene voicetip-Bezeichnung, und häufig werden diese auf der Grundlage vorhandener Steuerelemente hinter der Dropdown Liste angezeigt.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. Um zu vermeiden, dass eine Übersichtlichkeit und eine verwirrende Muddle von Bezeichnungen angezeigt werden (wobei Kombinations Feld-Element Bezeichnungen mit den Bezeichnungen der Steuerelemente hinter dem Kombinations Feld gemischt werden), werden nur die Bezeichnungen für die untergeordneten Elemente angezeigt, wenn ein Kombinations Feld erweitert wird. alle anderen sprach Tipp Bezeichnungen werden ausgeblendet.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. Der Benutzer kann dann entweder eines der Dropdown Elemente auswählen oder das Kombinations Feld "Schließen".The user can then either select one of the drop-down items or “close” the combo box.

  • Bezeichnungen auf reduzierten Kombinations Feldern:Labels on collapsed combo boxes:

    Screenshot des Anzeige-und Audiovideo-Ausgabe Fensters mit Bezeichnungen in reduzierten Kombinations Feldern.

  • Beschriftungen im erweiterten Kombinations Feld:Labels on expanded combo box:

    Screenshot des Fensters "Anzeige" und "Sound Video Ausgabe" mit Bezeichnungen in einem erweiterten Kombinations Feld.

Scrollbare SteuerelementeScrollable controls

Bei Bild lauffähigen Steuerelementen werden die sprach Tipps für die scrollbefehle auf die einzelnen Ränder des Steuer Elements zentriert.For scrollable controls, the voice tips for the scroll commands will be centered on each of the edges of the control. Sprach Tipps werden nur für die ausführbaren Bild Laufrichtungen angezeigt, z. b. Wenn ein vertikaler Bildlauf nicht verfügbar ist, wird der Bildlauf nach oben und der Bildlauf nach unten nicht angezeigt.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. Wenn mehrere Bild lauffähige Bereiche vorhanden sind, werden durch ordinale für die Unterscheidung zwischen Ihnen (z. b.When multiple scrollable regions are present VES will use ordinals to differentiate between them (eg. "Scroll Right 1", "Scroll Right 2" usw.).“Scroll right 1”, “Scroll right 2”, etc.).

Screenshot: Bildlauf nach links und Bildlauf nach rechts in einem horizontalen Bildlauf in U I.

MehrdeutigkeitsvermeidungDisambiguation

Wenn mehrere Benutzeroberflächen Elemente denselben Namen aufweisen oder die Spracherkennung mit mehreren Kandidaten übereinstimmt, wechselt Ves in den disambialisierungsmodus.When multiple UI elements have the same Name, or the speech recognizer matched multiple candidates, VES will enter disambiguation mode. In diesem Modus werden voicetip-Bezeichnungen für die beteiligten Elemente angezeigt, sodass der Benutzer das richtige Element auswählen kann.In this mode voice tip labels will be shown for the elements involved so that the user can select the right one. Der Benutzer kann den disambitätsmodus abbrechen, indem er "Abbrechen" sagt.The user can cancel out of disambiguation mode by saying "cancel".

Beispiel:For example:

  • Im aktiven Empfangsmodus, vor der Eindeutigkeit; der Benutzer sagt: "ist ich mehrdeutig":In Active Listening Mode, before disambiguation; user says, "Am I Ambiguous":

    Screenshot des aktiven Überwachungsmodus mit dem jetzt können Sie sagen, welche Option angezeigt wird und keine Bezeichnungen auf den Schaltflächen angezeigt werden.

  • Beide Schaltflächen stimmen überein. Eindeutigkeit gestartet:Both buttons matched; disambiguation started:

    Screenshot des aktiven Empfangsmodus mit der angezeigten Option und Element 1 und Element 2 Bezeichnungen auf den Schaltflächen.

  • Die Click-Aktion wird angezeigt, wenn "Select 2" ausgewählt wurde:Showing click action when "Select 2" was chosen:

    Screenshot des aktiven Überwachungsmodus mit dem jetzt können Sie sagen, welche Option angezeigt wird, und dass ich auf der ersten Schaltfläche eine mehrdeutige Bezeichnung habe.

BeispielbenutzeroberflächeSample UI

Im folgenden finden Sie ein Beispiel für eine XAML-basierte Benutzeroberfläche, in der die AutomationProperties.Name auf verschiedene Weise festgelegt wird: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>

Das obige Beispiel zeigt, wie die Benutzeroberfläche mit und ohne sprach Tipp Bezeichnungen aussieht.Using the above sample here is what the UI will look like with and without voice tip labels.

  • Im aktiven Empfangsmodus ohne angezeigte Bezeichnungen:In Active Listening Mode, without labels shown:

    Screenshot des aktiven Überwachungsmodus mit dem Anzeigen von Bezeichnungen, z... Anzeigen von Bezeichnungen anzeigen und Anzeigen von Bezeichnungen.

  • Im aktiven Lesemodus, nachdem der Benutzer "Bezeichnungen anzeigen" angezeigt hat:In Active Listening Mode, after user says "show labels":

    Screenshot des aktiven Modus für die Überwachung mit dem, wenn Sie fertig sind, wird die Option "Überwachung Abbrechen" angezeigt

Im Fall von button1 füllt XAML die AutomationProperties.Name Eigenschaft automatisch mit Text aus dem sichtbaren Text Inhalt des Steuer Elements auf.In the case of button1, XAML auto populates the AutomationProperties.Name property using text from the control’s visible text content. Aus diesem Grund gibt es auch dann eine Sprech Tip Bezeichnung, wenn keine explizite AutomationProperties.Name Menge vorhanden ist.This is why there is a voice tip label even though there isn't an explicit AutomationProperties.Name set.

Mit button2 legen wir den explizit AutomationProperties.Name auf einen anderen als den Text des Steuer Elements fest.With button2, we explicitly set the AutomationProperties.Name to something other than the text of the control.

Mit wird comboBox die-Eigenschaft verwendet, LabeledBy um label1 als Quelle für die Automatisierung zu verweisen Name , und in wird label1 der auf einen natürlicheren Ausdruck festgelegt, der nicht auf dem AutomationProperties.Name Bildschirm gerendert wird ("Wochentag" statt "Tag der Woche auswählen").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”).

Schließlich wird mit button3 von Ves der Name aus dem ersten untergeordneten Element übernommen, da button3 selbst über keinen AutomationProperties.Name Satz verfügt.Finally, with button3, VES grabs the Name from the first child element since button3 itself does not have an AutomationProperties.Name set.

Weitere InformationenSee also