diff --git a/.changeset/silver-peas-end.md b/.changeset/silver-peas-end.md new file mode 100644 index 0000000000..ab94ccce24 --- /dev/null +++ b/.changeset/silver-peas-end.md @@ -0,0 +1,5 @@ +--- +'@tanstack/query-devtools': minor +--- + +improve a11y around screenreader + resizing diff --git a/packages/query-devtools/src/Devtools.tsx b/packages/query-devtools/src/Devtools.tsx index 5202e97781..cceec7a3de 100644 --- a/packages/query-devtools/src/Devtools.tsx +++ b/packages/query-devtools/src/Devtools.tsx @@ -417,6 +417,13 @@ const DraggablePanel: Component = (props) => { return theme() === 'dark' ? darkStyles(css) : lightStyles(css) }) + let closeBtnRef!: HTMLButtonElement + + // Focus the close button when the panel opens for screen reader accessibility + onMount(() => { + closeBtnRef.focus() + }) + const [isResizing, setIsResizing] = createSignal(false) const position = createMemo( @@ -480,7 +487,7 @@ const DraggablePanel: Component = (props) => { setIsResizing(false) } document.removeEventListener('mousemove', runDrag, false) - document.removeEventListener('mouseUp', unsubscribe, false) + document.removeEventListener('mouseup', unsubscribe, false) } document.addEventListener('mousemove', runDrag, false) @@ -583,14 +590,73 @@ const DraggablePanel: Component = (props) => { aria-label="Tanstack query devtools" > @@ -1710,6 +1783,7 @@ const QueryStatus: Component = (props) => { }} disabled={showLabel()} ref={tagRef} + aria-label={`${props.label}: ${props.count}`} class={cx( styles().queryStatusTag, !showLabel() && @@ -1741,6 +1815,7 @@ const QueryStatus: Component = (props) => {