Freigeben über


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

HinweisHinweis

Diese Dokumentation ist für .NET Framework-Entwickler vorgesehen, die die verwalteten UI Automation-Klassen verwenden möchten, die im System.Windows.Automation-Namespace definiert sind.Aktuelle Informationen zu UI Automation finden Sie unter Windows Automation API: UI Automation.

In dieser Übersicht wird beschrieben, wie Microsoft UI Automation verwendet wird, um den Textinhalt (einschließlich Format- und Stilattribute) von Textsteuerelementen auf Plattformen mit UI Automation-Unterstützung verfügbar zu machen. Zu diesen Steuerelementen zählen unter anderem Microsoft .NET Framework TextBox und RichTextBox sowie deren Win32-Entsprechungen.

Der Textinhalt eines Steuerelements wird unter Verwendung des TextPattern Steuerelementmusters verfügbar gemacht. Dieses stellt den Inhalt eines Textcontainers als Textstream dar. Dagegen erfordert TextPattern die Unterstützung der TextPatternRange-Klasse für die Bereitstellung von Format- und Stilattributen. TextPatternRange unterstützt TextPattern durch die Darstellung zusammenhängender oder mehrerer unzusammenhängender Textabschnitte in einem Textcontainer mit einer Auflistung von Start- und End-Endpunkten. TextPatternRange unterstützt Funktionen wie Auswahl, Vergleich, Abruf und Durchlauf.

HinweisHinweis

Die TextPattern-Klassen stellen keine Möglichkeit zum Einfügen oder Ändern von Text bereit.Abhängig vom Steuerelement ist dies jedoch durch UI Automation ValuePattern oder durch direkte Tastatureingabe möglich.Ein Beispiel finden Sie unter ValuePattern Insert Text Sample.

Die in dieser Übersicht beschriebene Funktionalität ist äußerst wichtig für Hilfstechnologieanbieter und deren Endbenutzer. Hilfstechnologien können mit UI Automation die gesamten Textformatierungsinformationen des Benutzers erfassen und programmgesteuerte Navigation und Textauswahl nach TextUnit (Zeichen, Wort, Zeile oder Absatz) bereitstellen.

Dieses Thema enthält folgende Abschnitte.

  • TextPattern für die Benutzeroberflächenautomatisierung im Vergleich zumTextdienst-Framework
  • Steuerelementtypen
  • TextPattern-Client-APIs
  • TextPattern-Anbieter-APIs
  • Sicherheit
  • Leistung
  • TextPattern-Terminologie
  • Verwandte Abschnitte

TextPattern für die Benutzeroberflächenautomatisierung im Vergleich zumTextdienst-Framework

Text Services Framework (TSF) ist ein einfaches, skalierbares System-Framework, das auf dem Desktop und in Anwendungen Dienste für natürliche Sprachen und erweiterte Texteingabe aktiviert. Neben den Schnittstellen, mit denen der Textspeicher von Anwendungen verfügbar gemacht werden kann, bietet es zusätzlich Unterstützung von Metadaten für diesen Textspeicher.

TSF wurde jedoch für Anwendungen entwickelt, die Eingaben in kontextabhängige Szenarien einfügen müssen, während TextPattern eine schreibgeschützte Lösung (mit der oben beschriebenen eingeschränkten Problemumgehung) ist, die optimierten Zugriff auf einen Textspeicher für Bildschirmsprachausgaben und Braille-Geräte ermöglichen soll.

Kurz gesagt kann für barrierefreie Technologien, die schreibgeschützten Zugriff auf einen Textspeicher benötigen, TextPattern verwendet werden, für kontextabhängige Eingaben benötigen sie jedoch die komplexere Funktionalität von TSF.

Steuerelementtypen

Text

Das Textsteuerelement ist das Grundelement, das einen Teil des Texts auf dem Bildschirm darstellt.

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

HinweisHinweis

Textsteuerelemente werden möglicherweise nicht in der Inhaltsansicht der UI Automation-Struktur angezeigt (siehe Übersicht über die Benutzeroberflächenautomatisierungs-Struktur).Der Grund hierfür ist, dass Textsteuerelemente oft durch die Name-Eigenschaft eines anderen Steuerelements angezeigt werden.Der Text für die Bezeichnung eines Bearbeitungssteuerelements wird beispielsweise über die Name-Eigenschaft des Bearbeitungssteuerelements verfügbar gemacht.Da sich das Bearbeitungssteuerelement in der Inhaltsansicht der UI Automation-Struktur befindet, muss das Textelement selbst nicht in dieser Ansicht der UI Automation-Struktur vorhanden sein.In der Inhaltsansicht wird nur Text angezeigt, bei dem es sich nicht um redundante Informationen handelt.Dadurch können Hilfstechnologien schnell die Informationen herausfiltern, die der Benutzer benötigt.

