{"id":3518,"date":"2013-06-27T11:15:45","date_gmt":"2013-06-27T09:15:45","guid":{"rendered":"https:\/\/www.creativejuiz.fr\/blog\/?p=3518"},"modified":"2023-09-20T12:13:22","modified_gmt":"2023-09-20T10:13:22","slug":"personnaliser-aspect-boutons-radio-checkbox-css","status":"publish","type":"post","link":"https:\/\/www.creativejuiz.fr\/blog\/tutoriels\/personnaliser-aspect-boutons-radio-checkbox-css","title":{"rendered":"Personnaliser l&rsquo;aspect de boutons radio et checkbox en CSS"},"content":{"rendered":"\n<p>Ces derniers temps je passe un peu de temps sur la recherche autour des \u00e9l\u00e9ments de formulaire. Vous savez certainement que historiquement il n&rsquo;est pas toujours possible de personnaliser l&rsquo;aspect de contr\u00f4les de formulaire pour des raisons d&rsquo;accessibilit\u00e9 (m&rsquo;a-t-on dit). Cependant il est vrai que l&rsquo;apparence tr\u00e8s variable de ces \u00e9l\u00e9ments est sujet \u00e0 controverse. Et ce n&rsquo;est pas un mal.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Les codes et styles CSS que je vais vous proposer ici utilisent le niveau 3 de CSS, par cons\u00e9quent les vieux navigateurs ne sont pas concern\u00e9s.<br>Cependant nous t\u00e2cherons de travailler nos styles (notamment les s\u00e9lecteurs CSS) pour faire en sorte que ces vieilleries continuent \u00e0 afficher les contr\u00f4les classiques (nos bons vieux boutons radio et cases \u00e0 cocher).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pourquoi styler les checkbox et bouton radio avec CSS ?<\/h2>\n\n\n\n<p>Pour harmoniser les styles entre les navigateurs, bien s\u00fbr, mais \u00e9galement pour rendre (peut-\u00eatre) plus affordants certains contr\u00f4les, dans un contexte bien pr\u00e9cis. Pour am\u00e9liorer l&rsquo;accessibilit\u00e9 dans un contexte \u00ab\u00a0touch\u00a0\u00bb. Les zones touchable pour les checkboxes et boutons radio sont bien trop souvent trop petites.<\/p>\n\n\n\n<p>De m\u00eame, le contraste de couleurs est par d\u00e9faut tr\u00e8s pauvre sur Mac, par exemple. Je ne comprends m\u00eame pas comment ils peuvent \u00eatre si mal design\u00e9.<\/p>\n\n\n\n<p>Peut-\u00eatre que votre propre objectif est diff\u00e9rent, donc je ne vais pas m&rsquo;attarder davantage sur les raisons, et sauter aux solutions techniques.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Modifier l\u00e9g\u00e8rement l&rsquo;aspect des checkboxes<\/h2>\n\n\n\n<p>Avec cet exemple, nous allons poser la base de notre CSS, cela me permettra de vous expliquer pr\u00e9cis\u00e9ment les s\u00e9lecteurs utilis\u00e9s.<br>Voici ce que je souhaite obtenir.<\/p>\n\n\n<div class=\"wp-block-image size-full wp-image-6863\">\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"1520\" height=\"732\" src=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2013\/06\/styled-checkbox-with-css.png\" alt=\"\" class=\"wp-image-6863\" srcset=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2013\/06\/styled-checkbox-with-css.png 1520w, https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2013\/06\/styled-checkbox-with-css-300x144.png 300w, https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2013\/06\/styled-checkbox-with-css-768x370.png 768w, https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2013\/06\/styled-checkbox-with-css-600x289.png 600w\" sizes=\"(max-width: 1520px) 100vw, 1520px\" \/><figcaption class=\"wp-element-caption\">Non styl\u00e9es (gauche) VS styl\u00e9es (droite)<\/figcaption><\/figure>\n<\/div>\n\n\n<p><a class=\"demonstration\" href=\"\/trytotry\/custom-checkbox-full-css3-soft.html\">Voir la d\u00e9monstration<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">HTML &#8211; Quelques bases<\/h3>\n\n\n\n<p>Mais commen\u00e7ons par notre code HTML, que je vais proposer uniquement sous forme de quelques paragraphes avec un <code class=\"element\">label<\/code> et un <code class=\"element\">input<\/code> dans chacun d&rsquo;eux.<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-markup code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-markup code-embed-code\">&lt;p id=&quot;label&quot;&gt;Do you like?&lt;\/p&gt;<br\/>&lt;p&gt;<br\/>\t&lt;input type=&quot;checkbox&quot; id=&quot;test1&quot; \/&gt;<br\/>\t&lt;label for=&quot;test1&quot; aria-describedby=&quot;label&quot;&gt;Red&lt;\/label&gt;<br\/>&lt;\/p&gt;<br\/>&lt;p&gt;<br\/>\t&lt;input type=&quot;checkbox&quot; id=&quot;test2&quot; checked=&quot;checked&quot; \/&gt;<br\/>\t&lt;label for=&quot;test2&quot; aria-describedby=&quot;label&quot;&gt;Green&lt;\/label&gt;<br\/>&lt;\/p&gt;<br\/>&lt;p&gt;<br\/>\t&lt;input type=&quot;checkbox&quot; id=&quot;test3&quot; disabled \/&gt;<br\/>\t&lt;label for=&quot;test3&quot; aria-describedby=&quot;label&quot;&gt;Blue&lt;\/label&gt;<br\/>&lt;\/p&gt;<br\/>&lt;p&gt;<br\/>\t&lt;input type=&quot;checkbox&quot; id=&quot;test4&quot;  checked=&quot;checked&quot; disabled \/&gt;<br\/>\t&lt;label for=&quot;test4&quot; aria-describedby=&quot;label&quot;&gt;White&lt;\/label&gt;<br\/>&lt;\/p&gt;<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>Ce code propose dans l&rsquo;ordre une checkbox classique, une coch\u00e9e, une d\u00e9sactiv\u00e9e, et une d\u00e9sactiv\u00e9e coch\u00e9e.<\/p>\n\n\n\n<p>Gardez en t\u00eate l&rsquo;importance des attributs <code>ID<\/code> et <code>FOR<\/code>. Vous devez relier le label et la checkbox ensemble gr\u00e2ce \u00e0 ces attributes, en leur donnant la m\u00eame valeur. C&rsquo;est obligatoire pour des raisons d&rsquo;accessibility, mais aussi pour que le code qui suit fonctionne.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Le code CSS pour ces checkboxes personnalis\u00e9es<\/h3>\n\n\n\n<p>Dans l&rsquo;absolu, l&rsquo;\u00e9l\u00e9ment <code>input:checkbox<\/code> n&rsquo;est pas stylable. Nous allons donc jouer sur les styles du <code>label<\/code>, notamment ses deux pseudo-\u00e9l\u00e9ments que nous allons cr\u00e9er et manipuler.<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-css code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-css code-embed-code\">form p {<br\/>\t\/* permet de positionner la checkbox *\/<br\/>\tposition: relative;<br\/>}<br\/><br\/>[type=&quot;checkbox&quot;]:not(:checked), <br\/>[type=&quot;checkbox&quot;]:checked {<br\/>\t\/* Cache la checkbox sans<br\/>\t   la rendre invisible aux<br\/>\t   lecteurs d&#039;\u00e9cran *\/<br\/>\tposition: absolute;<br\/>\tleft: 0;<br\/>\topacity: 0.01;<br\/>}<br\/><br\/>\/* Preparer le label *\/<br\/>[type=&quot;checkbox&quot;]:not(:checked)   label,<br\/>[type=&quot;checkbox&quot;]:checked   label {<br\/>\tposition: relative; \/* permet de positionner la checkbox *\/<br\/>\tpadding-left: 2.3em; \/* place pour la box *\/<br\/>\tfont-size: 1.05em;<br\/>\tline-height: 1.7;<br\/>\tcursor: pointer; <br\/>}<\/code><\/pre> <div class=\"code-embed-infos\"> <span class=\"code-embed-name\">La version r\u00e9tro-compatible<\/span> <\/div> <\/div><\/div>\n\n\n\n<p>C&rsquo;est dans ce d\u00e9but que r\u00e9side l&rsquo;astuce du \u00ab\u00a0j&rsquo;affiche du personnalis\u00e9 pour les navigateurs r\u00e9cents, et du classique pour les navigateurs plus vieux\u00a0\u00bb. Si vous n&rsquo;avez pas besoin du support navigateur pour IE 11, vous pouvez utiliser cette version :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-css code-embed-pre line-numbers\"  data-line=\"5, 11\" data-start=\"1\" data-line-offset=\"0\"><code class=\"language-css code-embed-code\">form p {<br\/>\tposition: relative;<br\/>}<br\/><br\/>[type=&quot;checkbox&quot;] {<br\/>\tposition: absolute;<br\/>\tleft: 0;<br\/>\topacity: 0.01;<br\/>}<br\/><br\/>[type=&quot;checkbox&quot;]   label {<br\/>\tposition: relative;<br\/>\tpadding-left: 2.3em;<br\/>\tfont-size: 1.05em;<br\/>\tline-height: 1.7;<br\/>\tcursor: pointer; <br\/>}<\/code><\/pre> <div class=\"code-embed-infos\"> <span class=\"code-embed-name\">Version plus simple<\/span> <\/div> <\/div><\/div>\n\n\n\n<p>Un peu d&rsquo;explication du code : La premi\u00e8re d\u00e9claration permet de placer la checkbox sous la checkbox que nous allons cr\u00e9er visuallement tout en conservant sa lisibilit\u00e9 par les lecteurs d&rsquo;\u00e9cran. La planquer visuellement sans utiliser de <code>display:none;<\/code> qui lui casse la lisibilit\u00e9.<\/p>\n\n\n\n<p>La seconde d\u00e9claration permet de rendre le label plus \u00ab\u00a0affordant\u00a0\u00bb et de faire une petite place pour notre future checkbox.<br>La position <code>relative<\/code> nous est utile pour positionner pr\u00e9cis\u00e9ment la checkbox \u00e0 venir (le <code>label<\/code> devient r\u00e9f\u00e9rant).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Ne cibler que les navigateurs r\u00e9cents<\/h4>\n\n\n\n<p>En effet, tous nos styles personnalis\u00e9s vont commencer par : <code>[type=\"checkbox\"]:checked<\/code> ou <code>[type=\"checkbox\"]:not(:checked)<\/code>, ce qui veut dire que si le navigateur ne reconnait pas le s\u00e9lecteur, ces styles ne seront pas appliqu\u00e9s. C&rsquo;est une sorte de d\u00e9tection de support du navigateur \ud83d\ude42<\/p>\n\n\n\n<p>Si vous n&rsquo;avez pas besoin du support IE 11, utilisez la seconde syntaxe fournie ci-dessus.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cr\u00e9ation des checkboxes<\/h3>\n\n\n\n<p>Maintenant nous allons visuellement la checkbox gr\u00e2ce aux pseudo-\u00e9l\u00e9ments <code>:after<\/code> (on l&rsquo;utilisera pour la coche en forme de croix) et <code>:before<\/code> (on l&rsquo;utilisera pour la case \u00e0 cocher).<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-css code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-css code-embed-code\">\/* Aspect de la case *\/<br\/>[type=&quot;checkbox&quot;]:not(:checked)   label::before,<br\/>[type=&quot;checkbox&quot;]:checked   label::before {<br\/>\tcontent: &#039;&#039;;<br\/>\tposition: absolute;<br\/>\tleft: 0;<br\/>\ttop: 0;<br\/>\twidth: 1.4em;<br\/>\theight: 1.4em;<br\/>\tborder: 1px solid #aaa;<br\/>\tbackground: #FFF;<br\/>\tborder-radius: .2em;<br\/>\tbox-shadow: inset 0 1px 3px rgba(0,0,0, .1), 0 0 0 rgba(203, 34, 237, .2);<br\/>\ttransition: all .275s;<br\/>}<br\/><br\/>\/* Aspect de la coche *\/<br\/>[type=&quot;checkbox&quot;]:not(:checked)   label::after,<br\/>[type=&quot;checkbox&quot;]:checked   label::after {<br\/>\tcontent: &#039;\u2715&#039;;<br\/>\tspeak: never; \/* Pour \u00eatre s\u00fbr que le lecteur d&#039;\u00e9cran ne lira pas &quot;fois&quot; *\/<br\/>\tposition: absolute;<br\/>\ttop: .38em;<br\/>\tleft: .18em;<br\/>\tfont-size: 1.6em;<br\/>\tcolor: #CB22ED;<br\/>\tline-height: 0;<br\/>\ttransition: all .2s; \/* Petite transition *\/<br\/>}<br\/><br\/>\/* Aspect non coch\u00e9e *\/<br\/>[type=&quot;checkbox&quot;]:not(:checked)   label::after {<br\/>\topacity: 0;<br\/>\ttransform: scale(0) rotate(45deg);<br\/>}<br\/><br\/>\/* Aspect coch\u00e9e *\/<br\/>[type=&quot;checkbox&quot;]:checked   label::after {<br\/>\topacity: 1;<br\/>\ttransform: scale(1) rotate(0);<br\/>}<\/code><\/pre> <div class=\"code-embed-infos\"> <span class=\"code-embed-name\">La CSS pour les checkboxes personnalis\u00e9es<\/span> <\/div> <\/div><\/div>\n\n\n\n<p>La premi\u00e8re d\u00e9claration ici permet de r\u00e9gler la taille de la coche, sa position, sa couleur, etc.<\/p>\n\n\n\n<p>Les deux suivantes permettent de d\u00e9finir leur forme : non coch\u00e9e est transparent et r\u00e9duit, coch\u00e9e est opaque et \u00e0 l&rsquo;\u00e9chelle. Ces valeurs vont subir une transition de 0 vers 1 (ou inversement), puisqu&rsquo;on a pr\u00e9vu une animation avec la propri\u00e9t\u00e9 <code>transition<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Styler les diff\u00e9rents \u00e9tats<\/h3>\n\n\n\n<p>Nos styles de base sont en place, maintenant si vous souhaitez r\u00e9gler les autres \u00e9tats (d\u00e9sactiv\u00e9e, d\u00e9sactiv\u00e9e et coch\u00e9e, qui a le focus) voici quelques proposition de style, principalement des modifications sur l&rsquo;aspect focus ou de la coche (couleur, forme).<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-css code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-css code-embed-code\">\/* Disabled checkbox *\/<br\/>[type=&quot;checkbox&quot;]:disabled:not(:checked)   label::before,<br\/>[type=&quot;checkbox&quot;]:disabled:checked   label::before {<br\/>\tbox-shadow: none;<br\/>\tborder-color: #bbb;<br\/>\tbackground-color: #e9e9e9;<br\/>}<br\/><br\/>\/* Disabled checked *\/<br\/>[type=&quot;checkbox&quot;]:disabled:checked   label::after {<br\/>\tcolor: #777;<br\/>}<br\/><br\/>[type=&quot;checkbox&quot;]:disabled   label {<br\/>\tcolor: #aaa;<br\/>}<br\/><br\/>\/* Accessibility focus *\/<br\/>[type=&quot;checkbox&quot;]:checked:focus   label::before,<br\/>[type=&quot;checkbox&quot;]:not(:checked):focus   label::before {<br\/>\tbox-shadow: inset 0 1px 3px rgba(0,0,0, .1), 0 0 0 6px rgba(203, 34, 237, .2);<br\/>}<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>Voil\u00e0 pour quelques id\u00e9es de styles personnalis\u00e9s.<\/p>\n\n\n\n<p>N&rsquo;oubliez pas de pr\u00e9fixer les propri\u00e9t\u00e9s CSS3 pour les navigateurs concern\u00e9s, si vous avez encore besoin de les supporter.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Poussons le d\u00e9lire un peu plus loin &#8211; Styles avanc\u00e9s<\/h2>\n\n\n\n<p>Je ne vais pas faire le d\u00e9tail de cette d\u00e9monstration pour la simple et bonne raison que tout le principe reste le m\u00eame.<br>Il est possible ensuite de composer autant d&rsquo;\u00e9l\u00e9ments visuels en ajoutant \u00e9ventuellement des \u00e9l\u00e9ments HTML dans le label (essayez de ne pas en abuser quand m\u00eame).<br>Voici donc ce qu&rsquo;il est possible de faire avec un \u00e9l\u00e9ment suppl\u00e9mentaire dans le label.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"\/trytotry\/custom-checkbox-full-css3-flat-ui.html\"><img decoding=\"async\" width=\"600\" height=\"194\" src=\"\/blog\/wp-content\/uploads\/2013\/06\/checkbox-flat-ui.png\" alt=\"checkbox-flat-ui\" class=\"wp-image-3539\" srcset=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2013\/06\/checkbox-flat-ui.png 600w, https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2013\/06\/checkbox-flat-ui-300x97.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p><a class=\"demo\" href=\"\/trytotry\/custom-checkbox-full-css3-flat-ui.html\">Voir la d\u00e9monstration<\/a><\/p>\n\n\n\n<p>Ces deux exemples de styles personnalis\u00e9s utilisent l&rsquo;unit\u00e9 <code>em<\/code> pour le premier et pixel (<code>px<\/code>) pour plus d&rsquo;aisance \u00e0 leur compr\u00e9hension dans ce deuxi\u00e8me cas. Pour faire les choses correctement et de mani\u00e8re plus flexible, essayez d&rsquo;utiliser l&rsquo;unit\u00e9 <code>em<\/code>, <code>%<\/code> ou <code>rem<\/code> suivant votre besoin et exp\u00e9rience.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00c0 la recherche d&rsquo;id\u00e9es<\/h2>\n\n\n\n<p>Une fois que j&rsquo;avais r\u00e9ussi \u00e0 faire \u00e7a, tout content de moi je suis allez voir ce que font les copains.<br>Voici quelques id\u00e9es, plus graphiques que techniques, car la plupart des d\u00e9monstrations que j&rsquo;ai vu ne sont pas accessibles.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"600\" height=\"213\" src=\"\/blog\/wp-content\/uploads\/2013\/06\/animated-checkboxes.png\" alt=\"Checkbox anim\u00e9e\" class=\"wp-image-3535\" srcset=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2013\/06\/animated-checkboxes.png 600w, https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2013\/06\/animated-checkboxes-300x106.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure>\n<\/div>\n\n\n<p><a href=\"http:\/\/codepen.io\/beben-koben\/pen\/Jsfqu\"><br>Checkboxes Anim\u00e9es<\/a><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"600\" height=\"286\" src=\"\/blog\/wp-content\/uploads\/2013\/06\/checkbox-lightsaber.png\" alt=\"checkbox-lightsaber\" class=\"wp-image-3536\" srcset=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2013\/06\/checkbox-lightsaber.png 600w, https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2013\/06\/checkbox-lightsaber-300x143.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure>\n<\/div>\n\n\n<p><a href=\"http:\/\/cssdeck.com\/labs\/pure-css3-star-wars-lightsaber-checkboxes\"><br>Checkboxes sabres laser<\/a><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"600\" height=\"151\" src=\"\/blog\/wp-content\/uploads\/2013\/06\/checkbox-styles.png\" alt=\"checkbox-styles\" class=\"wp-image-3537\" srcset=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2013\/06\/checkbox-styles.png 600w, https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2013\/06\/checkbox-styles-300x75.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure>\n<\/div>\n\n\n<p><a href=\"http:\/\/cssdeck.com\/labs\/css-checkbox-styles\"><br>Diverses checkboxes<\/a><\/p>\n\n\n\n<p>Et ceux qui ont bien compris le principe, j&rsquo;imagine que vous comprenez aussi que l&rsquo;on peut produire ce genre de styles <strong>avec des boutons radio<\/strong> ?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Quelques articles pour aller plus loin<\/h2>\n\n\n\n<p>Si vous ne le saviez pas, vous pouvez \u00e9galement styler certains \u00e9l\u00e9ments de formulaire comme les&nbsp; les input de type file, ou m\u00eame l&rsquo;\u00e9l\u00e9ment progress en HTML5.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.creativejuiz.fr\/blog\/tutoriels\/input-file-personnalise-css-js\">Styler des \u00e9l\u00e9ments input de type file en CSS<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.creativejuiz.fr\/blog\/veille-technologique\/html5-element-progress-avancement-tache\">Styler l&rsquo;\u00e9l\u00e9ment progress en CSS<\/a><\/li>\n<\/ul>\n\n\n\n<p>Bon, ben c&rsquo;est \u00e0 vous maintenant !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ces derniers temps je passe un peu de temps sur la recherche autour des \u00e9l\u00e9ments de formulaire. Vous savez certainement que historiquement il n&rsquo;est pas toujours possible de personnaliser l&rsquo;aspect de contr\u00f4les de formulaire pour des raisons d&rsquo;accessibilit\u00e9 (m&rsquo;a-t-on dit). Cependant il est vrai que l&rsquo;apparence tr\u00e8s variable de ces \u00e9l\u00e9ments est sujet \u00e0 controverse. [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":7498,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_bluesky_dont_syndicate":"","_bluesky_syndication_accounts":"","_bluesky_syndication_text":"","footnotes":""},"categories":[17,9],"tags":[551,553,490,552,554],"coauthors":[597],"class_list":["post-3518","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-css-css3","category-tutoriels","tag-checkbox","tag-flat","tag-input","tag-radio","tag-ui"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts\/3518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/comments?post=3518"}],"version-history":[{"count":3,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts\/3518\/revisions"}],"predecessor-version":[{"id":8518,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts\/3518\/revisions\/8518"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/media\/7498"}],"wp:attachment":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/media?parent=3518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/categories?post=3518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/tags?post=3518"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/coauthors?post=3518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}