Indeterminate Radio Buttons (Unbestimmte Radio-Buttons)

Avatar of Chris Coyier
Chris Coyier am

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

Es gibt einen Pseudo-Klassen-Selektor, :indeterminate, dessen Aufgabe es ist, Radio-Button-Inputs auszuwählen, die weder ausgewählt (haben das Attribut „checked“) noch abgewählt (haben dieses nicht) sind. Dies ist ein CSS3-Selektor, der möglicherweise eine Reaktion auf die HTML5-Spezifikation ist, die explizit erlaubt, dass Radio-Buttons in diesem Zustand sind.

Wenn keiner der Radio-Buttons in einer Radio-Button-Gruppe beim Einfügen in das Dokument ausgewählt ist, dann sind sie im Interface zunächst alle abgewählt, bis zu dem Zeitpunkt, an dem einer von ihnen ausgewählt wird (entweder durch den Benutzer oder durch Skript).

Was ist der Sinn von all dem? Nun... warum eine solch schlechte Benutzeroberfläche explizit zulassen?


Keine Wahl ausgewählt

In einem Kommentar hier letzte Woche hat Lee Kowalkowski es schön zusammengefasst:

Meiner Meinung nach ist das eine schlechte Benutzeroberfläche. Die beliebteste Option sollte ausgewählt sein. Wenn die Wahl von nichts gültig ist, dann ist eine Radio-Gruppe nicht gut geeignet, da der Benutzer die Gruppe nicht einfach in ihren unbestimmten Zustand zurückversetzen kann.

Es ist wiederholenswert: Der Benutzer kann die Gruppe nicht einfach in ihren unbestimmten Zustand zurückversetzen.

Die HTML4-Spezifikation machte mehr Sinn.

Zu jeder Zeit ist genau einer der Radio-Buttons in einer Gruppe ausgewählt. Wenn keiner der <INPUT>-Elemente einer Gruppe von Radio-Buttons „CHECKED“ angibt, dann muss der User-Agent zunächst den ersten Radio-Button der Gruppe auswählen.

Da das Verhalten der User-Agents variiert, sollten Autoren sicherstellen, dass in jeder Gruppe von Radio-Buttons einer zunächst „an“ ist.

Dieser zweite Teil dort, in einfacher Sprache: Da wir wissen, dass kein Browser dies tatsächlich befolgt, fügen wir diese spezielle Anmerkung hinzu, um Autoren daran zu erinnern, dies selbst in die Hand zu nehmen.

Meiner Meinung nach sollten wir zur HTML4-Spezifikation zurückkehren, aber die Browser sollten sie tatsächlich respektieren, indem sie jederzeit mindestens einen Radio-Button pro Gruppe erzwingen. Das würde dann den :indeterminate-Pseudo-Selektor irgendwie nutzlos machen.

Denken Sie daran, dass Radio-Buttons und Dropdown-Listen im Wesentlichen dasselbe sind (man kann nur eine von mehreren Optionen auswählen). Wenn Sie also einen „nicht ausgewählten“ Zustand benötigen, wäre vielleicht eine <select>-Liste mit einer Standardoption „Wählen“ die Lösung für Sie.