Übersicht über TextPattern für die Benutzeroberflächenautomatisierung

Hinweis

Diese Dokumentation richtet sich an .NET Framework Entwickler, die die verwalteten Benutzeroberflächenautomatisierung klassen verwenden möchten, die im -Namespace definiert System.Windows.Automation sind. Die neuesten Informationen zu Benutzeroberflächenautomatisierung finden Sie unter Windows Automation-API: Benutzeroberflächenautomatisierung.

In dieser Übersicht wird beschrieben, wie Sie microsoft Benutzeroberflächenautomatisierung verwenden, um textbezogene Inhalte, einschließlich Format- und Stilattribute, von Textsteuerelementen auf Benutzeroberflächenautomatisierung unterstützten Plattformen verfügbar zu machen. Zu diesen Steuerelementen gehören u. a. die Microsoft .NET Framework und sowie TextBox RichTextBox ihre Win32-Entsprechungen.

Das Verfügbarmachen des Textinhalt eines Steuerelements wird erreicht, indem das TextPattern -Steuerelementmuster verwendet wird, das den Inhalt eines Textcontainer als Textstream darstellt. Zusätzlich erfordert TextPattern , dass die TextPatternRange -Klasse unterstützt wird, um Format-und Stilattribute verfügbar zu machen. TextPatternRange unterstützt TextPattern dadurch, dass es zusammenhängende oder mehrere unzusammenhängende Textabschnitte in einem Textcontainer mit einer Auflistung von Start - und End -Endpunkten darstellt. TextPatternRange unterstützt Funktionen wie Auswahl, Vergleich, Abruf und Durchlauf.

Hinweis

Die TextPattern -Klassen bieten keine Möglichkeit zum Einfügen oder Bearbeiten von Text. Je nach Steuerelement kann dies jedoch durch die Benutzeroberflächenautomatisierung oder durch eine direkte Tastatureingabe erreicht ValuePattern werden. Ein Beispiel finden Sie im TextPattern Insert Text Sample .

Die in dieser Übersicht beschriebene Funktionalität ist entscheidend für Hilfstechnologieanbieter und deren Endbenutzer. Hilfstechnologien können Benutzeroberflächenautomatisierung verwenden, um vollständige Textformatierungsinformationen für den Benutzer zu erfassen und programmgesteuerte Navigation und Textauswahl nach TextUnit (Zeichen, Wort, Zeile oder Absatz) bereitzustellen.

Benutzeroberflächenautomatisierung-TextPattern im Vergleich zu Textdienstframework

Textdienstframework (TSF) ist ein einfaches und skalierbares Systemframework, das Dienste in natürlicher Sprache und erweiterte Texteingaben auf dem Desktop und in Anwendungen ermöglicht. Zusätzlich zur Bereitstellung von Schnittstellen für Anwendungen , um deren Textspeicher verfügbar zu machen, unterstützt es auch Metadaten für diesen Textspeicher.

TSF wurde jedoch für Anwendungen entwickelt, die Eingaben in kontextbezogene Szenarien einfügen müssen, während es sich um TextPattern eine schreibgeschützte Lösung handelt (mit der oben erwähnten eingeschränkten Problemumgehung), die optimierten Zugriff auf einen Textspeicher für Sprachausgaben und Bra lässt.

Kurz gesagt: Barrierefreie Technologien, die schreibgeschützten Zugriff auf einen Textspeicher erfordern, können TextPattern verwenden, benötigen jedoch die komplexere Funktionalität von TSF für kontextbezogene Eingaben.

Steuerelementtypen

Text

Das Textsteuerelement ist das Grundelement, das einen Text auf dem Bildschirm darstellt.

Ein eigenständiges Textsteuerelement kann als Bezeichnung oder statischer Text in einem Formular verwendet werden. Textsteuerelemente können auch in der Struktur eines ListItem-, TreeItem - oder DataItem- Felds enthalten sein.

Hinweis

Textsteuerelemente werden möglicherweise nicht in der Inhaltsansicht der Benutzeroberflächenautomatisierung-Struktur angezeigt (siehe übersicht über Benutzeroberflächenautomatisierung Struktur). Dies liegt daran, dass Textsteuerelemente häufig durch die Name-Eigenschaft eines anderen Steuerelements angezeigt werden. Beispielsweise wird der Text für die Bezeichnung eines Bearbeitungssteuerelements über die Name-Eigenschaft des Bearbeitungssteuerelements verfügbar gemacht. Da sich das Steuerelement Bearbeiten in der Inhaltsansicht der Benutzeroberflächenautomatisierung Struktur befindet, ist es nicht erforderlich, dass sich das Textelement selbst in dieser Ansicht der Benutzeroberflächenautomatisierung Struktur befindet. In der Inhaltsansicht wird nur Text angezeigt, der kein Text mit redundanten Informationen ist. Dadurch kann jede Hilfstechnologie schnell genau die Informationen herausfiltern, die die Benutzer benötigen.

Bearbeiten

Mit einem Bearbeitungssteuerelement kann ein Benutzer eine einzelne Textzeile anzeigen und bearbeiten

