2016-11-02 2 views
0

Ich habe ein Problem festgestellt, bei dem eine Optionsfeldgruppe von einem anderen Status abhängig ist, wodurch ein deaktiviertes Optionsfeld ausgewählt wurde. Dies ist kein Problem, wenn Sie beispielsweise mit der Maus einen anderen Wert in der Optionsfeldgruppe auswählen. Es scheint jedoch unmöglich zu sein, jetzt auf die Optionsfeldgruppe zu wechseln. Mir ist klar, dass ich das vielleicht nicht zulassen sollte, aber ich finde es seltsam, dass man eine Optionsfeldgruppe erstellen kann, die man nicht allein mit der Tastatur ändern kann. Hier ist ein einfaches Beispiel:Zugriff auf die Optionsschaltflächen, kann nicht mit einem aktivierten deaktivierten Wert eine Funkgruppe bilden

<input type="radio" disabled checked name="test" value="1"> 
 
<input type="radio" name="test" value="2"> 
 
<input type="radio" name="test" value="3"> 
 
<input type="radio" name="test" value="4">

Gibt es etwas, was ich tun kann, um dieses Verhalten zu „reparieren“, oder hat jemand eine gute Möglichkeit, diese Kante Fälle zu behandeln, oder, wie man Code, wenn anders zusammen, um dieses Problem zu vermeiden?

+0

Wie Adam darauf hinweist, ist dies nur eine seltsame Konsequenz der Funktionsweise von Radiobuttons. Am wahrscheinlichsten ist es, den Radiobutton wieder zu aktivieren, wenn Sie ihn auswählen, um diesen Fall zu vermeiden (und ihn möglicherweise erneut zu deaktivieren, wenn die Auswahl anderswo verschoben wird, wenn Sie verhindern möchten, dass sie manuell erneut ausgewählt wird). – BrendanMcK

Antwort

1

Dies ist eindeutig ein Browser-Problem, obwohl ich nicht sicher bin, was das erwartete Verhalten wäre.

Das Problem ist, dass wenn Sie eine Radiogruppe haben, die Tastatur zum ausgewählten Element geht. Wenn dieses Element deaktiviert ist, wird der Fokus die gesamte Funkgruppe überspringen, auch wenn der andere nicht deaktiviert ist.

Ein "Fix" wäre, das Problem zu vermeiden, indem man die Radiobuttons in zwei Gruppen dissoziiert und sich auf etwas JavaScript-Code verlässt, damit sie als ganze Gruppe erscheinen. Sie können auch die gesamte Optionsfeldfunktion neu implementieren, indem Sie aria role = "radio" für 4 div-Elemente verwenden.

Es ist auch möglich zu fragen und zu warten, bis der Fehler behoben ist.

+1

'Sie können die gesamte Optionsfeld-Funktion auch neu implementieren, indem Sie aria role = "radio" für 4 div-Elemente verwenden.' - Ich würde hier Vorsicht raten; Sie müssen auch die entsprechende Tastaturunterstützung implementieren und sicherstellen, dass die ausgewählte aria korrekt aktualisiert wird, und testen, ob die ganze Menge in mindestens einigen Screenreader/Browser-Kombinationen funktioniert. Die Verwendung von Aria anstelle von nativen Elementen wird am besten vermieden, es sei denn, dies ist absolut notwendig! – BrendanMcK

Verwandte Themen