Benutzeroberflächenautomatisierung Texteinheiten
In diesem Thema werden die Texteinheiten beschrieben, die vom Microsoft Benutzeroberflächenautomatisierung TextRange-Steuerelementmuster unterstützt werden. Benutzeroberflächenautomatisierung und Clients verwenden Texteinheiten, um den Betrag anzugeben, um den die Größe eines Textbereichs bewegt oder geändert werden soll.
- Text Unit API Elements
- Beschreibungen von Texteinheiten
- Andere potenzielle Bereiche
- Zugehörige Themen
TEXT UNIT-API-Elemente
Die Benutzeroberflächenautomatisierung-API enthält die folgenden Methoden, für die eine Texteinheit angegeben werden muss:
- ITextRangeProvider::Move
- ITextRangeProvider::ExpandToEnclosingUnit
- ITextRangeProvider::MoveEndpointByUnit
- IUIAutomationTextRange::Move
- IUIAutomationTextRange::ExpandToEnclosingUnit
- IUIAutomationTextRange::MoveEndpointByUnit
Die TextUnit-Enumeration definiert die Texteinheiten, die von Benutzeroberflächenautomatisierung unterstützt werden. Um die Texteinheit anzugeben, wird ein Member der TextUnit-Enumeration in einem Aufruf einer ITextRangeProvider- oder IUIAutomationTextRange-Methode angegeben. Die Texteinheiten vom kleinsten zum größten sind wie folgt:
- _TextUnit-Zeichen
- _TextUnit-Format
- TextUnit _ Word
- TextUnit _ Line
- _TextUnit-Absatz
- _TextUnit-Seite
- _TextUnit-Dokument
Wenn ein bestimmtes textbasiertes Steuerelement die angegebene Texteinheit nicht unterstützt, sollte der Anbieter antworten, indem er die nächste größere Texteinheit, die vom -Steuerelement unterstützt wird, durch die nächste größere Texteinheit substituiert. Wenn beispielsweise TextUnit _ Paragraph angegeben, aber nicht unterstützt wird, kann die -Methode TextUnit _ Page oder TextUnit Document _ ersetzen.
Die linguistischen Merkmale des Quelltexts können es einem Anbieter erschweren, Textgrenzen basierend auf der angegebenen Texteinheit zu bestimmen. Um Hilfe beim Bestimmen von Textgrenzen zu erhalten, kann ein Anbieter Uniscribe-API-Funktionen wie ScriptBreak verwenden. Weitere Informationen finden Sie auf der MSDN-Website unter Uniscribe.
Endpunktneigung
Ein Texteinheitsendpunkt kann sowohl als Startendpunkt als auch als Endendpunkt für angrenzende Textbereiche desselben Typs dienen. Wenn das Ende einer Texteinheit auch der Anfang einer anderen Texteinheit ist, teilt der Bereich, der den Endpunkt End enthält, keine Attribute oder Objekte des angrenzenden Bereichs, der den Startendpunkt enthält.
Beispielsweise enthält der Textstream "Hello world" zwei Worteinheiten mit unterschiedlichen Schriftgewichtungsattributen (normal und fett). In diesem Fall sind der Endpunkt End der Worteinheit "Hello" und der Startendpunkt der Worteinheit "world" identisch, was folgende Ergebnisse ergibt:
- Der Bereich von "Hello" teilt sich nicht das Fettdruckattribut der Worteinheit "world" und gibt nicht den wert des gemischten Attributs für das Textattribut der Schriftgewichtung zurück.
- Der Bereich von "world" hat eine einzelne Schriftgradung (fett) und teilt nicht die Schriftgewichtung der vorherigen Worteinheit "Hello".
Hier ist ein weiteres Beispiel, in dem ein Textstream zwei Worteinheiten enthält, von denen eine ein Link ist: [Foo]() Bar . In diesem Fall sind der Endpunkt End der Worteinheit und der Startendpunkt der Worteinheit "Bar" identisch. Dies führt [Foo]() zu Folgendem:
- Der Link gehört zum Textbereich, der "Foo" enthält.
- Der Link ist ein untergeordnetes Objekt des Textbereichs "Foo" und wird vom ITextProvider eingeschlossen.
- Der Textbereich "Bar" hat keine unteren Und und wird vom ITextProvider eingeschlossen.
Zusätzliche Hinweise:
Ein degeneriertes (leeres) Feld an einer Texteinheitsgrenze mit einem Textbereich desselben Typs setzt Eigenschaften der unmittelbar angrenzenden Texteinheit voraus.
Durch Aufrufen von IUIAutomationTextRange::ExpandToEnclosingUnit für einen degenerierten Bereich an einer Texteinheitsgrenze mit einem Textbereich desselben Typs wird der degenerierte Bereich auf die folgende Texteinheit erweitert.
Beschreibungen von Texteinheiten
In diesem Abschnitt werden die einzelnen Texteinheiten beschrieben, die von der Benutzeroberflächenautomatisierung.
Zeichen
TextUnit _ Character ist eine linguistische Texteinheit, die ein einzelnes Zeichen darstellt. Die linguistische Definition eines Zeichens variiert je nach Sprache. Für ENGLISCH (USA) wird ein Zeichen in der Regel durch ein Leerzeichen oder ein anderes Zeichen umgrenzt, z. B. ein Interpunktionszeichen, eine Zahl oder ein Buchstabe.
Steuerzeichen wie Wagenrücklauf und die Unicode-Links-nach-Rechts-Markierung (LTM) sollten nicht als Zeichen betrachtet werden, sondern können in einem Textbereich enthalten sein, der basierend auf der Zeichentexteinheit normalisiert wird.
Interpunktionszeichen und Wörterbruchzeichen wie Leerzeichen sollten als Zeichen betrachtet werden.
Format
TextUnit _ Das Format wird verwendet, um die Begrenzung eines Textbereichs basierend auf den Formatierungsattributen des Texts zu positionieren. Wenn beispielsweise ein Textbereich derzeit auf einem einzelnen Zeichen eines Worts positioniert ist, wird der Textbereich durch Angabe von TextUnit _ Format in einem Aufruf von IUIAutomationTextRange::ExpandToEnclosingUnit erweitert, um den text-Bereich zu erweitern, der dieselben Attribute wie das einzelne Zeichen enthält. Der resultierende Textbereich kann das gesamte Wort enthalten oder nicht. Außerdem erweitert die Verwendung der Formattexteinheit keinen Textbereich über die Grenzen eines eingebetteten Objekts, z. B. eines Bilds oder Links.
Im Gegensatz zu den anderen Texteinheiten, die die kleineren Texteinheiten als sie selbst enthalten, kann TextUnit _ Format kleiner oder größer als die anderen Einheiten sein. Wenn beispielsweise ein gesamtes Dokument die gleichen Textattribute hat und keine eingebetteten Objekte enthält, würde das Erweitern eines Textbereichs um das _ TextUnit-Format einen neuen Bereich erstellen, der das gesamte Dokument umfasst, während das Erweitern des Textbereichs um TextUnit _ Word einen kleineren Bereich erzeugen würde.
Word
TextUnit _ Word ist eine linguistische Texteinheit, die ein einzelnes ganzes Wort darstellt. Die linguistische Definition eines Worts variiert je nach Sprache. Für englisch (USA) werden Wörter in der Regel durch Leerzeichen oder Interpunktionszeichen umgrenzt.
Wenn TextUnit _ Word zum Festlegen der Begrenzung eines Textbereichs verwendet wird, sollte der resultierende Textbereich alle Wörterbruchzeichen enthalten, die am Ende des Worts, aber vor dem Anfang des nächsten Worts vorhanden sind.
Linie
TextUnit _ Zeile ist eine Texteinheit, die eine einzelne Textzeile darstellt, wie sie im Viewport des Steuerelements dargestellt wird. Wenn TextUnit _ Line zum Festlegen der Begrenzung eines Textbereichs verwendet wird, sollte ein Anbieter die Grenze unmittelbar nach dem Punkt festlegen, an dem ein Steuerzeichen die Zeile unterbricht, oder an dem der Viewport des Steuerelements den Text in eine neue Zeile umbricht. Die Grenze sollte an der Stelle festgelegt werden, an der eine neue Zeile beginnt.
Paragraph
TextUnit _ Absatz ist eine linguistische Texteinheit, die einen vollständigen Absatz darstellt. Ein Absatz sollte direkt vor dem ersten Zeichen eines Absatzes beginnen und in der Regel direkt nach dem letzten Zeichen enden. Alle leeren Zeilen nach einem Absatz sollten mit dem Absatz zusammengeführt werden, es sei denn, etwas in der Textquelle gibt etwas anderes an. In der Regel markiert die Endgrenze eines Absatzes auch die Endgrenze einer Texteinheit von TextUnit _ Line.
Seite
TextUnit _ Die Seite stellt eine vollständige Textseite eines Dokuments dar. Die Grenzen einer Seite sollten an den unmittelbaren Punkten festgelegt werden, an denen eine Seite beginnt und endet.
Dokument
TextUnit _ Das Dokument stellt den gesamten Inhalt eines Dokuments dar, wie vom Text-Steuerelementmuster unterstützt. Außerhalb eines Textbereichs, der ein Dokument enthält, darf kein Text vorhanden sein. Alle Objekte, die in ein Dokument eingefügt werden, z. B. Anmerkungshinweise, die eine Seitengrenze überschreiten, sollten als eingebettete Objekte des Dokuments und nicht als Teil des Textinhalts des Dokuments behandelt werden.
Andere potenzielle Bereiche
Die aktuelle TextRange-Steuerelementmusterspezifikation lässt nicht zu, dass der TextUnit-Enumeration neue Texteinheitswerte hinzugefügt werden, und die vorhandenen Texteinheitswerte können nicht neu definiert werden. Um andere potenzielle Bereiche verfügbar zu machen, z. B. Header und Anmerkungen, sollte ein Anbieter diese Bereiche als eingebettete Objekte mit einem zugeordneten Textbereich verfügbar machen. Auf diese Weise können Sie auch Unterstützung für die entsprechenden Steuerelementmuster hinzufügen. Diese Lösung ist flexibler und erweiterbarer als das Definieren neuer Texteinheiten.
Zugehörige Themen
Verweis
ITextRangeProvider::GetChildren
Konzept
Benutzeroberflächenautomatisierung-Unterstützung für Textinhalte