Hinweis

Die einzelne Textzeile wird in bestimmten Layoutszenarien möglicherweise umbrochen.

Dokument

Mit einem Dokumentsteuerelement kann ein Benutzer in mehreren Textseiten navigieren und Informationen aus diesen Textseiten abrufen.

TextPattern-Client-APIs

type Beschreibung
System.Windows.Automation.TextPattern-Klasse Der Einstiegspunkt für das Microsoft Benutzeroberflächenautomatisierung Textmodell.

Diese Klasse enthält auch die beiden TextPattern -Ereignislistener TextSelectionChangedEvent und TextChangedEvent.
System.Windows.Automation.Text.TextPatternRange-Klasse Die Darstellung eines Textabschnitts in einem Textcontainer, der TextPatternunterstützt.

Benutzeroberflächenautomatisierungs-Clients müssen die aktuelle Gültigkeit eines Textbereichs berücksichtigen, der mit TextPatternRangeerstellt wurde. Wenn der ursprüngliche Text im Textsteuerelement vollständig durch neuen Text ersetzt wird, verliert der aktuelle Textbereich seine Gültigkeit. Der Textbereich kann jedoch weiterhin teilweise nutzbar sein, wenn nur ein Teil des ursprünglichen Texts geändert wird und das zugrunde liegende Textsteuerelement seinen Text-"Zeiger" mit Ankern (oder Endpunkten) anstatt mit absoluter Zeichenpositionierung verwaltet.

Clients können eine TextChangedEvent überwachen, um Benachrichtigungen über Änderungen zu erhalten, die an dem von ihnen verwendeten Textinhalt vorgenommen wurden.
System.Windows.Automation.AutomationTextAttribute-Klasse Wird verwendet, um die Formatierungsattribute eines Textbereichs zu identifizieren.

TextPattern-Anbieter-APIs

Benutzeroberflächenelemente oder Steuerelemente, die TextPattern durch die Implementierung der Schnittstellen und unterstützen , entweder ITextProvider ITextRangeProvider nativ oder über Microsoft Benutzeroberflächenautomatisierung Proxys, können detaillierte Attributinformationen für jeden Text verfügbar machen, den sie enthalten, sowie stabile Navigationsfunktionen bereitstellen.

Ein TextPattern -Anbieter muss nicht alle Textattribute unterstützen, wenn das Steuerelement bestimmte Attribute nicht unterstützt.

Wenn das Steuerelement Textauswahl oder Platzierung des Textcursors (bzw. Systemeinfügezeichens) innerhalb des Textbereichs unterstützt, muss ein TextPattern -Anbieter die GetSelection - und die Select -Funktion unterstützen. Wenn das Steuerelement diese Funktionalität nicht unterstützt, muss es keine dieser Methoden unterstützen. Das Steuerelement muss jedoch den von ihm unterstützten Typ der Textauswahl durch Implementieren der SupportedTextSelection -Eigenschaft verfügbar machen.

Ein TextPattern -Anbieter muss immer die TextUnit -Konstanten Character und Document sowie jede andere TextUnit -Konstante unterstützen, die er unterstützen kann.

Hinweis

Der Anbieter kann die Unterstützung für eine bestimmte TextUnit überspringen, indem er in der folgenden Reihenfolge zur nächstgrößeren unterstützten TextUnit wechselt: Character, Format, Word, Line, Paragraph, Pageund Document.

API Beschreibung
ITextProvider-Schnittstelle Macht Methoden, Eigenschaften und Attribute verfügbar, die TextPattern in Clientanwendungen unterstützen (weitere Informationen finden Sie unter ITextProvider).
ITextRangeProvider-Schnittstelle Stellt einen Textabschnitt in einem Textanbieter dar (weitere Informationen finden Sie unter ITextRangeProvider).
System.Windows.Automation.TextPatternIdentifiers-Klasse Enthält Werte, die als Bezeichner für Textanbieter verwendet werden (weitere Informationen finden Sie unter TextPatternIdentifiers).

Sicherheit

