Návod: Vytvoření přístupné aplikace založené na Windows
Vytvoření přístupné aplikace má důležité obchodní důsledky. Mnoho vlád má předpisy týkající se přístupnosti pro nákup softwaru. Logo Certified for Windows zahrnuje požadavky na přístupnost. Dostupnost softwaru ovlivňuje přibližně 30 milionů obyvatel samotné USA, z mnoha z nich potenciální zákazníky.
Tento názorný postup bude řešit pět požadavků na přístupnost pro logo Certified for Windows. Podle těchto požadavků bude přístupná aplikace:
Podpora nastavení velikosti, barvy, písma a vstupu Ovládacích panelů Když uživatel změní nastavení ovládacích panelů, změní velikost řádku nabídek, záhlaví, ohraničení a stavového řádku. V této aplikaci nejsou vyžadovány žádné další změny ovládacích prvků nebo kódu.
Podporuje režim Vysoký kontrast.
Zdokumentujte, jak klávesnicí přistupovat ke všem funkcím.
Zviditelnění pozice fokusu klávesnice jak vizuálně, tak programově.
Vyhněte se předávání důležitých informací zvukem.
Další informace najdete v tématu Zdroje informací o navrhování přístupných aplikací.
Informace o podpoře různých rozložení klávesnice najdete v tématu Osvědčené postupy pro vývoj aplikací připravených pro svět.
Vytvoření projektu
Tento průvodce vytvoří uživatelské rozhraní pro aplikaci, která přijímá objednávky pizzy. Skládá se z TextBox pro jméno zákazníka, skupiny RadioButton pro výběr velikosti pizzy, CheckedListBox pro výběr příloh, dvou ovládacích prvků Tlačítka označených jako Objednávka a Storno a Menu s příkazem Konec.
Uživatel zadá jméno zákazníka, velikost pizzy a požadované přílohy. Když uživatel klikne na tlačítko Objednávka, zobrazí se v dialogovém okně souhrn objednávky a její cena a ovládací prvky se vyčistí a připraví na další objednávku. Když uživatel klikne na tlačítko Storno, kontrolky se vymažou a jsou připraveny pro další objednávku. Když uživatel klikne na položku nabídky Konec, program se zavře.
Cílem této ukázky není kód prodejního systému objednávek, ale přístupnost uživatelského rozhraní. Návod ukazuje funkce přístupnosti několika často používaných ovládacích prvků, včetně tlačítek, přepínačů, textových polí a popisků.
Zahájení vytváření aplikace
- Vytvořte novou aplikaci pro Windows v jazyce Visual Basic nebo Visual C#. Pojmenujte projekt PizzaOrder. Podrobnosti najdete v tématu Vytváření nových řešení a projektů.
Přidání ovládacích prvků do formuláře
Při přidávání ovládacích prvků do formuláře mějte na paměti následující pokyny, abyste vytvořili přístupnou aplikaci:
Nastavte vlastnosti AccessibleDescription a AccessibleName. V tomto příkladu stačí výchozí nastavení pro AccessibleRole. Další informace o vlastnostech přístupnosti naleznete v tématu Poskytování informací o přístupnosti ovládacích prvků ve formuláři Windows Form.
Nastavte velikost písma na 10 bodů nebo větších.
Poznámka
Pokud při spuštění nastavíte velikost písma formuláře na 10, budou mít všechny ovládací prvky přidané do formuláře velikost písma 10.
Ujistěte se, že každý popisný ovládací prvek Popisek pro ovládací prvek TextBox se nachází před ovládacím prvkem TextBox v pořadí tabulátoru.
Přidejte přístupový klíč pomocí znaku "&" do vlastnosti Text libovolného ovládacího prvku, na který může uživatel chtít přejít.
Přidejte přístupový klíč pomocí znaku "&" do vlastnosti Text popisku, který předchází ovládacímu prvku, na který může uživatel chtít přejít. Nastavte vlastnost UseMnemonic popisků na
true
, aby fokus byl nastaven na další ovládací prvek v pořadí ovládacích prvků, když uživatel stiskne přístupovou klávesu.Přidejte přístupové klíče ke všem položkám nabídky.
Zpřístupnění aplikace pro Windows
Přidejte ovládací prvky do formuláře a nastavte vlastnosti, jak je popsáno níže. Podívejte se na obrázek na konci tabulky pro model uspořádání ovládacích prvků ve formuláři.
Objekt Vlastnost Hodnota Formulář 1 Popis přístupnosti Tiskopis objednávky DostupnéJméno Tiskopis objednávky Velikost písma 10 Text Formulář objednávky pizzy PictureBox Jméno logo Popis přístupnosti Řez pizzy PřístupnýNázev Firemní značka Obraz Libovolná ikona nebo rastrový obrázek Štítek Jméno štítek společnosti Text Dobrá Pizza TabIndex 1 Popis přístupnosti Název společnosti PřístupnýNázev Název společnosti Barva pozadí Modrý Barva popředí Žlutý Velikost písma 18 Označit Jméno zákaznické označení Text &Název TabIndex 2 PřístupnýPopis Štítek jména zákazníka PřístupnéJméno Štítek se jménem zákazníka UseMnemonic Pravda Textové pole Jméno Jméno zákazníka Text (žádný) TabIndex 3 Popis přístupnosti Jméno zákazníka AccessibleName Jméno zákazníka GroupBox Jméno Možnosti velikosti Popis přístupnosti Možnosti velikosti pizzy PřístupnéJméno Možnosti velikosti pizzy Text Velikost pizzy TabIndex 4 Přepínač Jméno smallPizza Text &Small 6,00 $ Zkontrolováno Pravda TabIndex 0 Popis přístupnosti Malá pizza Název pro přístupnost Malá pizza Radio tlačítko Jméno largePizza Text &Velký 10,00 US$ TabIndex 1 Popis pro přístupnost Velká pizza AccessibleName Velká pizza Štítek Jméno PřílohyLabel Text &Přílohy (každá za 0,75 USD) TabIndex 5 Přístupný popis Štítek s přísadami PřístupnéJméno Popisek polev UseMnemonic Pravda CheckedListBox Jméno polevy TabIndex 6 Popis pro asistivní technologie Dostupné přílohy Název pro přístupnost Dostupné přílohy Položky Pepperoni, Klobása, Houby Knoflík Jméno objednávka Text pořadí & TabIndex 7 Popis přístupnosti Součet objednávky AccessibleName Úplné uspořádání Knoflík Jméno zrušit Text &Zrušit TabIndex 8 Popis přístupnosti Zrušení objednávky Přístupné jméno Zrušit objednávku Hlavní nabídka Jméno theMainMenu MenuItem Jméno příkazy souborů Text soubor & MenuItem Jméno Ukončit aplikaci Text E&výstup Formulář bude vypadat přibližně jako na následujícím obrázku:
Podpora režimu vysokého kontrastu
Režim Vysoký kontrast je systémové nastavení systému Windows, které zlepšuje čitelnost pomocí kontrastních barev a velikostí písem, které jsou přínosné pro zrakově postižené uživatele. Vlastnost HighContrast je k dispozici k určení, zda je nastaven režim Vysoký kontrast.
Pokud systemInformation.HighContrast je true
, aplikace by měla:
Zobrazení všech prvků uživatelského rozhraní pomocí barevného schématu systému
Sdělit vizuálním upozorněním nebo zvukem jakékoli informace, které jsou vyjádřeny barvou. Pokud jsou například konkrétní položky seznamu zvýrazněné červeným písmem, můžete písmo dále zvýraznit tučně, aby měl uživatel kromě barvy i jiné vodítko, že jsou položky zvýrazněné.
Vynechání obrázků nebo vzorů za textem
Aplikace by měla zkontrolovat nastavení HighContrast při spuštění aplikace a reagovat na systémovou událost UserPreferenceChanged. Událost UserPreferenceChanged se vyvolá vždy, když se změní hodnota HighContrast.
V naší aplikaci je jediným prvkem, který nepoužívá nastavení systému pro barvu, lblCompanyName
. Třída SystemColors slouží ke změně nastavení barvy popisku na barvy systému vybrané uživatelem.
Efektivní povolení režimu Vysoký kontrast
Vytvořte metodu pro nastavení barev popisku na systémové barvy.
Private Sub SetColorScheme() If SystemInformation.HighContrast Then companyLabel.BackColor = SystemColors.Window companyLabel.ForeColor = SystemColors.WindowText Else companyLabel.BackColor = Color.Blue companyLabel.ForeColor = Color.Yellow End If End Sub
private void SetColorScheme() { if (SystemInformation.HighContrast) { companyLabel.BackColor = SystemColors.Window; companyLabel.ForeColor = SystemColors.WindowText; } else { companyLabel.BackColor = Color.Blue; companyLabel.ForeColor = Color.Yellow; } }
Volání procedury
SetColorScheme
v konstruktoru formuláře (Public Sub New()
v jazyce Visual Basic apublic Form1()
v jazyce Visual C#). Pro přístup ke konstruktoru v jazyce Visual Basic budete muset rozšířit oblast označenou kódem generovaným návrhářem formulářů Windows.Public Sub New() MyBase.New() InitializeComponent() SetColorScheme() End Sub
public Form1() { InitializeComponent(); SetColorScheme(); }
Vytvořte proceduru pro událost s odpovídající signaturou, která reaguje na událost UserPreferenceChanged.
Protected Sub UserPreferenceChanged(sender As Object, _ e As Microsoft.Win32.UserPreferenceChangedEventArgs) SetColorScheme() End Sub
public void UserPreferenceChanged(object sender, Microsoft.Win32.UserPreferenceChangedEventArgs e) { SetColorScheme(); }
Přidejte kód do konstruktoru formuláře za volání
InitializeComponents
, abyste připojili proceduru události k systémové události. Tato metoda volá proceduruSetColorScheme
.Public Sub New() MyBase.New() InitializeComponent() SetColorScheme() AddHandler Microsoft.Win32.SystemEvents.UserPreferenceChanged, _ AddressOf Me.UserPreferenceChanged End Sub
public Form1() { InitializeComponent(); SetColorScheme(); Microsoft.Win32.SystemEvents.UserPreferenceChanged += new Microsoft.Win32.UserPreferenceChangedEventHandler( this.UserPreferenceChanged); }
Přidejte kód do metody formuláře Dispose před voláním metody Dispose základní třídy, aby se událost uvolnila při zavření aplikace. Pokud chcete získat přístup k metodě Dispose v jazyce Visual Basic, budete muset rozbalit oblast označenou vygenerovaným kódem aplikace Windows Form Designer.
Poznámka
Kód systémové události spouští vlákno oddělené od hlavní aplikace. Pokud událost neuvolníte, kód, který připojíte k události, se spustí i po zavření programu.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If RemoveHandler Microsoft.Win32.SystemEvents.UserPreferenceChanged, _ AddressOf Me.UserPreferenceChanged MyBase.Dispose(disposing) End Sub
protected override void Dispose(bool disposing) { if(disposing && components != null) { components.Dispose(); } Microsoft.Win32.SystemEvents.UserPreferenceChanged -= new Microsoft.Win32.UserPreferenceChangedEventHandler( this.UserPreferenceChanged); base.Dispose( disposing ); }
Stisknutím klávesy F5 spusťte aplikaci.
Předávání důležitých informací jinými prostředky než zvukem
V této aplikaci nejsou žádné informace předávány pouze zvukem. Pokud ve své aplikaci používáte zvuk, měli byste informace zadat i jinými prostředky.
Poskytnutí informací jinými prostředky, než je zvuk
Nechte záhlaví blikat pomocí funkce Windows API FlashWindow. Příklad volání funkcí rozhraní API systému Windows najdete v tématu Návod: Volání rozhraní API systému Windows.
Poznámka
Uživatel může mít povolenou službu Windows SoundSentry, což také způsobí, že okno bliká, když se systémové zvuky přehrají prostřednictvím integrovaného reproduktoru počítače.
Zobrazí důležité informace v nemodálním okně, aby na ně uživatel mohl reagovat.
Zobrazí okno se zprávou, které získá fokus klávesnice. Vyhněte se této metodě, když uživatel může psát.
Zobrazení indikátoru stavu v oznamovací oblasti stavu na hlavním panelu Podrobnosti najdete v tématu Přidání ikon aplikací do panelu úloh pomocí komponenty Windows Forms NotifyIcon.
Testování aplikace
Před nasazením aplikace byste měli otestovat funkce přístupnosti, které jste implementovali.
Testování funkcí přístupnosti
Pokud chcete otestovat přístup pomocí klávesnice, odpojte myš a procházejte uživatelské rozhraní pro každou funkci jenom pomocí klávesnice. Zajistěte, aby se všechny úkoly prováděly jenom pomocí klávesnice.
Pokud chcete otestovat podporu vysokého kontrastu, zvolte v Ovládacích panelech ikonu Možnosti přístupnosti. Klikněte na kartu Zobrazení a zaškrtněte políčko Použít vysoký kontrast. Projděte všechny prvky uživatelského rozhraní, abyste měli jistotu, že se projeví změny barvy a písma. Také se ujistěte, že obrázky nebo vzory vykreslené za textem nejsou vynechány.
Poznámka
Systém Windows NT 4 nemá v Ovládacích panelech ikonu Možnosti přístupnosti. Proto tento postup pro změnu systemInformation.HighContrast nastavení nefunguje v systému Windows NT 4.
Další nástroje jsou snadno dostupné pro testování přístupnosti aplikace.
Pokud chcete otestovat zobrazení fokusu klávesnice, spusťte Lupu. (Chcete-li jej otevřít, klikněte na nabídku Start, přejděte na Programy, přejděte na Příslušenství, přejděte na Usnadnění, a potom klikněte na Lupa). K navigaci v uživatelském rozhraní použijte klávesovou zkratku tabbing i myš. Ujistěte se, že je veškerá navigace správně sledována vlupy
. Pokud chcete otestovat vystavení prvků obrazovky, spusťte příkaz Inspect a pomocí myši a klávesy TAB přejděte ke každému prvku. Ujistěte se, že informace uvedené v polích Název, Stav, Role, Umístění a Hodnota okna Kontrola jsou pro uživatele pro každý objekt v uživatelském rozhraní smysluplné.
.NET Desktop feedback