Fermer

mai 26, 2021

Modèles parfaits pour les utilisateurs de lecteurs d'écran


À propos de l'auteur

Carie Fisher est une auteur, conférencière et développeur passionnée par l'intersection du code frontal et de l'UX, de l'accessibilité numérique et de la diversité dans…
En savoir plus sur
Carie

Découvrez quels modèles SVG nous devrions éviter et quels modèles sont les plus inclusifs lorsque vous comparez différentes combinaisons de systèmes d'exploitation, de navigateurs et de lecteurs d'écran. Carie animera également un atelier en ligne sur Modèles frontaux accessibles tout autour de l'accessibilité frontale.

Alors que les graphiques vectoriels évolutifs (SVG) ont été introduits pour la première fois à la fin des années 90, ils ont vu un énorme regain de popularité au cours de la dernière décennie en raison de leur extrême flexibilité, de leur haute fidélité et de leur relative légèreté dans un monde où la bande passante et les performances comptent plus que jamais. Les progrès de JavaScript et l'introduction de requêtes multimédias CSS telles que @ prefers-color-scheme et @ prefer-reduction-motion ont étendu la fonctionnalité des SVG bien au-delà de leur cas d'utilisation initial de simplement affichage d'images vectorielles sur un site Web.

À mesure que la technologie SVG progresse, notre compréhension de la façon dont nous concevons et développons des SVG doit également progresser. Une partie de cette avancée comprend la prise en compte de l'impact de ces conceptions et codes sur les humains réels, c'est-à-dire nos utilisateurs finaux.

Cet article décrit douze modèles SVG distincts trouvés «dans la nature» et chaque description alternative annoncée lorsque accessible par différentes combinaisons de systèmes d'exploitation, de navigateurs et de lecteurs d'écran.

Bien sûr, les exemples suivants ne sont pas censés être une liste exhaustive de tous les modèles possibles utilisés dans la sphère numérique, mais ils mettent en évidence certains des modèles SVG plus populaires ou omniprésents que vous pourriez rencontrer. Continuez à lire pour découvrir quels modèles SVG vous devriez éviter et quels modèles sont les plus inclusifs!

Descriptions alternatives de base utilisant la balise

Le premier groupe de quatre modèles utilise la balise reliant un SVG déposer. C'est un bon choix pour les images simples et simples sur votre site Web, application ou autre produit numérique. Bien que l'utilisation de ce modèle présente l'inconvénient de ne pas pouvoir contrôler facilement de nombreux éléments visuels ou animations en tant que SVG en ligne, ce modèle devrait rendre des images plus claires et plus rapides dans l'ensemble et permettre une maintenance plus facile sur les SVG que vous utilisez à plusieurs endroits.

Pattern # 1: + alt = "[words]"

 illustration de renard présentée dans l'exemple de codepen
 Que dit le renard? 

Motif n ° 2: + role = "img" + alt = "[words]"

 illustration de renard présentée dans l'exemple de codepen
 Que dit le renard? 

Motif n ° 3: + role = "img" + aria-label = "[words]"

 illustration de renard présentée dans l'exemple codepen

Pattern # 4: + role = " img " + aria-labelledby =" [ID] "

 illustration de renard présentée dans l'exemple de codepen

Que dit le renard?

Descriptions alternatives de base Usin g La balise

Le deuxième groupe de quatre modèles utilise la balise avec un fichier SVG en ligne. Bien que l'ajout du code SVG directement dans le balisage puisse potentiellement ralentir le chargement de la page, cette inefficacité mineure sera compensée par un meilleur contrôle des éléments visuels ou des animations de vos images. En ajoutant directement votre SVG au HTML, vous avez également plus d'options pour fournir des informations d'image aux utilisateurs de votre lecteur d'écran.

Motif n ° 5: + role = "img" + </code></h4><figure><a href="https://i0.wp.com/cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b1be2146-4ed3-4dd0-b8aa-88ea70112d03/5-accessible-svg-pattern-comparison.png?ssl=1"><img loading="lazy" decoding="async" importance="low" width="660" height="506" srcset="https://i0.wp.com/res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b1be2146-4ed3-4dd0-b8aa-88ea70112d03/5-accessible-svg-pattern-comparison.png?resize=660%2C506&ssl=1 400w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_800/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b1be2146-4ed3-4dd0-b8aa-88ea70112d03/5-accessible-svg-pattern-comparison.png 800w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1200/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b1be2146-4ed3-4dd0-b8aa-88ea70112d03/5-accessible-svg-pattern-comparison.png 1200w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1600/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b1be2146-4ed3-4dd0-b8aa-88ea70112d03/5-accessible-svg-pattern-comparison.png 1600w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_2000/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b1be2146-4ed3-4dd0-b8aa-88ea70112d03/5-accessible-svg-pattern-comparison.png 2000w" src="https://i0.wp.com/res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b1be2146-4ed3-4dd0-b8aa-88ea70112d03/5-accessible-svg-pattern-comparison.png?resize=660%2C506&ssl=1" sizes="100vw" alt=" illustration de renard présentée dans l'exemple de codepen " data-recalc-dims="1"/></a></figure><pre><code class="language-svg"><svg role="img" ...> <title> Que dit le renard? [design code]

Motif n ° 6: + role = "img" +

 illustration de renard présentée dans le exemple codepen

    Que dit le renard? 
   [design code]