Edit

Mit Bearbeitungssteuerelementen kann ein Benutzer einzelne Textzeilen anzeigen und bearbeiten.

HinweisHinweis

In bestimmten Layoutszenarien wird die einzelne Textzeile möglicherweise umgebrochen.

Dokument

Mithilfe von Dokumentsteuerelementen können Benutzer navigieren und Informationen von mehreren Textseiten abrufen.

TextPattern-Client-APIs

System.Windows.Automation.TextPattern Class

Der Einstiegspunkt für das Microsoft UI Automation-Textmodell.

Diese Klasse enthält auch die beiden TextPattern-Ereignislistener TextSelectionChangedEvent und TextChangedEvent.

System.Windows.Automation.Text.TextPatternRange Class

Die Darstellung eines Textabschnitts innerhalb eines Textcontainers, der TextPattern unterstützt.

Benutzeroberflächenautomatisierungsclients sollten die aktuelle Gültigkeit eines mit TextPatternRange erstellten Textbereichs berücksichtigen. 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 teilweise erhalten werden, wenn nur ein Teil des ursprünglichen Texts geändert wird und das zugrunde liegende Textsteuerelement seinen Text-"Zeiger" mit Ankern (oder Endpunkten) anstatt absoluter Zeichenpositionierung verwaltet.

Clients können ein TextChangedEvent überwachen, um Benachrichtigungen über Änderungen am verwendeten Textinhalt zu erhalten.

System.Windows.Automation.AutomationTextAttribute Class

Wird zur Identifizierung der Formatierungsattribute eines Textbereichs verwendet.

TextPattern-Anbieter-APIs

UI-Elemente oder Steuerelemente, die TextPattern durch Implementierung der ITextProvider-Schnittstelle und ITextRangeProvider-Schnittstelle unterstützen (entweder systemeigen oder über Microsoft UI Automation-Proxys), bieten stabile Navigationsfunktionen und können ausführliche Attributinformationen für jeden enthaltenen Text verfügbar machen.

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

Wenn das Steuerelement Textauswahl oder Platzierung des Textcursors (bzw. Caretzeichens) innerhalb des Textbereichs unterstützt, muss ein TextPattern-Provider die GetSelection-Funktion und die Select-Funktion unterstützen. Wenn das Steuerelement diese Funktionen nicht unterstützt, müssen diese beiden Methoden nicht unterstützt werden. Das Steuerelement muss jedoch den Typ der Textauswahl verfügbar machen, den es durch Implementierung der SupportedTextSelection-Eigenschaft unterstützt.

Ein TextPattern-Provider muss stets die TextUnit-Konstanten Character und Document sowie jede andere TextUnit-Konstante unterstützen, die unterstützt werden kann.

HinweisHinweis

Der Provider kann die Unterstützung einer bestimmten TextUnit überspringen, indem die nächstgrößere unterstützte TextUnit verwendet wird. Hierbei ist die Reihenfolge Character, Format, Word, Line, Paragraph, Page und Document.

ITextProvider Interface

Macht Methoden, Eigenschaften und Attribute verfügbar, die TextPattern in Clientanwendungen unterstützen (siehe ITextProvider).

ITextRangeProvider Interface

Stellt einen Textabschnitt in einem Textanbieter dar (siehe ITextRangeProvider).

System.Windows.Automation.TextPatternIdentifiers Class

Enthält Werte, die als Bezeichner für Textanbieter verwendet werden (siehe TextPatternIdentifiers).

Sicherheit

Die UI Automation-Architektur wurde unter Berücksichtigung von Sicherheitsaspekten entwickelt (siehe Übersicht über die Benutzeroberflächenautomatisierungs-Sicherheit). Die in dieser Übersicht beschriebenen TextPattern-Klassen erfordern jedoch einige besondere Sicherheitsüberlegungen.

  • Microsoft UI Automation-Textanbieter stellen schreibgeschützte Schnittstellen zur Verfügung und bieten keine Möglichkeit zum Ändern von vorhandenem Text in einem Steuerelement.

  • Benutzeroberflächenautomatisierugnsclients können Microsoft UI Automation nur verwenden, wenn sie vollständig "vertrauenswürdig" sind. Ein Beispiel hierfür ist der Desktop bei einer geschützten Anmeldung, auf dem nur bekannte und vertrauenswürdige Anwendungen ausgeführt werden können.

  • Entwickler von Benutzeroberflächenautomatisierungsanbietern müssen sich der Tatsache bewusst sein, dass alle Informationen, die sie in ihren Bedienelementen mit Microsoft UI Automation offenlegen, grundsätzlich öffentlich und für anderen Code zugänglich sind. Microsoft UI Automation ermittelt nicht die Vertrauenswürdigkeit eines anderen Benutzeroberflächenautomatisierungsclient. Daher darf der Benutzeroberflächenautomatisierungsanbieter weder geschützten Inhalt noch vertrauliche Textinformationen (wie z. B. Kennwortfelder) offenlegen.

  • Eine der wichtigsten Änderungen hinsichtlich der Sicherheit in Windows Vista wird allgemein als "Secure Input" bezeichnet und umfasst Technologien wie LUA (Least-privileged oder Limited User Accounts) und UIPI (UI Privilege Level Isolation).

    • Durch UIPI werden Programme daran gehindert, Programme mit höheren Berechtigungen zu steuern und/oder zu überwachen, indem Angriffe durch prozessübergreifende Fenstermeldungen verhindert werden, die Benutzereingaben vortäuschen.

    • LUA begrenzt die Berechtigungen von Anwendungen, die von Benutzern der Administratorengruppe ausgeführt werden. Anwendungen verfügen nicht unbedingt über Administratorrechte, 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), wenn es erforderlich ist, die Größe der von Anwendungen auf Administratorebene abgerufenen Zeichenfolgen zu beschränken, damit zum Zeitpunkt der Anwendungsdeaktivierung kein Speicher belegt werden muss.

