Ziel: Die Anwendung soll für alle funktionieren
Access kann barrierefrei sein – wenn Du Dich darum kümmerst.
Blinde, sehschwache oder motorisch eingeschränkte Nutzer wollen keine Ausreden.
Und Du willst: klare Struktur, gute Tastatursteuerung, Screenreader-Kompatibilität.
Variante 1: Tastaturnavigation vollständig machen
Tab-Reihenfolge festlegen. Keine wilden Sprünge.
Im Formularentwurf:
- Tab-Index logisch setzen (0, 1, 2, …)
- Unnötige Steuerelemente auf
TabStop = False
Beispiel für manuelles Setzen:
Me.txtName.TabIndex = 0
Me.txtAdresse.TabIndex = 1
Me.cmdSpeichern.TabIndex = 2
Variante 2: Beschriftungen und Namen sinnvoll vergeben
Screenreader brauchen Kontext.
Verwende immer ein Label mit jedem Eingabefeld.
Beispiel:
Me.txtName.ControlTipText = "Vollständiger Name des Kunden"
Me.txtName.Name = "txtKundenname"
Keine generischen Namen wie Text5
, Combo3
.
Das hilft niemandem. Dir auch nicht.
Variante 3: Kontraste prüfen
Nutzer mit Sehschwäche brauchen hohen Farbkontrast.
Farben wie Grau auf Grau kannst Du vergessen.
Verwende:
- Schwarzer Text auf Weiß
- Keine rein visuelle Statusanzeige (z. B. nur Rot = Fehler)
- Farbige Schaltflächen? Nur mit Text
Tipp: Windows bietet hohe Kontrastmodi. Teste damit.
Variante 4: Lesbare Schriftarten und Größen
Keine kleinen 8pt Arial-Felder.
Verwende mindestens 10 pt, lieber 11 oder 12.
Gut lesbar: Segoe UI, Verdana, Calibri.
Monospace nur, wenn’s technisch begründet ist.
Me.txtKommentar.FontName = "Segoe UI"
Me.txtKommentar.FontSize = 11
Variante 5: Sprache setzen – auch für Screenreader
Im Formular:
Me.Caption = "Kundenverwaltung"
Me.Tag = "de-DE"
Wenn Du mehrere Sprachen hast, steuere das über Variablen oder Tabellen.
Variante 6: Fehlermeldungen verständlich machen
Nicht „Fehler 3021 – Kein aktueller Datensatz“.
Sondern:
MsgBox "Kein passender Kunde gefunden. Bitte Suchkriterien prüfen.", vbExclamation
Und das bitte auch per Screenreader erfassbar.
Variante 7: Fokus und Status sichtbar halten
Du kannst visuelles Feedback mit akustischem oder Text ergänzen:
Me.txtPLZ.BackColor = RGB(255, 255, 200)
Me.lblStatus.Caption = "Bitte PLZ eingeben"
Tipp: Sound-Ausgabe nur sparsam. Viele Nutzer haben Ton abgeschaltet.
Variante 8: Mausfreie Bedienung ermöglichen
Alle Funktionen auch per Tastatur:
- Buttons mit
Accelerator
(z. B.&Speichern
→ Alt+S) - Kein Mauszwang
- Navigieren mit Pfeiltasten, Tab, Enter
Und: Schaltflächen beschriften – nicht nur Icons.
Variante 9: Formulare logisch gruppieren
Gruppenbildung per Frames oder Titel.
Das hilft beim Screenreader-Parsing.
Und auch sehenden Nutzern.
Beispiel:
- Gruppe „Kundendaten“
- Gruppe „Rechnungsdaten“
Kein wildes Button-Wirrwarr am unteren Rand.
Variante 10: Prüf-Checkliste automatisieren
Eigene Routine für Zugänglichkeitsprüfung:
Public Sub PruefeBarrierefreiheit(frm As Form)
Dim ctl As Control
For Each ctl In frm.Controls
If ctl.ControlType = acTextBox Then
If ctl.ControlTipText = "" Then Debug.Print ctl.Name & " hat keinen Tooltip"
If ctl.Name Like "Text*" Then Debug.Print ctl.Name & " hat generischen Namen"
End If
Next
End Sub
Kannst Du beim Deployment mitlaufen lassen.
Variante 11: Mehrsprachigkeit sauber umsetzen
Access hat keine eingebaute Sprachumschaltung – aber Du kannst das modular bauen.
Die Basis: Eine Tabelle tblSprachtexte
mit folgenden Feldern:
Steuerelement
Formularname
Sprache
(z. B.de
,en
,pl
)Text
Dann beim Laden des Formulars:
Public Sub UebersetzeFormular(frm As Form, sprache As String)
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM tblSprachtexte WHERE Formularname='" & frm.Name & "' AND Sprache='" & sprache & "'")
Do Until rs.EOF
If frm.Controls(rs!Steuerelement).ControlType = acLabel Then
frm.Controls(rs!Steuerelement).Caption = rs!Text
Else
frm.Controls(rs!Steuerelement).ControlTipText = rs!Text
End If
rs.MoveNext
Loop
rs.Close
End Sub
Aufruf z. B. im Form_Load
:
Call UebersetzeFormular(Me, "en")
So kannst Du Benutzeroberflächen dynamisch anpassen – ganz ohne mehrere Formularversionen.
Wenn Du willst, erweitere das auch auf Menübänder, Statusleisten oder Systemmeldungen.
Fazit für Entwickler
Barrierefreiheit ist kein Beiwerk.
Wenn Du sie sauber umsetzt, wird die Anwendung automatisch klarer – auch für alle anderen.
No responses yet