BMX Web Components evaluation

<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