StreamTypeChip (app/StreamTypeChip.tsx) displays the type and total amount for a payment stream. Previously, the chip was static and did not accept focus, so keyboard-only users could not reach it, and it did not have a visible focus indicator.
- The component now sets
tabIndex={0}and adds a global.stream-type-chipclass. app/styles/focus.css— the sharedfocus-visiblelayer — now includes.stream-type-chipin its selector list. This ensures the chip gets the standard 2px accent-colored outline with a background-safebox-shadowoffset when focused via keyboard navigation, while suppressing the outline for mouse/touch interactions (:focus:not(:focus-visible)).
- 2.4.7 Focus Visible: The chip displays a visible focus indicator when reached via keyboard.
- 2.1.1 Keyboard: The chip is reachable in the natural keyboard tab order using
Tab/Shift+Tab. - Screen Reader Support: When focused, screen readers read the combined type and amount values (e.g., "Video 12345").
app/StreamTypeChip.test.tsx— asserts that the chip hastabIndex="0"and successfully receives DOM focus.app/styles/focus.css.test.tsx— asserts that.stream-type-chipis registered in both the keyboard-visible and suppression selector lists.
- Tab through a page containing
StreamTypeChipusing the keyboard. - Confirm that the chip receives the accent-colored outline when focused via
Tab. - Confirm that clicking the chip with a mouse does not display the outline.
- Verify the visibility of the outline in both light and dark themes.