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:

Keine Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)