chore(web/lint): clear svelte-check warnings + fix QueueDrawer test query

CI svelte-check was blocking on:

- 1 ERROR I introduced in the previous cleanup: QueueDrawer.test.ts
  passed { hidden: true } to getByLabelText, but that option only
  exists on getByRole. Fixed by switching to a direct
  document.querySelector for the aria-hidden assertion.

- 13 WARNINGS pre-existing in the codebase from M7 #352/#372/#349
  era, never surfaced because earlier CI runs failed before reaching
  type-check. Now that CI gets that far, they accumulate. Cleared:

  - FlagPopover, RemoveTrackPopover, AddToPlaylistMenu, TrackMenu:
    interactive role divs gain tabindex="-1" + onkeydown that stops
    propagation and closes on Escape (functional, not just warning-
    suppression).

  - FlagPopover state-from-props: $state(untrack(() => prop ?? default))
    for explicit initial-snapshot semantics; const isUpdate switched
    to $derived so it reacts to prop changes.

  - PlaylistTrackRow drag-div: role="listitem" added.

  - playlists/+page.svelte: autofocus replaced with bind:this + $effect.
This commit is contained in:
2026-05-03 22:26:09 -04:00
parent 22e3f67411
commit d43c6b31f4
7 changed files with 22 additions and 6 deletions
+3 -2
View File
@@ -79,8 +79,9 @@ describe('QueueDrawer', () => {
openValue = false;
queueValue = [t('a')];
render(QueueDrawer);
const aside = screen.getByLabelText(/playback queue/i, { hidden: true });
expect(aside).toHaveAttribute('aria-hidden', 'true');
const aside = document.querySelector('aside[aria-label="Playback queue"]');
expect(aside).not.toBeNull();
expect(aside!.getAttribute('aria-hidden')).toBe('true');
});
it('drawer has inert attribute when closed', () => {