Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Erstellen einer barrierefreien Anwendung hat wichtige geschäftliche Auswirkungen. Viele Regierungen haben Barrierefreiheitsvorschriften für den Softwarekauf. Das für Windows zertifizierte Logo enthält Barrierefreiheitsanforderungen. Allein 30 Millionen Einwohner der USA, viele von ihnen potenzielle Kunden, sind von der Barrierefreiheit von Software betroffen.
In dieser exemplarischen Vorgehensweise werden die fünf Anforderungen an die Barrierefreiheit für das Logo "Zertifiziert für Windows" erfüllt. Gemäß diesen Anforderungen sollte eine barrierefreie Anwendung:
Unterstützen Sie die Systemsteuerungsgröße, Farbe, Schriftart und Eingabeeinstellungen. Die Menüleiste, die Titelleiste, die Rahmen und die Statusleiste ändern sich alle selbst, wenn der Benutzer die Einstellungen der Systemsteuerung ändert. In dieser Anwendung sind keine zusätzlichen Änderungen an den Steuerelementen oder Code erforderlich.
Unterstützt den Modus "Hoher Kontrast".
Bereitstellen des dokumentierten Tastaturzugriffs auf alle Features.
Stellen Sie die Position des Tastaturfokus visuell und programmgesteuert zur Verfügung.
Vermeiden Sie es, wichtige Informationen allein durch Sound zu vermitteln.
Weitere Informationen finden Sie unter Ressourcen für das Entwerfen barrierefreier Anwendungen.
Informationen zur Unterstützung unterschiedlicher Tastaturlayouts finden Sie unter "Best Practices for Developing World-Ready Applications".
Projekt erstellen
In dieser exemplarischen Vorgehensweise wird die Benutzeroberfläche für eine Anwendung erstellt, die Pizzabestellungen übernimmt. Es besteht aus einem TextBox für den Namen des Kunden, einer RadioButton-Gruppe zum Auswählen der Pizzagröße, einer CheckedListBox zum Auswählen der Beläge, zwei Schaltflächensteuerelementen mit der Bezeichnung "Bestellen" und "Abbrechen" und einem Menü mit einem Befehl "Beenden".
Der Benutzer gibt den Namen des Kunden, die Größe der Pizza und die gewünschten Beläge ein. Wenn der Benutzer auf die Schaltfläche "Bestellung" klickt, wird eine Zusammenfassung der Bestellung und deren Kosten in einem Meldungsfeld angezeigt und die Steuerelemente werden gelöscht, sodass sie bereit für die nächste Bestellung sind. Wenn der Benutzer auf die Schaltfläche "Abbrechen" klickt, werden die Eingaben gelöscht und sind bereit für die nächste Bestellung. Wenn der Benutzer auf das Menüelement "Beenden" klickt, wird das Programm geschlossen.
Der Schwerpunkt dieser Anleitung liegt nicht auf dem Code für ein Einzelhandelsauftragssystem, sondern auf der Barrierefreiheit der Benutzeroberfläche. Die Anleitung veranschaulicht die Barrierefreiheitsfunktionen mehrerer häufig verwendeter Steuerelemente, darunter Schaltflächen, Optionsfelder, Textfelder und Labels.
So beginnen Sie mit der Erstellung der Anwendung
- Erstellen Sie eine neue Windows-Anwendung in Visual Basic oder Visual C#. Nennen Sie das Projekt "PizzaOrder". Weitere Informationen finden Sie unter Creating New Solutions and Projects.
Hinzufügen der Steuerelemente zum Formular
Beachten Sie beim Hinzufügen der Steuerelemente zu einem Formular die folgenden Richtlinien, um eine barrierefreie Anwendung zu erstellen:
Legen Sie für die Eigenschaften AccessibleDescription und AccessibleName fest. In diesem Beispiel ist die Standardeinstellung für die AccessibleRole ausreichend. Weitere Informationen zu den Barrierefreiheitseigenschaften finden Sie unter Bereitstellen von Barrierefreiheitsinformationen für Steuerelemente in einem Windows Form.For more information on the accessibility properties, see Providing Accessibility Information for Controls on a Windows Form.
Legen Sie den Schriftgrad auf 10 Punkt oder größer fest.
Hinweis
Wenn Sie den Schriftgrad des Formulars beim Start auf 10 festlegen, weisen alle dem Formular anschließend hinzugefügten Steuerelemente einen Schriftgrad von 10 auf.
Stellen Sie sicher, dass ein Beschriftungssteuerelement, das ein TextBox-Steuerelement beschreibt, unmittelbar vor dem TextBox-Steuerelement in der Aktivierreihenfolge steht.
Fügen Sie der Eigenschaft eines beliebigen Steuerelements, zu dem der Text Benutzer navigieren möchte, eine Zugriffstaste hinzu, indem Sie das Zeichen "&" verwenden.
Fügen Sie der Eigenschaft der Bezeichnung, die Text einem Steuerelement vorausgeht, eine Zugriffstaste mit dem Zeichen "&" hinzu, zu dem der Benutzer navigieren möchte. Legen Sie die Eigenschaft der Bezeichnungen UseMnemonic auf
true
fest, sodass der Fokus auf das nächste Steuerelement in der Tab-Reihenfolge festgelegt wird, wenn der Benutzer den Zugangsschlüssel drückt.Fügen Sie allen Menüelementen Zugriffstasten hinzu.
So machen Sie Ihre Windows-Anwendung barrierefrei
Fügen Sie dem Formular die Steuerelemente hinzu, und legen Sie die Eigenschaften wie unten beschrieben fest. Sehen Sie sich das Bild am Ende der Tabelle an, um ein Modell zum Anordnen der Steuerelemente im Formular anzuzeigen.
Objekt Eigentum Wert Formular1 ZugänglicheBeschreibung Bestellschein Barrierefreier Name Bestellschein Schriftgröße 10 Text Pizza-Bestellformular PictureBox Name Logo ZugänglicheBeschreibung Ein Stück Pizza Barrierefreier Name Unternehmenslogo Abbildung Beliebiges Symbol oder Bitmap Etikett Name companyLabel Text Gute Pizza TabIndex 1 ZugänglicheBeschreibung Unternehmensname Barrierefreier Name Unternehmensname Hintergrundfarbe Blau Forecolor Gelb Schriftgrad 18 Etikett Name Kundenetikett Text &Name TabIndex 2 ZugänglicheBeschreibung Kundenname Barrierefreier Name Kundenname UseMnemonic Richtig Textfeld Name Kundenname Text (kein) TabIndex 3 ZugänglicheBeschreibung Name des Kunden Barrierefreier Name Name des Kunden GroupBox Name Größenoptionen ZugänglicheBeschreibung Pizzagrößenoptionen Barrierefreier Name Pizzagrößenoptionen Text Pizzagröße TabIndex 4 RadioButton Name smallPizza Text &Klein $ 6,00 Geprüft Richtig TabIndex 0 ZugänglicheBeschreibung Kleine Pizza Barrierefreier Name Kleine Pizza RadioButton Name largePizza Text Groß $10,00 TabIndex 1 ZugänglicheBeschreibung Große Pizza Barrierefreier Name Große Pizza Etikett Name toppingsLabel Text &Toppings (pro Stück 0,75 €) TabIndex 5 ZugänglicheBeschreibung Toppings-Beschriftung Barrierefreier Name Toppings-Beschriftung UseMnemonic Richtig CheckedListBox Name Garnierungen TabIndex 6 ZugänglicheBeschreibung Verfügbare Toppings Barrierefreier Name Verfügbare Toppings Gegenstände Pfefferoni, Wurst, Pilze Schaltfläche Name Auftrag Text &Reihenfolge TabIndex 7 ZugänglicheBeschreibung Summe der Bestellung Barrierefreier Name Gesamtauftrag Schaltfläche Name Abbrechen Text &Abbrechen TabIndex 8 ZugänglicheBeschreibung Stornieren der Bestellung Barrierefreier Name Auftrag stornieren Hauptmenü Name Hauptmenü Menüpunkt Name fileCommands Text &Datei Menüpunkt Name exitApp Text E&xit Ihr Formular sieht ungefähr wie die folgende Abbildung aus:
Das Pizza-Bestellformular mit einem Textfeld für den Namen sowie der Auswahl der Größe und der Beläge.
Unterstützen des Modus für hohen Kontrast
Der Modus "Hoher Kontrast" ist eine Windows-Systemeinstellung, die die Lesbarkeit verbessert, indem Kontrastfarben und Schriftgrade verwendet werden, die für sehbehinderte Benutzer von Vorteil sind. Die HighContrast Eigenschaft wird bereitgestellt, um zu bestimmen, ob der Modus für hohen Kontrast festgelegt ist.
Wenn SystemInformation.HighContrast ist true
, sollte die Anwendung:
Anzeigen aller Benutzeroberflächenelemente mithilfe des Systemfarbschemas
Vermitteln Sie jegliche Informationen, die durch Farbe übermittelt werden, mittels visuellen Hinweisen oder Tonsignalen. Wenn beispielsweise bestimmte Listenelemente mithilfe einer roten Schriftart hervorgehoben werden, können Sie der Schriftart auch Fettschrift hinzufügen, sodass der Benutzer einen nicht farbigen Hinweis darauf hat, dass die Elemente hervorgehoben sind.
Weglassen von Bildern oder Mustern hinter Text
Die Anwendung sollte die Einstellung HighContrast überprüfen, wann die Anwendung startet und auf das Systemereignis UserPreferenceChangedreagiert. Das UserPreferenceChanged Ereignis wird jedes Mal ausgelöst, wenn sich der Wert HighContrast ändert.
In unserer Anwendung ist lblCompanyName
das einzige Element, das nicht die Systemeinstellungen für die Farbe verwendet. Die SystemColors Klasse wird verwendet, um die Farbeinstellungen der Beschriftung in die vom Benutzer ausgewählten Systemfarben zu ändern.
So aktivieren Sie den Modus "Hoher Kontrast" auf effektive Weise
Erstellen Sie eine Methode, um die Farben der Beschriftung auf die Systemfarben festzulegen.
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; } }
Rufen Sie die
SetColorScheme
Prozedur im Formularkonstruktor auf (Public Sub New()
in Visual Basic undpublic Form1()
in Visual C#). Um auf den Konstruktor in Visual Basic zuzugreifen, müssen Sie den Bereich Windows Form Designer generierten Code erweitern.Public Sub New() MyBase.New() InitializeComponent() SetColorScheme() End Sub
public Form1() { InitializeComponent(); SetColorScheme(); }
Erstellen Sie eine Ereignisprozedur mit der entsprechenden Signatur, um auf das UserPreferenceChanged Ereignis zu reagieren.
Protected Sub UserPreferenceChanged(sender As Object, _ e As Microsoft.Win32.UserPreferenceChangedEventArgs) SetColorScheme() End Sub
public void UserPreferenceChanged(object sender, Microsoft.Win32.UserPreferenceChangedEventArgs e) { SetColorScheme(); }
Fügen Sie dem Formularkonstruktor Code hinzu, nach dem Aufruf von
InitializeComponents
, um die Ereignisprozedur mit dem Systemereignis zu verbinden. Diese Methode ruft dieSetColorScheme
Prozedur auf.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); }
Fügen Sie der Formularmethode Dispose Code vor dem Aufruf der Dispose Methode der Basisklasse hinzu, um das Ereignis freizugeben, wenn die Anwendung geschlossen wird. Um auf die Dispose Methode in Visual Basic zuzugreifen, müssen Sie den Bereich erweitern, der als 'Vom Windows-Formular-Designer generierter Code' bezeichnet ist.
Hinweis
Der Systemereigniscode führt einen thread getrennt von der Hauptanwendung aus. Wenn Sie das Ereignis nicht freigeben, wird der Code, den Sie mit dem Ereignis verbinden, auch nach dem Schließen des Programms ausgeführt.
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 ); }
Drücken Sie F5, um die Anwendung auszuführen.
Übermittlung wichtiger Informationen auf andere Weise als über Klang
In dieser Anwendung werden keine Informationen allein durch Ton vermittelt. Wenn Sie Sound in Ihrer Anwendung verwenden, sollten Sie die Informationen auch auf andere Weise bereitstellen.
Stellen Sie Informationen auf andere Weise als durch Ton bereit.
Machen Sie den Titelleistenblitz mithilfe der Windows-API-Funktion FlashWindow. Ein Beispiel zum Aufrufen von Windows-API-Funktionen finden Sie unter Exemplarische Vorgehensweise: Aufrufen von Windows-APIs.
Hinweis
Der Benutzer hat möglicherweise den Windows SoundSentry-Dienst aktiviert, was auch dazu führt, dass das Fenster blinkt, wenn die Systemsounds über den integrierten Lautsprecher des Computers wiedergegeben werden.
Zeigen Sie die wichtigen Informationen in einem nicht modalen Fenster an, damit der Benutzer darauf reagieren kann.
Anzeigen eines Meldungsfelds, das den Tastaturfokus erhält. Vermeiden Sie diese Methode, wenn der Benutzer möglicherweise eingabet.
Zeigt einen Statusindikator im Statusbenachrichtigungsbereich der Taskleiste an. Ausführliche Informationen finden Sie unter Hinzufügen von Anwendungssymbolen zur Taskleiste mit der Windows Forms NotifyIcon-Komponente.
Testen der Anwendung
Bevor Sie die Anwendung bereitstellen, sollten Sie die von Ihnen implementierten Barrierefreiheitsfeatures testen.
So testen Sie Barrierefreiheitsfunktionen
Wenn Sie den Tastaturzugriff testen möchten, trennen Sie die Maus, und navigieren Sie in der Benutzeroberfläche für jede Funktion, indem Sie nur die Tastatur verwenden. Stellen Sie sicher, dass alle Aufgaben nur über die Tastatur ausgeführt werden können.
Um die Unterstützung für hohen Kontrast zu testen, wählen Sie in der Systemsteuerung das Symbol "Barrierefreiheitsoptionen" aus. Klicken Sie auf die Registerkarte "Anzeige", und aktivieren Sie das Kontrollkästchen "Hohen Kontrast verwenden". Navigieren Sie durch alle Benutzeroberflächenelemente, um sicherzustellen, dass die Farb- und Schriftartänderungen widergespiegelt werden. Stellen Sie außerdem sicher, dass Bilder oder Muster, die hinter Text gezeichnet wurden, weggelassen werden.
Hinweis
Windows NT 4 verfügt nicht über ein Symbol für Barrierefreiheitsoptionen in der Systemsteuerung. Daher funktioniert dieses Verfahren zum Ändern der Einstellung "SystemInformation.HighContrast" in Windows NT 4 nicht.
Andere Tools sind sofort zum Testen der Barrierefreiheit einer Anwendung verfügbar.
Führen Sie die Bildschirmlupe aus, um zu testen, wie der Tastaturfokus angezeigt wird. (Klicken Sie zum Öffnen auf das Startmenü, zeigen Sie auf Programme, zeigen Sie auf Zubehör, zeigen Sie auf Barrierefreiheit, und klicken Sie dann auf Bildschirmlupe). Navigieren Sie auf der Benutzeroberfläche sowohl mit der Tastatur (Tabulator-Taste) als auch mit der Maus. Stellen Sie sicher, dass die Navigation in der Bildschirmlupe ordnungsgemäß nachverfolgt wird.
Um die Anzeige von Bildschirmelementen zu testen, führen Sie Inspect aus, und verwenden Sie sowohl die Maus als auch die TAB-TASTE, um die einzelnen Elemente zu erreichen. Stellen Sie sicher, dass die Informationen, die in den Feldern "Name", "Status", "Rolle", "Ort" und "Wert" des Fensters "Inspect" für jedes Objekt in der Benutzeroberfläche von Bedeutung sind.
.NET Desktop feedback