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