O vzorech ovládacích prvků Text a TextRange
Textový obsah ovládacího prvku je vystaven pomocí vzoru ovládacího prvku Text, který představuje obsah textového kontejneru jako textový datový proud. Vzor ovládacího prvku Text vyžaduje podporu vzoru ovládacího prvku TextRange pro zveřejnění atributů formátu a stylu. Vzor ovládacího prvku TextRange podporuje vzor ovládacího prvku Text tím, že představuje souvislé nebo nespojité textové úseky (nebo rozsahy) v textovém kontejneru, reprezentované kolekcí počátečních a koncových bodů. Vzor ovládacího prvku TextRange podporuje funkce, jako je výběr, porovnání, načítání a procházení.
Poznámka
Vzor ovládacího prvku Text neposkytuje způsob vložení nebo úpravy textu. V závislosti na konkrétním ovládacím prvku může být tohoto dosaženo pomocí Microsoft UI Automation Hodnota Vzor ovládacího prvku nebo prostřednictvím přímého vstupu z klávesnice. Existuje také vzor TextEdit, který podporuje programovou změnu textu.
Funkcionalita popsaná v tomto tématu je nezbytná pro dodavatele asistivních technologií a jejich koncové uživatele. Technologie usnadnění můžou pomocí automatizace uživatelského rozhraní shromažďovat úplné informace o formátování textu pro uživatele a poskytovat programovou navigaci a výběr textu pomocí TextUnit (znak, slovo, řádek nebo odstavec).
Toto téma obsahuje následující části:
- textPattern automatizace uživatelského rozhraní a architektury textových služeb
- typy ovládacích prvků
- rozhraní poskytovatele
- klientská rozhraní
- výkonu
- vzor textu a virtualizované vložené objekty
- použití vlastního typu ovládacího prvku se vzorem textového ovládacího prvku
- Životnost rozsahu textu
- související témata
TextPattern automatizace uživatelského rozhraní a architektura textových služeb
Architektura textových služeb (TSF) je jednoduchá a škálovatelná systémová architektura, která umožňuje služby přirozeného jazyka a pokročilé textové zadávání na ploše a v aplikacích. Kromě poskytování rozhraní pro aplikace, které zpřístupňují své textové úložiště, podporuje také metadata pro textové úložiště.
TSF byl navržen pro aplikace, které potřebují vkládat vstup do kontextových scénářů. Vzor ovládacího prvku Text je ale řešení určené jen pro čtení, které je určené k zajištění optimalizovaného přístupu k textovému úložišti pro čtečky obrazovky a zařízení brailského písma.
Přístupné technologie, které vyžadují přístup jen pro čtení k úložišti textu, můžou používat vzor ovládacího prvku Text, ale budou potřebovat funkce TSF pro vstup s podporou kontextu.
Další informace naleznete v tématu Rozhraní textových služeb.
Typy ovládacích prvků
Automatizace uživatelského rozhraní musí zahrnovat typy ovládacích prvků Upravit a Dokument, které musí podporovat vzor ovládacího prvku Text. Pro zlepšení přístupnosti společnost Microsoft doporučuje, aby ovládací prvky typu popisky a Text také podporovaly vzor ovládacího prvku Text, ale není to povinné.
Rozhraní poskytovatele
Zprostředkovatelé automatizace uživatelského rozhraní podporují vzor ovládacího prvku Text pro ovládací prvek implementací rozhraní ITextProvider a ITextRangeProvider. Tato rozhraní zpřístupňují podrobné informace o atributech pro text v ovládacím prvku a poskytují robustní navigační funkce.
Poskytovatel nemusí podporovat všechny atributy textu, pokud ovládací prvek nemá podporu pro žádný konkrétní atribut.
Zprostředkovatel musí podporovat tyto metody ITextProvider::GetSelection a ITextRangeProvider::Select, pokud ovládací prvek podporuje výběr textu nebo umístění textového kurzoru (nebo kurzor systému) v rámci textové oblasti. Pokud ovládací prvek tuto funkci nepodporuje, nemusí podporovat ani jednu z těchto metod. Ovládací prvek však musí zveřejnit typ výběru textu, který podporuje implementací vlastnosti ITextProvider::SupportedTextSelection.
Poskytovatel musí vždy podporovat textUnit konstanty, TextUnit_Character a TextUnit_Document, stejně jako ostatní, které dokáže podporovat.
Poznámka
Poskytovatel může přeskočit podporu pro konkrétní textovou jednotku tím, že přejde na další největší podporovanou jednotku v následujícím pořadí: TextUnit_Character, TextUnit_Format, TextUnit_Word, TextUnit_Line, TextUnit_Paragraph, TextUnit_Pagea TextUnit_Document.
Klientská rozhraní
Klientské aplikace pro automatizaci uživatelského rozhraní používají rozhraní IUIAutomationTextPattern a rozhraní IUIAutomationTextRange pro přístup k textovému obsahu ovládacího prvku textu. Klienti používají IUIAutomationTextPattern k výběru úseků textu, které se nazývají textovými rozsahy, a pro načtení ukazatelů na rozhraní IUIAutomationTextRange pro rozsahy. Rozhraní IUIAutomationTextRange umožňuje klientům manipulovat s rozsahem textu a načítat informace o textu v oblasti, včetně atributů, jako je název písma, barva popředí, styl podtržení atd. Další informace naleznete v tématu identifikátory atributů textu.
Výkon
Řídicí vzor Text spoléhá na volání napříč procesy pro většinu jeho funkcí, takže neposkytuje mechanismus ukládání do mezipaměti ke zlepšení výkonu při zpracování obsahu. K jiným vzorům ovládacích prvků ve službě Microsoft UI Automation je možné přistupovat pomocí metody IUIAutomationElement::GetCachedPattern.
Jednou z technik zlepšení výkonu je zajistit, aby se klienti Automatizace uživatelského rozhraní pokusili načíst bloky textu střední velikosti pomocí metody IUIAutomationTextRange::GetText metoda. Pokud například použijete GetText k načtení jednotlivých znaků, dojde u každého znaku ke křížovým procesovým zásahům, zatímco pokud při volání GetText neurčíte maximální délku, dojde k jednomu křížovému procesovému zásahu, ale může nastat vysoká latence v závislosti na velikosti rozsahu textu.
Vzor textu a virtualizované vložené objekty
Kdykoli je to možné, implementace zprostředkovatele ITextProvider a ITextRangeProvider by měla podporovat celý text dokumentu, včetně jakéhokoli textu mimo oblast zobrazení. U textových nebo vložených objektů mimo obrazovku, které jsou virtualizované, by poskytovatelé měli podporovat VirtualizedItem řídicí vzor (IVirtualizedItemProvider).
Pokud je dokument virtualizován, zatímco celý textový stream je stále k dispozici, vlastnost ITextProvider::DocumentRange načte textový rozsah, který obsahuje celý dokument. Při volání metody ITextRangeProvider se načte kolekce virtualizovaných objektů, které představují všechny vložené objekty v dokumentu. Aby mohli klienti pracovat s virtualizovaným vloženým objektem, musí zavolat metodu IVirtualizedItemProvider::Realize, která položky plně zpřístupní jako prvky automatizace uživatelského rozhraní. Klienti musí postupovat podobně, aby mohli pracovat s prvky mřížky ve vložené tabulce, kde je část tabulky mimo obrazovku a virtualizovaná.
Použití vlastního typu ovládacího prvku se vzorem textového ovládacího prvku
I když ovládací vzor Text podporuje mnoho atributů textu a vložených objektů, není možné definovat předem všechny možné prvky dokumentu a typy prezentací. Pro prvky dokumentu, které nejsou podporovány existujícími atributy nebo standardními typy ovládacích prvků, můžou zprostředkovatelé používat funkce rozšiřitelnosti poskytované automatizací uživatelského rozhraní vlastní typ ovládacího prvku.
Pro aplikace a uživatelská rozhraní založená na prezentacích stránek lze ohraničení a rozložení prezentace stránky vyjádřit také jako vložený objekt, který má vlastní typ ovládacího prvku (to znamená LocalizedControlType="page"
). Vložený objekt tak může hostovat další prvky stránky, které nemohou být snadno součástí textového datového proudu dokumentu, jako jsou pole záhlaví a zápatí každé stránky, jako podřízené položky vloženého objektu "page". Každý objekt "page" může také nezávisle podporovat vzor ovládacích prvků Text, což dobře funguje pro aplikace, jako jsou nástroje pro vytváření prezentací nebo stránkové prostředí pro desktopové publikování.
Životnost oblasti textu
Pokud je to možné, poskytovatel by měl zajistit, aby se všechny změny textu, jako jsou odstranění, vložení a přesuny, projevily v přidružené oblasti textu. Pokud aktualizace rozsahu textu není možná, měl by poskytovatel vyvolat UIA_Text_TextChangedEventId událost, aby klienti informovali, že oblast textu už není platná a musí být načtena nová.
Související témata
-
koncepční
-
, jak automatizace uživatelského rozhraní podporuje vložené objekty
-
Přehled vzorů ovládacích prvků automatizace uživatelského rozhraní
-
Podpora automatizace uživatelského rozhraní pro textový obsah
-
další prostředky