From 2dc071b405a084cfedc127ae6607d2ec6d1d6cb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ce=CC=81dric=20Andrietti?= Date: Thu, 3 Apr 2025 11:13:59 +0200 Subject: [PATCH 1/3] Fix accessibility for image block with legend --- src/js/classes/ImageBlock.js | 31 +++++++++++++++++++++++++++++++ src/js/index.js | 1 + 2 files changed, 32 insertions(+) create mode 100644 src/js/classes/ImageBlock.js diff --git a/src/js/classes/ImageBlock.js b/src/js/classes/ImageBlock.js new file mode 100644 index 00000000..e8ef2891 --- /dev/null +++ b/src/js/classes/ImageBlock.js @@ -0,0 +1,31 @@ +import AbstractDomElement from './AbstractDomElement' + +// ---- +// class +// ---- +class ImageBlock extends AbstractDomElement { + constructor(element, options) { + const instance = super(element, options) + + // avoid double init : + if (!instance.isNewInstance()) { + return instance + } + + const el = this._element + const figure = el.closest('.wp-block-image') + + figure.setAttribute('role', 'group') + figure.setAttribute('aria-label', el.textContent) + } +} + +// ---- +// init +// ---- +ImageBlock.init('.wp-block-image figcaption') + +// ---- +// export +// ---- +export default ImageBlock diff --git a/src/js/index.js b/src/js/index.js index 8de4735e..7a6f043e 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -4,3 +4,4 @@ import './classes/ScrollDirection' import './classes/ButtonSeoClick' import './classes/Header' import './classes/Animation' +import './classes/ImageBlock' From 623c7d22be3d377169763db05488517e80e662ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ce=CC=81dric=20Andrietti?= Date: Thu, 3 Apr 2025 11:17:58 +0200 Subject: [PATCH 2/3] Fix accessibility role for image block with legend --- src/js/classes/ImageBlock.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/classes/ImageBlock.js b/src/js/classes/ImageBlock.js index e8ef2891..e48c6a5b 100644 --- a/src/js/classes/ImageBlock.js +++ b/src/js/classes/ImageBlock.js @@ -15,7 +15,7 @@ class ImageBlock extends AbstractDomElement { const el = this._element const figure = el.closest('.wp-block-image') - figure.setAttribute('role', 'group') + figure.setAttribute('role', 'figure') figure.setAttribute('aria-label', el.textContent) } } From 2eafbb4002f7cb5f49586f9827d91a72c9a8e8ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ce=CC=81dric=20Andrietti?= Date: Thu, 3 Apr 2025 11:56:43 +0200 Subject: [PATCH 3/3] Fix accessibility comment for image block with legend --- src/js/classes/ImageBlock.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/classes/ImageBlock.js b/src/js/classes/ImageBlock.js index e48c6a5b..f0033771 100644 --- a/src/js/classes/ImageBlock.js +++ b/src/js/classes/ImageBlock.js @@ -15,6 +15,7 @@ class ImageBlock extends AbstractDomElement { const el = this._element const figure = el.closest('.wp-block-image') + // Add role="figure" and aria-label with the figure text to comply with RGAA criteria 1.9.1 : https://accessibilite.numerique.gouv.fr/methode/criteres-et-tests/#1.9 figure.setAttribute('role', 'figure') figure.setAttribute('aria-label', el.textContent) }