Delen via


Overzicht: Een toegankelijke Windows-toepassing maken

Het maken van een toegankelijke toepassing heeft belangrijke zakelijke implicaties. Veel overheden hebben toegankelijkheidsregels voor software-aankoop. Het logo Gecertificeerd voor Windows bevat toegankelijkheidsvereisten. Een geschatte 30 miljoen inwoners van de VS alleen, veel van hen potentiële klanten, worden beïnvloed door de toegankelijkheid van software.

In dit scenario worden de vijf toegankelijkheidsvereisten voor het logo Gecertificeerd voor Windows besproken. Volgens deze vereisten zal een toegankelijke toepassing het volgende doen:

  • Ondersteuning voor configuratieschermgrootte, kleur, lettertype en invoerinstellingen. De menubalk, de titelbalk, de randen en de statusbalk worden allemaal aangepast wanneer de gebruiker de instellingen van het configuratiescherm wijzigt. Er zijn geen aanvullende wijzigingen in de besturingselementen of code vereist in deze toepassing.

  • Ondersteuning voor de modus Hoog contrast.

  • Geef gedocumenteerde toetsenbordtoegang tot alle functies.

  • De locatie van de toetsenbordfocus visueel en programmatisch beschikbaar maken.

  • Vermijd het overbrengen van belangrijke informatie uitsluitend via geluid.

Zie voor meer informatie Bronnen voor het ontwerpen van toegankelijke toepassingen.

Zie Best Practices voor het ontwikkelen van wereldwijde toepassingen voor meer informatie over het ondersteunen van verschillende toetsenbordindelingen.

Het project maken

Met deze procedure maakt u de gebruikersinterface voor een toepassing die pizzabestellingen accepteert. Het bestaat uit een TextBox voor de naam van de klant, een RadioButton groep om de pizzagrootte te selecteren, een CheckedListBox voor het selecteren van de toppings, twee knopbesturingselementen met het label Order en Annuleren en een menu met een opdracht Afsluiten.

De gebruiker voert de naam van de klant, de grootte van de pizza en de gewenste toppings in. Wanneer de gebruiker op de Bestelknop klikt, worden een samenvatting van de bestelling en de bijbehorende kosten weergegeven in een berichtvak en worden de besturingselementen gereset en voorbereid voor de volgende bestelling. Wanneer de gebruiker op de knop Annuleren klikt, worden de bedieningselementen gewist en gereed voor de volgende opdracht. Wanneer de gebruiker op het menu-item Afsluiten klikt, wordt het programma gesloten.

De nadruk van dit stappenplan ligt niet op de code voor een systeem voor detailhandelorders, maar op de toegankelijkheid van de gebruikersinterface. In de walkthrough ziet u de toegankelijkheidsfuncties van verschillende veelgebruikte besturingselementen, waaronder knoppen, keuzerondjes, tekstvakken en labels.

Om met het maken van de toepassing te beginnen

De besturingselementen toevoegen aan het formulier

Houd bij het toevoegen van de besturingselementen aan een formulier rekening met de volgende richtlijnen om een toegankelijke toepassing te maken:

  • Stel de eigenschappen AccessibleDescription en AccessibleName in. In dit voorbeeld is de standaardinstelling voor de AccessibleRole voldoende. Zie Toegankelijkheidsinformatie voor besturingselementen in een Windows-formulier opgeven voor meer informatie over de toegankelijkheidseigenschappen.

  • Stel de tekengrootte in op 10 punten of groter.

    Opmerking

    Als u de tekengrootte van het formulier instelt op 10 wanneer u begint, hebben alle besturingselementen die vervolgens aan het formulier worden toegevoegd, een tekengrootte van 10.

  • Zorg ervoor dat elk besturingselement Label dat een tekstvakbesturingselement beschrijft, direct voorafgaat aan het besturingselement Tekstvak in de tabvolgorde.

  • Voeg een toegangssleutel toe met behulp van het teken '&' aan de Text eigenschap van elk besturingselement waarnaar de gebruiker mogelijk wilt navigeren.

  • Voeg met het teken '&' een toegangssleutel toe aan de Text eigenschap van het label dat voorafgaat aan een bedieningselement waar de gebruiker mogelijk naartoe wil navigeren. Stel de eigenschap van UseMnemonic de labels in op true, zodat de focus is ingesteld op het volgende besturingselement in de tabvolgorde wanneer de gebruiker op de toegangstoets drukt.

  • Voeg toegangssleutels toe aan alle menu-items.

