35769959f41ca6823a77d6b8ff0eaf2338ac8835
The two `<span class="remove">x</span>` glyphs (one per queue item, one per streamer-list item) had no semantic role, no aria-label, no tabindex — entirely mouse-only and screen-readers just announced them as the bare "x" character. Made both fully keyboard-accessible: - role="button" + tabindex="0" so they enter the tab order and read as buttons to AT - aria-label="Remove" / "Entfernen" via new streamers.removeAria locale key (DE + EN) - Keydown handler on Enter + Space synthesizes the same removal callback (mirroring native button behaviour for synthetic buttons — Enter on real buttons fires click, Space does too) - Focus-visible state: 2px red glow ring + force opacity:1 on the streamer-list .remove (which is normally opacity:0 until the streamer-item is hovered) so keyboard navigators can see the focused X Both call sites preserved e.stopPropagation in the keydown handler so Enter on a focused X doesn't bubble up to the row's click handler (which would trigger streamer-select). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
No description provided
5.7 MiB
Releases
230
Twitch VOD Manager 1.0.23
Latest
Languages
TypeScript
74.7%
CSS
12.6%
HTML
7.1%
JavaScript
5.6%