Sdílet prostřednictvím


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

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:

    Formulář objednávky pizzy s textovým polem pro zadání jména a s výběrem velikosti a polevy.

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

  1. 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;
        }
    }
    
  2. Volání procedury SetColorScheme v konstruktoru formuláře (Public Sub New() v jazyce Visual Basic a public 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();
    }
    
  3. 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();
    }
    
  4. 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á proceduru SetColorScheme.

    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);
    }
    
  5. 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 );
    }
    
  6. 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

  1. 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.

  2. Zobrazí důležité informace v nemodálním okně, aby na ně uživatel mohl reagovat.

  3. Zobrazí okno se zprávou, které získá fokus klávesnice. Vyhněte se této metodě, když uživatel může psát.

  4. 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

  1. 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.

  2. 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.

  3. Další nástroje jsou snadno dostupné pro testování přístupnosti aplikace.

  4. 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 .

  5. 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é.