Aperçu:
Désolé d'être le répondeur des mauvaises nouvelles, mais après recherche et débogage, il est assez clair qu'il n'y a aucun moyen de personnaliser le style des nouveaux contrôles reCAPTCHA. Les contrôles sont enveloppés dans un iframe
, ce qui empêche l'utilisation de CSS pour les styliser, et la politique de même origine empêche JavaScript d'accéder au contenu, excluant même une solution piratée.
Pourquoi pas d'API de personnalisation?:
Contrairement à l' API reCAPTCHA version 1.0 , il n'y a pas d'options de personnalisation dans l' API version 2.0 . Si nous considérons le fonctionnement de cette nouvelle API, il n'est pas surprenant de savoir pourquoi.
Bien que la nouvelle API reCAPTCHA puisse sembler simple, il y a un haut degré de sophistication derrière cette modeste case à cocher. Les CAPTCHA se sont longtemps appuyés sur l'incapacité des robots à résoudre le texte déformé. Cependant, nos recherches ont récemment montré que la technologie d'intelligence artificielle d'aujourd'hui peut résoudre même la variante la plus difficile du texte déformé avec une précision de 99,8%. Ainsi, le texte déformé, à lui seul, n'est plus un test fiable.
Pour contrer cela, nous avons développé l'année dernière un backend d'analyse avancée des risques pour reCAPTCHA qui considère activement l'engagement complet d'un utilisateur avec le CAPTCHA - avant, pendant et après - pour déterminer si cet utilisateur est un humain. Cela nous permet de moins nous fier à la saisie de texte déformé et, à son tour, d'offrir une meilleure expérience aux utilisateurs. Nous en avons parlé dans notre article sur la Saint-Valentin plus tôt cette année.
Si vous pouviez manipuler directement le style des éléments de contrôle, vous pourriez facilement interférer avec la logique de profilage utilisateur qui rend possible le nouveau reCAPTCHA.
Qu'en est-il d'un thème personnalisé?:
Maintenant, la nouvelle API offre une theme
option , par laquelle vous pouvez choisir un thème prédéfini tel que light
et dark
. Cependant, il n'existe actuellement aucun moyen de créer un thème personnalisé. Si nous inspectons le iframe
, nous trouverons que le theme
nom est passé dans la chaîne de requête de l' src
attribut. Cette URL ressemble à ce qui suit.
https://www.google.com/recaptcha/api2/anchor?...&theme=dark&...
Ce paramètre détermine le nom de classe CSS utilisé sur l'élément wrapper dans iframe
et détermine le thème prédéfini à utiliser.
En fouillant dans la source minified, je trouve qu'il ya effectivement 4 valeurs thématiques valides, ce qui est plus que les 2 figurant dans la documentation, mais default
et standard
sont les mêmes que light
.
Nous pouvons voir le code qui sélectionne le nom de classe de cet objet ici.
Il n'y a pas de code pour un thème personnalisé, et si une autre theme
valeur est spécifiée, il utilisera le standard
thème.
En conclusion:
À l'heure actuelle, il n'y a aucun moyen de iframe
styliser complètement les nouveaux éléments reCAPTCHA, seuls les éléments enveloppants autour du peuvent être stylisés. Cela a été presque certainement fait intentionnellement, pour empêcher les utilisateurs de casser la logique de profilage de l'utilisateur qui rend possible la nouvelle case à cocher sans captcha. Il est possible que Google puisse implémenter une API de thème personnalisé limitée, vous permettant peut-être de choisir des couleurs personnalisées pour les éléments existants, mais je ne m'attendrais pas à ce que Google implémente un style CSS complet.