Shalom!
Damit menschliche Benutzer hier nichts eintragen, wird das Feld per CSS versteckt. Aber Achtung! Das Feld nicht als type="hidden” auszeichnen, und NICHT mit display:none oder visibility:hidden verstecken. So dumm sind die Bots dann doch nicht.
Richtig ist vielmehr, das Feld per CSS aus dem viewport zu verschieben.
Ich verwende ein solches Feld in meinem Kontaktformular, und bisher sind alle Bots darauf reingefallen. Dabei verstecke ich es sogar mit display:none - allerdings nicht als Inline-Style, sondern mithilfe einer ID im externen CSS.
Wie Sven schon geschrieben hat, ist das natürlich kein 100%iger Schutz. Je mehr Leute das verwenden, desto mehr wird es sich auch für die Spammer lohnen, klügere Bots zu schicken. Aber im Moment klappt's noch sehr gut. :-)
Das einzige Problem dabei ist, daß die menschlichen Spammer nicht darauf hereinfallen, die ihren Mist von Hand eingeben.
So macht man es auch für Anweisungen, die zum Beispiel nur Blinde "sehen" sollen, die Ihnen also vorgelesen werden - die würden dann auch drauf reinfallen und kein Blinder wäre mehr in der Lage Dein Formular zu nutzen - ziemlich fies, wenn Du mich fragst...
Deswegen schreibt man noch ein passendes Label dazu, sinngemäß: "Hier bitte nichts eintragen, sonst wird Ihre Nachricht als Spam eingestuft!" Das Label wird dann auch per CSS versteckt.
Zumal der Blinde wohl niemals erfahren wird, dass das von ihm abgeschickte Formular nirgends ankommt und es nach einer Weile noch mal probiert...
Warum nicht? Nach dem Abschicken sollte der Benutzer auf jeden Fall noch einmal Feedback bekommen, finde ich. Entweder sinngemäß "Ihre Nachricht wurde erfolgreich versendet. Vielen Dank!" oder eine Erklärung, was schiefgegangen ist (Technische Probleme / Pflichtfelder fehlen / Spam-Verdacht / ...).
Viele Grüße vom Længlich