|
19 | 19 | data-panelcontainer="${wcmmode.edit && 'carousel'}" |
20 | 20 | id="${carousel.id}" |
21 | 21 | class="cmp-carousel" |
22 | | - role="group" |
| 22 | + role="region" |
23 | 23 | aria-label="${carousel.accessibilityLabel}" |
24 | | - aria-live="polite" |
25 | 24 | aria-roledescription="carousel" |
26 | 25 | data-cmp-is="carousel" |
27 | 26 | data-cmp-autoplay="${(wcmmode.edit || wcmmode.preview) ? '' : carousel.autoplay}" |
28 | 27 | data-cmp-delay="${carousel.delay}" |
29 | 28 | data-cmp-autopause-disabled="${carousel.autopauseDisabled}" |
30 | 29 | data-cmp-data-layer="${carousel.data.json}" |
31 | 30 | data-placeholder-text="${wcmmode.edit && 'Please add Carousel components here' @ i18n}"> |
32 | | - <sly data-sly-call="${controlsTemplate.controls @ carousel=carousel}" data-sly-test="${carousel.controlsPrepended}"></sly> |
| 31 | + <sly data-sly-call="${controlsTemplate.controls @ carousel=carousel}" data-sly-test="${carousel.controlsPrepended}"></sly> |
| 32 | + <ol class="cmp-carousel__indicators" |
| 33 | + role="tablist" |
| 34 | + aria-label="${carousel.accessibilityTablist || 'Choose a slide to display' @ i18n}" |
| 35 | + data-cmp-hook-carousel="indicators"> |
| 36 | + <li data-sly-repeat.item="${items}" |
| 37 | + id="${item.id}-tab" |
| 38 | + class="cmp-carousel__indicator${item.name == carousel.activeItem ? ' cmp-carousel__indicator--active' : ''}" |
| 39 | + role="tab" |
| 40 | + aria-controls="${item.id}-tabpanel" |
| 41 | + title="${'Slide {0}' @ format=[itemList.count], i18n}" |
| 42 | + data-cmp-hook-carousel="indicator" |
| 43 | + aria-selected="${item.name == carousel.activeItem ? true : false}" |
| 44 | + tabindex="${item.name == carousel.activeItem ? '0' : '-1'}">${'Slide {0}' @ format=[itemList.count], i18n}</li> |
| 45 | + </ol> |
33 | 46 | <div data-sly-set.items="${carousel.children || carousel.items}" |
34 | 47 | data-sly-test="${items && items.size > 0}" |
35 | 48 | class="cmp-carousel__content" |
|
40 | 53 | id="${item.id}-tabpanel" |
41 | 54 | class="cmp-carousel__item${item.name == carousel.activeItem ? ' cmp-carousel__item--active' : ''}" |
42 | 55 | role="tabpanel" |
43 | | - aria-labelledby="${item.id}-tab" |
44 | 56 | aria-roledescription="slide" |
45 | 57 | aria-label="${(carousel.accessibilityAutoItemTitles && item.title) || 'Slide {0} of {1}' @ format=[itemList.count, carousel.items.size], i18n}" |
46 | 58 | data-cmp-data-layer="${item.data.json}" |
47 | | - data-cmp-hook-carousel="item"></div> |
| 59 | + data-cmp-hook-carousel="item" |
| 60 | + tabindex="-1"></div> |
48 | 61 | <sly data-sly-call="${controlsTemplate.controls @ carousel=carousel}" data-sly-test="${!carousel.controlsPrepended}"></sly> |
49 | | - <ol class="cmp-carousel__indicators" |
50 | | - role="tablist" |
51 | | - aria-label="${carousel.accessibilityTablist || 'Choose a slide to display' @ i18n}" |
52 | | - data-cmp-hook-carousel="indicators"> |
53 | | - <li data-sly-repeat.item="${items}" |
54 | | - id="${item.id}-tab" |
55 | | - class="cmp-carousel__indicator${item.name == carousel.activeItem ? ' cmp-carousel__indicator--active' : ''}" |
56 | | - role="tab" |
57 | | - aria-controls="${item.id}-tabpanel" |
58 | | - aria-label="${'Slide {0}' @ format=[itemList.count], i18n}" |
59 | | - data-cmp-hook-carousel="indicator">${item.title}</li> |
60 | | - </ol> |
61 | 62 | </div> |
62 | 63 | <sly data-sly-resource="${resource.path @ resourceType='wcm/foundation/components/parsys/newpar', appendPath='/*', decorationTagName='div', cssClassName='new section aem-Grid-newComponent'}" |
63 | 64 | data-sly-test="${(wcmmode.edit || wcmmode.preview) && items.size < 1}"></sly> |
|
0 commit comments