Compare commits

...

1 Commits

Author SHA1 Message Date
Liam DeBeasi
aecfd034e9 add listbox demo 2023-10-10 16:40:50 -04:00

View File

@@ -414,9 +414,11 @@ export class PickerColumnInternal implements ComponentInterface {
} }
render() { render() {
const { items, color, isActive, numericInput } = this; const { items, color, isActive, numericInput, value } = this;
const mode = getIonMode(this); const mode = getIonMode(this);
const activeItemIndex = items.findIndex(item => item.value === value);
/** /**
* exportparts is needed so ion-datetime can expose the parts * exportparts is needed so ion-datetime can expose the parts
* from two layers of shadow nesting. If this causes problems, * from two layers of shadow nesting. If this causes problems,
@@ -425,6 +427,7 @@ export class PickerColumnInternal implements ComponentInterface {
*/ */
return ( return (
<Host <Host
role="listbox"
exportparts={`${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`} exportparts={`${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`}
tabindex={0} tabindex={0}
class={createColorClasses(color, { class={createColorClasses(color, {
@@ -455,6 +458,9 @@ export class PickerColumnInternal implements ComponentInterface {
} }
return ( return (
<button <button
role="option"
aria-selected={activeItemIndex === index ? 'true' : null}
aria-hidden={activeItemIndex === index || Math.abs(activeItemIndex - index) <= 2 ? null : 'true'}
tabindex="-1" tabindex="-1"
class={{ class={{
'picker-item': true, 'picker-item': true,