Uw Windows-toepassing toegankelijk maken

  • Voeg de besturingselementen toe aan het formulier en stel de eigenschappen in zoals hieronder wordt beschreven. Zie de afbeelding aan het einde van de tabel voor een model van het rangschikken van de besturingselementen in het formulier.

    Voorwerp Vastgoed Waarde
    Formulier1 Toegankelijke Beschrijving Bestelformulier
    ToegankelijkeNaam Bestelformulier
    Tekengrootte 10
    Tekst Formulier pizzabestelling
    PictureBox Naam logo
    Toegankelijke Beschrijving Een stukje pizza
    ToegankelijkeNaam Bedrijfslogo
    Afbeelding Een pictogram of bitmap
    Etiket Naam bedrijfslabel
    Tekst Goede pizza
    TabIndex 1
    Toegankelijke Beschrijving Bedrijfsnaam
    ToegankelijkeNaam Bedrijfsnaam
    Achtergrondkleur Blauw
    Forecolor Geel
    Tekengrootte 18
    Etiket Naam klantlabel
    Tekst &Naam
    TabIndex 2
    Toegankelijke Beschrijving Label klantnaam
    ToegankelijkeNaam Label klantnaam
    UseMnemonic Klopt
    Tekstvak Naam klantnaam
    Tekst (geen)
    TabIndex 3
    Toegankelijke Beschrijving Klantnaam
    ToegankelijkeNaam Klantnaam
    Groepsvak Naam grootte-opties
    Toegankelijke Beschrijving Opties voor pizzagrootte
    ToegankelijkeNaam Opties voor pizzagrootte
    Tekst Pizzagrootte
    TabIndex 4
    RadioButton Naam kleinePizza
    Tekst &Small $ 6,00
    Gecontroleerd Klopt
    TabIndex 0
    Toegankelijke Beschrijving Kleine pizza
    ToegankelijkeNaam Kleine pizza
    RadioButton Naam largePizza
    Tekst &Large $ 10,00
    TabIndex 1
    Toegankelijke Beschrijving Grote pizza
    ToegankelijkeNaam Grote pizza
    Etiket Naam Toppings Etiket
    Tekst &Toppings ($ 0,75 elk)
    TabIndex 5
    Toegankelijke Beschrijving Label voor toppings
    ToegankelijkeNaam Label voor toppings
    UseMnemonic Klopt
    CheckedListBox Naam Toppings
    TabIndex 6
    Toegankelijke Beschrijving Beschikbare toppings
    ToegankelijkeNaam Beschikbare toppings
    Artikelen Pepperoni, Saucijs, Champignons
    Knop Naam bestelling
    Tekst &Bestelling
    TabIndex 7
    Toegankelijke Beschrijving Totaal van de bestelling
    ToegankelijkeNaam Totale bestelling
    Knop Naam Annuleren
    Tekst &Annuleren
    TabIndex 8
    Toegankelijke Beschrijving De bestelling annuleren
    ToegankelijkeNaam Bestelling annuleren
    Hoofdmenu Naam theMainMenu
    Menu-item Naam fileCommands
    Tekst &Bestand
    Menu-item Naam app afsluiten
    Tekst E&uitgang

    Uw formulier ziet er ongeveer als volgt uit:

    Het pizzabestellingsformulier met een naamtekstvak en de grootte en de selectie van toppings.

Ondersteuning voor de modus Hoog contrast

De modus Hoog contrast is een Windows-systeeminstelling die de leesbaarheid verbetert door contrasterende kleuren en tekengrootten te gebruiken die nuttig zijn voor slechtziende gebruikers. De HighContrast eigenschap wordt opgegeven om te bepalen of de modus Hoog contrast is ingesteld.

Als SystemInformation.HighContrast is true, moet de toepassing:

  • Alle elementen van de gebruikersinterface weergeven met behulp van het systeemkleurschema

  • Breng door visuele aanwijzingen of geluid de informatie over die normaal gesproken met kleur wordt weergegeven. Als bepaalde lijstitems bijvoorbeeld zijn gemarkeerd met behulp van een rood lettertype, kunt u ook vet toevoegen aan het lettertype, zodat de gebruiker een niet-gekleurde aanwijzing heeft dat de items zijn gemarkeerd.

  • Afbeeldingen of patronen achter tekst weglaten

De toepassing moet de instelling controleren van HighContrast wanneer de toepassing wordt gestart en reageert op de systeem gebeurtenis UserPreferenceChanged. De UserPreferenceChanged gebeurtenis treedt op wanneer de waarde van HighContrast wijzigt.

In onze toepassing is lblCompanyNamehet enige element dat niet gebruikmaakt van de systeeminstellingen voor kleur. De SystemColors klasse wordt gebruikt om de kleurinstellingen van het label te wijzigen in de door de gebruiker geselecteerde systeemkleuren.

