Wie nutze ich neue Funktionen zur Barrierefreiheit in Formularen per VBA?

Barrierefreiheit (Accessibility) ist mehr als ein Trend: Sie wird zunehmend zur gesetzlichen Anforderung (Stichwort: BITV 2.0, WCAG 2.1) – und ist gleichzeitig eine Chance, Deine Access-Anwendungen fĂŒr alle Benutzer:innen zugĂ€nglicher zu machen: unabhĂ€ngig von SehstĂ€rke, motorischer EinschrĂ€nkung oder technischer Ausstattung.

Microsoft Access bietet in neueren Versionen und im Zusammenspiel mit VBA verschiedene Möglichkeiten, um Formulare barrierefrei zu gestalten – darunter Tastatursteuerung, Screenreader-KompatibilitĂ€t, hohe Kontraste und strukturierte Navigation.

In diesem Beitrag zeige ich Dir, wie Du per VBA gezielt dafĂŒr sorgst, dass Deine Formulare auch unter Barrierefreiheits-Aspekten glĂ€nzen.

Was bedeutet Barrierefreiheit in Access-Formularen?

Barrierefreiheit in Formularen heißt konkret:

  • alle Informationen sind auch ohne Maus nutzbar
  • Formulare lassen sich mit Screenreadern (z. B. NVDA oder JAWS) erfassen
  • Inhalte werden visuell klar dargestellt – auch bei Farbfehlsichtigkeit oder Kontrastmodus
  • Navigations- und Eingabefokus sind logisch und eindeutig
  • Hinweise und Validierungen sind sprachlich verstĂ€ndlich und eindeutig

Beispiel 1: Sinnvolle Tab-Reihenfolge setzen per VBA

Die richtige Tabulatorreihenfolge ist essenziell fĂŒr Tastaturnutzer:innen. Statt die Reihenfolge mĂŒhsam per Eigenschaften zu setzen, kannst Du das auch automatisiert im Formular-Load-Ereignis definieren:

Private Sub Form_Load()
    ' TabIndex setzen - sinnvoll geordnet
    Me.txtName.TabIndex = 0
    Me.txtGeburtstag.TabIndex = 1
    Me.cboStatus.TabIndex = 2
    Me.cmdSpeichern.TabIndex = 3
    Me.cmdAbbrechen.TabIndex = 4
End Sub

Damit stellst Du sicher, dass alle Nutzer:innen logisch durch das Formular navigieren können.

Beispiel 2: Fokus gezielt setzen fĂŒr Screenreader und Tastaturnutzer

Wenn das Formular geöffnet wird, sollte ein relevantes Steuerelement sofort fokussiert werden – das hilft sowohl bei der Orientierung als auch bei der Bedienung ĂŒber Screenreader:

Private Sub Form_Current()
    Me.txtName.SetFocus
End Sub

In bestimmten FĂ€llen kann es auch sinnvoll sein, den Fokus dynamisch auf ein Feld mit Fehler oder besonderer Bedeutung zu setzen.

Beispiel 3: Barrierefreie Beschriftungen per ControlTipText

Viele Nutzer:innen mit SehbeeintrÀchtigung nutzen Screenreader, die auf Tooltip-Texte zugreifen. Diese Texte solltest Du mit sprechenden Beschreibungen versehen:

Private Sub Form_Load()
    Me.txtName.ControlTipText = "Bitte vollstÀndigen Namen eingeben"
    Me.txtGeburtstag.ControlTipText = "Geburtstag im Format TT.MM.JJJJ"
    Me.cmdSpeichern.ControlTipText = "Klick hier, um den Datensatz zu speichern"
End Sub

Wichtig: Diese Texte sollten vollstĂ€ndig und verstĂ€ndlich sein – vermeide AbkĂŒrzungen oder interne Begriffe.

Beispiel 4: Farbkontraste prĂŒfen und anpassen per VBA

Access bietet keinen nativen Farbschema-Switch, aber Du kannst Farben im Formular dynamisch anpassen – z. B. bei aktivem Kontrastmodus:

Private Declare PtrSafe Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long

Private Sub Form_Load()
    If SystemFarbschemaIstAktiv() Then
        Me.Detail.BackColor = vbBlack
        Me.txtName.ForeColor = vbWhite
        Me.txtName.BackColor = RGB(32, 32, 32)
        Me.cmdSpeichern.BackColor = RGB(64, 64, 64)
    End If
End Sub

Private Function SystemFarbschemaIstAktiv() As Boolean
    ' Primitive PrĂŒfung: Fensterhintergrundfarbe dunkel?
    SystemFarbschemaIstAktiv = (GetSysColor(15) < RGB(100, 100, 100))
End Function

Damit kannst Du auf Systemfarben reagieren und z. B. dunkle Designs besser unterstĂŒtzen.

Beispiel 5: Eingabefehler sprachlich klar darstellen

Statt kryptischer Fehlermeldungen solltest Du barrierefreie, klare Hinweise geben – idealerweise ĂŒber das StatusBarText-Feld oder ein eigenes Beschriftungsfeld:

Private Sub cmdSpeichern_Click()
    If Nz(Me.txtName, "") = "" Then
        Me.lblHinweis.Caption = "Name darf nicht leer sein."
        Me.txtName.SetFocus
        Exit Sub
    End If
    If Not IsDate(Me.txtGeburtstag) Then
        Me.lblHinweis.Caption = "Bitte ein gĂŒltiges Datum eingeben."
        Me.txtGeburtstag.SetFocus
        Exit Sub
    End If
    DoCmd.RunCommand acCmdSaveRecord
    Me.lblHinweis.Caption = "Datensatz erfolgreich gespeichert."
End Sub

Wichtig: Die Hinweise sollten in Klartext und ohne Farbcodierung allein erkennbar sein.

Bonus: ZugĂ€ngliche SchaltflĂ€chen mit TastaturkĂŒrzeln

Mit dem &-Zeichen kannst Du Tastatur-Shortcuts definieren:

Me.cmdSpeichern.Caption = "&Speichern"  ' ALT+S

Das steigert die Bedienbarkeit – auch fĂŒr fortgeschrittene Anwender:innen.

Fazit

Barrierefreiheit ist kein Hindernis – sondern ein QualitĂ€tsmerkmal. Mit wenigen gezielten Maßnahmen kannst Du Deine Access-Formulare deutlich zugĂ€nglicher und benutzerfreundlicher machen – auch ohne große Umbauten.

Mit VBA kannst Du viele dieser Maßnahmen automatisieren und an verschiedene BenutzerbedĂŒrfnisse anpassen – sei es durch intelligente Navigation, klare Sprache oder adaptive Designs.

Du möchtest Deine Access-Anwendung barrierefrei machen oder suchst Hilfe bei der Umsetzung inklusiver Lösungen? Ich unterstĂŒtze Dich gern – technisch und konzeptionell.

🐑 DatenschĂ€fer – Auswertung, Analyse und Automatisierung fĂŒr KMU im Norden
📧 Kontakt ĂŒber sesoft.de | đŸ§© Access · VBA · Barrierefreiheit · UX · Power Platform

Kategorien:

Schlagwörter: