Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Základní informace o přístupnosti se často kategorizují do názvu, role a hodnoty. Toto téma popisuje kód, který vaší aplikaci pomůže odhalit základní informace, které technologie usnadnění potřebují.
Přístupný název
Přístupný název je krátký popisný textový řetězec, který čtečka obrazovky používá k oznámení prvku uživatelského rozhraní. Nastavte přístupný název prvků uživatelského rozhraní tak, aby měl význam, který je důležitý pro pochopení obsahu nebo interakci s uživatelským rozhraním. Mezi tyto prvky obvykle patří obrázky, vstupní pole, tlačítka, ovládací prvky a oblasti.
Tato tabulka popisuje, jak definovat nebo získat přístupný název pro různé typy prvků v uživatelském rozhraní XAML.
| Typ prvku | Popis |
|---|---|
| Statický text | U elementů TextBlock a RichTextBlock se z viditelného (vnitřního) textu automaticky určí přístupný název. Celý text v daném prvku se používá jako název. Viz Název z vnitřního textu. |
| Obrázky | Element XAML image nemá přímý analog k atributu alt prvku img a podobným prvkům. Buď použijte AutomationProperties.Name k zadání názvu, nebo použijte techniku titulkování. Podívejte se na přístupné názvy obrázků. |
| Prvky formuláře | Přístupný název prvku formuláře by měl být stejný jako popisek, který je zobrazen pro daný prvek. Viz štítky a označeno jako. |
| Tlačítka a odkazy | Ve výchozím nastavení je přístupný název tlačítka nebo odkazu založený na viditelném textu pomocí stejných pravidel, jak je popsáno v části Název z vnitřního textu. V případech, kdy tlačítko obsahuje jenom obrázek, použijte AutomationProperties.Name k poskytnutí textového ekvivalentu zamýšlené akce tlačítka. |
Většina prvků kontejneru, jako jsou panely, neupřednostní jejich obsah jako přístupný název. Je to proto, že se jedná o obsah položky, který by měl hlásit název a odpovídající roli, nikoli jeho kontejner. Element kontejneru může hlásit, že se jedná o prvek, který má podřízené položky v reprezentaci automatizace uživatelského rozhraní Microsoftu, aby ji logika technologie usnadnění mohla procházet. Uživatelé technologií usnadnění ale obvykle nepotřebují o kontejnerech vědět, a proto většina kontejnerů není pojmenovaná.
Role a hodnota
Ovládací prvky a další prvky uživatelského rozhraní, které jsou součástí slovníku XAML, implementují podporu automatizace uživatelského rozhraní pro hlášení rolí a hodnot jako součást jejich definic. Pomocí nástrojů automatizace uživatelského rozhraní můžete prozkoumat informace o rolích a hodnotách ovládacích prvků nebo si můžete přečíst dokumentaci pro implementace AutomationPeer jednotlivých ovládacích prvků. Dostupné role v rámci automatizace uživatelského rozhraní jsou definovány ve výčtu AutomationControlType . Klienti automatizace uživatelského rozhraní, například technologie usnadnění, mohou získat informace o rolích voláním metod, které architektura automatizace uživatelského rozhraní zpřístupňuje prostřednictvím ovládacího prvku AutomationPeer.
Ne všechny ovládací prvky mají hodnotu. Ovládací prvky, které mají hodnotu, hlásí tyto informace automatizaci uživatelského rozhraní prostřednictvím partnerských vztahů a vzorů, které tento ovládací prvek podporuje. Například prvek TextBox ve formuláři má hodnotu. Technologie usnadnění může být klientem automatizace uživatelského rozhraní a může zjistit jak existenci hodnoty, tak i její konkrétní hodnotu. V tomto konkrétním případě TextBox podporuje vzor IValueProvider prostřednictvím TextBoxAutomationPeer definice.
Poznámka:
V případech, kdy k explicitnímu zadání přístupného názvu používáte AutomationProperties.Name nebo jiné techniky, nezahrnujte stejný text, jako používá role ovládacího prvku nebo zadejte informace v přístupném názvu. Například do názvu nezahrnujte slova jako "button" nebo "list". Informace o rolích a typech pocházejí z jiné vlastnosti automatizace uživatelského rozhraní (LocalizedControlType), která je poskytována výchozí podporou ovládacích prvků pro automatizaci uživatelského rozhraní. Mnoho asistenčních technologií připojuje LocalizedControlType k přístupnému názvu, takže duplikování role v přístupném názvu může vést k zbytečně opakovaným slovům. Například, pokud dáte tlačítku ovládacího prvku přístupný název "tlačítko" nebo zahrnete "tlačítko" jako poslední část názvu, čtečky obrazovky ho mohou přečíst jako "tlačítko tlačítko". Tento aspekt informací o přístupnosti byste měli otestovat pomocí nástroje Předčítání.
Ovlivnění zobrazení stromu automatizace uživatelského rozhraní
Architektura automatizace uživatelského rozhraní má koncept stromových zobrazení, kde klienti automatizace uživatelského rozhraní mohou načítat vztahy mezi prvky v uživatelském rozhraní pomocí tří možných zobrazení: nezpracovaných, ovládacích prvků a obsahu. Zobrazení ovládacích prvků je zobrazení, které klienti automatizace uživatelského rozhraní často používají, protože poskytuje dobrou reprezentaci a uspořádání prvků v uživatelském rozhraní, které jsou interaktivní. Testovací nástroje obvykle umožňují zvolit, které stromové zobrazení se má použít, když nástroj prezentuje uspořádání prvků.
Ve výchozím nastavení se v zobrazení ovládacího prvku zobrazí jakákoli třída odvozená z Control a několik dalších prvků, když rámec UI Automatizace představuje uživatelské rozhraní pro aplikaci pro Windows. Někdy ale nechcete, aby se prvek zobrazoval v zobrazení ovládacího prvku kvůli složení uživatelského rozhraní, kde tento prvek duplikuje informace nebo prezentuje informace, které nejsou pro scénáře přístupnosti důležité. Použijte připojenou vlastnost AutomationProperties.AccessibilityView ke změně způsobu, jakým jsou prvky vystaveny stromovým zobrazením. Pokud vložíte prvek do stromu Raw, většina asistenčních technologií tento prvek nebude hlásit v rámci jejich zobrazení. Pokud chcete zobrazit některé příklady toho, jak to funguje v existujících ovládacích prvcích, otevřete soubor XAML s referenčními informacemi o návrhu generic.xaml v textovém editoru a v šablonách vyhledejte AutomationProperties.AccessibilityView .
Název z vnitřního textu
Aby bylo snazší používat řetězce, které už existují ve viditelném uživatelském rozhraní pro přístupné hodnoty názvů, mnoho ovládacích prvků a dalších prvků uživatelského rozhraní poskytuje podporu pro automatické určení výchozího přístupného názvu na základě vnitřního textu uvnitř elementu nebo z řetězcových hodnot vlastností obsahu.
- TextBlock, RichTextBlock, TextBox a RichTextBlock upřednostní hodnotu Vlastnosti Text jako výchozí přístupný název.
- Všechny podtřídy ContentControl používají iterativní techniku "ToString" k vyhledávání řetězců v jejich hodnotě Content a propagují tyto řetězce jako výchozí přístupná jména.
Poznámka:
Jak vynucuje automatizace uživatelského rozhraní, délka přístupného názvu nesmí být větší než 2048 znaků. Pokud řetězec použitý pro automatické určení přístupného názvu překročí tento limit, je v tomto bodě zkrácen.
Přístupné názvy obrázků
Pokud chcete podporovat čtečky obrazovky a poskytnout základní identifikační informace pro každý prvek uživatelského rozhraní, musíte někdy poskytnout textové alternativy k netextovým informacím, jako jsou obrázky a grafy (s výjimkou jakýchkoli čistě dekorativních nebo strukturálních prvků). Tyto prvky nemají vnitřní text, takže přístupný název nebude mít počítanou hodnotu. Přístupný název můžete nastavit přímo nastavením AutomationProperties.Name připojené vlastnosti, jak je znázorněno v tomto příkladu.
XAML
<!-- Comment -->
<Image Source="product.png"
AutomationProperties.Name="An image of a customer using the product."/>
Případně zvažte zahrnutí textového titulku, který se zobrazí v viditelném uživatelském rozhraní a který slouží také jako informace o přístupnosti související s popiskem pro obsah obrázku. Tady je příklad:
XAML
<Image HorizontalAlignment="Left" Width="480" x:Name="img_MyPix"
Source="snoqualmie-NF.jpg"
AutomationProperties.LabeledBy="{Binding ElementName=caption_MyPix}"/>
<TextBlock x:Name="caption_MyPix">Mount Snoqualmie Skiing</TextBlock>
Popisky a označeno kým
Upřednostňovaným způsobem, jak přidružit popisek k elementu formuláře, je použít TextBlock s x:Name pro text popisku a pak nastavit AutomationProperties.LabeledBy připojenou vlastnost formuláře odkazovat na popisek TextBlock podle jeho názvu XAML. Pokud použijete tento vzor, technologie usnadnění můžou text popisku použít jako přístupný název pole formuláře. Tady je příklad, který ukazuje tuto techniku.
XAML
<StackPanel x:Name="LayoutRoot" Background="White">
<StackPanel Orientation="Horizontal">
<TextBlock Name="lbl_FirstName">First name</TextBlock>
<TextBox
AutomationProperties.LabeledBy="{Binding ElementName=lbl_FirstName}"
Name="tbFirstName" Width="100"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="lbl_LastName">Last name</TextBlock>
<TextBox
AutomationProperties.LabeledBy="{Binding ElementName=lbl_LastName}"
Name="tbLastName" Width="100"/>
</StackPanel>
</StackPanel>
Popis s podporou přístupnosti (volitelné)
Popis s podporou přístupnosti poskytuje další informace o přístupnosti konkrétního prvku uživatelského rozhraní. Obvykle zadáte přístupný popis, pokud samotný přístupný název nedává adekvátně účel prvku.
Čtečka obrazovky Narátor přečte přístupný popis prvku jenom tehdy, když uživatel požádá o další informace o prvku stisknutím CapsLock+F.
Přístupný název je určený k identifikaci ovládacího prvku, nikoli k úplnému zdokumentování jeho chování. Pokud stručný popis nestačí k vysvětlení ovládacího prvku, kromě nastavení AutomationProperties.Namemůžete také nastavit připojenou vlastnost AutomationProperties.HelpText.
Testování přístupnosti v rané fázi a často
Nejlepším řešením pro podporu čtečky obrazovky je nakonec otestovat aplikaci pomocí čtečky obrazovky sami. To vám ukáže, jak se čtečka obrazovky chová a jaké základní informace o přístupnosti můžou v aplikaci chybět. Potom můžete odpovídajícím způsobem upravit hodnoty vlastností uživatelského rozhraní nebo automatizace uživatelského rozhraní. Další informace najdete v tématu Testování přístupnosti.
Jeden z nástrojů, které můžete použít k testování přístupnosti, se nazývá AccScope. Nástroj AccScope je zvlášť užitečný, protože můžete vidět vizuální reprezentace uživatelského rozhraní, které ukazují, jak asistivní technologie mohou aplikaci zobrazit jako strom automatizace. Konkrétně existuje režim Předčítání, který poskytuje přehled o tom, jak Program Předčítání získá z vaší aplikace text a jak uspořádá prvky v uživatelském rozhraní. AccScope je navržený tak, aby se mohl používat a být užitečný v průběhu vývojového cyklu pro aplikaci, a to i během předběžné fáze návrhu. Další informace naleznete na AccScope.
Přístupné názvy z dynamických dat
Systém Windows podporuje mnoho ovládacích prvků, které lze použít k zobrazení hodnot, které pocházejí z přidruženého zdroje dat, prostřednictvím funkce označované jako datová vazba. Při naplnění seznamů datovými položkami možná budete muset použít techniku, která nastaví přístupné názvy pro položky seznamu vázaného na data po naplnění počátečního seznamu. Pro více informací viz "Scénář 4" v ukázce přístupnosti XAML .
Přístupné názvy a lokalizace
Abyste měli jistotu, že přístupný název je také lokalizovaný element, měli byste použít správné techniky pro ukládání lokalizovatelných řetězců jako prostředky a poté odkazovat na připojení k prostředkům prostřednictvím hodnot direktivy x:Uid
Všimněte si, že připojené vlastnosti, jako jsou vlastnosti AutomationProperties , používají speciální kvalifikující syntaxi pro název prostředku, aby prostředek odkazoval na připojenou vlastnost použitou pro určitý prvek. Například název prostředku pro AutomationProperties.Name použitý u prvku uživatelského rozhraní s názvem MediumButton : MediumButton.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name.
Související témata
Windows developer