Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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
- Maak een nieuwe Windows-toepassing in Visual Basic of Visual C#. Noem het project PizzaOrder. Zie Nieuwe oplossingen en projecten maken voor meer informatie.
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:
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
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 Subprivate void SetColorScheme() { if (SystemInformation.HighContrast) { companyLabel.BackColor = SystemColors.Window; companyLabel.ForeColor = SystemColors.WindowText; } else { companyLabel.BackColor = Color.Blue; companyLabel.ForeColor = Color.Yellow; } }Roep de
SetColorSchemeprocedure aan in de formulierconstructor (Public Sub New()in Visual Basic enpublic 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 Subpublic Form1() { InitializeComponent(); SetColorScheme(); }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 Subpublic void UserPreferenceChanged(object sender, Microsoft.Win32.UserPreferenceChangedEventArgs e) { SetColorScheme(); }Voeg code toe aan de formulierconstructor, na de aanroep naar
InitializeComponents, om de gebeurtenisprocedure aan de systeemevenementen te koppelen. Met deze methode wordt deSetColorSchemeprocedure aangeroepen.Public Sub New() MyBase.New() InitializeComponent() SetColorScheme() AddHandler Microsoft.Win32.SystemEvents.UserPreferenceChanged, _ AddressOf Me.UserPreferenceChanged End Subpublic Form1() { InitializeComponent(); SetColorScheme(); Microsoft.Win32.SystemEvents.UserPreferenceChanged += new Microsoft.Win32.UserPreferenceChangedEventHandler( this.UserPreferenceChanged); }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 Subprotected override void Dispose(bool disposing) { if(disposing && components != null) { components.Dispose(); } Microsoft.Win32.SystemEvents.UserPreferenceChanged -= new Microsoft.Win32.UserPreferenceChangedEventHandler( this.UserPreferenceChanged); base.Dispose( disposing ); }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
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.
Geef de belangrijke informatie weer in een niet-modaal venster, zodat de gebruiker erop kan reageren.
Een berichtvak weergeven waarmee de toetsenbordfocus wordt verkregen. Vermijd deze methode wanneer de gebruiker mogelijk typt.
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
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.
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.
Andere hulpprogramma's zijn direct beschikbaar voor het testen van de toegankelijkheid van een toepassing.
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.
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.
.NET Desktop feedback