Compare commits
2
Commits
e4b962bb1b
...
462d2058e1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
462d2058e1 | ||
|
|
16c5f79f2b |
@@ -54,15 +54,26 @@
|
||||
data-testid="inline-lead-form"
|
||||
novalidate
|
||||
>
|
||||
<!-- Honeypot (visually & SR-hidden — bots fill it, real users do not). -->
|
||||
<div class="absolute -left-[9999px] top-auto w-px h-px overflow-hidden" aria-hidden="true">
|
||||
<label for="inline-lead-website">Website</label>
|
||||
<!--
|
||||
Honeypot — off-screen positioned, NOT display:none / visibility:hidden
|
||||
(some bots skip those entirely). aria-hidden + sr-only label keep it
|
||||
silent for screen readers; tabindex="-1" + autocomplete="off" keep it
|
||||
out of the tab order and browser autofill. Bots that blindly fill
|
||||
every field will populate `website`, and /api/contact silently drops
|
||||
the submission.
|
||||
-->
|
||||
<div
|
||||
class="absolute -left-[9999px] top-auto w-px h-px overflow-hidden"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<label for="inline-lead-website" class="sr-only">Website</label>
|
||||
<input
|
||||
type="text"
|
||||
id="inline-lead-website"
|
||||
name="website"
|
||||
tabindex="-1"
|
||||
autocomplete="off"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
+22
-12
@@ -156,18 +156,28 @@ const trustStats = [
|
||||
</div>
|
||||
|
||||
<form id="contact-form" class="space-y-5" novalidate>
|
||||
<!-- Honeypot field (anti-spam) - hidden from users -->
|
||||
<div class="absolute -left-[9999px]" aria-hidden="true">
|
||||
<label for="website">
|
||||
Website
|
||||
<input
|
||||
type="text"
|
||||
id="website"
|
||||
name="website"
|
||||
tabindex="-1"
|
||||
autocomplete="off"
|
||||
/>
|
||||
</label>
|
||||
<!--
|
||||
Honeypot field (anti-spam).
|
||||
Hidden from sighted users via off-screen positioning (NOT display:none /
|
||||
visibility:hidden — some bots skip those entirely and never trip the trap).
|
||||
The wrapper carries aria-hidden so screen-readers don't announce the label
|
||||
or the input, and tabindex="-1" + autocomplete="off" keep it out of the
|
||||
tab order and browser autofill. Bots that blindly fill every field will
|
||||
set a value here, and /api/contact silently discards the submission.
|
||||
-->
|
||||
<div
|
||||
class="absolute -left-[9999px] top-auto w-px h-px overflow-hidden"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<label for="website" class="sr-only">Website</label>
|
||||
<input
|
||||
type="text"
|
||||
id="website"
|
||||
name="website"
|
||||
tabindex="-1"
|
||||
autocomplete="off"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- Name + Email row -->
|
||||
|
||||
Reference in New Issue
Block a user