De modus Hoog contrast op een effectieve manier inschakelen

  1. Maak een methode om de kleuren van het label in te stellen op de systeemkleuren.

    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. Roep de SetColorScheme procedure aan in de formulierconstructor (Public Sub New() in Visual Basic en public Form1() in Visual C#). Als u toegang wilt krijgen tot de constructor in Visual Basic, moet u de regio uitbreiden met het label Gegenereerde code van Windows Form Designer.

    Public Sub New()
        MyBase.New()
        InitializeComponent()
        SetColorScheme()
    End Sub
    
    public Form1()
    {
        InitializeComponent();
        SetColorScheme();
    }
    
  3. Maak een gebeurtenisprocedure met de juiste handtekening om op de UserPreferenceChanged gebeurtenis te reageren.

    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. Voeg code toe aan de formulierconstructor, na de aanroep naar InitializeComponents, om de gebeurtenisprocedure aan de systeemevenementen te koppelen. Met deze methode wordt de SetColorScheme procedure aangeroepen.

    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. Voeg code toe aan de formuliermethode Dispose , vóór de aanroep naar de Dispose methode van de basisklasse, om de gebeurtenis vrij te geven wanneer de toepassing wordt gesloten. Als u toegang wilt krijgen tot de Dispose methode in Visual Basic, moet u het gebied dat het label Windows Form Designer gegenereerde code draagt, uitbreiden.

    Opmerking

    Met de systeem gebeurteniscode wordt een thread uitgevoerd die losstaat van de hoofdtoepassing. Als u de gebeurtenis niet vrijgeeft, wordt de code die u aan de gebeurtenis koppelt, uitgevoerd, zelfs nadat het programma is gesloten.

    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. Druk op F5 om de toepassing uit te voeren.

Het overbrengen van belangrijke informatie met andere middelen dan geluid

In deze toepassing wordt geen informatie uitsluitend via geluid overgebracht. Als u geluid in uw toepassing gebruikt, moet u de informatie ook op een andere wijze opgeven.

Informatie verstrekken op een andere wijze dan geluid

  1. Laat de titelbalk knipperen met behulp van de Windows API-functie FlashWindow. Zie Overzicht: Windows-API's aanroepen voor een voorbeeld van het aanroepen van Windows-API's.

    Opmerking

    De gebruiker kan de Windows SoundSentry-service hebben ingeschakeld, waardoor het venster ook knippert wanneer de systeemgeluiden worden afgespeeld via de ingebouwde luidspreker van de computer.

  2. Geef de belangrijke informatie weer in een niet-modaal venster, zodat de gebruiker erop kan reageren.

  3. Een berichtvak weergeven waarmee de toetsenbordfocus wordt verkregen. Vermijd deze methode wanneer de gebruiker mogelijk typt.

  4. Geef een statusindicator weer in het systeemvak van de taakbalk. Zie Toepassingspictogrammen toevoegen aan de taakbalk met het Windows Forms NotifyIcon-onderdeel voor meer informatie.

De toepassing testen

Voordat u de toepassing implementeert, moet u de toegankelijkheidsfuncties testen die u hebt geïmplementeerd.

Toegankelijkheidsfuncties testen

  1. Als u de toegang tot het toetsenbord wilt testen, koppelt u de muis los en navigeert u in de gebruikersinterface voor elke functie met alleen het toetsenbord. Zorg ervoor dat alle taken alleen met het toetsenbord kunnen worden uitgevoerd.

  2. Als u de ondersteuning van Hoog contrast wilt testen, kiest u het pictogram Toegankelijkheidsopties in het Configuratiescherm. Klik op het tabblad Weergave en schakel het selectievakje Hoog contrast gebruiken in. Navigeer door alle elementen van de gebruikersinterface om ervoor te zorgen dat de wijzigingen in kleur en lettertype worden weergegeven. Zorg er ook voor dat afbeeldingen of patronen die achter tekst worden getekend, worden weggelaten.

    Opmerking

    Windows NT 4 heeft geen pictogram Toegankelijkheidsopties in het Configuratiescherm. Deze procedure voor het wijzigen van de instelling SystemInformation.HighContrast werkt dus niet in Windows NT 4.

  3. Andere hulpprogramma's zijn direct beschikbaar voor het testen van de toegankelijkheid van een toepassing.

  4. Als u het zichtbaar maken van de toetsenbordfocus wilt testen, voert u Vergrootglas uit. (Als u het wilt openen, klikt u op het menu Start , wijst u Programma's aan, wijst u Accessoires aan, wijst u Toegankelijkheid aan en klikt u vervolgens op Vergrootglas). Navigeer in de gebruikersinterface met zowel toetsenbordtabtoetsen als met de muis. Zorg ervoor dat alle navigatie correct wordt bijgehouden in Vergrootglas.

  5. Als u het weergeven van schermelementen wilt testen, voert u Inspect uit en gebruikt u zowel de muis als de TAB-toets om elk element te bereiken. Zorg ervoor dat de informatie die wordt weergegeven in de velden Naam, Status, Rol, Locatie en Waarde van het venster Inspecteren zinvol is voor de gebruiker voor elk object in de gebruikersinterface.