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áklady přístupnosti odpovídají názvu, roli a hodnotě. Toto téma ukazuje, jak tyto vlastnosti zveřejnit ve vaší aplikaci, aby technologie usnadnění mohly správně interpretovat vaše uživatelské rozhraní.
Přístupný název
Přístupným názvem je popisek, který čtečka obrazovky oznámí pro prvek uživatelského rozhraní. Nastavte ho na prvky, které vyjadřují význam nebo podporují interakci, včetně obrázků, vstupních polí, tlačítek, ovládacích prvků a oblastí.
Následující 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 (například panelů) nezpřístupňuje přístupný název. V automatizaci uživatelského rozhraní by měly smysluplné podřízené položky obsahovat název a roli, zatímco kontejner primárně zveřejňuje strukturu pro procházení.
Role a hodnota
Ovládací prvky XAML zpřístupňují roli (a pokud je to možné, hodnotu) prostřednictvím integrované podpory automatizace uživatelského rozhraní. Prozkoumejte tyto vlastnosti pomocí nástrojů automatizace uživatelského rozhraní nebo v dokumentaci ke službě AutomationPeer každého ovládacího prvku. Role se mapují na AutomationControlType a jsou zpřístupněny technologiím pro usnadnění prostřednictvím AutomationPeer ovládacího prvku.
Pouze ovládací prvky s sémantikou hodnot zpřístupňují hodnotu automatizace uživatelského rozhraní. Například TextBox podporuje IValueProvider prostřednictvím TextBoxAutomationPeer, takže technologie usnadnění mohou rozpoznat a číst jeho aktuální hodnotu.
Poznámka:
Pokud nastavíte AutomationProperties.Name explicitně, neopakujte v názvu termíny role nebo typu, jako je například "button" nebo "list". Role/typ pochází z LocalizedControlType a mnoho asistenčních technologií jej přidá k názvu. Opakující se text role může vytvořit výstup, jako je například „tlačítko tlačítko“. Ověřte toto chování s využitím předčítání.
Ovlivnění zobrazení stromu automatizace uživatelského rozhraní
Automatizace uživatelského rozhraní představuje vztahy prvků ve třech stromových zobrazeních: surové, ovládání a obsah. Každé zobrazení slouží k jinému účelu. Nezpracované zobrazení zahrnuje téměř všechny prvky automatizace, zobrazení ovládacího prvku zvýrazňuje interaktivní ovládací prvky a strukturální navigační body a zobrazení obsahu se zaměřuje na prvky, které komunikují uživatelský obsah. V praxi se asistivní technologie a nástroje kontroly přístupnosti nejčastěji spoléhají na ovládací zobrazení, protože poskytuje nejužitečnější rovnováhu mezi úplností a použitelností.
Ve výchozím nastavení se většina prvků odvozených z Control zobrazuje v zobrazení ovládacích prvků, když je aplikace zpřístupněna prostřednictvím automatizace uživatelského rozhraní. Ve složených uživatelských rozhraních to může představovat duplicitní nebo nízkohodnotové uzly, které přidávají uživatelům asistenční technologie šum. Pomocí AutomationProperties.AccessibilityView můžete určit, jak jsou konkrétní prvky zpřístupněny napříč stromovými zobrazeními. Například umístění prvku v Raw ho obvykle udržuje dostupné v diagnostických a procházejících scénářích a současně je vyloučí z primárních zobrazení používaných mnoha asistenčními technologiemi. Pokud chcete zkontrolovat skutečné vzory, prozkoumejte šablony ovládacích prvků v generic.xaml a vyhledejte AutomationProperties.AccessibilityView.
Název z vnitřního textu
Mnoho ovládacích prvků XAML může odvodit výchozí přístupný název z textu, který je již viditelný v uživatelském rozhraní. Toto chování snižuje potřebu explicitně nastavit AutomationProperties.Name pro běžné textové vzory a pomáhá zajistit, aby to, co uživatelé slyší, odpovídalo tomu, co vidí.
- TextBlock, RichTextBlock a TextBox obvykle propagují svůj textový obsah jako výchozí přístupný název.
- Podtřídy ContentControl vyhodnocují hodnotu obsahu a používají strategii "ToString" k extrakci obsahu řetězce pro výchozí přístupný název.
Poznámka:
Automatizace uživatelského rozhraní vynucuje maximálně 2048 znaků pro přístupný název. Pokud automatické generování názvů vytvoří delší řetězec, hodnota se zkrátí.
Přístupné názvy obrázků
Pro netextový obsah, jako jsou obrázky a grafy, zadejte alternativní text, aby čtečky obrazovky mohly prvek správně identifikovat a oznamovat. Protože tyto prvky obvykle nezpřístupňují vnitřní text, automatizace uživatelského rozhraní nemůže automaticky odvodit výchozí přístupný název. (Čistě dekorativní nebo strukturální vizuály jsou výjimkou a obecně by neměly být pojmenovány.) Když je potřeba oznámit smysluplný obrázek, nastavte AutomationProperties.Name explicitně, jak je znázorněno v následujícím příkladu.
<Image
Source="Assets/product.png"
AutomationProperties.Name="Customer using the product" />
Jako alternativu zpřístupníte viditelný titulek a přidružíte ho k obrázku prostřednictvím AutomationProperties.LabeledBy. Mluvený popisek tak zůstane zarovnaný s textem na obrazovce a zabrání duplikování řetězců ve značení. Následující příklad WinUI ukazuje tento vzor:
<StackPanel Spacing="8">
<Image
x:Name="heroImage"
Width="480"
Source="Assets/snoqualmie-NF.jpg"
AutomationProperties.LabeledBy="{Binding ElementName=heroCaption}" />
<TextBlock x:Name="heroCaption" Text="Mount Snoqualmie Skiing" />
</StackPanel>
Popisky a označeno kým
U polí formuláře je upřednostňovaným vzorem popisování definovat viditelný text popisku v objektu TextBlock a odkazovat na tento prvek ze vstupního ovládacího prvku prostřednictvím AutomationProperties.LabeledBy. Tím se vytvoří přidružení mezi popiskem uživatelského rozhraní a ovládacím prvkem ve stromu automatizace, takže technologie usnadnění můžou oznamovat název pole, který odpovídá tomu, co se zobrazuje na obrazovce. Tento vzor je obecně více udržovatelný než duplikování textu popisku ve více vlastnostech, protože stejný zdrojový řetězec slouží pro vizuální i přístupnou identifikaci.
<StackPanel x:Name="LayoutRoot" Spacing="12">
<StackPanel Orientation="Horizontal" Spacing="8">
<TextBlock x:Name="firstNameLabel" Text="First name" />
<TextBox
x:Name="firstNameTextBox"
Width="180"
AutomationProperties.LabeledBy="{Binding ElementName=firstNameLabel}" />
</StackPanel>
<StackPanel Orientation="Horizontal" Spacing="8">
<TextBlock x:Name="lastNameLabel" Text="Last name" />
<TextBox
x:Name="lastNameTextBox"
Width="180"
AutomationProperties.LabeledBy="{Binding ElementName=lastNameLabel}" />
</StackPanel>
</StackPanel>
Popis s podporou přístupnosti (volitelné)
Popis s podporou přístupnosti poskytuje doplňující informace o prvku uživatelského rozhraní, pokud samotný přístupný název nestačí. Slouží k přidání objasnění kontextu, například záměru, nápovědy k používání nebo důležitých podrobností o chování, které pomáhají uživatelům technologie usnadnění pochopit, jak s ovládacím prvkem pracovat.
V Programu Předčítání se popis obvykle čte na vyžádání, nikoli jako součást výchozího oznámení. Další podrobnosti si můžou uživatelé vyžádat stisknutím capsLock+F.
Zacházejte s přístupným názvem jako s primárním identifikátorem ovládacího prvku a udržujte ho stručné. Pokud je požadováno další vysvětlení, uveďte kromě AutomationProperties.Name i další podrobnosti prostřednictvím AutomationProperties.HelpText.
Testování přístupnosti v rané fázi a často
Nejspolehlivější způsob, jak ověřit podporu čtečky obrazovky, je otestovat aplikaci přímo se čtečkou obrazovky během vývoje, a to nejen v době vydání. Včasné a opakované testování pomáhá identifikovat chybějící nebo zavádějící přístupové názvy, nesprávné zobrazení prvků ovládání a problémy s navigací, dokud jsou úpravy stále nenákladné. Po každém průchodu upřesněte strukturu uživatelského rozhraní a vlastnosti automatizace uživatelského rozhraní na základě toho, co uživatelé skutečně slyší a jak se pohybují přes rozhraní. Další podrobnosti najdete v tématu Testování přístupnosti.
AccScope je užitečný nástroj pro tento pracovní postup, protože vizualizuje uživatelské rozhraní jako strom automatizace, což usnadňuje kontrolu, které technologie usnadnění mohou objevit. Zobrazení zaměřené na Předčítání vám pomůže ověřit, odkud je text získáván a jak jsou prvky seskupeny a seřazeny pro mluvený výstup. Používejte ho v průběhu životního cyklu produktu, včetně prvotního návrhu a ověřování šablon ovládacích prvků, abyste zachytili problémy se strukturální přístupností před tím, než se objeví v uživatelském testování. Další podrobnosti najdete v tématu AccScope.
Přístupné názvy z dynamických dat
Mnoho ovládacích prvků Windows vykresluje obsah prostřednictvím datové vazby, což znamená, že přístupné názvy se často určují z dat modulu runtime místo statického XAML. Pokud jsou šablony seznamu nebo položek vyplněny dynamicky, ověřte, že každá vygenerovaná položka po dokončení vazby zveřejňuje smysluplný přístupný název. V závislosti na složení ovládacího prvku a šablony může být potřeba nastavit nebo aktualizovat vlastnosti přístupnosti programově, aby strom automatizace odrážel konečný vykreslený stav. Kompletní příklad najdete v části Scénář 4 v ukázce přístupnosti XAML (archivovaná starší ukázka).
Přístupné názvy a lokalizace
Přístupné názvy musí být lokalizovány se stejnou důsledností jako viditelný text uživatelského rozhraní. Uložte řetězce popisků do lokalizačních prostředků a propojte je prostřednictvím mapování direktiv x:Uid , aby mluvený výstup odpovídal jazyku uživatele. Pokud nastavíte AutomationProperties.Name explicitně, ujistěte se, že hodnota pochází také z lokalizovaných prostředků místo pevně zakódovaného textu.
Připojené vlastnosti v AutomationProperties používají kvalifikovanou syntaxi klíče prostředku, aby lokalizace mohla zaměřit připojenou vlastnost na konkrétní prvek. Pokud je například prvek pojmenován MediumButton, klíč prostředku pro AutomationProperties.Name je MediumButton.[using:Microsoft.UI.Xaml.Automation]AutomationProperties.Name.
Související témata
- Přehled přístupnosti
- AutomationProperties.Name
- Ukázka přístupnosti XAML (archivovaná starší ukázka)
- testování přístupnosti
Windows developer