Native Elemente bringen Verhalten mit, nicht nur Semantik: ein button ist fokussierbar, feuert bei Enter und Space, nimmt an Formularen teil und exponiert Rolle und Zustand gratis korrekt. Ein div mit role button bekommt das Label, aber nichts vom Verhalten, du baust also tabindex, Tastaturbehandlung und disabled-Zustand selbst, und jedes davon kann schiefgehen. Die erste ARIA-Regel lautet, ARIA nicht zu benutzen, wenn HTML den Job schon erledigt.
Warum Interviewer das fragen
Barrierefreiheitsfragen trennen Leute, die einmal einen automatischen Audit laufen ließen, von Leuten, die wirklich benutzbare Komponenten bauen. Der Interviewer will hören, dass ARIA verändert, was angesagt wird, aber niemals Tastaturverhalten oder Fokusmanagement hinzufügt. Einen echten Fall zu nennen, etwa einen Fake-Button, den man per Tastatur nicht erreicht, beweist, dass du mit Tastatur oder Screenreader getestet hast und nicht einem grünen Lighthouse-Wert vertraust.
So baust du deine Antwort auf
- Nenn die Aufteilung: nativ liefert Semantik plus Verhalten, ARIA beschriftet nur um.
- Zähl auf, was du bei einem div alles neu implementieren musst.
- Zitier die Regel, ARIA nicht zu nutzen, wenn es HTML gibt.
- Gib ein Beispiel, wo ein natives Element echte Arbeit gespart hat.
Beispielantwort
ARIA ändert nur, was im Accessibility-Tree exponiert wird. Es macht nichts fokussierbar, es fügt keine Tastaturbehandlung hinzu, und es verwaltet keinen Fokus. In dem Moment, in dem ich ein div mit role button schreibe, habe ich mich also für tabindex null verpflichtet, für einen Handler für Enter und Space, für einen aria-disabled-Zustand, den ich zusätzlich im Handler durchsetzen muss, und ich bekomme trotzdem kein Formular-Submit. Ein echter button gibt mir all das, und es bleibt korrekt, wenn sich der Browser ändert. Meine Voreinstellung ist deshalb nativ zuerst: button, a mit echtem href, input mit passendem Label, dialog für Modals, details für einfaches Auf- und Zuklappen. Zu ARIA greife ich, wenn es wirklich kein natives Äquivalent gibt, etwa bei einem Tab-Set oder einer Combobox, und dann folge ich dem Muster aus den Authoring Practices, statt Rollen zu improvisieren. Der Bug, den ich am häufigsten sehe, ist ein klickbares div in einer Tabellenzeile, das ein Tastaturnutzer schlicht nicht erreicht, und es besteht jeden automatischen Check, weil am Markup technisch nichts falsch ist.
Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.
So funktioniert esNachfragen, mit denen du rechnen solltest
- Wie würdest du eine eigene Tab-Komponente tastaturbedienbar machen?
- Was macht aria-hidden, und wann richtet es Schaden an?
- Wie testest du das über einen automatischen Scanner hinaus?
Weitere Fragen für Frontend-Entwickler
Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.
Meine Fragen vorhersagen