Informationen zu den 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 Formatattribute verfügbar zu machen. Das TextRange-Steuerelementmuster unterstützt das Text-Steuerelementmuster, indem es zusammenhängende oder mehrere, unzusammenige Textspannen (oder Bereiche) in einem Textcontainer mit einer Auflistung von Anfangs- und Endpunkten 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 erreicht werden. Es gibt auch ein TextEdit-Muster , das programmgesteuerte Änderungen an Text unterstützt.
Die in diesem Thema beschriebene Funktionalität ist für technische Hilfsanbieter und ihre Endbenutzer von entscheidender Bedeutung. Hilfstechnologien können Benutzeroberflächenautomatisierung verwenden, um vollständige Textformatierungsinformationen für den Benutzer zu sammeln und programmgesteuerte Navigation und Textauswahl nach TextUnit (Zeichen, Wort, Zeile oder Absatz) bereitzustellen.
Dieses Thema enthält folgende Abschnitte:
- Benutzeroberflächenautomatisierung TextPattern und das Text Services Framework
- Steuerelementtypen
- Anbieterschnittstellen
- Clientschnittstellen
- Leistung
- Textmuster und virtualisierte eingebettete Objekte
- Verwenden des benutzerdefinierten Steuerelementtyps mit dem Textsteuerelementmuster
- Lebensdauer eines Textbereichs
- Zugehörige Themen
Benutzeroberflächenautomatisierung TextPattern und das Text Services Framework
Text Services Framework (TSF) ist ein einfaches und skalierbares Systemframework, das natürliche Sprachdienste und erweiterte Texteingaben auf dem Desktop und in Anwendungen ermöglicht. Zusätzlich zur Bereitstellung von Schnittstellen für Anwendungen zum Verfügbarmachen ihres Textspeichers werden auch Metadaten für den Textspeicher unterstützt.
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 einen optimierten Zugriff auf einen Textspeicher für Sprachausgaben und Braille-Geräte ermöglichen soll.
Barrierefreie Technologien, die schreibgeschützten Zugriff auf einen Textspeicher erfordern, können das Text-Steuerelementmuster verwenden, benötigen jedoch die Funktionalität von TSF für kontextbasierte Eingaben.
Weitere Informationen finden Sie unter Text Services Framework.
Steuerelementtypen
Die Benutzeroberflächenautomatisierung Steuerelementtyp "Bearbeiten" und "Dokument"-Steuerelementtyp 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, aber es ist 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 bieten robuste Navigationsfunktionen.
Ein Anbieter muss nicht alle Textattribute unterstützen, wenn das Steuerelement keine Unterstützung für ein bestimmtes Attribut aufweist.
Ein Anbieter muss die Methoden ITextProvider::GetSelection und ITextRangeProvider::Select unterstützen, wenn das Steuerelement die Textauswahl oder Platzierung des Textcursors (oder systeminternen Carets) 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 Typ der textauswahl verfügbar machen, den es unterstützt, indem es die ITextProvider::SupportedTextSelection-Eigenschaft implementiert.
Ein Anbieter muss immer die TextUnit-Konstanten , TextUnit_Character und TextUnit_Document sowie alle anderen, die er unterstützen kann, unterstützen.
Hinweis
Der Anbieter kann die Unterstützung für eine bestimmte TextUnit überspringen, indem er auf die nächstgrößeste Einheit zurückschiebt, 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 und Zeiger auf IUIAutomationTextRange-Schnittstellen für die Bereiche abzurufen. Mit der IUIAutomationTextRange-Schnittstelle können Clients den Textbereich bearbeiten und Informationen über den Text im Bereich abrufen, einschließlich Attributen wie Schriftartname, Vordergrundfarbe, Unterstreichungsstil usw. Weitere Informationen finden Sie unter Textattributebezeichner.
Leistung
Das Text-Steuerelementmuster basiert auf prozessübergreifenden Aufrufen der meisten Funktionen, sodass es keinen Zwischenspeicherungsmechanismus bereitstellt, um die Leistung bei der Verarbeitung von Inhalten zu verbessern. Auf andere Steuerelementmuster in Microsoft Benutzeroberflächenautomatisierung kann mithilfe der IUIAutomationElement::GetCachedPattern-Methode zugegriffen werden.
Eine Technik zur Verbesserung der Leistung besteht darin, sicherzustellen, dass Benutzeroberflächenautomatisierung Clients versuchen, Textblöcke mit mittlerer Größe mithilfe der IUIAutomationTextRange::GetText-Methode abzurufen. Die Verwendung von GetText zum Abrufen einzelner Zeichen führt beispielsweise zu prozessübergreifenden Treffern für jedes Zeichen, während die Angabe einer maximalen Länge beim Aufrufen von GetText einen prozessübergreifenden Treffer verursacht, aber abhängig von der Größe des Textbereichs eine hohe Latenz haben kann.
Textmuster und virtualisierte eingebettete Objekte
Nach Möglichkeit sollte eine Anbieterimplementierung von ITextProvider und ITextRangeProvider den gesamten Text eines Dokuments unterstützen, einschließlich aller Texte außerhalb des Viewports. Für Offscreentext oder eingebettete Objekte, die virtualisiert sind, sollten Anbieter das VirtualizedItem-Steuerelementmuster (IVirtualizedItemProvider) unterstützen.
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. Beim Aufrufen 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, wodurch die Elemente vollständig als Benutzeroberflächenautomatisierung-Elemente zugänglich sind. Clients müssen einen ähnlichen Prozess ausführen, um mit Rasterelementen in einer eingebetteten Tabelle zu arbeiten, in der ein Teil der Tabelle außerhalb des Bildschirms und virtualisiert ist.
Verwenden des benutzerdefinierten Steuerelementtyps mit dem Textsteuerelementmuster
Während 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 Erweiterbarkeitsfeatures des Benutzeroberflächenautomatisierung Benutzerdefinierten Steuerelementtyps verwenden.
Für Anwendungen und Benutzeroberflächen, die auf Seitenpräsentationen basieren, kann die Begrenzungs- und Layoutdarstellung von "Seite" auch als eingebettetes Objekt mit einem benutzerdefinierten Steuerelementtyp (d. a LocalizedControlType="page"
. ) ausgedrückt werden. Auf diese Weise kann das eingebettete Objekt andere Seitenelemente hosten, die nicht problemlos 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 "Seitenobjekt" das Text-Steuerelementmuster unabhängig unterstützen. Dies funktioniert gut für Anwendungen wie Erstellungstools für Präsentationen von Bildschirmpräsentationen oder seitenbasierte Desktopveröffentlichungsumgebungen.
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_Text_TextChangedEventId-Ereignis auslösen, um Clients zu benachrichtigen, dass der Textbereich nicht mehr gültig ist und ein neuer abgerufen werden muss.
Zugehörige Themen
-
Konzept
-
Wie Benutzeroberflächenautomatisierung eingebettete Objekte unterstützt
-
Übersicht über Steuerelementmuster für Benutzeroberflächenautomatisierung
-
Benutzeroberflächenautomatisierung Unterstützung für Textinhalte
-
Andere Ressourcen