Motif n ° 7: + role = "img" + </code> + <code> aria-describedby = "[ID]" </code></h4><figure><a href="https://i0.wp.com/cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/533e5f3a-d0b0-4e89-8642-fd355fb557f8/7-accessible-svg-pattern-comparison.png?ssl=1"><img loading="lazy" decoding="async" importance="low" width="660" height="506" srcset="https://i0.wp.com/res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/533e5f3a-d0b0-4e89-8642-fd355fb557f8/7-accessible-svg-pattern-comparison.png?resize=660%2C506&ssl=1 400w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_800/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/533e5f3a-d0b0-4e89-8642-fd355fb557f8/7-accessible-svg-pattern-comparison.png 800w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1200/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/533e5f3a-d0b0-4e89-8642-fd355fb557f8/7-accessible-svg-pattern-comparison.png 1200w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1600/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/533e5f3a-d0b0-4e89-8642-fd355fb557f8/7-accessible-svg-pattern-comparison.png 1600w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_2000/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/533e5f3a-d0b0-4e89-8642-fd355fb557f8/7-accessible-svg-pattern-comparison.png 2000w" src="https://i0.wp.com/res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/533e5f3a-d0b0-4e89-8642-fd355fb557f8/7-accessible-svg-pattern-comparison.png?resize=660%2C506&ssl=1" sizes="100vw" alt=" illustration de renard présentée dans l'exemple de codepen " data-recalc-dims="1"/></a></figure><pre><code class="language-svg"><svg role="img" aria-describedby="fox7" ...> <title id="fox7"> Que dit le renard? [design code]

Motif n ° 8: + role = "img" + </code> + <code> aria -labelledby = "[ID]" </code></h4><figure><a href="https://i0.wp.com/cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/03c90ea4-a060-4ea4-a073-0fff9f08a12c/8-accessible-svg-pattern-comparison.png?ssl=1"><img loading="lazy" decoding="async" importance="low" width="660" height="506" srcset="https://i0.wp.com/res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/03c90ea4-a060-4ea4-a073-0fff9f08a12c/8-accessible-svg-pattern-comparison.png?resize=660%2C506&ssl=1 400w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_800/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/03c90ea4-a060-4ea4-a073-0fff9f08a12c/8-accessible-svg-pattern-comparison.png 800w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1200/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/03c90ea4-a060-4ea4-a073-0fff9f08a12c/8-accessible-svg-pattern-comparison.png 1200w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1600/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/03c90ea4-a060-4ea4-a073-0fff9f08a12c/8-accessible-svg-pattern-comparison.png 1600w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_2000/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/03c90ea4-a060-4ea4-a073-0fff9f08a12c/8-accessible-svg-pattern-comparison.png 2000w" src="https://i0.wp.com/res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/03c90ea4-a060-4ea4-a073-0fff9f08a12c/8-accessible-svg-pattern-comparison.png?resize=660%2C506&ssl=1" sizes="100vw" alt=" illustration de renard présentée dans l'exemple de codepen " data-recalc-dims="1"/></a></figure><pre><code class="language-svg"><svg role="img" aria-labelledby="fox8" ...> <title id="fox8"> Que dit le renard? [design code]

Descriptions alternatives étendues utilisant le Balise

T Le dernier groupe de quatre modèles utilise la balise avec un fichier SVG en ligne, un peu comme le deuxième groupe. Cependant, dans ce cas, nous étendons les descriptions alternatives simples avec des informations supplémentaires en raison de la complexité de l'image.

Ce serait un bon choix de modèle pour les images plus compliquées qui nécessitent plus d'explications. Cependant, il est important de garder à l'esprit que certaines personnes handicapées – comme des troubles cognitifs – pourraient bénéficier de cette information d'image supplémentaire facilement disponible sur l'écran au lieu d'être enterrée dans le code SVG.

Selon le type et la quantité d'informations que vous devez ajouter à votre SVG, vous pouvez envisager d'adopter une approche totalement différente.

Motif n ° 9: + role = "img" + </code> + <code><text></code></h4><figure><a href="https://i0.wp.com/cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b20fc272-e17f-4feb-ade6-a3b918b6d535/9-accessible-svg-pattern-comparison.png?ssl=1"><img loading="lazy" decoding="async" importance="low" width="660" height="506" srcset="https://i0.wp.com/res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b20fc272-e17f-4feb-ade6-a3b918b6d535/9-accessible-svg-pattern-comparison.png?resize=660%2C506&ssl=1 400w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_800/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b20fc272-e17f-4feb-ade6-a3b918b6d535/9-accessible-svg-pattern-comparison.png 800w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1200/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b20fc272-e17f-4feb-ade6-a3b918b6d535/9-accessible-svg-pattern-comparison.png 1200w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1600/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b20fc272-e17f-4feb-ade6-a3b918b6d535/9-accessible-svg-pattern-comparison.png 1600w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_2000/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b20fc272-e17f-4feb-ade6-a3b918b6d535/9-accessible-svg-pattern-comparison.png 2000w" src="https://i0.wp.com/res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b20fc272-e17f-4feb-ade6-a3b918b6d535/9-accessible-svg-pattern-comparison.png?resize=660%2C506&ssl=1" sizes="100vw" alt=" ] illustration de renard présentée dans l'exemple de codepen " data-recalc-dims="1"/></a></figure><div class="break-out"><pre><code class="language-svg"><svg role="img" ...> <title> Que dit le renard? Saurons-nous jamais? [design code]

Motif n ° 10: + role = "img" + [19659042] +

 illustration de renard présentée dans l'exemple de codepen

    Que dit le renard? 
    Saurons-nous jamais? 
   [design code]

Motif n ° 11: + role = "img" ] + </code> + <code><desc></code> + <code> aria-labelledby = "[ID]" </code></h4><figure><a href="https://i0.wp.com/cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b4061618-7397-4957-a887-bb259347df0b/11-accessible-svg-pattern-comparison.png?ssl=1"><img loading="lazy" decoding="async" importance="low" width="660" height="506" srcset="https://i0.wp.com/res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b4061618-7397-4957-a887-bb259347df0b/11-accessible-svg-pattern-comparison.png?resize=660%2C506&ssl=1 400w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_800/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b4061618-7397-4957-a887-bb259347df0b/11-accessible-svg-pattern-comparison.png 800w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1200/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b4061618-7397-4957-a887-bb259347df0b/11-accessible-svg-pattern-comparison.png 1200w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1600/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b4061618-7397-4957-a887-bb259347df0b/11-accessible-svg-pattern-comparison.png 1600w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_2000/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b4061618-7397-4957-a887-bb259347df0b/11-accessible-svg-pattern-comparison.png 2000w" src="https://i0.wp.com/res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b4061618-7397-4957-a887-bb259347df0b/11-accessible-svg-pattern-comparison.png?resize=660%2C506&ssl=1" sizes="100vw" alt=" illustration de renard présentée dans l'exemple codepen " data-recalc-dims="1"/></a></figure><pre><code class="language-svg"><svg role="img" aria-labelledby="fox11 description11" ...> <title id="fox11"> Qu'est-ce que le le renard dit? Le saurons-nous un jour? [design code]

