<bmx-chip-set>
A row of chips that behaves as one thing.
Both of these are one element with a JSON
items attribute and no script at all — which is what a
Razor page, a Blazor component, a Django template or an htmx swap can actually produce. Slot your own
bmx-chip children in instead when you want to control each one; the two are alternatives, and
items is ignored when anything is slotted.
Tab into the row once, then use the arrows. Remove a chip and watch where the focus goes: to the
chip that moved into the space, to the previous one when you removed the last, and to the row itself when you empty
it. The browser's own answer to all three is
<body>, which throws a keyboard user back to the
top of the document once per removal — it is the commonest keyboard failure in this pattern and it is
invisible to anybody testing with a mouse.
The
+2 counter is drawn and never read: what it announces is “2 more: Priya Raman, Tom
Baird”. Past five names it becomes a plain number, because a list of forty read aloud stops being an
answer. And a limit that would hide exactly one hides none — a +1 takes the same room as the
chip it replaced and tells you less.
Every property, event and method: https://docs.binarymission.co.uk/webcomponents/bmx/bmx-chip-set.html