Informationen zu Text- und TextRange-Steuerelementmustern

Der Textinhalt eines Steuerelements wird mithilfe des Text-Steuerelementmusters verfügbar gemacht, das den Inhalt eines Textcontainers als Textstream darstellt. Das Text-Steuerelementmuster erfordert die Unterstützung des TextRange-Steuerelementmusters, um Format- und Stilattribute verfügbar zu machen. Das TextRange-Steuerelementmuster unterstützt das Text-Steuerelementmuster, indem es zusammenhängende oder mehrere, unzusammenhängende Textspannen (oder Bereiche) in einem Textcontainer mit einer Auflistung von Start- und Endendpunkten darstellt. Das TextRange-Steuerelementmuster unterstützt Funktionen wie Auswahl, Vergleich, Abruf und Durchlauf.

Hinweis

Das Text-Steuerelementmuster bietet keine Möglichkeit zum Einfügen oder Ändern von Text. Je nach Steuerelement kann dies jedoch mithilfe des Microsoft Benutzeroberflächenautomatisierung Value-Steuerelementmusters oder durch direkte Tastatureingabe erfolgen. Es gibt auch ein TextEdit-Muster, das programmgesteuerte Änderungen an Text unterstützt.

Die in diesem Thema beschriebenen Funktionen sind für Technologieanbieter und deren Endbenutzer von entscheidender Bedeutung. Hilfstechnologien können Benutzeroberflächenautomatisierung verwenden, um vollständige Textformatierungsinformationen für den Benutzer zu erfassen und programmgesteuerte Navigation und Auswahl von Text durch TextUnit (Zeichen, Wort, Zeile oder Absatz) bereitzustellen.

Dieses Thema enthält folgende Abschnitte:

Benutzeroberflächenautomatisierung TextPattern und der 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 ihren Textspeicher verfügbar zu machen, unterstützt es auch Metadaten für den Textspeicher.

TSF wurde für Anwendungen entwickelt, die Eingaben in kontextbezogene Szenarien einfügen müssen. Das Text-Steuerelementmuster ist jedoch eine schreibgeschützte Lösung, die optimierten Zugriff auf einen Textspeicher für Sprachausgaben und Bradauer-Geräte bereitstellen soll.

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

Weitere Informationen finden Sie unter Textdienstframework.

Steuerelementtypen

Die Steuerelementtypen Benutzeroberflächenautomatisierung Bearbeiten und Dokument müssen das Text-Steuerelementmuster unterstützen. Um die Barrierefreiheit zu verbessern, empfiehlt Microsoft, dass die Steuerelementtypen QuickInfo und Text auch das Text-Steuerelementmuster unterstützen, dies ist jedoch nicht erforderlich.

Anbieterschnittstellen

Benutzeroberflächenautomatisierung Anbieter unterstützen das Text-Steuerelementmuster für ein Steuerelement, indem sie die Schnittstellen ITextProvider und ITextRangeProvider implementieren. Diese Schnittstellen machen detaillierte Attributinformationen für Text im Steuerelement verfügbar und stellen stabile Navigationsfunktionen bereit.

Ein Anbieter muss nicht alle Textattribute unterstützen, wenn das Steuerelement keine Unterstützung für ein bestimmtes Attribut hat.

Ein Anbieter muss die Methoden ITextProvider::GetSelection und ITextRangeProvider::Select unterstützen, wenn das Steuerelement die Textauswahl oder Platzierung des Textcursors (oder des Systemcursors) innerhalb des Textbereichs unterstützt. Wenn das Steuerelement diese Funktionalität nicht unterstützt, muss es keine dieser Methoden unterstützen. Das Steuerelement muss jedoch den Unterstützten Typ der Textauswahl verfügbar machen, indem die ITextProvider::SupportedTextSelection-Eigenschaft implementiert wird.

Ein Anbieter muss immer die TextUnit-Konstanten TextUnit Character und _ TextUnit _ Document sowie alle anderen unterstützen, die er unterstützen kann.

Hinweis

Der Anbieter kann die Unterstützung für eine bestimmte TextUnit überspringen, indem er auf die nächstgrante Einheit zurückgeht, die in der folgenden Reihenfolge unterstützt wird: TextUnit _ Character, TextUnit _ Format, TextUnit _ Word, TextUnit _ Line, TextUnit _ Paragraph, TextUnit _ Page und TextUnit _ Document.

Clientschnittstellen

Benutzeroberflächenautomatisierung Clientanwendungen verwenden die Schnittstellen IUIAutomationTextPattern und IUIAutomationTextRange, um auf den Textinhalt eines Textsteuerelements zuzugreifen. Clients verwenden IUIAutomationTextPattern, um Textbereiche auszuwählen, die als Textbereiche bezeichnet werden, und um Zeiger auf IUIAutomationTextRange-Schnittstellen für die Bereiche abzurufen. Mit der IUIAutomationTextRange-Schnittstelle können Clients den Textbereich bearbeiten und Informationen zum Text im Bereich abrufen, einschließlich Attributen wie Schriftartname, Vordergrundfarbe, Unterstreichungsformat usw. Weitere Informationen finden Sie unter Textattributbezeichner.

