Проблема:
У нас возникают проблемы с доступностью ползунка прокрутки при нажатии кнопки ввода на миниатюре, из-за чего выбранное изображение не переносится в основную область изображения. есть ли способ, если мы можем сделать это, нажав кнопку ввода, чтобы изменить основное изображение слайдера?
Сценарий:
У нас есть swiper JS - слайдер (https://swiperjs.com/), настроенный на нашем сайте, слайдер работает отлично с миниатюрами. это означает, что при нажатии на миниатюру отображается конкретное изображение в основной области изображения.
Но для доступности я пытаюсь добавить "tabindex='0'" и "role='button'", чтобы я мог сфокусировать миниатюры, нажимая вкладки (и это работает), но нажатие кнопки (ввод) не вызывает выбранное изображение в основной области изображения.
Пожалуйста, посмотрите ссылку codepen ниже с примером кода, и вы можете видеть, что вы можете перемещаться по миниатюрам, но нажатие ввода на миниатюре ничего не делает:
Код с демонстрационной ссылкой:
https://codepen.io/asifkhanlush/pen/oNjvVpG?editors=1111
Код:
HTML:
<body>
<div class="swiper-container gallery-top">
<div class="swiper-wrapper">
<div tabindex="0" role="button" class="swiper-slide">
<div class="swiper-slide-container">Slide 1</div>
</div>
<div tabindex="0" role="button" class="swiper-slide">
<div class="swiper-slide-container">Slide 2</div>
</div>
....
</div>
<!-- Add Arrows -->
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
</div>
<div class="swiper-container gallery-thumbs">
<div class="swiper-wrapper">
<div tabindex="0" role="button" class="swiper-slide">
<div class="swiper-slide-container" >Slide 1</div>
</div>
<div class="swiper-slide" tabindex="0" role="button">
<div class="swiper-slide-container">Slide 2</div>
</div>
...
</div>
</div>
JS:
var galleryTop = new Swiper('.gallery-top', {
spaceBetween: 10,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
loop: true,
loopedSlides: 4
});
var galleryThumbs = new Swiper('.gallery-thumbs', {
spaceBetween: 10,
centeredSlides: true,
slidesPerView: 'auto',
touchRatio: 0.2,
slideToClickedSlide: true,
loop: true,
loopedSlides: 4
});
galleryTop.controller.control = galleryThumbs;
galleryThumbs.controller.control = galleryTop;