Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az akadálymentesség alapjai a névhez, szerepkörhöz és értékhez kapcsolódnak. Ez a témakör bemutatja, hogyan teheti elérhetővé ezeket a tulajdonságokat az alkalmazásban, hogy a kisegítő technológiák megfelelően értelmezzék a felhasználói felületet.
Hozzáférhető név
Az akadálymentes név az a címke, amelyet a képernyőolvasó felolvas egy felhasználói felületi elemhez. Állítsa be olyan elemekre, amelyek jelentéstartalmat közvetítenek vagy támogatják az interakciót, beleértve a képeket, a beviteli mezőket, a gombokat, a vezérlőket és a régiókat.
Az alábbi táblázat bemutatja, hogyan definiálhat vagy szerezhet be akadálymentes nevet az XAML felhasználói felületén található különböző típusú elemekhez.
| Elem típusa | Leírás |
|---|---|
| Statikus szöveg |
TextBlock- és RichTextBlock-elemek esetén a rendszer automatikusan meghatároz egy akadálymentes nevet a látható (belső) szövegből. A rendszer az elem összes szövegét névként használja. Lásd a belső szöveg |
| Képek | Az XAML Image elem nem rendelkezik közvetlen megfelelővel a HTML alt attribútumma, amely az img és hasonló elemeknél található. Használjon AutomationProperties.Name a név megadására, vagy alkalmazza a feliratozási technikát. Lásd akadálymentes nevek képekhez. |
| Űrlapelemek | Az űrlapelem akadálymentes nevének meg kell egyeznie az adott elemhez megjelenített címkével. Lásd: Címkék és LabeledBy. |
| Gombok és hivatkozások | Alapértelmezés szerint egy gomb vagy hivatkozás akadálymentes neve a látható szövegen alapul, a Belső szövegből származó név cím alatt leírt szabályoknak megfelelően. Azokban az esetekben, amikor egy gomb csak képet tartalmaz, használja a AutomationProperties.Name a gomb kívánt műveletének csak szöveges megfelelőjét. |
A legtöbb tárolóelem (például panel) nem tesz közzé akadálymentes nevet. A felhasználói felület automatizálásában az értékes gyermekelemeknek meg kell adniuk a nevet és a szerepkört, míg a konténer elsősorban a bejárási struktúrát teszi elérhetővé.
Szerepkör és érték
Az XAML-vezérlők a szerepkört (és adott esetben az értéket) a beépített felhasználói felületi automatizálási támogatásukon keresztül teszik elérhetővé. Vizsgálja meg ezeket a tulajdonságokat felhasználói felületi Automation-eszközökkel vagy az egyes vezérlők AutomationPeer dokumentációjában. A szerepkörök az AutomationControlType-ra vannak leképezve, és a kezelő AutomationPeerén keresztül elérhetővé válnak a kisegítő technológiák számára.
Csak az érték szemantikával rendelkező vezérlők bocsátanak ki UI Automatizálási értéket. A TextBox például támogatja az IValueProvider szolgáltatást a TextBoxAutomationPeer használatával, így a kisegítő technológiák képesek észlelni és olvasni az aktuális értékét.
Megjegyzés:
Ha explicit módon állítja be AutomationProperties.Name , ne ismételje meg a szerepkör-/típuskifejezéseket, például a "gomb" vagy a "lista" kifejezést a névben. A szerepkör/típus a LocalizedControlType-ból származik, és számos kisegítő technológia fűzi hozzá a névhez. Az ismétlődő szerepkörszöveg olyan kimenetet eredményez, mint a "gombgomb". Ellenőrizze ezt a viselkedést a Narrátor használatával.
A felhasználói felület automatizálás fa nézetstruktúráinak befolyásolása
Az UI Automation az elemek közötti kapcsolatokat három fa nézetben mutatja be: nyers, vezérlő és tartalom. Minden nézet más célt szolgál. A nyers nézet szinte minden automatizálási elemet tartalmaz, a vezérlő nézet az interaktív vezérlőket és a szerkezeti navigációs pontokat helyezi előtérbe, a tartalomnézet pedig a felhasználói tartalmakat kommunikáló elemekre összpontosít. A gyakorlatban a kisegítő technológiák és az akadálymentességi ellenőrző eszközök leggyakrabban a vezérlő nézetre támaszkodnak, mivel a teljesség és a használhatóság közötti leg hasznosabb egyensúlyt biztosítják.
Alapértelmezés szerint a vezérlőből származtatott elemek többsége akkor jelenik meg a vezérlőnézetben, ha az alkalmazás a felhasználói felület automatizálásán keresztül érhető el. A komponált felhasználói felületeken ez ismétlődő vagy alacsony értékű csomópontokat hozhat létre, amelyek zajt adnak a kisegítő technológiák felhasználói számára. Az AutomationProperties.AccessibilityView használatával szabályozhatja, hogyan legyenek egyes elemek a fanézetekben láthatók. Ha például egy elemet a Rawban helyez el, az általában diagnosztikai és bejárási forgatókönyvek esetén is elérhető marad, miközben kizárja a számos kisegítő technológia által használt elsődleges nézetekből. A valós minták áttekintéséhez vizsgálja meg a generic.xaml vezérlősablonjait, és keresse meg az AutomationProperties.AccessibilityView elemet.
Név belső szövegből
Számos XAML-vezérlő a felhasználói felületen már látható szövegből származtathatja az alapértelmezett akadálymentes nevet. Ez a viselkedés csökkenti a AutomationProperties.Name explicit módon történő beállításának szükségességét a gyakori szövegalapú mintákhoz, és segít megőrizni a felhasználók által látottakhoz igazodóan hallható szövegeket.
- A TextBlock, a RichTextBlock és a TextBox általában alapértelmezett akadálymentes névként állítják be szöveges tartalmukat.
- A ContentControl alosztályok kiértékelik a tartalmuk értékét, és iteratív "ToString" stratégiával kinyerik a karakterlánc-tartalmakat az alapértelmezett akadálymentes névhez.
Megjegyzés:
A UI Automation 2048 karakteres maximális értéket kényszerít ki az akadálymentes névre. Ha az automatikus névlétrehozás hosszabb sztringet hoz létre, a rendszer csonkolja az értéket.
Akadálymentes nevek képekhez
Nem szöveges tartalmak, például képek és diagramok esetén adjon meg egy helyettesítő szöveget, hogy a képernyőolvasók megfelelően azonosíthassák és felolvashassák az elemet. Mivel ezek az elemek általában nem tesznek közzé belső szöveget, a felhasználói felület automatizálása nem tudja automatikusan levezetni az alapértelmezett akadálymentes nevet. (A tisztán dekoratív vagy szerkezeti vizualizációk kivételt jelentenek, és általában nem nevezhetők el.) Ha jelentéssel bíró képet kell bejelenteni , AutomationProperties.Name állítsa be explicit módon, ahogyan az az alábbi példában is látható.
<Image
Source="Assets/product.png"
AutomationProperties.Name="Customer using the product" />
Másik lehetőségként megjeleníthet egy látható feliratot, és társíthatja azt a képhez az AutomationProperties.LabeledBy használatával. Ez biztosítja, hogy a kimondott címke összhangban legyen a képernyőn megjelenő szöveggel, és elkerüli a karakterláncok duplikálását a jelölőnyelvben. Az alábbi WinUI-példa ezt a mintát mutatja be:
<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>
Címkék és CímkézettÁltal
Űrlapmezők esetében az előnyben részesített címkézési minta a látható címkeszöveg definiálása egy TextBlock-ban , és a beviteli vezérlőből az AutomationProperties.LabeledBy használatával hivatkozni erre az elemre. Ez társításokat hoz létre a felhasználói felület címkéje és az automatizálási fa vezérlője között, így a kisegítő technológiák be tudják jelenteni a képernyőn láthatónak megfelelő mezőnevet. Ez a minta általában jobban karbantartható, mint a címkeszöveg több tulajdonságban történő duplikálása, mivel ugyanaz a forrássztring a vizualizációt és az akadálymentes címkézést is vezérli.
<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>
Akadálymentes leírás (nem kötelező)
Az akadálymentes leírás kiegészítő információkat nyújt a felhasználói felület elemeiről, ha az akadálymentes név önmagában nem elegendő. Segítségével egyértelműsítő környezetet adhat hozzá, például szándékot, használati tippeket vagy fontos viselkedési adatokat, amelyek segítenek a kisegítő technológiák felhasználóinak megérteni, hogyan használhatják a vezérlőt.
A Narrátorban a leírás általában igény szerint olvasható, nem pedig az alapértelmezett bejelentés részeként. A felhasználók a CapsLock+F billentyűkombináció lenyomásával kérhetik ezt a további részletet.
Kezelje a hozzáférhető nevet a vezérlő elsődleges azonosítójaként, és tartsa tömören. Ha további magyarázatra van szükség, adja meg ezt a további részleteket az AutomationProperties.HelpText segítségével a AutomationProperties.Name mellett.
Az akadálymentesség korai és gyakori tesztelése
A képernyőolvasó támogatásának ellenőrzésének legmegbízhatóbb módja, ha az alkalmazást közvetlenül képernyőolvasóval teszteli a fejlesztés során, nem csak a kiadás idején. A korai és ismételt tesztelés segít azonosítani a hiányzó vagy félrevezető akadálymentes neveket, a helytelen vezérlési expozíciót és a navigációs problémákat, miközben a módosítások még mindig olcsók. Minden egyes átadás után finomítsa a felhasználói felület struktúráját és a felhasználói felület automatizálási tulajdonságait annak alapján, hogy a felhasználók mit hallanak, és hogyan mozognak a felületen. További részletekért lásd: Akadálymentességi tesztelés.
Az AccScope hasznos eszköz ehhez a munkafolyamathoz, mivel automatizálási faként jeleníti meg a felhasználói felületet, így könnyebben megvizsgálhatja, hogy milyen kisegítő technológiák fedezhetők fel. A Narrátor-központú nézet segít megvizsgálni, hogyan származtatják a szöveget, valamint hogyan csoportosítják és rendezik az elemeket a beszélt kimenethez. Használja a termék életciklusa során, beleértve a korai tervezést és a vezérlősablonok érvényesítését is, hogy észlelje a szerkezeti akadálymentességi problémákat, mielőtt megjelennének a felhasználói tesztelésben. További részletekért lásd: AccScope.
Elérhető nevek dinamikus adatokból
Számos Windows-vezérlő adatkötéssel jeleníti meg a tartalmat, ami azt jelenti, hogy az akadálymentes neveket gyakran futásidejű adatokból határozzák meg, és nem statikus XAML-ről. Ha a lista- vagy elemsablonok dinamikusan vannak feltöltve, győződjön meg arról, hogy minden létrehozott elem egy értelmezhető, akadálymentes nevet tesz elérhetővé a kötés befejezése után. A vezérlő és a sablon összetételétől függően előfordulhat, hogy programozott módon kell beállítania vagy frissítenie az akadálymentességi tulajdonságokat, hogy az automation fa tükrözze a végleges renderelt állapotot. A teljes körű példa a XAML akadálymentességi mintájában található, a "Forgatókönyv 4" (archivált öröklött minta) részeként.
Akadálymentes nevek és lokalizáció
Az akadálymentes neveket a látható felhasználói felület szövegével megegyező szigorúsággal kell honosíteni. Tárolja a címkéket a honosítási erőforrásokban, és kapcsolja össze őket x:Uid direktíva-leképezéseken keresztül, így a beszélt kimenet megegyezik a felhasználó nyelvével. Ha explicit módon állítja be az AutomationProperties.Name-t, győződjön meg arról, hogy az érték lokalizált erőforrásokból származik, nem pedig kézzel kódolt szövegből.
Az AutomationProperties csatolt tulajdonságai egy minősített erőforráskulcs-szintaxist használnak, hogy a honosítás megcélozza a csatolt tulajdonságot egy adott elemen. Ha például az elem neve MediumButton, a AutomationProperties.Name erőforráskulcsa a MediumButton.[using:Microsoft.UI.Xaml.Automation]AutomationProperties.Name.
Kapcsolódó témakörök
- Akadálymentesség áttekintése
- AutomationProperties.Name
- XAML akadálymentességi minta (archivált örökölt minta)
- akadálymentességi tesztelési
Windows developer