Leistung

Das Text-Steuerelementmuster basiert für den Großteil seiner Funktionalität auf prozessübergreifenden Aufrufen, sodass es keinen Cachemechanismus bereitstellt, um die Leistung beim Verarbeiten von Inhalten zu verbessern. Auf andere Steuerelementmuster in Microsoft Benutzeroberflächenautomatisierung kann mithilfe der IUIAutomationElement::GetCachedPattern-Methode zugegriffen werden.

Eine Methode zur Verbesserung der Leistung besteht darin, sicherzustellen, dass Benutzeroberflächenautomatisierung Clients versuchen, blöcke mit mittlerer Größe mithilfe der IUIAutomationTextRange::GetText-Methode abzurufen. Wenn Sie beispielsweise GetText zum Abrufen einzelner Zeichen verwenden, treten prozessübergreifende Treffer für jedes Zeichen auf, während das Angeben einer maximalen Länge beim Aufrufen von GetText einen prozessübergreifenden Treffer verursacht, aber je nach Größe des Textbereichs eine hohe Latenz aufweisen kann.

Textmuster und virtualisierte eingebettete Objekte

Nach Möglichkeit sollte eine Anbieterimplementierungen von ITextProvider und ITextRangeProvider den gesamten Text eines Dokuments unterstützen, einschließlich jeglichen Texts außerhalb des Viewports. Für Text außerhalb des Bildschirms oder eingebettete Objekte, die virtualisiert sind, sollten Anbieter das VirtualizedItem-Steuerelementmuster unterstützen (IVirtualizedItemProvider).

Wenn ein Dokument virtualisiert wird, während der gesamte Textstream noch verfügbar ist, ruft die ITextProvider::D ocumentRange-Eigenschaft einen Textbereich ab, der das gesamte Dokument enthält. Durch den Aufruf der ITextRangeProvider-Methode wird jedoch eine Auflistung virtualisierter Objekte abgerufen, die alle eingebetteten Objekte im Dokument darstellen. Um mit einem virtualisierten eingebetteten Objekt zu interagieren, müssen Clients die IVirtualizedItemProvider::Realize-Methode aufrufen, die den vollständigen Zugriff auf die Elemente als Benutzeroberflächenautomatisierung Elemente ermöglicht. Clients müssen einen ähnlichen Prozess befolgen, um mit Rasterelementen in einer eingebetteten Tabelle zu arbeiten, in der ein Teil der Tabelle außerhalb des Bildschirms ist und virtualisiert ist.

Verwenden des benutzerdefinierten Steuerelementtyps mit dem Textsteuerelementmuster

Obwohl das Text-Steuerelementmuster viele Textattribute und eingebettete Objekte unterstützt, ist es nicht möglich, im Voraus alle möglichen Dokumentelemente und Präsentationstypen zu definieren. Für Dokumentelemente, die von den vorhandenen Attributen oder Standardsteuerelementtypen nicht unterstützt werden, können Anbieter die Erweiterbarkeitsfunktionen verwenden, die vom Benutzeroberflächenautomatisierung Benutzerdefinierten Steuerelementtyp bereitgestellt werden.

Für Anwendungen und Benutzeroberflächen, die auf Seitenpräsentationen basieren, kann die Begrenzungs- und Layoutdarstellung von "Page" auch als eingebettetes Objekt ausgedrückt werden, das einen benutzerdefinierten Steuerelementtyp (d.amp;n.B. LocalizedControlType="page" ) aufwies. Auf diese Weise kann das eingebettete Objekt andere Seitenelemente hosten, die nicht einfach Teil des Dokumenttextstreams sein können, z. B. die Kopf- und Fußzeilenfelder jeder Seite als untergeordnete Elemente des eingebetteten Objekts "page". Alternativ kann jedes "Page"-Objekt das Textsteuerelementmuster unabhängig voneinander unterstützen, was für Anwendungen wie Erstellungstools für Diashowpräsentationen oder seitenbasierte Desktopveröffentlichungsumgebungen gut geeignet ist.

Lebensdauer eines Textbereichs

Wenn möglich, sollte ein Anbieter sicherstellen, dass alle Textänderungen, z. B. Löschungen, Einfügungen und Verschiebungen, im zugeordneten Textbereich widergespiegelt werden. Wenn das Aktualisieren des Textbereichs nicht möglich ist, sollte der Anbieter ein UIA _ _ TextChangedEventId-Ereignis auslösen, um Clients zu benachrichtigen, dass der Textbereich nicht mehr gültig ist und ein neuer abgerufen werden muss.

Konzept

Unterstützung eingebetteter Objekte durch Benutzeroberflächenautomatisierung

Übersicht über Steuerelementmuster für Benutzeroberflächenautomatisierung

Benutzeroberflächenautomatisierung-Unterstützung für Textinhalte

Arbeiten mit textbasierten Steuerelementen

Andere Ressourcen

Textdienstframework