A root <div>, and one <div> per item inside it. That is the whole DOM. Masonry sets no role, no ARIA attribute and no tabIndex on anything it renders, and it installs no keyboard handler.
It is a layout primitive, the way Grid and Flex are: it positions boxes and paints nothing. Every role, every name and every focusable control in the wall comes from what itemRender returns, and the semantics of the set are yours to add.
- If the items are a list, say so around the Masonry: role="list" on a wrapper with role="listitem" on each card. Masonry will not do it, and a wall of anonymous divs announces as nothing.
- Give the region a heading or an aria-label so a reader arriving in it knows what the wall is. antuikit forwards a ref and passes props through, so an attribute you set lands on that root div.
- The item divs are positioned with position: absolute and an inline top, and the root carries an inline measured height. Neither is a semantic, but both mean the layout cannot be re-flowed by CSS alone.