:focus-visible Support kommt für Firefox

Avatar of Geoff Graham
Geoff Graham am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Schau dir das an! Der :focus-visible Pseudo-Selektor wird jetzt in Firefox unterstützt, ab Version 85, die gestern veröffentlicht wurde. Ich musste sofort zu den MDN Docs eilen, um das zu bestätigen, und ja, die :focus-visible Seite wurde aktualisiert, um die Nachricht widerzuspiegeln.

Was ist so cool an :focus-visible? Es geht um den blauen Fokus-Ring, der um Elemente angezeigt wird, die im Fokus sind. Es ist sozusagen ein glücklicher Mittelweg zwischen der Liebe zum Outline für Barrierefreiheitszwecke (man muss wissen, welches Element beim Tabben mit der Tastatur ausgewählt ist) und dem Nicht-wirklich-Lieben, wie es aussieht (alles muss dem Branding folgen).

Die Strategie war bisher größtenteils eine Alles-oder-Nichts-Entscheidung: Entweder verwendet man eine benutzerdefinierte outline, wenn sich ein beliebiges Element im :focus befindet (großartig, aber das bedeutet sowohl für Tastatur-Tabben als auch für Mausklicks) oder man verzichtet ganz auf die outline (nicht großartig, nie). :focus-visible erreicht dasselbe wie :focus, nutzt aber die Kenntnis des Browsers über Benutzereingaben (oder Heuristiken), um zu bestimmen, ob der Fokus von einer Tastatur oder einer Maus kommt.

(Sind die Heuristiken eines Browsers perfekt bei der Bestimmung der Eingabe? Das hängt davon ab. Die Dinge werden unklar, sobald wir Dinge wie Touch-Interaktionen einbeziehen.)

Das bedeutet, wir können den Standard-Fokus-Ring entfernen (yay!) für die richtigen Arten von Interaktionen (doppelt yay!) und dabei unsere eigenen benutzerdefinierten Stile anzeigen (dreifach yay!). Erlauben Sie mir, das feine Beispiel von Andy Adams direkt aus unserem Almanac zu entnehmen. Beachten Sie, dass :focus-visible den Fokusring nicht entfernen kann, wie es :focus kann, daher werden die beiden zusammen verwendet.

.next-image-button:focus {
  outline: none;
}

.next-image-button:focus-visible {
  outline: 3px solid blanchedalmond; /* That'll show 'em */
}

Chrome implementierte :focus-visible bereits 2018. Firefox hatte vor dieser Implementierung seine eigene präfixierte Version, :-moz-focusring. Safari? Gehen Sie wählen Sie für das Feature!

Igalia sammelt Gelder und arbeitet daran, es in Safari zu integrieren! Hier ist Brian Kardell dazu.