Skip to content

Commit 55e06e9

Browse files
committed
fix(Carousel): improve accessibility
Resolves #4494
1 parent a813ea7 commit 55e06e9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+75
-22
lines changed

src/runtime/components/Carousel.vue

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,7 @@ const scrollSnaps = ref<number[]>([])
256256
function onInit(api: EmblaCarouselType) {
257257
scrollSnaps.value = api?.scrollSnapList() || []
258258
}
259+
259260
function onSelect(api: EmblaCarouselType) {
260261
canScrollNext.value = api?.canScrollNext() || false
261262
canScrollPrev.value = api?.canScrollPrev() || false
@@ -300,8 +301,7 @@ defineExpose({
300301
<div
301302
v-for="(item, index) in items"
302303
:key="index"
303-
role="group"
304-
aria-roledescription="slide"
304+
v-bind="dots ? { role: 'tabpanel' } : { 'role': 'group', 'aria-roledescription': 'slide' }"
305305
:class="ui.item({ class: [props.ui?.item, isCarouselItem(item) && item.ui?.item, isCarouselItem(item) && item.class] })"
306306
>
307307
<slot :item="item" :index="index" />
@@ -333,14 +333,15 @@ defineExpose({
333333
/>
334334
</div>
335335

336-
<div v-if="dots" :class="ui.dots({ class: props.ui?.dots })">
336+
<div v-if="dots" role="tablist" :aria-label="t('carousel.dots')" :class="ui.dots({ class: props.ui?.dots })">
337337
<template v-for="(_, index) in scrollSnaps" :key="index">
338338
<button
339339
type="button"
340+
role="tab"
340341
:aria-label="t('carousel.goto', { slide: index + 1 })"
342+
:aria-selected="selectedIndex === index"
341343
:class="ui.dot({ class: props.ui?.dot, active: selectedIndex === index })"
342344
:data-state="selectedIndex === index ? 'active' : undefined"
343-
:aria-current="selectedIndex === index ? true : undefined"
344345
@click="scrollTo(index)"
345346
/>
346347
</template>

src/runtime/locale/ar.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ export default defineLocale<Messages>({
4040
carousel: {
4141
prev: 'السابق',
4242
next: 'التالي',
43-
goto: 'الذهاب إلي شريحة {slide}'
43+
dots: 'اختر الشريحة المراد عرضها',
44+
goto: 'الذهاب إلى شريحة {slide}'
4445
},
4546
modal: {
4647
close: 'إغلاق'

src/runtime/locale/az.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export default defineLocale<Messages>({
3939
carousel: {
4040
prev: 'Əvvəlki',
4141
next: 'Növbəti',
42+
dots: 'Göstərmək üçün slayd seçin',
4243
goto: 'Slayd {slide} keç'
4344
},
4445
modal: {

src/runtime/locale/bg.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export default defineLocale<Messages>({
3939
carousel: {
4040
prev: 'Назад',
4141
next: 'Напред',
42+
dots: 'Изберете слайд за показване',
4243
goto: 'Отидете на слайд {slide}'
4344
},
4445
modal: {

src/runtime/locale/bn.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export default defineLocale<Messages>({
3939
carousel: {
4040
prev: 'পূর্ববর্তী',
4141
next: 'পরবর্তী',
42+
dots: 'প্রদর্শনের জন্য স্লাইড নির্বাচন করুন',
4243
goto: 'স্লাইড {slide} এ যান'
4344
},
4445
modal: {

src/runtime/locale/ca.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export default defineLocale<Messages>({
3939
carousel: {
4040
prev: 'Anterior',
4141
next: 'Següent',
42+
dots: 'Tria la diapositiva a mostrar',
4243
goto: 'Anar a la diapositiva {slide}'
4344
},
4445
modal: {

src/runtime/locale/ckb.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ export default defineLocale<Messages>({
3838
close: 'داخستن'
3939
},
4040
carousel: {
41-
prev: 'پێشوو',
41+
prev: 'پێشووی',
4242
next: 'داهاتوو',
43+
dots: 'سلایدێک هەڵبژێرە بۆ پیشاندان',
4344
goto: 'بڕۆ بۆ سلایدی {slide}'
4445
},
4546
modal: {

src/runtime/locale/cs.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export default defineLocale<Messages>({
3939
carousel: {
4040
prev: 'Předchozí',
4141
next: 'Další',
42+
dots: 'Vyberte snímek k zobrazení',
4243
goto: 'Přejít na {slide}'
4344
},
4445
modal: {

src/runtime/locale/da.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export default defineLocale<Messages>({
3939
carousel: {
4040
prev: 'Forrige',
4141
next: 'Næste',
42+
dots: 'Vælg dias til visning',
4243
goto: 'Gå til slide {slide}'
4344
},
4445
modal: {

src/runtime/locale/de.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export default defineLocale<Messages>({
3939
carousel: {
4040
prev: 'Zurück',
4141
next: 'Weiter',
42+
dots: 'Folie zur Anzeige auswählen',
4243
goto: 'Gehe zu {slide}'
4344
},
4445
modal: {

0 commit comments

Comments
 (0)