Leistung

Da die meisten Funktionen von TextPattern auf prozessübergreifenden Aufrufen beruhen, wird kein Cachingmechanismus zum Verbessern der Leistung beim Verarbeiten von Inhalten bereitgestellt. Hierin besteht ein Unterschied zu anderen Steuerelementmustern in Microsoft UI Automation, auf die mithilfe der GetCachedPattern-Methode oder der TryGetCachedPattern-Methode zugegriffen werden kann.

Zum Verbessern der Leistung können Sie sicherstellen, dass Benutzeroberflächenautomatisierungsclients keine zu großen Textblöcke abrufen, indem Sie GetText verwenden. GetText(1)-Aufrufe ergeben prozessübergreifende Treffer für jedes Zeichen, während ein GetText(-1)-Aufruf einen prozessübergreifenden Treffer ergibt, jedoch abhängig vom Anbieter eine lange Wartezeit haben kann.

TextPattern-Terminologie

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

  • Degenerierter Bereich
    Ein degenerierter Bereich ist ein leerer Bereich bzw. ein Textbereich mit 0 (null) Zeichen. Bei TextPattern-Steuerelementmustern wird die Texteinfügemarke (bzw. das Caretzeichen) als degenerierter Bereich behandelt. Wenn kein Text ausgewählt ist, gibt GetSelection an der Texteinfügemarke einen degenerierten Bereich zurück, und RangeFromPoint gibt einen degenerierten Bereich als Startpunkt zurück. RangeFromChild und GetVisibleRanges können degenerierte Bereiche zurückgeben, wenn der Textanbieter keine Textbereiche findet, die der angegebenen Bedingung entsprechen. Dieser degenerierte Bereich kann im Textanbieter als Startpunkt verwendet werden. FindText und FindAttribute geben einen NULL-Verweis (Nothing in Microsoft Visual Basic .NET) zurück, um die Verwechslung eines erkannten Bereichs mit einem degenerierten Bereich zu verhindern.

  • Eingebettetes Objekt
    Im UI Automation-Textmodell gibt es zwei Typen von eingebetteten Objekten. Diese umfassen textbasierte Inhaltselemente, z. B. Links oder Tabellen, und Steuerelemente wie Bilder oder Schaltflächen. Weitere Informationen finden Sie unter Zugreifen auf eingebettete Objekte mit Benutzeroberflächenautomatisierung.

  • Endpunkt
    Der absolute Start-Punkt oder End-Punkt eines Textbereichs innerhalb eines Textcontainers.

Im Folgenden wird ein Satz von Start- und Endpunkten dargestellt.

TextPatternRangeEndpoints (Start und Ende).

  • Textbereich
    Eine Darstellung eines Textabschnitts in einem Textcontainer, einschließlich der Start- und Endpunkte und aller zugeordneten Attribute und Funktionen.

  • TextUnit
    Eine vordefinierte Texteinheit (Zeichen, Wort, Zeile oder Abschnitt), die zum Navigieren durch logische Segmente eines Textabschnitts verwendet wird.

Siehe auch

Aufgaben

Verwenden der Zwischenspeicherung in der Benutzeroberflächenautomatisierung

Unterstützung von Steuerelementmustern in einem Benutzeroberflächenautomatisierungs-Anbieter

Konzepte

Steuerelementmuster für Benutzeroberflächenautomatisierung für Clients

Übersicht über Steuerelementmuster für Benutzeroberflächenautomatisierung

Übersicht über die Benutzeroberflächenautomatisierungs-Struktur

Zuordnen von Steuerelementmustern für Benutzeroberflächenautomatisierungs-Clients

Weitere Ressourcen

Textdienst-Framework