Kurz nach Beginn der Testphase von Tandem Rhein-Main ist mir von einem kuriosen Fehler berichtet worden: In Safari unter Mac OS hat das Klicken auf eine Select-Box ein sofortiges Neuladen ausgelöst. Eine Auswahl in einer Select-Box ist so nicht möglich gewesen. Safari unter Windows hat das Verhalten merkwürdigerweise nicht gezeigt. Dieses Verhalten fiel mir vorher nie auf; dabei habe ich ja selbst einen Großteil der Zeit in der Entwicklung der Plattform mit Safari gearbeitet.
Erst dachte ich an Probleme mit JavaScript-Code, aber daran lag es nicht. Im erzeugten HTML-Code konnte ich auch nichts finden, das dieses Verhalten erklärt hätte. Nachdem ich keine Ideen mehr hatte und begann, den Code schrittweise auf eine Minimalversion zu kürzen, bin ich auf den Fehler gestoßen.
Folgender Code funktioniert mit auskommentiertem Select, mit einkommentiertem Select tritt der Fehler wie beschrieben auf.
input[type=text],
input[type=password],
textarea,
/* select, */
div.jhtmlarea {
background-image: url(images/inputbg.gif);
border: 1px solid #bbb;
color: #333;
font-family: "Ubuntu", "Lucida Grande", "Verdana", "Tahoma";
font-size: 1em;
padding: 4px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
Bei der Reduktion dieser Anweisung habe ich festgestellt, dass der Fehler von den beiden Zeilen mit border und font-family abhängt. Und zwar von beiden zusammen. Bei nur einer der beiden Zeilen funktioniert alles. Beide Zeilen zusammen, auf eine Select-Box angewandt, verursachen offenbar das merkwürdige Verhalten von Safari.
Warum?
Ich habe keine Ahnung…
Aktualisierung, 14. Oktober 2011: Durch @thegcat (1, 2) habe ich erfahren, dass dies ein bekannter Bug in Safari ist (siehe u.a. hier, hier und hier). Das Problem lässt sich also durch Warten beheben…