From 0f540ade868d6cf5bb622014c09b2979bd45f3d6 Mon Sep 17 00:00:00 2001 From: dpxgit Date: Wed, 21 Jul 2021 09:39:19 +0200 Subject: [PATCH] fix(a11y): Count aria-label without duplicated item in loop option --- src/components/a11y/a11y.js | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/components/a11y/a11y.js b/src/components/a11y/a11y.js index abd5bb995..fcaba1cb9 100644 --- a/src/components/a11y/a11y.js +++ b/src/components/a11y/a11y.js @@ -160,12 +160,19 @@ const A11y = { swiper.a11y.addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage); } swiper.a11y.addElRole($(swiper.slides), params.slideRole); - swiper.slides.each((slideEl) => { - const $slideEl = $(slideEl); - const ariaLabelMessage = params.slideLabelMessage - .replace(/\{\{index\}\}/, $slideEl.index() + 1) - .replace(/\{\{slidesLength\}\}/, swiper.slides.length); - swiper.a11y.addElLabel($slideEl, ariaLabelMessage); + let originSlides = []; + swiper.slides.each(function (slideEl) { + if(!$(slideEl).hasClass(params.slideDuplicateClass)){ + originSlides.push($(slideEl)); + } + }); + + $(originSlides).each(function (originSlideEl, index) { + let $originSlideEl = $(originSlideEl); + let ariaLabelMessage = params.slideLabelMessage + .replace(/\{\{index\}\}/, index + 1) + .replace(/\{\{slidesLength\}\}/, originSlides.length); + swiper.a11y.addElLabel($originSlideEl, ariaLabelMessage); }); // Navigation