{"id":1537,"date":"2023-10-12T09:19:05","date_gmt":"2023-10-12T07:19:05","guid":{"rendered":"https:\/\/ideance.net\/blog\/?p=1537"},"modified":"2023-12-22T10:00:32","modified_gmt":"2023-12-22T09:00:32","slug":"surface-minimale-elements-interactifs-wcag","status":"publish","type":"post","link":"https:\/\/ideance.net\/blog\/en\/1537\/surface-minimale-elements-interactifs-wcag\/","title":{"rendered":"Surface minimale des \u00e9l\u00e9ments interactifs : \u00e0 la d\u00e9couverte du nouveau crit\u00e8re WCAG 2.5.8"},"content":{"rendered":"<p class=\"wp-block-paragraph\">En mati\u00e8re d\u2019accessibilit\u00e9 num\u00e9rique, la France dispose de son propre r\u00e9f\u00e9rentiel d&rsquo;\u00e9valuation avec le <a href=\"https:\/\/accessibilite.numerique.gouv.fr\/methode\/criteres-et-tests\/\">RGAA<\/a> (R\u00e9f\u00e9rentiel G\u00e9n\u00e9ral d&rsquo;Am\u00e9lioration de l&rsquo;Accessibilit\u00e9). Cependant, il est important de savoir qu&rsquo;il se base sur les directives internationales : les <a href=\"https:\/\/www.w3.org\/TR\/WCAG21\/\">WCAG<\/a> (<span lang=\"en\">Web Content Accessibility Guidelines<\/span>), dont le contenu est r\u00e9guli\u00e8rement mis \u00e0 jour.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aussi, la version 2.2, qui devrait arriver avant la fin de l&rsquo;ann\u00e9e, s&rsquo;\u00e9toffera de 9 nouveaux crit\u00e8res. Parmi eux se trouve le <a href=\"https:\/\/www.w3.org\/TR\/WCAG22\/#target-size-minimum\">crit\u00e8re 2.5.8 Target Size (Minimum)<\/a>, qui nous int\u00e9resse aujourd&rsquo;hui.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">D\u00e9j\u00e0 pr\u00e9sente avec le <a href=\"https:\/\/www.w3.org\/Translations\/WCAG21-fr\/#target-size\">crit\u00e8re 2.5.5<\/a> (niveau AAA), la notion de surface minimale des \u00e9l\u00e9ments interactifs se verra renforc\u00e9e par l\u2019ajout du crit\u00e8re 2.5.8 (niveau AA).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Faisons le point.<\/p>\n\n\n\n<p class=\"ice-block wp-block-paragraph\">Les WCAG s\u00e9parent leurs diff\u00e9rents crit\u00e8res en trois niveaux : A, AA et AAA.<br>Le niveau A repr\u00e9sente les crit\u00e8res les plus essentiels et le niveau AAA les points les plus sp\u00e9cifiques.<br>La plupart des lois et directives internationales imposent de respecter \u00e0 minima le niveau AA.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">L&rsquo;objectif<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Avant d&rsquo;entamer une \u00e9tude plus technique de ce nouveau crit\u00e8re, il est important d&rsquo;en expliquer le but ainsi que la port\u00e9e.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce dernier vise \u00e0 garantir que les \u00e9l\u00e9ments interactifs soient suffisamment grands pour \u00eatre activ\u00e9s plus facilement.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il est valable dans le cas de l&rsquo;utilisation d&rsquo;un dispositif de pointage, mais \u00e9galement sur mobile, o\u00f9 l&rsquo;activation d&rsquo;un \u00e9l\u00e9ment peut \u00eatre moins pr\u00e9cise, notamment lorsque plusieurs boutons ou liens sont proches les uns des autres.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En effet, pour des personnes ayant des tremblements ou plus largement des troubles de la motricit\u00e9 impactant les membres sup\u00e9rieurs, cibler une zone pr\u00e9cise de l&rsquo;\u00e9cran peut \u00eatre une t\u00e2che complexe, qui plus est si la zone en question est r\u00e9duite.<\/p>\n\n\n\n<p class=\"ice-block wp-block-paragraph\">Parmi les dispositifs de pointage, on peut citer la souris ou le trackball, mais aussi des outils comme le joystick ou la licorne (une baguette fix\u00e9e \u00e0 un casque et permettant d&rsquo;appuyer sur les touches d&rsquo;un clavier ou sur un \u00e9cran tactile).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Un crit\u00e8re compl\u00e9mentaire<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">S&rsquo;il y a bien quelque chose \u00e0 noter d&rsquo;entr\u00e9e de jeu, c&rsquo;est qu&rsquo;il ne s&rsquo;agit pas d&rsquo;un remplacement du crit\u00e8re 2.5.5, mais bien d&rsquo;un nouveau crit\u00e8re compl\u00e9mentaire, destin\u00e9 \u00e0 assurer une meilleure accessibilit\u00e9 des \u00e9l\u00e9ments interactifs pour les personnes utilisant un dispositif de pointage.<\/p>\n\n\n\n<p class=\"ice-block is-green wp-block-paragraph\">Afin de demeurer le plus g\u00e9n\u00e9rique possible, le terme \u00ab \u00e9l\u00e9ment interactif \u00bb sera utilis\u00e9 \u00e0 plusieurs reprises dans la suite de ce billet.<br>Cette appellation englobe par exemple les liens, les boutons, les cases \u00e0 cocher ou les options d&rsquo;une liste d\u00e9roulante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;attribution de ce crit\u00e8re au niveau de conformit\u00e9 AA permet \u00e0 ce sujet de ne plus faire partie du cercle ferm\u00e9 des crit\u00e8res AAA, r\u00e9put\u00e9s comme \u00e9tant les plus exigeants.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le crit\u00e8re 2.5.5 reste donc d&rsquo;actualit\u00e9, mais devient la version renforc\u00e9e du crit\u00e8re 2.5.8, qui repr\u00e9sente donc un nouveau minimum requis (comme l&rsquo;indique la mention \u00ab Minimum \u00bb de son intitul\u00e9).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voyons maintenant ce qui diff\u00e8re entre l&rsquo;ancien et le nouveau crit\u00e8re.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Les diff\u00e9rences<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">La surface des zones interactives<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La principale diff\u00e9rence entre les crit\u00e8res r\u00e9side dans la surface minimale attendue pour les \u00e9l\u00e9ments interactifs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Elles sont d\u00e9finies ainsi :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>24 pixels de haut par 24 pixels de large pour le crit\u00e8re 2.5.8.<\/li>\n\n\n\n<li>44 pixels de haut par 44 pixels de large pour le crit\u00e8re 2.5.5.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Les exceptions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Le crit\u00e8re 2.5.8 partage les exceptions d&rsquo;applications du crit\u00e8re 2.5.5.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il est donc non-applicable dans les cas suivants :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>S\u2019il existe dans la page un autre \u00e9l\u00e9ment de taille suffisante (24 par 24 pixels) permettant d&rsquo;effectuer la m\u00eame action.<\/li>\n\n\n\n<li>Si l&rsquo;\u00e9l\u00e9ment cibl\u00e9 se trouve dans une phrase ou si sa taille est contrainte par la hauteur de ligne de son contenu environnant.<\/li>\n\n\n\n<li>Si l&rsquo;\u00e9l\u00e9ment cibl\u00e9 est contr\u00f4l\u00e9 par l&rsquo;agent utilisateur (par exemple, le navigateur) et n&rsquo;est pas modifi\u00e9.<\/li>\n\n\n\n<li>Si l&rsquo;apparence de l&rsquo;\u00e9l\u00e9ment cibl\u00e9 est essentielle \u00e0 sa compr\u00e9hension.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Cependant, \u00e0 cette liste s&rsquo;ajoute une exception suppl\u00e9mentaire, portant sur l&rsquo;espacement entre deux zones interactives.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En effet, si un \u00e9l\u00e9ment interactif n&rsquo;atteint pas la surface attendue, il reste conforme s&rsquo;il y a suffisamment d&rsquo;espace entre ce dernier et les zones interactives adjacentes.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Exemple<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Consid\u00e9rons un \u00e9l\u00e9ment interactif de 20 par 20 pixels (sa surface est donc insuffisante au regard du crit\u00e8re 2.5.8).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si l&rsquo;on trace un cercle de 24 pixels de diam\u00e8tre depuis son centre, aucun autre \u00e9l\u00e9ment interactif ne doit se trouver entre l&rsquo;\u00e9l\u00e9ment et la bordure du cercle. Cela repr\u00e9sente un espacement minimum avec un autre \u00e9l\u00e9ment interactif d&rsquo;<strong>au moins 4 pixels<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour mieux comprendre cette notion d&rsquo;intersection, voici une image de synth\u00e8se.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"560\" height=\"274\" src=\"https:\/\/ideance.net\/blog\/wp-content\/uploads\/2023\/09\/target-spacing-translated.svg\" alt=\"Infographie explicative de la nouvelle exception \u00e0 l'application du crit\u00e8re 2.5.8 (cf. description d\u00e9taill\u00e9e ci-apr\u00e8s)\" class=\"wp-image-1639\"\/><figcaption class=\"wp-element-caption\">Source : <a href=\"https:\/\/www.w3.org\/WAI\/WCAG22\/Understanding\/target-size-minimum.html\">Le crit\u00e8re 2.5.8 sur le site des WCAG<\/a><\/figcaption><\/figure>\n\n\n\n<div class=\"ice-transcript\">\n  <button type=\"button\" data-toggle=\"collapse\" data-target=\"#image-description-1\" aria-expanded=\"false\" aria-controls=\"image-description-1\">Description d\u00e9taill\u00e9e de l&rsquo;image<\/button>\n  <div id=\"image-description-1\" class=\"collapse\">\n    <p>Pour chacun des cas suivants, des boutons ne contenant qu&rsquo;une ic\u00f4ne chacun sont align\u00e9s horizontalement.<\/p>\n    <ul>\n      <li>\n        <p>Cas n\u00b01<br>Les boutons font 24 pixels de haut par 24 pixels de large. C&rsquo;est conforme.<\/p>\n      <\/li>\n      <li>\n        <p>Cas n\u00b02<br>Les boutons font 20 pixels de haut par 20 pixels de large et sont s\u00e9par\u00e9s par 4 pixels de marge. Leur surface n&rsquo;est pas suffisante. Cependant, chaque bouton s&rsquo;inscrit dans un cercle de 24 pixels de diam\u00e8tre qui ne s&rsquo;entrecroise pas avec un autre. C&rsquo;est donc conforme.<\/p>\n      <\/li>\n      <li>\n        <p>Cas n\u00b03<br>Les boutons font 20 pixels de haut par 20 pixels de large, mais sans marge entre eux. Cette fois-ci, les cercles trac\u00e9s depuis le centre de chaque bouton s&rsquo;entrecroisent. C&rsquo;est non conforme.<\/p>\n      <\/li>\n    <\/ul>\n  <\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Voil\u00e0 qui conclut notre tour d&rsquo;horizon de ce nouveau crit\u00e8re.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si son arriv\u00e9e dans les WCAG est imminente, cela n&#8217;emp\u00eache cependant pas de s&rsquo;appuyer dessus pour des recommandations correctives allant au-del\u00e0 de l&rsquo;exigence l\u00e9gale de conformit\u00e9, le temps de son introduction dans le RGAA.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ressources<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ce tout nouveau crit\u00e8re n\u2019\u00e9tant pas encore officiel, peu d\u2019articles en fran\u00e7ais sont disponibles \u00e0 son sujet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voici donc quelques articles en anglais pour approfondir l\u2019ensemble de ce qui a \u00e9t\u00e9 abord\u00e9 dans ce billet :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.stubbornella.org\/2023\/09\/17\/expanding-your-touch-targets\/\" lang=\"en\">Expanding your touch targets, par Nicole Sullivan (en anglais)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.w3.org\/WAI\/WCAG22\/Understanding\/target-size-minimum.html\">Le crit\u00e8re 2.5.8 sur le site des WCAG (en anglais)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.w3.org\/WAI\/WCAG22\/Understanding\/target-size-enhanced\">Le crit\u00e8re 2.5.5 sur le site des WCAG (en anglais)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/css-tricks.com\/looking-at-wcag-2-5-5-for-better-target-sizes\/\">Des explications sur le crit\u00e8re 2.5.5 sur CSS Tricks (en anglais)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/html5accessibility.com\/stuff\/2023\/08\/28\/quick-and-very-dirty-target-size-checker\/\">Article contenant un bookmarklet de test (en anglais)<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>En mati\u00e8re d\u2019accessibilit\u00e9 num\u00e9rique, la France dispose de son propre r\u00e9f\u00e9rentiel d&rsquo;\u00e9valuation avec le RGAA (R\u00e9f\u00e9rentiel G\u00e9n\u00e9ral d&rsquo;Am\u00e9lioration de l&rsquo;Accessibilit\u00e9). Cependant, il est important de savoir qu&rsquo;il se base sur les directives internationales : les WCAG (Web Content Accessibility Guidelines), dont le contenu est r\u00e9guli\u00e8rement mis \u00e0 jour. Aussi, la version 2.2, qui devrait arriver&hellip;<\/p>","protected":false},"author":10,"featured_media":1742,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[13,21],"tags":[],"class_list":["post-1537","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ux-ui","category-wcag"],"acf":[],"_links":{"self":[{"href":"https:\/\/ideance.net\/blog\/en\/wp-json\/wp\/v2\/posts\/1537","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ideance.net\/blog\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ideance.net\/blog\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ideance.net\/blog\/en\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/ideance.net\/blog\/en\/wp-json\/wp\/v2\/comments?post=1537"}],"version-history":[{"count":47,"href":"https:\/\/ideance.net\/blog\/en\/wp-json\/wp\/v2\/posts\/1537\/revisions"}],"predecessor-version":[{"id":1743,"href":"https:\/\/ideance.net\/blog\/en\/wp-json\/wp\/v2\/posts\/1537\/revisions\/1743"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ideance.net\/blog\/en\/wp-json\/wp\/v2\/media\/1742"}],"wp:attachment":[{"href":"https:\/\/ideance.net\/blog\/en\/wp-json\/wp\/v2\/media?parent=1537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ideance.net\/blog\/en\/wp-json\/wp\/v2\/categories?post=1537"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ideance.net\/blog\/en\/wp-json\/wp\/v2\/tags?post=1537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}