Panoramica:
Mi dispiace essere il risponditore di cattive notizie, ma dopo la ricerca e il debug, è abbastanza chiaro che non c'è modo di personalizzare lo stile dei nuovi controlli reCAPTCHA. I controlli sono racchiusi in un iframe
, che impedisce l'uso di CSS per definirli, e la stessa politica di origine impedisce a JavaScript di accedere ai contenuti, escludendo anche una soluzione hacky.
Perché nessuna API personalizzata ?:
A differenza di reCAPTCHA API versione 1.0 , non ci sono opzioni di personalizzazione in API versione 2.0 . Se consideriamo come funziona questa nuova API, non sorprende il motivo.
Sebbene la nuova API reCAPTCHA possa sembrare semplice, c'è un alto grado di sofisticazione dietro quella modesta casella di controllo. I CAPTCHA fanno affidamento a lungo sull'incapacità dei robot di risolvere il testo distorto. Tuttavia, la nostra ricerca ha recentemente dimostrato che la tecnologia odierna di intelligenza artificiale può risolvere anche la variante più difficile di testo distorto con una precisione del 99,8%. Il testo distorto, di per sé, non è più un test affidabile.
Per contrastare questo problema, l'anno scorso abbiamo sviluppato un back-end di analisi dei rischi avanzata per reCAPTCHA che considera attivamente l'intero coinvolgimento di un utente con il CAPTCHA, prima, durante e dopo, per determinare se quell'utente è un essere umano. Ciò ci consente di fare meno affidamento sulla digitazione di testo distorto e, a sua volta, di offrire una migliore esperienza agli utenti. Ne abbiamo parlato nel nostro post di San Valentino all'inizio di quest'anno.
Se fossi in grado di manipolare direttamente lo stile degli elementi di controllo, potresti facilmente interferire con la logica di profilazione dell'utente che rende possibile il nuovo reCAPTCHA.
Che dire di un tema personalizzato ?:
Ora la nuova API offre theme
un'opzione , con la quale puoi scegliere un tema preimpostato come light
e dark
. Tuttavia, attualmente non esiste un modo per creare un tema personalizzato. Se esaminiamo il iframe
, troveremo che il theme
nome è passato nella stringa di query src
dell'attributo. Questo URL ha un aspetto simile al seguente.
https://www.google.com/recaptcha/api2/anchor?...&theme=dark&...
Questo parametro determina quale nome di classe CSS viene utilizzato sull'elemento wrapper in iframe
e determina il tema predefinito da utilizzare.
Scavando nella fonte minimizzata, ho scoperto che in realtà ci sono 4 valori di tema validi, che sono più dei 2 elencati nella documentazione, ma default
e standard
sono gli stessi di light
.
Possiamo vedere il codice che seleziona il nome della classe da questo oggetto qui.
Non esiste un codice per un tema personalizzato e, se theme
viene specificato un altro valore, verrà utilizzato il standard
tema.
In conclusione:
Al momento, non è iframe
possibile applicare uno stile completo ai nuovi elementi reCAPTCHA, solo gli elementi wrapper attorno a possono essere stilizzati. Questo è stato quasi certamente fatto intenzionalmente, per impedire agli utenti di rompere la logica di profilazione degli utenti che rende possibile la nuova casella di controllo senza captcha. È possibile che Google possa implementare un'API di temi personalizzati limitata, magari permettendoti di scegliere colori personalizzati per gli elementi esistenti, ma non mi aspetto che Google implementi lo stile CSS completo.