Share via


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

Aktualisiert: November 2007

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

Der Textinhalt eines Steuerelements wird unter Verwendung des TextPatternSteuerelementmusters 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- Endpunkten und End-Endpunkten. TextPatternRange unterstützt Funktionen wie Auswahl, Vergleich, Abruf und Durchlauf.

Hinweis:

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

Die in dieser Übersicht beschriebene Funktionalität ist äußerst wichtig für Hilfstechnologieanbieter und deren Endbenutzer. Hilfstechnologien können mit UI-Automatisierung 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 zum Textdienst-Framework
  • Steuerelementtypen
  • TextPattern-Client-APIs
  • TextPattern-Anbieter-APIs
  • Sicherheit
  • Leistung
  • TextPattern-Terminologie
  • Verwandte Abschnitte

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

Textdienst-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.

Hinweis:

Textsteuerelemente werden möglicherweise nicht in der Inhaltsansicht der UI-Automatisierung-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 Edit-Steuerelements wird beispielsweise über die Name-Eigenschaft des Edit-Steuerelements verfügbar gemacht. Da sich das Edit-Steuerelement in der Inhaltsansicht der UI-Automatisierung-Struktur befindet, muss das Textelement selbst nicht in dieser Ansicht der UI-Automatisierung-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 Edit-Steuerelementen kann ein Benutzer einzelne Textzeilen anzeigen und bearbeiten.

Hinweis:

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-Automatisierung-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-Automatisierung-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.

Hinweis:

Der Provider kann die Unterstützung einer bestimmten TextUnit auslassen, 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-Automatisierung-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-Automatisierung-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-Automatisierung 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-Automatisierung offenlegen, grundsätzlich öffentlich und für anderen Code zugänglich sind. Microsoft-UI-Automatisierung 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 zugewiesen 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-Automatisierung, 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 Texteingabemarke 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-Automatisierung-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).

  • TextRange
    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