# Form e consensi GDPR

> Come impostare correttamente un form che raccoglie dati personali: base giuridica, informativa, consensi granulari e l'errore diffuso della checkbox "accetto la privacy".

<!-- Fonte: https://sitoanorma.it/docs/form-consensi/regole-gdpr -->
<!-- Aggiornato: 2026-08-15 -->

I form sono il punto in cui un sito raccoglie dati personali, e quindi il punto in cui si concentrano gli errori più gravi. La maggior parte è evitabile con tre decisioni prese bene all'inizio.

## 1. Individuare la base giuridica

Ogni trattamento ha bisogno di una **base giuridica** (art. 6 GDPR). Non è una formalità: determina cosa puoi fare con i dati e quali diritti ha l'utente.

| Tipo di form | Base giuridica tipica | Perché |
|--------------|----------------------|--------|
| Contatti / preventivo | Misure precontrattuali (art. 6.1.b) | L'utente scrive per avviare un rapporto |
| Newsletter | Consenso (art. 6.1.a) | Comunicazione non richiesta da un contratto |
| Registrazione account | Esecuzione del contratto (art. 6.1.b) | Il servizio richiede l'account |
| Checkout | Esecuzione del contratto (art. 6.1.b) | Serve a eseguire l'ordine |
| Fatturazione | Obbligo legale (art. 6.1.c) | Imposto dalla normativa fiscale |

> **Attenzione.** Un errore frequente è usare il **consenso** come base per tutto. Per un form contatti è la scelta peggiore: se l'utente lo revoca, dovresti cancellare una richiesta commerciale che stai gestendo. La base corretta è quasi sempre l'art. 6.1.b.

## 2. La checkbox "accetto la privacy" non va messa

È l'errore più diffuso in assoluto, e va in direzione opposta a quella che si crede.

L'informativa privacy (art. 13 GDPR) è un **obbligo informativo del titolare**: devi *fornirla*, non farla *accettare*. Non c'è nulla da consentire. Rendere obbligatoria una checkbox "ho letto l'informativa":

- non aggiunge alcuna tutela per l'utente;
- confonde la base giuridica, facendo sembrare consenso ciò che consenso non è;
- è stata più volte indicata come prassi scorretta dal Garante.

**Sbagliato:**

```html
<label>
  <input type="checkbox" name="privacy" required />
  Accetto l'informativa privacy
</label>
```

**Corretto**: l'informativa si *fornisce* con un link visibile nel punto di raccolta:

```html
<p>
  Trattiamo i tuoi dati per rispondere alla tua richiesta.
  Leggi l'<a href="/privacy">informativa privacy</a>.
</p>
```

La checkbox serve **solo** dove c'è un vero consenso da raccogliere: newsletter, marketing, profilazione.

## 3. Consensi granulari, dove servono davvero

Quando il consenso è la base corretta, deve essere **specifico per finalità** (art. 7 e considerando 32, 43). Vedi [consensi granulari](/docs/form-consensi/consensi-granulari).

## Esempio completo: form contatti

Base contrattuale, nessuna checkbox privacy, informativa linkata, campi etichettati e accessibili:

```html
<form method="post" action="/invia">
  <label for="nome">Nome</label>
  <input id="nome" name="nome" type="text" required autocomplete="name" />

  <label for="email">Email</label>
  <input id="email" name="email" type="email" required autocomplete="email" />

  <label for="messaggio">Messaggio</label>
  <textarea id="messaggio" name="messaggio" required></textarea>

  <label>
    <input type="checkbox" name="newsletter" />
    Voglio ricevere anche la newsletter (facoltativo)
  </label>

  <p>
    I dati servono a rispondere alla tua richiesta.
    Leggi l'<a href="/privacy">informativa privacy</a>.
  </p>

  <button type="submit">Invia</button>
</form>
```

Punti da notare:

- ogni campo ha una `<label>` associata via `for`/`id`, requisito di accessibilità, non solo di usabilità;
- `autocomplete` corretto (WCAG 1.3.5);
- la newsletter è un consenso **separato e facoltativo**, non `required`;
- nessuna checkbox per l'informativa.

## Regole ferree

1. **Mai `checked` di default** su un consenso: un consenso pre-spuntato non è consenso (considerando 32).
2. **Mai condizionare il servizio** a un consenso non necessario per erogarlo (art. 7, par. 4): se il form contatti funziona solo spuntando "marketing", il consenso non è libero e quindi non è valido.
3. **Il consenso facoltativo non è `required`.**
4. **Documenta il consenso raccolto**: chi, quando, per cosa. Vedi [double opt-in e accountability](/docs/form-consensi/double-opt-in).

## Cosa verificare

- [ ] Ogni form ha una base giuridica identificata (e documentata nel registro dei trattamenti).
- [ ] Nessuna checkbox "accetto la privacy" obbligatoria.
- [ ] L'informativa è linkata nel punto di raccolta, non solo nel footer.
- [ ] Nessun consenso pre-spuntato.
- [ ] I consensi facoltativi non bloccano l'invio.
- [ ] Ogni input ha una label associata.
