Skip to content

Commit 72df0b4

Browse files
committed
fix(VList): only set aria-selected on selectable items
fixes #20666 closes #20708
1 parent fd844e1 commit 72df0b4

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

packages/vuetify/src/components/VList/VListItem.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,11 @@ export const VListItem = genericComponent<VListItemSlots>()({
135135
(props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value))
136136
)
137137
const isLink = computed(() => props.link !== false && link.isLink.value)
138+
const isSelectable = computed(() => (!!list && (root.selectable.value || root.activatable.value || props.value != null)))
138139
const isClickable = computed(() =>
139140
!props.disabled &&
140141
props.link !== false &&
141-
(props.link || link.isClickable.value || (!!list && (root.selectable.value || root.activatable.value || props.value != null)))
142+
(props.link || link.isClickable.value || isSelectable.value)
142143
)
143144

144145
const roundedProps = computed(() => props.rounded || props.nav)
@@ -244,7 +245,13 @@ export const VListItem = genericComponent<VListItemSlots>()({
244245
props.style,
245246
]}
246247
tabindex={ isClickable.value ? (list ? -2 : 0) : undefined }
247-
aria-selected={ root.activatable.value ? isActivated.value : isSelected.value }
248+
aria-selected={
249+
isSelectable.value ? (
250+
root.activatable.value ? isActivated.value
251+
: root.selectable.value ? isSelected.value
252+
: isActive.value
253+
) : undefined
254+
}
248255
onClick={ onClick }
249256
onKeydown={ isClickable.value && !isLink.value && onKeyDown }
250257
v-ripple={ isClickable.value && props.ripple }

0 commit comments

Comments
 (0)