Carousel: no API to specify accessible name for individual slide listitem elements
Maintainer thường phản hồi trong vòng 2 ngày
Chưa có ai nhận issue này.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
Description
The ui5-carousel component renders each slide as role="listitem" inside a shadow DOM role="list" container. These listitem elements have no accessible name — the accessibility tree shows listitem "" (empty name) for every slide.
There is currently no API that allows callers to specify an accessible name per slide from the light DOM. The component does not propagate aria-label from slotted items to the shadow listitem wrappers, and there is no typed prop or slot mechanism for this purpose.
Steps to Reproduce
- Create a
ui5-carouselwith multiple content items - Inspect the accessibility tree in browser DevTools
- Observe that each slide wrapper has
role="listitem"with an empty accessible name ("")
Current Behavior
From CarouselTemplate.tsx:
<div
role="listitem"
aria-posinset={itemInfo.posinset}
aria-setsize={itemInfo.setsize}
tabindex={itemInfo.tabIndex}
>
<slot name={itemInfo.item._individualSlot}></slot>
</div>
The listitem has position attributes but no aria-label/aria-labelledby, and there is no mechanism for the caller to contribute a name to this shadow DOM element.
Accessibility tree:
list "Item Container"
listitem "" focusable: true ← no accessible name
[all slide content]
listitem "" focusable: true
Expected Behavior
Each listitem should have an accessible name identifying the slide. Screen readers would announce it when focus lands on a slide, giving users immediate context.
Proposed approach: if the directly slotted element has an aria-label, the Carousel copies it onto the shadow listitem:
<div
role="listitem"
aria-label={itemInfo.item.getAttribute?.("aria-label") ?? undefined}
aria-posinset={itemInfo.posinset}
aria-setsize={itemInfo.setsize}
tabindex={itemInfo.tabIndex}
>
Caller usage:
<ui5-carousel accessible-name="Needs Attention">
<div aria-label="My Team"><!-- card content --></div>
<div aria-label="Pending Approvals"><!-- card content --></div>
</ui5-carousel>
Impact
- Screen readers cannot identify which slide is focused
- Without a name on the
listitem, browse-mode screen readers fall through into slide content rather than treating the slide as a navigable unit - Users cannot build a mental model of carousel content from keyboard navigation alone
WCAG Reference
- 1.3.1 Info and Relationships —
listitemrole conveys no information about slide identity - 4.1.2 Name, Role, Value — focusable
listitemhas no accessible name
Environment
@ui5/webcomponents2.24- Browser: Chrome
- Screen reader: JAWS 2026
- Ngôn ngữ chính
- TypeScript
- Star
- 1.8k
- Fork
- 290
- Merge trung bình
- 2 ngày 13 giờ
- Pull request đã merge (30 ngày)
- 50
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của UI5/webcomponents
-
ACC author action
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
UI5/webcomponents#14273 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
[Button]: crash on Safari 17 due to missing ElementInternals.states guard in _setBadgeOverlayStyleCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởauthor action bug TOPIC B
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 87/100
UI5/webcomponents#14270 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
[Feature Request][Side Navigation][A11Y]: Enhance user experience navigating components tree itemsCó thể đã có người làm @TeodorTaushanov đã nhận 8 ngày trước. Đang mởbug Medium Prio TOPIC RD
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
UI5/webcomponents#14232 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 2 ngày
-
enhancement feature request TOPIC RD
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
UI5/webcomponents#14222 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
[SF][A11y][ui5-select] Conflicting ARIA: role="combobox" rendered with aria-roledescription="Listbox" (confuses screen-reader users)Có thể đã có người làm @PetyaMarkovaBogdanova đã nhận 12 ngày trước. Đang mởbug Medium Prio TOPIC P
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
UI5/webcomponents#14212 · 2 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của UI5/webcomponents
Issue tương tự
-
Bug: Cloudflare Pages static _redirects identity rule causes RSC Flight to reload as HTMLCó thể đã có người làm @Donvero đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Mantitup-Org/vista#210 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
simstudioai/sim#9831 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
status: waiting for maintainer
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
mui/material-ui#49751 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
diplodoc-platform/transform#1184 ·
Maintainer thường phản hồi trong vòng 1 ngày