A prompt only answers a mouse click or a tap. Tab skips it, and Enter and Space do nothing, so a keyboard user cannot pick one. You have to add that yourself.
Put a <button> in the label. It takes focus and answers Enter and Space, and its click reaches the prompt, so onItemClick fires the same way it does for the mouse.
const items = questions.map((q) => ({
4
<button type="button" className="text-start">
- Reset the button's own look with your classes so it reads as the prompt's text, and keep a visible focus ring.
- For a disabled prompt, put disabled on the button too. The item's own disabled only stops the click and grays it out, and says nothing to a screen reader.
- Give a parent with children no button. It is not clickable, so its label stays plain text.