Motif n ° 12: + role = "img" + </code> + <code><desc></code> + <code> aria-describedby = " [ID] "</code></h4><figure><a href="https://i0.wp.com/cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/23280c8b-5499-42b9-8628-728172b891e2/12-accessible-svg-pattern-comparison.png?ssl=1"><img loading="lazy" decoding="async" importance="low" width="660" height="506" srcset="https://i0.wp.com/res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/23280c8b-5499-42b9-8628-728172b891e2/12-accessible-svg-pattern-comparison.png?resize=660%2C506&ssl=1 400w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_800/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/23280c8b-5499-42b9-8628-728172b891e2/12-accessible-svg-pattern-comparison.png 800w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1200/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/23280c8b-5499-42b9-8628-728172b891e2/12-accessible-svg-pattern-comparison.png 1200w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_1600/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/23280c8b-5499-42b9-8628-728172b891e2/12-accessible-svg-pattern-comparison.png 1600w, https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_2000/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/23280c8b-5499-42b9-8628-728172b891e2/12-accessible-svg-pattern-comparison.png 2000w" src="https://i0.wp.com/res.cloudinary.com/indysigner/image/fetch/f_auto,q_auto/w_400/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/23280c8b-5499-42b9-8628-728172b891e2/12-accessible-svg-pattern-comparison.png?resize=660%2C506&ssl=1" sizes="100vw" alt=" illustration de renard présentée dans l'exemple codepen " data-recalc-dims="1"/></a></figure><pre><code class="language-svg"><svg role="img" aria-describedby="fox12 description12" ...> <title id="fox12"> Que dit le renard? Saurons-nous jamais? [design code]

Voir l'intégralité du CodePen [Accessible SVG Pattern Comparison (Fox Version)] (https://codepen.io// smashingmag / pen / dyvvbKj) par Carie Fisher .

Voir le CodePen complet Comparaison de modèles SVG accessible (version Fox) par Carie Fisher .

Gagnants et perdants des modèles SVG

En exécutant divers lecteurs d'écran sur différentes combinaisons de systèmes d'exploitation et de navigateurs, nous voyons des modèles définis émerger dans le tableau des résultats finaux . Il y a quelques gagnants et perdants de modèles SVG clairs plus quelques modèles quelque part au milieu que vous pouvez implémenter aussi longtemps que vous en êtes conscient et pouvez accepter leurs limites. En examinant le tableau des résultats, nous pouvons conclure ce qui suit:

Descriptions alternatives de base utilisant la balise (groupe 1)

Best In Show
  • Pattern 2 : + role = " img " + alt =" [words] "
  • Motif 3 : + role =" img " + aria-label =" [words] "
Soyez prudent
  • Motif 4 : + role =" img " + aria-labelledby =" [ID] "
  • Modèle 1 : + alt = "[words]"

Descriptions alternatives de base utilisant la balise (Groupe 2)

