Übersicht über TextPattern für die Benutzeroberflächenautomatisierung
Hinweis
Diese Dokumentation ist für .NET Framework-Entwickler konzipiert, die die verwalteten Klassen zur Automatisierung der Benutzeroberfläche verwenden möchten, die im Namespace System.Windows.Automation definiert sind. Aktuelle Informationen zur Automatisierung der Benutzeroberfläche finden Sie auf der Seite zur Windows-Automatisierungs-API: Benutzeroberflächenautomatisierung.
In dieser Übersicht wird beschrieben, wie die Microsoft-Benutzeroberflächenautomatisierung verwendet wird, um den Textinhalt, einschließlich Format- und Stilattributen, von Textsteuerelementen auf Plattformen mit Unterstützung der Benutzeroberflächenautomatisierung verfügbar zu machen. Zu diesen Steuerelementen zählen unter anderem TextBox und RichTextBox aus Microsoft .NET Framework sowie deren 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 aber auch durch das ValuePattern der Benutzeroberflächenautomatisierung oder durch direkte Tastatureingabe erreicht 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. In Hilfstechnologien kann Benutzeroberflächenautomatisierung verwendet werden, um vollständige Textformatierungsinformationen für den Benutzer zu erfassen und programmgesteuerte Navigation sowie Textauswahl anhand von TextUnit (Zeichen, Wort, Zeile oder Absatz) bereitzustellen.
Benutzeroberflächenautomatisierung-TextPattern im Vergleich zu Textdienstframework
TSF (Text Services Framework, Textdienst-Framework) ist ein einfaches skalierbares Systemframework, das Dienste für natürliche Sprachen und erweiterte Texteingabe 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 kontextabhängige Szenarien einfügen müssen, wogegen TextPattern eine schreibgeschützte Lösung ist (mit der oben beschriebenen eingeschränkten Problemumgehung), die optimierten Zugriff auf einen Textspeicher für Sprachausgaben und Braille-Geräte ermöglichen soll.
Kurz formuliert können barrierefreie Technologien, die schreibgeschützten Zugriff auf einen Textspeicher erfordern, TextPattern verwenden, für kontextabhängige Eingaben benötigen sie jedoch die komplexere Funktionalität von TSF.
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ächenautomatisierungs-Struktur angezeigt (weitere Informationen finden Sie unter Übersicht der Benutzeroberflächenautomatisierungs-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 Bearbeitungssteuerelement in der Inhaltsansicht der Benutzeroberflächenautomatisierungs-Struktur befindet, muss das Textelement selbst nicht in dieser Ansicht der Benutzeroberflächenautomatisierungs-Struktur vorhanden sein. 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
Typ | BESCHREIBUNG |
---|---|
System.Windows.Automation.TextPattern -Klasse |
Der Einstiegspunkt für das Textmodell der Microsoft-Benutzeroberflächenautomatisierung. 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 Implementieren der ITextProvider- und ITextRangeProvider-Schnittstelle entweder direkt oder über Microsoft-Benutzeroberflächenautomatisierungs-Proxys unterstützen, können ausführliche Attributinformationen zu jedem Text verfügbar machen, den sie enthalten, und bieten zusätzlich stabile Navigationsfunktionen.
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 diese beiden Methoden nicht 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 Architektur der Benutzeroberflächenautomatisierung wurde unter Berücksichtigung von Sicherheitsaspekten entwickelt (weitere Informationen finden Sie unter Übersicht über die Benutzeroberflächenautomatisierungs-Sicherheit). Die in dieser Übersicht beschriebenen TextPattern-Klassen erfordern jedoch einige besondere Sicherheitsüberlegungen.
Textanbieter der Microsoft-Benutzeroberflächenautomatisierung stellen schreibgeschützte Schnittstellen bereit und bieten keine Möglichkeit, den vorhandenen Text in einem Steuerelement zu ändern.
Benutzeroberflächenautomatisierungs-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ächenautomatisierungs-Anbietern sollten sich bewusst sein, dass alle Informationen, die sie in ihren Steuerelementen über Microsoft-Benutzeroberflächenautomatisierung verfügbar machen, grundsätzlich öffentlich und für anderen Code vollständig zugänglich sind. Microsoft-Benutzeroberflächenautomatisierung ermittelt nicht die Vertrauenswürdigkeit irgendeines Benutzeroberflächenautomatisierungs-Clients, und daher sollte der Benutzeroberflächenautomatisierungs-Anbieter weder geschützte Inhalte noch vertrauliche Textinformationen (z. B. Kennwortfelder) verfügbar machen.
Eine der wichtigsten Änderungen hinsichtlich der Sicherheit für Windows Vista wird allgemein als „Secure Input“ (sichere Eingabe) bezeichnet und umfasst Technologien wie LUA (Least-privileged oder Limited User Accounts) und UIPI (UI Privilege Level Isolation).
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. Hierin besteht ein Unterschied zu anderen Steuerelementmustern in der Microsoft-Benutzeroberflächenautomatisierung, auf die über die GetCachedPattern- oder TryGetCachedPattern-Methode zugegriffen werden 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).
Degenerierter Bereich
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. FindText und FindAttribute geben keinen Nullverweis (Nothing
in Microsoft Visual Basic .NET) zurück, um zu verhindern, dass es Verwechslungen zwischen erkannten Bereichen und degenerierten Bereichen gibt.
Eingebettetes Objekt
Es gibt zwei Typen von eingebetteten Objekten im Textmodell der Benutzeroberflächenautomatisierung. 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.
Im Folgenden wird eine Gruppe von Start- und Endpunkten illustriert.
Textbereich
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
- Steuerelementmuster für Benutzeroberflächenautomatisierung für Clients
- Übersicht über Steuerelementmuster für Benutzeroberflächenautomatisierung
- Übersicht über die Benutzeroberflächenautomatisierungs-Struktur
- Verwenden der Zwischenspeicherung in der Benutzeroberflächenautomatisierung
- Unterstützung von Steuerelementmustern in einem Benutzeroberflächenautomatisierungs-Anbieter
- Zuordnen von Steuerelementmustern für Benutzeroberflächenautomatisierungs-Clients
- Textdienstframework