A Bubble is a stack of plain <div> elements with no role and no live region. A screen reader reads it as text in document order, and nothing tells it who sent the message or that a new one arrived. Bubble.List is the same: a <div> around a scrolling <div>.
- The messages stay in document order even though the list scrolls from the bottom, so reading top to bottom follows the conversation.
- Bubble passes role, aria-* and data-* props to its root. Bubble.List passes aria-* props, but its role prop is the sender map, so an ARIA role has to go on an element around it.