Die Benutzeroberflächenautomatisierung-Architektur wurde unter Berücksichtigung der Sicherheit entworfen (siehe Benutzeroberflächenautomatisierung Sicherheitsübersicht). Die in dieser Übersicht beschriebenen TextPattern-Klassen erfordern jedoch einige besondere Sicherheitsüberlegungen.

  • Microsoft Benutzeroberflächenautomatisierung-Textanbieter stellen schreibgeschützte Schnittstellen bereit und bieten nicht die Möglichkeit, den vorhandenen Text in einem Steuerelement zu ändern.

  • Benutzeroberflächenautomatisierung Clients können Microsoft Benutzeroberflächenautomatisierung nur verwenden, wenn sie vollständig "vertrauenswürdig" sind. Ein Beispiel hierfür ist der geschützte Anmeldedesktop, in dem nur bekannte und vertrauenswürdige Anwendungen ausgeführt werden können.

  • Entwickler von Benutzeroberflächenautomatisierung-Anbietern sollten beachten, dass alle Informationen, die sie in ihren Steuerelementen über Microsoft Benutzeroberflächenautomatisierung verfügbar machen, im Wesentlichen öffentlich sind und von anderem Code vollständig zugänglich sind. Microsoft Benutzeroberflächenautomatisierung versucht nicht, die Vertrauenswürdigkeit eines Benutzeroberflächenautomatisierung Clients zu bestimmen. Daher sollte der Benutzeroberflächenautomatisierung Anbieter keine geschützten Inhalte oder vertrauliche Textinformationen (z. B. Kennwortfelder) verfügbar machen.

  • Eine der wichtigsten Änderungen an der Sicherheit für Windows Vista wird allgemein als "Sichere Eingabe" bezeichnet, die Technologien wie Benutzerkonten mit den geringsten Berechtigungen (Oder Limited User Accounts, LUA) und UIPI (UIPI) umfasst.

    • UIPI hindert ein Programm daran, ein anderes Programm, das mehr Berechtigungen hat, zu steuern und/oder zu überwachen. Dadurch verhindert UIPI Angriffe durch prozessübergreifende Fenstermeldungen, die Benutzereingaben vortäuschen.

    • LUA begrenzt die Berechtigungen von Anwendungen, die von Benutzern der Gruppe "Administratoren" ausgeführt werden. Anwendungen haben nicht notwendigerweise Administratorberechtigungen, sondern werden stattdessen mit den niedrigsten erforderlichen Berechtigungen ausgeführt. Hierdurch werden in LUA-Szenarien möglicherweise einige Beschränkungen erzwungen. Dies ist insbesondere die Kürzung von Zeichenfolgen (einschließlich TextPattern-Zeichenfolgen), wobei es erforderlich sein kann, die Länge der Zeichenfolgen zu beschränken, die von einer Anwendung auf Administratorebene abgerufen werden, sodass die Anwendung nicht gezwungen ist, bis zu ihrer Deaktivierung Arbeitsspeicher zuzuordnen.

Leistung

Da der überwiegende Teil der TextPattern-Funktionalität auf prozessübergreifenden Aufrufen basiert, stellt diese Klasse keinen Mechanismus zum Zwischenspeichern bereit, um die Leistung beim Verarbeiten von Inhalten zu verbessern. Dies unterscheidet sich von anderen Steuerelementmustern in Microsoft Benutzeroberflächenautomatisierung, auf die mithilfe der - oder -Methode zugegriffen werden GetCachedPattern TryGetCachedPattern kann.

Zum Verbessern der Leistung ist eine Möglichkeit, durch Verwenden von GetTextsicherzustellen, dass Benutzeroberflächenautomatisierungs-Clients versuchen, mäßig große Textblöcke abzurufen. Beispielsweise ergeben GetText(1)-Aufrufe prozessübergreifende Treffer für jedes Zeichen, wogegen ein GetText(-1)-Aufruf einen prozessübergreifenden Treffer ergibt, der aber abhängig von der Größe des Textanbieters eine lange Wartezeit haben kann.

TextPattern-Terminologie

Attribut
Eine Formatierungseigenschaft eines Textbereichs (z. B. IsItalicAttribute oder FontNameAttribute).

Degenerieren des Bereichs
Ein degenerierter Bereich ist ein leerer Bereich bzw. ein Textbereich mit 0 (null) Zeichen. Im Zusammenhang mit TextPattern-Steuerelementmustern wird die Einfügemarke (bzw. das Systemeinfügezeichen) als degenerierter Bereich angesehen. Wenn kein Text ausgewählt ist, gibt GetSelection einen degenerierten Bereich an der Texteinfügemarke und RangeFromPoint einen degenerierten Bereich als seinen Startpunkt zurück. RangeFromChild und GetVisibleRanges können degenerierte Bereiche zurückgeben, wenn der Anbieter keine Textbereiche findet, die der angegebenen Bedingung entsprechen. Dieser degenerierte Bereich kann als Startpunkt im Textanbieter verwendet werden. FindTextund FindAttribute geben einen NULL-Verweis ( Nothing in Microsoft Visual Basic .NET) zurück, um Verwechslungen mit einem ermittelten Bereich und einem degenerieren Bereich zu vermeiden.

Eingebettetes Objekt
Es gibt zwei Arten von eingebetteten Objekten im Benutzeroberflächenautomatisierung Textmodell. Diese umfassen textbasierte Inhaltselemente, z. B. Links oder Tabellen, und Steuerelemente, z. B. Bilder und Schaltflächen. Ausführlichere Informationen finden Sie unter Access Embedded Objects Using UI Automation.

Endpunkt
Der absolute Start - oder End -Punkt eines Textbereichs in einem Textcontainer.

TextPatternRangeEndpoints (start und end). Die folgende Abbildung veranschaulicht einen Start- und einen Endpunkt.

Textrange
Eine Darstellung eines Textabschnitts samt Start- und Endpunkt in einem Textcontainer einschließlich aller zugeordneten Attribute und Funktionen.

TextUnit
Eine vordefinierte Texteinheit (Zeichen, Wort, Zeile oder Absatz), die zum Navigieren durch logische Segmente eines Textbereichs verwendet.

Weitere Informationen