Best In Show
  • Modèle 5 : + role = "img" + </code></li><li><strong> Pattern 8 </strong>: <code><svg></code> + <code> role = "img" </code> + <code><title></code> + <code> aria-labelledby = "[ID]" </code></li></ul><h5 id="use-caution-1"> Soyez prudent</h5><ul><li><strong> Motif 7 </strong>: <code><svg></code> + <code> role = "img" </code> + <code><title></code> + <code> aria-describedby = "[ID]" </code></li></ul><h5 id="not-recommended-1"> Non recommandé</h5><ul><li><strong> Pattern 6 </strong>: <code><svg></code> + <code> role = "img" </code> + <code><text></code></li></ul><h4 id="extended-alternative-descriptions-using-the-svg-tag-group-3"> Descriptions alternatives étendues utilisant la balise <code><svg></code> (groupe 3)</h4><h5 id="best-in-show-2"> Best In Show</h5><ul><li><strong> Pattern 11 </strong>: <code><svg></code> + <code> role = "img" </code> + <code><title></code> + <code><desc></code> ] + <code> aria-labelledby = "[ID]" </code></li></ul><p><strong> Note </strong>: <em> Bien que ce modèle ne soit pas parfait car il a répété des descriptions alternatives, il n'a ignoré aucun des éléments du test, contrairement à </em></p><h4 id="use-caution-2"> Use Caution</h4><ul><li><strong> Pattern 9 </strong>: <code><svg></code> + <code> role = "img" </code> + <code><title></code> + <code> <text> </code></li><li><strong> Motif 10 </strong>: <code><svg></code> + <code> role = "img" </code> + <code><title></code> + <code> <desc> </code></li><li><strong> Motif 12 </strong>: <code><svg></code> + <code> role = "img" </code> + <code><title></code> + <code><desc></code> + <code> aria-describedby = "[ID]" </code></li></ul><h5 id="not-recommended-2"> Non recommandé [19659135] Aucun des modèles de ce groupe n'a complètement échoué aux tests.</li></ul><h3 id="testing-results"> Résultats des tests</h3><figure class="break-out"><p data-height="500" data-theme-id="light" data-slug-hash="YzZQBwG" data-user="smashingmag" data-default-tab="result" class="codepen"> Voir le stylo [Testing Results] (https://codepen.io/smashingmag/pen/YzZQBwG) par <a href="https://codepen.io/cariefisher/pen/QWpjded"> Carie Fisher </a>.</p><figcaption> See the Pen <a href="https://codepen.io/smashingmag/pen/YzZQBwG"> Testing Results </a> by <a href="https://codepen.io/cariefisher/pen/QWpjded"> Carie Fisher </a>.</figcaption></figure><h3 id="wrapping-up"> Wrapping Up</h3><p> Il est important de noter cette partie de l'interprétation des résultats du modèle SVG tests est de comprendre que les créateurs de chaque lecteur d'écran ont un (des) navigateur (s) recommandé (s) <strong> </strong> qu'ils prennent entièrement en charge. Cela ne veut pas dire que vous ne devriez pas ou ne pouvez pas utiliser un lecteur d'écran sur un autre navigateur, cela signifie simplement que si vous le faites, les résultats risquent de ne pas être aussi précis que si vous utilisiez le (s) recommandé (s). [19659006] Les tests de modèle pour cet article comprenaient certaines <strong> combinaisons de navigateurs et de lecteurs d'écran </strong> qui peuvent tomber dans la catégorie «marginale», mais il existe également des notes sur les combinaisons <a href="https://dequeuniversity.com/screenreaders/"> de systèmes d'exploitation, de navigateurs et les lecteurs d'écran </a> sont recommandés pour vos propres tests. Les résultats de ces tests devraient vous aider à prendre la meilleure décision possible en matière de modèle SVG, en fonction de vos besoins et de vos contraintes de modèle.</p><p> Un rappel qu'avant de vous installer sur un modèle, assurez-vous de connaître les bases de <a href="https://www.smashingmagazine.com/2020/05/accessible-images/"> comment et quand créer des images accessibles </a> et que vous comprenez parfaitement les <a href="https://www.w3.org/WAI/tutorials/images/"> autres informations requises </a> pour les différents types d'images.</p><p> Si vous avez besoin d'une <strong> aide supplémentaire </strong> pour décider du motif à utiliser pour votre environnement, consultez l'article <a href="https://www.smashingmagazine.com/2021/03/good-better-best-untangling-complex-world-accessible-patterns/"> Bon, Mieux, Meilleur: Démêler le monde complexe des motifs accessibles </a> pour vous aider à naviguer dans les eaux délicates des motifs accessibles. Armés de toutes ces informations et d'un peu d'effort, vos SVG sont en bonne voie d'être plus inclusifs pour tous.</p><p> <em> Note de l'éditeur </em>: Vous pouvez découvrir les <strong> meilleures pratiques en matière d'accessibilité </strong> avec Carie dans son prochain atelier en ligne sur <strong><a href="https://smashingconf.com/online-workshops/workshops/carie-fisher"> Modèles frontaux accessibles </a></strong> – avec des lignes directrices, des outils de test, des technologies d'assistance et des modèles de conception inclusifs. En ligne et en direct.</p><div class="signature"><img decoding="async" src="https://i0.wp.com/www.smashingmagazine.com/images/logo/logo--red.png?w=660&ssl=1" alt=" Smashing Editorial "width =" 35 "height =" 46 "loading =" lazy "decoding =" async " data-recalc-dims="1"/><span> (vf, il) </span></div></div><p><div class="clearfix button-collection container text-center "></div><div class="clearfix button-collection container text-center "></div><div class="clearfix button-collection container text-center "><a id="layers-widget-layers-pro-call-to-action-3-buttons-554" class="button " href="https://arcoptimizer.com/botinstagram?utm_source=bottom_article_blog&utm_medium=cta&utm_campaign=corporate_estimation"> Le meilleur outil 2023 pour ta croissance Instagram ! </a></div><div class="clearfix text-center "> <button class="circle-action-btn"><div class="circle-action-btn__icon"><i class="ion-speedometer"></i></div> </button></div> <br> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-2247171909266990" data-ad-slot="5039287111"></ins> <script>(adsbygoogle = window.adsbygoogle || []).push({});</script><br /> <br /><a href="https://smashingmagazine.com/2021/05/accessible-svg-patterns-comparison/" target="_blank" rel="follow noopener noreferrer">Source link </a></p><div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon sd-sharing"><h3 class="sd-title">Partager :</h3><div class="sd-content"><ul><li class="share-twitter"><a rel="nofollow noopener noreferrer" data-shared="sharing-twitter-63147" class="share-twitter sd-button share-icon no-text" href="https://blog.arcoptimizer.com/modeles-parfaits-pour-les-utilisateurs-de-lecteurs-decran?share=twitter" target="_blank" title="Cliquez pour partager sur Twitter" ><span></span><span class="sharing-screen-reader-text">Cliquez pour partager sur Twitter(ouvre dans une nouvelle fenêtre)</span></a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer" data-shared="sharing-facebook-63147" class="share-facebook sd-button share-icon no-text" href="https://blog.arcoptimizer.com/modeles-parfaits-pour-les-utilisateurs-de-lecteurs-decran?share=facebook" target="_blank" title="Cliquez pour partager sur Facebook" ><span></span><span class="sharing-screen-reader-text">Cliquez pour partager sur Facebook(ouvre dans une nouvelle fenêtre)</span></a></li><li class="share-end"></li></ul></div></div></div></p><div id='jp-relatedposts' class='jp-relatedposts' ><h3 class="jp-relatedposts-headline"><em>Articles similaires</em></h3></div></div><footer class="meta-info"><p><span class="meta-item meta-date"><i class="l-clock-o"></i> mai 26, 2021</span> <span class="meta-item meta-tags"><i class="l-tags"></i> <a href="https://blog.arcoptimizer.com/tag/decran" title="View all posts tagged d'écran">d'écran</a>, <a href="https://blog.arcoptimizer.com/tag/lecteurs" title="View all posts tagged lecteurs">lecteurs</a>, <a href="https://blog.arcoptimizer.com/tag/modeles" title="View all posts tagged modèles">modèles</a>, <a href="https://blog.arcoptimizer.com/tag/parfaits" title="View all posts tagged parfaits">parfaits</a>, <a href="https://blog.arcoptimizer.com/tag/utilisateurs" title="View all posts tagged utilisateurs">utilisateurs</a></span></p></footer></article></div></div><div id="back-to-top"> <a href="#top">Revenir vers le haut</a></div></section><footer id="footer" class="footer-site invert"><div class="container content clearfix"><div class="row copyright"><div class="column span-6"><p class="site-text">Copyright arcoptimizer.com <script>document.write(new Date().getFullYear())</script> article@arcoptimizer.com</p></div><div class="column span-6 clearfix t-right"><nav class="nav nav-horizontal pull-right"><ul id="menu-menu_footer" class="menu"><li id="menu-item-142202" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-142202"><a href="mailto:article@arcoptimizer.com"><i class='fa fa-envelope'></i></a></li><li id="menu-item-142203" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-142203"><a href="http://article@arcoptimizer.com">article@arcoptimizer.com</a></li></ul></nav></div></div></div></footer><div class="search-interface-overlay"><form role="search" method="get" class="search-interface-holder" action="https://blog.arcoptimizer.com/"> <label class="search-text"> Search: </label> <input type="text" id="layers-modal-search-field" class="search-field" placeholder="Type Something" value="" name="s" title="Search for:" autocomplete="off" autocapitalize="off" ></form> <a href="#" class="search-close"> <i class="l-close"></i> </a></div></section><style type="text/css">@media (max-width: 480px) { .ednpro_main_wrapper{display:none; } }</style><div class="ednpro_main_wrapper ednpro_section"><div class="edn-close-section" id="apex_cookie_0" ><div class="edn-notify-bar edn-position-bottom edn-visibility-show-time edn-custom-template edn_no_close_button" id="edn_custom_template" data-barid="apexbar-0" data-postid="63147"> <input type="hidden" id='effect_type0' value="edn_pro_static"/> <input type="hidden" class='edn_social_optons' value="0"/> <input type="hidden" class='edn_right_optons' value="1"/><div class="edn-container apexnb-bartypeedn_pro_static"><style type="text/css">.edn-notify-bar .edn-custom-design-wrapper .ticker-wrapper .ticker, .edn-notify-bar .ticker-wrapper .ticker{ font-family: default; font-size: 22px; background-color: #1e73be; } /*added custom css*/ .edn-custom-template[data-barid=apexbar-0] .edn-custom-design-wrapper, .edn-custom-template[data-barid=apexbar-0], .edn-custom-template[data-barid=apexbar-0] .edn-contact-lightbox .edn-contact-lightbox-inner-wrap, .edn-custom-template[data-barid=apexbar-0] .edn-contact-close, .edn-custom-template[data-barid=apexbar-0] .edn-contact-lightbox-inner-wrap{ font-family: default; font-size: 22px; background-color: #1e73be; } .edn-custom-template[data-barid=apexbar-0] .edn-contact-lightbox-inner-wrap label{ } .edn-custom-template[data-barid=apexbar-0] .edn-mulitple-text-content, .edn-custom-template[data-barid=apexbar-0] .edn_static_text, .slider_template_wrapper .edn-tweet-content, .edn-post-title-wrap .edn-post-title li, .edn-custom-template[data-barid=apexbar-0] .edn_static_text, .slider_template_wrapper .edn-tweet-content, .edn-post-title-wrap .edn-post-title li, .edn-custom-template[data-barid=apexbar-0] .edn-tweet-content, .edn-custom-template[data-barid=apexbar-0] .edn-tweet-content a, .edn-custom-template[data-barid=apexbar-0] .ticker-content, .edn-custom-template[data-barid=apexbar-0] a, .edn-custom-template[data-barid=apexbar-0] .ticker-wrapper .ticker-content a, .edn-custom-template[data-barid=apexbar-0] .ticker-wrapper .ticker-content .edn-tweet-content, .edn-custom-template[data-barid=apexbar-0] .ticker-wrapper .edn-mulitple-text-content{ font-family: default; font-size: 22px; } .edn-custom-template[data-barid=apexbar-0] .edn-contact-form-wrap .edn-contact-close{ background-color: #1e73be; } /*tweets*/ .edn-custom-template[data-barid=apexbar-0] .ticker-wrapper .edn-post-title-readmore{ font-family: default; font-size: 22px; } /*ticker custom design start*/ .edn-custom-template[data-barid=apexbar-0] .ticker-wrapper .ticker-content a{ margin-left: 8px; } .edn-custom-template[data-barid=apexbar-0] .ticker_pattern .edn-ticker-wrapper .ticker-wrapper .ticker-swipe{ background-color: #1e73be; } /*ticker custom design end*/ .edn-custom-template[data-barid=apexbar-0] .edn-contact-close,input[type="button"].edn-contact-submit{ background-color: #1e73be; } .edn-custom-template[data-barid=apexbar-0] a.edn-controls-close,input[type="button"].edn-contact-submit{ color: #000000; } .edn-custom-template[data-barid=apexbar-0] .edn-social-heading-title{ font-size: 22px; } /*Custom Subscribe Form CSS ADDED*/ .edn-custom-template[data-barid=apexbar-0] h1, .edn-custom-template[data-barid=apexbar-0] h2, .edn-custom-template[data-barid=apexbar-0] h3, .edn-custom-template[data-barid=apexbar-0] h4, .edn-custom-template[data-barid=apexbar-0] h5, .edn-custom-template[data-barid=apexbar-0] h6, .edn-custom-template[data-barid=apexbar-0] .edn-subscribe-form .edn-front-title h3{ font-size: 22px; } .edn-custom-template[data-barid=apexbar-0] .edn-subscribe-form .edn-front-title h3 span{ } .edn-custom-template[data-barid=apexbar-0] .edn-subscribe-form .edn-front-title .show_icon i{ } /*Constant Contact Subscribe Form CSS END*/ /* For all CUstom buttons start */ .edn-custom-template[data-barid=apexbar-0] .edn-form-field .constant_subscribe, .edn-custom-template[data-barid=apexbar-0] .edn-subscribe-form .edn-form-field .edn_subs_submit_ajax, .edn-custom-template[data-barid=apexbar-0] .edn-custom-contact-link, .edn-custom-template[data-barid=apexbar-0] .edn-temp1-static-button, .edn-custom-template[data-barid=apexbar-0] .apexnb-search-layout1 .apex-search-right-section .btn-search-now, .edn-custom-template[data-barid=apexbar-0] .edn_static_text .edn-call-action-button a, .edn-custom-template[data-barid=apexbar-0] .edn-call-action-button a, .edn-custom-template[data-barid=apexbar-0] .edn-contact-lightbox .edn-form-field .edn-field input.edn-contact-submit{ background: #eeee22; color: #000000; font-family: default; } .edn-custom-template[data-barid=apexbar-0] .edn_static_text .edn-call-action-button a:hover, .edn-custom-template.edn-notify-bar .edn-custom-contact-link:hover, .edn-custom-template[data-barid=apexbar-0] .apexnb-search-layout1 .apex-search-right-section .btn-search-now:hover, .edn-custom-template[data-barid=apexbar-0] .edn-subscribe-form .edn-form-field .edn_subs_submit_ajax:hover, .edn-custom-template[data-barid=apexbar-0] .edn-form-field .edn_mailchimp_submit_ajax:hover, .edn-custom-template[data-barid=apexbar-0] .edn-form-field .constant_subscribe:hover { color: #ffffff; background: #81d742; } .edn-custom-template[data-barid=apexbar-0] .edn_static_text .edn-text-link a, .edn-custom-template[data-barid=apexbar-0] .edn_multiple_text .edn-mulitple-text-content a, edn-custom-template[data-barid=apexbar-0] .edn-multiple-content .edn-mulitple-text-content a, .edn-custom-template[data-barid=apexbar-0] .edn-post-title-wrap .edn-post-title li a{ color: #000000; background: ; } /* close button custom css */ .edn-custom-template[data-barid=apexbar-0] .edn-top-up-arrow.open, .edn-custom-template[data-barid=apexbar-0] .edn-bottom-down-arrow.open, .edn-custom-template[data-barid=apexbar-0] .edn-bottom-down-arrow.open, .edn-custom-template[data-barid=apexbar-0] .edn-left-arrow, .edn-custom-template[data-barid=apexbar-0] .edn-right-arrow, .edn-custom-template[data-barid=apexbar-0] .edn-cntrol-wrap.ednpro_user-can-close { background-image: url("../../images/showhidetoggledown.png") no-repeat scroll 0 0; } .edn-custom-template[data-barid=apexbar-0] .edn-cntrol-wrap.ednpro_user-can-close .fa-close{ } .edn-custom-template[data-barid=apexbar-0] .edn-top-up-arrow { background-image: url("../../images/showhidetoggletop.png") no-repeat scroll 0 0; border-radius: 14px; } .edn-custom-template[data-barid=apexbar-0] .edn-bottom-down-arrow{ border-radius: 14px; background-image: url("../../images/showhidetoggledown.png") no-repeat scroll 0 0; } /* close button custom css */ .edn-custom-template[data-barid=apexbar-0] .edn_error,.edn-error, .edn-constant-error .edn-custom-template[data-barid=apexbar-0] .edn-success, .edn-constant-success{ font-family: default; } /*social icons custom design start*/ .edn-custom-template[data-barid=apexbar-0] .edn-post-title-wrap .edn-post-title li{ } .edn-custom-template[data-barid=apexbar-0].edn-visibility-show-time{ display: none; } .edn-custom-template[data-barid=apexbar-0] .visibility_show-time{ display: none; } .edn-notify-bar .edn-custom-design-wrapper .edn-post-title-readmore{ color: #000000 !important; background: #eeee22 !important; padding: 2px 8px; font-size: 35px !important; font-weight: bolder !important; } .edn-notify-bar .edn-custom-design-wrapper .edn-post-title-readmore:hover{ color: #ffffff !important; background: #81d742 !important; }</style><div class="edn-temp-design-wrapper edn-custom-design-wrapper"><div class="edn_middle_content edn_pro_static_pattern"><div class="edn-text-content-wrap"><div class="edn_static_text"><div class="edn-text-link">L’Outil Surpuissant pour Exploser ton Chiffre d'Affaires en 2025 !</div> <span class="edn-call-action-button"> <span class="edn-ca-custom"> <a class="edn-static-button" href="https://allleads.arcoptimizer.com/fr" target='_blank'> <span class="edn-ca-static-button">Essai Gratuit Aujourd'hui</span> </a> </span> </span></div></div></div></div></div> <input type="hidden" class="edn-ticker-option" id="apexnb-ticker-0" data-ticker-speed="" data-ticker-direction="vertical" data-ticker-title="" data-ticker-hover="" data-slider-controls="" data-slider-animation="horizontal" data-slider-duration="" data-slider-auto="true" data-slider-transition="" data-slider-adaptive-height="true" data-scroll-controls="" data-scroll-direction="ltr" data-scroll-animation="reveal" data-scroll-speed="" data-scroll-title="" /> <input type="hidden" class="edn-visibility-bar-options edn-visibility-option-0" id="apexnb-0" data-show-time-duration="200" data-hide-time-duration="" data-visibility-type = "show-time" data-close-type = "disable" data-close-once = "" data-duration-close = "" data-show_once_hideshow = "" data-notification_bar_id = "0" /><div class="apexnb-ccform edn-template-3 edn-popup-form" data-formtype="apexnb-static-custom" data-barid="0"><div class="edn-contact-lightbox" id="edn-static-cf-btn-0-lightbox" style="display: none;"><div class="ednpro_overlay"></div><div class="edn-contact-lightbox-inner-wrap " id="edn-contact-lightbox-inner-wrap-0"><div class="edn-contact-lightbox-inner-content edn-contact-lightbox-inner-wrap apexnb-ccustomform-wrapper "></div></div></div></div></div></div></div><script defer src="data:text/javascript;base64,PGFtcC1hdXRvLWFkcyB0eXBlPSJhZHNlbnNlIgogICAgICAgIGRhdGEtYWQtY2xpZW50PSJjYS1wdWItMjI0NzE3MTkwOTI2Njk5MCI+CjwvYW1wLWF1dG8tYWRzPg=="></script> <script defer src="data:text/javascript;base64,CgkJd2luZG93LldQQ09NX3NoYXJpbmdfY291bnRzID0geyJodHRwczpcL1wvYmxvZy5hcmNvcHRpbWl6ZXIuY29tXC9tb2RlbGVzLXBhcmZhaXRzLXBvdXItbGVzLXV0aWxpc2F0ZXVycy1kZS1sZWN0ZXVycy1kZWNyYW4iOjYzMTQ3fTsKCQ=="></script> <link rel='stylesheet' id='aal_style-css' href='https://blog.arcoptimizer.com/wp-content/cache/autoptimize/css/autoptimize_single_4c15efd49114c121de9d8db67a23db93.css' type='text/css' media='all' /> <script defer type='text/javascript' src='https://blog.arcoptimizer.com/wp-content/cache/autoptimize/js/autoptimize_single_328b8123661abdd5f4a0c695e7aa9dcc.js?minify=false&ver=132249e245926ae3e188' id='jetpack-photon-js'></script> <script defer type='text/javascript' src='https://blog.arcoptimizer.com/wp-content/themes/defaut_theme3/assets/js/wow.min.js' id='layers-child-wow-js'></script> <script defer type='text/javascript' src='https://stats.wp.com/e-202510.js' id='jetpack-stats-js'></script> <script type='text/javascript' id='jetpack-stats-js-after'>_stq = window._stq || []; _stq.push([ "view", {v:'ext',blog:'146388461',post:'63147',tz:'0',srv:'blog.arcoptimizer.com',j:'1:12.8.2'} ]); _stq.push([ "clickTrackerInit", "146388461", "63147" ]);</script> <script defer type='text/javascript' src='https://blog.arcoptimizer.com/wp-content/cache/autoptimize/js/autoptimize_single_d7e4da65f9c21395f29bc5970ebb1e29.js' id='quads-ads-js'></script> <script defer id="sharing-js-js-extra" src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgc2hhcmluZ19qc19vcHRpb25zID0geyJsYW5nIjoiZW4iLCJjb3VudHMiOiIxIiwiaXNfc3RhdHNfYWN0aXZlIjoiMSJ9OwovKiBdXT4gKi8K"></script> <script defer type='text/javascript' src='https://blog.arcoptimizer.com/wp-content/plugins/jetpack/_inc/build/sharedaddy/sharing.min.js' id='sharing-js-js'></script> <script defer id="sharing-js-js-after" src="data:text/javascript;base64,CnZhciB3aW5kb3dPcGVuOwoJCQkoIGZ1bmN0aW9uICgpIHsKCQkJCWZ1bmN0aW9uIG1hdGNoZXMoIGVsLCBzZWwgKSB7CgkJCQkJcmV0dXJuICEhICgKCQkJCQkJZWwubWF0Y2hlcyAmJiBlbC5tYXRjaGVzKCBzZWwgKSB8fAoJCQkJCQllbC5tc01hdGNoZXNTZWxlY3RvciAmJiBlbC5tc01hdGNoZXNTZWxlY3Rvciggc2VsICkKCQkJCQkpOwoJCQkJfQoKCQkJCWRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lciggJ2NsaWNrJywgZnVuY3Rpb24gKCBldmVudCApIHsKCQkJCQlpZiAoICEgZXZlbnQudGFyZ2V0ICkgewoJCQkJCQlyZXR1cm47CgkJCQkJfQoKCQkJCQl2YXIgZWw7CgkJCQkJaWYgKCBtYXRjaGVzKCBldmVudC50YXJnZXQsICdhLnNoYXJlLXR3aXR0ZXInICkgKSB7CgkJCQkJCWVsID0gZXZlbnQudGFyZ2V0OwoJCQkJCX0gZWxzZSBpZiAoIGV2ZW50LnRhcmdldC5wYXJlbnROb2RlICYmIG1hdGNoZXMoIGV2ZW50LnRhcmdldC5wYXJlbnROb2RlLCAnYS5zaGFyZS10d2l0dGVyJyApICkgewoJCQkJCQllbCA9IGV2ZW50LnRhcmdldC5wYXJlbnROb2RlOwoJCQkJCX0KCgkJCQkJaWYgKCBlbCApIHsKCQkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsKCgkJCQkJCS8vIElmIHRoZXJlJ3MgYW5vdGhlciBzaGFyaW5nIHdpbmRvdyBvcGVuLCBjbG9zZSBpdC4KCQkJCQkJaWYgKCB0eXBlb2Ygd2luZG93T3BlbiAhPT0gJ3VuZGVmaW5lZCcgKSB7CgkJCQkJCQl3aW5kb3dPcGVuLmNsb3NlKCk7CgkJCQkJCX0KCQkJCQkJd2luZG93T3BlbiA9IHdpbmRvdy5vcGVuKCBlbC5nZXRBdHRyaWJ1dGUoICdocmVmJyApLCAnd3Bjb210d2l0dGVyJywgJ21lbnViYXI9MSxyZXNpemFibGU9MSx3aWR0aD02MDAsaGVpZ2h0PTM1MCcgKTsKCQkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJCX0KCQkJCX0gKTsKCQkJfSApKCk7CnZhciB3aW5kb3dPcGVuOwoJCQkoIGZ1bmN0aW9uICgpIHsKCQkJCWZ1bmN0aW9uIG1hdGNoZXMoIGVsLCBzZWwgKSB7CgkJCQkJcmV0dXJuICEhICgKCQkJCQkJZWwubWF0Y2hlcyAmJiBlbC5tYXRjaGVzKCBzZWwgKSB8fAoJCQkJCQllbC5tc01hdGNoZXNTZWxlY3RvciAmJiBlbC5tc01hdGNoZXNTZWxlY3Rvciggc2VsICkKCQkJCQkpOwoJCQkJfQoKCQkJCWRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lciggJ2NsaWNrJywgZnVuY3Rpb24gKCBldmVudCApIHsKCQkJCQlpZiAoICEgZXZlbnQudGFyZ2V0ICkgewoJCQkJCQlyZXR1cm47CgkJCQkJfQoKCQkJCQl2YXIgZWw7CgkJCQkJaWYgKCBtYXRjaGVzKCBldmVudC50YXJnZXQsICdhLnNoYXJlLWZhY2Vib29rJyApICkgewoJCQkJCQllbCA9IGV2ZW50LnRhcmdldDsKCQkJCQl9IGVsc2UgaWYgKCBldmVudC50YXJnZXQucGFyZW50Tm9kZSAmJiBtYXRjaGVzKCBldmVudC50YXJnZXQucGFyZW50Tm9kZSwgJ2Euc2hhcmUtZmFjZWJvb2snICkgKSB7CgkJCQkJCWVsID0gZXZlbnQudGFyZ2V0LnBhcmVudE5vZGU7CgkJCQkJfQoKCQkJCQlpZiAoIGVsICkgewoJCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJCQkJLy8gSWYgdGhlcmUncyBhbm90aGVyIHNoYXJpbmcgd2luZG93IG9wZW4sIGNsb3NlIGl0LgoJCQkJCQlpZiAoIHR5cGVvZiB3aW5kb3dPcGVuICE9PSAndW5kZWZpbmVkJyApIHsKCQkJCQkJCXdpbmRvd09wZW4uY2xvc2UoKTsKCQkJCQkJfQoJCQkJCQl3aW5kb3dPcGVuID0gd2luZG93Lm9wZW4oIGVsLmdldEF0dHJpYnV0ZSggJ2hyZWYnICksICd3cGNvbWZhY2Vib29rJywgJ21lbnViYXI9MSxyZXNpemFibGU9MSx3aWR0aD02MDAsaGVpZ2h0PTQwMCcgKTsKCQkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJCX0KCQkJCX0gKTsKCQkJfSApKCk7Cg=="></script> <script defer src="data:text/javascript;base64,DQogd293ID0gbmV3IFdPVygNCiB7DQogLy9ib3hDbGFzczogICAgICd3b3cnLCAgICAgIC8vIGRlZmF1bHQNCiAvL2FuaW1hdGVDbGFzczogJ2FuaW1hdGVkJywgLy8gZGVmYXVsdA0KIG9mZnNldDogICAgICAgMTAwLCAgICAgICAgICAvLyBkZWZhdWx0DQogLy9tb2JpbGU6ICAgICAgIHRydWUsICAgICAgIC8vIGRlZmF1bHQNCiAvL2xpdmU6ICAgICAgICAgdHJ1ZSAgICAgICAgLy8gZGVmYXVsdA0KIH0NCiApDQogd293LmluaXQoKTsNCiA="></script> <script defer src="data:text/javascript;base64,DQogICAgICAgIGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCQpIHsNCg0KICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkb2N1bWVudC5mb3Jtcy5sZW5ndGg7ICsraSkgew0KICAgICAgICAgICAgICAgIGxldCBmb3JtID0gZG9jdW1lbnQuZm9ybXNbaV07DQoJCQkJaWYgKCQoZm9ybSkuYXR0cigibWV0aG9kIikgIT0gImdldCIpIHsgJChmb3JtKS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImdxZUtwQ04tVHNWUHgiIHZhbHVlPSJWOUBKW1hfOGFxTCIgLz4nKTsgfQppZiAoJChmb3JtKS5hdHRyKCJtZXRob2QiKSAhPSAiZ2V0IikgeyAkKGZvcm0pLmFwcGVuZCgnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0id1JrT3VOQS1MZEVybSIgdmFsdWU9Ii5UZkZdYXQiIC8+Jyk7IH0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAkKGRvY3VtZW50KS5vbignc3VibWl0JywgJ2Zvcm0nLCBmdW5jdGlvbiAoKSB7DQoJCQkJaWYgKCQodGhpcykuYXR0cigibWV0aG9kIikgIT0gImdldCIpIHsgJCh0aGlzKS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImdxZUtwQ04tVHNWUHgiIHZhbHVlPSJWOUBKW1hfOGFxTCIgLz4nKTsgfQppZiAoJCh0aGlzKS5hdHRyKCJtZXRob2QiKSAhPSAiZ2V0IikgeyAkKHRoaXMpLmFwcGVuZCgnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0id1JrT3VOQS1MZEVybSIgdmFsdWU9Ii5UZkZdYXQiIC8+Jyk7IH0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIGpRdWVyeS5hamF4U2V0dXAoew0KICAgICAgICAgICAgICAgIGJlZm9yZVNlbmQ6IGZ1bmN0aW9uIChlLCBkYXRhKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEudHlwZSAhPT0gJ1BPU1QnKSByZXR1cm47DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhLmRhdGEgPT09ICdvYmplY3QnICYmIGRhdGEuZGF0YSAhPT0gbnVsbCkgew0KCQkJCQkJZGF0YS5kYXRhLmFwcGVuZCgiZ3FlS3BDTi1Uc1ZQeCIsICJWOUBKW1hfOGFxTCIpOwpkYXRhLmRhdGEuYXBwZW5kKCJ3UmtPdU5BLUxkRXJtIiwgIi5UZkZdYXQiKTsKICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5kYXRhID0gZGF0YS5kYXRhICsgJyZncWVLcENOLVRzVlB4PVY5QEpbWF84YXFMJndSa091TkEtTGRFcm09LlRmRl1hdCc7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCg0KICAgICAgICB9KTsNCiAgICA="></script> </body></html>