Describe the bug
The Base UI Combobox registry component renders three icon-only buttons without accessible names:
- The default popup trigger created by
ComboboxInput.
- The clear action rendered by
showClear.
- The remove action automatically rendered by
ComboboxChip.
Browser accessibility trees expose each control as an unnamed button. Consumers cannot label the internal trigger or chip-remove button, and ComboboxClear is not exported.
Base UI's own Combobox examples explicitly provide aria-label="Open popup", aria-label="Clear selection", and item-specific labels such as aria-label={Remove ${language.value}}.
Affected component/components
Combobox (Base UI variant)
How to reproduce
- Create or use a Base UI shadcn project.
- Run
pnpm dlx shadcn@4.18.0 add combobox.
- Render a
ComboboxInput with its default trigger and inspect the accessibility tree. The trailing button has no name.
- Render
ComboboxInput showClear with a selected value. The clear button has no name.
- Render a multiple combobox with
ComboboxChip. The chip-remove button has no name.
- Tab to and inspect each icon-only button with browser accessibility tools or a screen reader.
Expected: each button has a stable accessible name, with an item-specific name for chip removal where possible.
Actual: each button is exposed without an accessible name.
Reproduction link
Current registry source: https://github.com/shadcn-ui/ui/blob/1773ecfeeb4a04366978d353e69b5c7ded78dcb2/apps/v4/registry/bases/base/ui/combobox.tsx
Base UI reference: https://base-ui.com/react/components/combobox
Logs
Not applicable. This is visible in the rendered accessibility tree.
System Info
shadcn 4.18.0
Node.js v24.19.0
macOS 26.4.1
Chromium accessibility tree
Base UI registry variant
Before submitting
Describe the bug
The Base UI
Comboboxregistry component renders three icon-only buttons without accessible names:ComboboxInput.showClear.ComboboxChip.Browser accessibility trees expose each control as an unnamed
button. Consumers cannot label the internal trigger or chip-remove button, andComboboxClearis not exported.Base UI's own Combobox examples explicitly provide
aria-label="Open popup",aria-label="Clear selection", and item-specific labels such asaria-label={Remove ${language.value}}.Affected component/components
Combobox (Base UI variant)
How to reproduce
pnpm dlx shadcn@4.18.0 add combobox.ComboboxInputwith its default trigger and inspect the accessibility tree. The trailing button has no name.ComboboxInput showClearwith a selected value. The clear button has no name.ComboboxChip. The chip-remove button has no name.Expected: each button has a stable accessible name, with an item-specific name for chip removal where possible.
Actual: each button is exposed without an accessible name.
Reproduction link
Current registry source: https://github.com/shadcn-ui/ui/blob/1773ecfeeb4a04366978d353e69b5c7ded78dcb2/apps/v4/registry/bases/base/ui/combobox.tsx
Base UI reference: https://base-ui.com/react/components/combobox
Logs
Not applicable. This is visible in the rendered accessibility tree.
System Info
Before submitting