Skip to content

Conversation

@mattcosta7
Copy link
Contributor

@mattcosta7 mattcosta7 commented Dec 10, 2025

🎯 Changes

This pull request introduces significant accessibility improvements to the TanStack Query Devtools panel. The changes mainly enhance keyboard navigation, screen reader support, and semantic markup for better usability and compliance with accessibility standards.

Accessibility improvements for screen readers and keyboard navigation:

  • Added ARIA roles, labels, and attributes to interactive components such as the draggable panel, query/mutation rows, status tags, and select elements, ensuring screen readers can accurately describe their purpose and state. [1] [2] [3] [4] [5] [6] [7] [8] [9]
  • Enhanced keyboard accessibility for resizing the devtools panel by making the drag handle focusable and supporting arrow key navigation to resize, with appropriate ARIA attributes for orientation and value.
  • Improved focus management by automatically focusing the close button when the panel opens for better screen reader accessibility.
  • Updated indicators (e.g., disabled/static query markers) to use aria-hidden where appropriate, preventing redundant or confusing information for screen readers. [1] [2] [3] [4] [5] [6] [7] [8]
  • Refactored headers in details panels (query, mutation, variables, context, explorer, etc.) to use semantic heading roles and levels, improving navigation for assistive technologies. [1] [2] [3] [4] [5] [6] [7] [8] [9]

(References: [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29]

✅ Checklist

  • I have followed the steps in the Contributing guide.
  • I have tested this code locally with pnpm run test:pr.

🚀 Release Impact

  • This change affects published code, and I have generated a changeset.
  • This change is docs/CI/dev-only (no release).

Summary by CodeRabbit

  • New Features

    • Improved keyboard navigation and accessibility across the devtools panel
    • Arrow-key shortcuts for resizing the panel vertically and horizontally
    • Enhanced screen reader support with clearer semantic structure, live region updates, and descriptive labels
    • Better focus management and visible focus indicators for keyboard workflows
  • Chores

    • Bumped devtools package to a minor version with accompanying accessibility notes

✏️ Tip: You can customize this high-level summary in your review settings.

@changeset-bot
Copy link

changeset-bot bot commented Dec 10, 2025

🦋 Changeset detected

Latest commit: 7988ef3

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 7 packages
Name Type
@tanstack/query-devtools Minor
@tanstack/angular-query-experimental Patch
@tanstack/react-query-devtools Patch
@tanstack/solid-query-devtools Patch
@tanstack/svelte-query-devtools Patch
@tanstack/vue-query-devtools Patch
@tanstack/angular-query-persist-client Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 10, 2025

Walkthrough

Bumps @tanstack/query-devtools and adds accessibility changes to the Devtools UI: focus management for the close button, keyboard-resizable drag handle with ARIA semantics, expanded ARIA labels/roles for controls and headers, aria-hidden for decorative indicators, and focus-visible styling tweaks.

Changes

Cohort / File(s) Summary
Changeset & Devtools source
​.changeset/silver-peas-end.md, packages/query-devtools/src/Devtools.tsx
Bumped package minor version and implemented accessibility improvements: initial focus on close button; made drag handle keyboard-resizable with role="separator", aria-* attributes, and Arrow-key handling (with minimum constraints); added/refined ARIA labels and roles for headings, toggles, selects, and status regions; applied aria-hidden to decorative indicators and added focus-visible styling for interactive elements.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Inspect keyboard resizing handler for orientation, step, and minimum-size enforcement
  • Confirm close-button focus-on-mount does not break expected focus order or focus traps
  • Validate ARIA roles/labels, aria-live usage, and aria-hidden placements for accurate screen-reader behavior

Possibly related PRs

Poem

🐰 I nudged a handle, gave focus a name,
Arrow keys now stretch the panel's frame.
Headings clear, decorations hush —
A hop, a patch, an accessible rush!

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The PR description is comprehensive and well-structured, covering all required template sections with detailed accessibility improvements and appropriate checklist completion.
Title check ✅ Passed The pull request title accurately describes the main change: accessibility improvements to the devtools panel, which aligns with the detailed PR objectives covering keyboard navigation, screen reader support, and semantic markup enhancements.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mattcosta7 mattcosta7 changed the title improve a11y again Handle some additional query devtools accessibility findings Dec 10, 2025
@nx-cloud
Copy link

nx-cloud bot commented Dec 10, 2025

View your CI Pipeline Execution ↗ for commit 7988ef3

Command Status Duration Result
nx affected --targets=test:sherif,test:knip,tes... ✅ Succeeded 2m 43s View ↗
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 34s View ↗

☁️ Nx Cloud last updated this comment at 2025-12-10 18:15:53 UTC

@pkg-pr-new
Copy link

pkg-pr-new bot commented Dec 10, 2025

More templates

@tanstack/angular-query-experimental

npm i https://pkg.pr.new/@tanstack/angular-query-experimental@9961

@tanstack/eslint-plugin-query

npm i https://pkg.pr.new/@tanstack/eslint-plugin-query@9961

@tanstack/query-async-storage-persister

npm i https://pkg.pr.new/@tanstack/query-async-storage-persister@9961

@tanstack/query-broadcast-client-experimental

npm i https://pkg.pr.new/@tanstack/query-broadcast-client-experimental@9961

@tanstack/query-core

npm i https://pkg.pr.new/@tanstack/query-core@9961

@tanstack/query-devtools

npm i https://pkg.pr.new/@tanstack/query-devtools@9961

@tanstack/query-persist-client-core

npm i https://pkg.pr.new/@tanstack/query-persist-client-core@9961

@tanstack/query-sync-storage-persister

npm i https://pkg.pr.new/@tanstack/query-sync-storage-persister@9961

@tanstack/react-query

npm i https://pkg.pr.new/@tanstack/react-query@9961

@tanstack/react-query-devtools

npm i https://pkg.pr.new/@tanstack/react-query-devtools@9961

@tanstack/react-query-next-experimental

npm i https://pkg.pr.new/@tanstack/react-query-next-experimental@9961

@tanstack/react-query-persist-client

npm i https://pkg.pr.new/@tanstack/react-query-persist-client@9961

@tanstack/solid-query

npm i https://pkg.pr.new/@tanstack/solid-query@9961

@tanstack/solid-query-devtools

npm i https://pkg.pr.new/@tanstack/solid-query-devtools@9961

@tanstack/solid-query-persist-client

npm i https://pkg.pr.new/@tanstack/solid-query-persist-client@9961

@tanstack/svelte-query

npm i https://pkg.pr.new/@tanstack/svelte-query@9961

@tanstack/svelte-query-devtools

npm i https://pkg.pr.new/@tanstack/svelte-query-devtools@9961

@tanstack/svelte-query-persist-client

npm i https://pkg.pr.new/@tanstack/svelte-query-persist-client@9961

@tanstack/vue-query

npm i https://pkg.pr.new/@tanstack/vue-query@9961

@tanstack/vue-query-devtools

npm i https://pkg.pr.new/@tanstack/vue-query-devtools@9961

commit: 7988ef3

@mattcosta7 mattcosta7 marked this pull request as ready for review December 10, 2025 17:53
@codecov
Copy link

codecov bot commented Dec 10, 2025

Codecov Report

❌ Patch coverage is 0% with 57 lines in your changes missing coverage. Please review.
✅ Project coverage is 20.91%. Comparing base (f15b7fc) to head (7988ef3).

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##             main    #9961       +/-   ##
===========================================
- Coverage   45.89%   20.91%   -24.99%     
===========================================
  Files         200       42      -158     
  Lines        8437     2458     -5979     
  Branches     1943      637     -1306     
===========================================
- Hits         3872      514     -3358     
+ Misses       4116     1697     -2419     
+ Partials      449      247      -202     
Components Coverage Δ
@tanstack/angular-query-experimental 93.85% <ø> (ø)
@tanstack/eslint-plugin-query ∅ <ø> (∅)
@tanstack/query-async-storage-persister ∅ <ø> (∅)
@tanstack/query-broadcast-client-experimental ∅ <ø> (∅)
@tanstack/query-codemods ∅ <ø> (∅)
@tanstack/query-core ∅ <ø> (∅)
@tanstack/query-devtools 3.40% <0.00%> (-0.09%) ⬇️
@tanstack/query-persist-client-core ∅ <ø> (∅)
@tanstack/query-sync-storage-persister ∅ <ø> (∅)
@tanstack/query-test-utils ∅ <ø> (∅)
@tanstack/react-query ∅ <ø> (∅)
@tanstack/react-query-devtools 9.25% <ø> (ø)
@tanstack/react-query-next-experimental ∅ <ø> (∅)
@tanstack/react-query-persist-client ∅ <ø> (∅)
@tanstack/solid-query ∅ <ø> (∅)
@tanstack/solid-query-devtools 64.17% <ø> (ø)
@tanstack/solid-query-persist-client ∅ <ø> (∅)
@tanstack/svelte-query ∅ <ø> (∅)
@tanstack/svelte-query-devtools ∅ <ø> (∅)
@tanstack/svelte-query-persist-client ∅ <ø> (∅)
@tanstack/vue-query ∅ <ø> (∅)
@tanstack/vue-query-devtools ∅ <ø> (∅)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
packages/query-devtools/src/Devtools.tsx (1)

592-651: Excellent keyboard accessibility implementation for panel resizing.

The separator role with proper ARIA attributes and keyboard navigation is well done. The direction-aware logic correctly handles all four panel positions.

Consider adding aria-valuemin and aria-valuemax attributes to provide screen readers with the full value range context, aligning with the minHeight/minWidth constraints already defined.

         aria-valuenow={
           position() === 'top' || position() === 'bottom'
             ? Number(props.localStore.height || DEFAULT_HEIGHT)
             : Number(props.localStore.width || DEFAULT_WIDTH)
         }
+        aria-valuemin={
+          position() === 'top' || position() === 'bottom'
+            ? convertRemToPixels(3.5)
+            : convertRemToPixels(12)
+        }
         tabindex="0"
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f15b7fc and 479e8f3.

📒 Files selected for processing (2)
  • .changeset/silver-peas-end.md (1 hunks)
  • packages/query-devtools/src/Devtools.tsx (20 hunks)
🔇 Additional comments (11)
.changeset/silver-peas-end.md (1)

1-5: LGTM!

Minor version bump is appropriate for these accessibility enhancements since they add new functionality (keyboard navigation, ARIA attributes) without breaking changes.

packages/query-devtools/src/Devtools.tsx (10)

420-425: Good accessibility practice: auto-focusing close button on panel mount.

This ensures keyboard and screen reader users have immediate focus context when the devtools panel opens.


857-865: LGTM!

Clear and descriptive aria-label for the view toggle radio group.


931-957: LGTM!

Appropriate aria-labels for both query and mutation sort selectors.


1280-1286: LGTM!

The aria-label clearly describes the purpose of this setting control.


1476-1493: Good pattern: comprehensive aria-label with hidden decorative indicators.

The aria-label correctly includes disabled/static states, and aria-hidden="true" on the visual indicators prevents redundant announcements.


2013-2019: LGTM!

Using role="heading" with aria-level="2" provides proper document structure for assistive technologies navigating the Query Details section.


2249-2252: LGTM!

Clear aria-label for the error type selector.


2317-2324: LGTM!

The aria-label "Edit query data as JSON" clearly communicates both the purpose and expected format.


3006-3014: Good focus-visible implementation for the drag handle.

The :focus-visible outline ensures keyboard users see a clear focus indicator while avoiding focus rings on mouse interactions. The background color change on :focus provides a fallback visual cue.


2445-2451: LGTM!

Consistent heading semantics applied to MutationDetails sections, matching the QueryDetails pattern.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/query-devtools/src/Devtools.tsx (1)

485-495: Bug: removeEventListener uses 'mouseUp' instead of 'mouseup', leaving a dangling listener

In the drag resize logic, the cleanup unsubscribes mousemove correctly but attempts to remove a 'mouseUp' listener, while the event was added as 'mouseup'. This means the mouseup listener will never be removed.

    const unsubscribe = () => {
      if (isResizing()) {
        setIsResizing(false)
      }
      document.removeEventListener('mousemove', runDrag, false)
-      document.removeEventListener('mouseUp', unsubscribe, false)
+      document.removeEventListener('mouseup', unsubscribe, false)
    }

    document.addEventListener('mousemove', runDrag, false)
    document.addEventListener('mouseup', unsubscribe, false)

Fixing the event name prevents unnecessary residual listeners and potential subtle bugs in long‑lived devtools sessions.

🧹 Nitpick comments (4)
packages/query-devtools/src/Devtools.tsx (4)

420-425: Close button auto‑focus on mount looks good, but consider a small guard

Focusing the close button on mount is a solid accessibility improvement for keyboard and screen‑reader users. To be extra defensive against any lifecycle edge cases, you could guard the ref before calling focus().

   // Focus the close button when the panel opens for screen reader accessibility
   onMount(() => {
-    closeBtnRef.focus()
+    closeBtnRef && closeBtnRef.focus()
   })

This doesn’t change behavior in the normal case but avoids a possible runtime error if the ref isn’t set for any reason.

Also applies to: 654-662


592-605: Keyboard-resizable separator and focus styles are well done; consider adding value range ARIA

The separator + keyboard resizing logic lines up correctly with the panel position, and the focus/focus-visible styles on the drag handle provide a clear visible focus indication without double outlines. This is a nice accessibility win.

One improvement to make the control more self‑describing to assistive tech: expose the minimum (and optionally maximum) sizes via ARIA so aria-valuenow isn’t “floating” without context.

For example:

      <div
         role="separator"
         aria-orientation={
           position() === 'top' || position() === 'bottom'
             ? 'horizontal'
             : 'vertical'
         }
         aria-label="Resize devtools panel"
         aria-valuenow={
           position() === 'top' || position() === 'bottom'
             ? Number(props.localStore.height || DEFAULT_HEIGHT)
             : Number(props.localStore.width || DEFAULT_WIDTH)
         }
+        aria-valuemin={
+          position() === 'top' || position() === 'bottom'
+            ? convertRemToPixels(3.5)
+            : convertRemToPixels(12)
+        }
+        // Optionally expose a max value too, if you enforce one
+        // aria-valuemax={...}
         tabindex="0"

This keeps the current UX but improves screen‑reader output about the control’s range.

Also applies to: 612-651, 3004-3012


1476-1476: Query row ARIA label and hidden indicators are a good pattern; consider a more human‑friendly key

Encoding the disabled/static state once in the button aria-label and marking the visual “disabled/static” indicators as aria-hidden="true" is a clean way to avoid redundant announcements.

Depending on how readable queryHash tends to be, you might want to expose a more human‑friendly description (e.g., derived from queryKey) in the label, and possibly fall back to the hash:

-        aria-label={`Query key ${props.query.queryHash}${isDisabled() ? ', disabled' : ''}${isStatic() ? ', static' : ''}`}
+        aria-label={`Query ${
+          displayValue(props.query.queryKey, true) || props.query.queryHash
+        }${isDisabled() ? ', disabled' : ''}${isStatic() ? ', static' : ''}`}

This will make screen‑reader output less cryptic when query hashes are long or opaque.

Also applies to: 1485-1487, 1490-1492


2013-2019: Section headings and live status regions are structured well; minor ARIA polish possible

Using <div role="heading" aria-level="2"> for the various “Query Details”, “Actions”, “Data Explorer”, “Query Explorer”, and mutation detail sections gives assistive tech a clear document outline without disturbing existing layout/styles. Likewise, marking the status chips with role="status" and aria-live="polite" will help announce state changes non‑intrusively.

Small optional polish: role="status" already implies aria-live="polite, so you can drop the explicit aria-live if you’d like to reduce redundancy, though it’s not harmful to keep.

No required changes here.

Also applies to: 2032-2034, 2050-2055, 2271-2277, 2356-2360, 2445-2450, 2470-2472, 2487-2492, 2506-2511, 2525-2530, 2544-2549

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 479e8f3 and a7957fb.

📒 Files selected for processing (1)
  • packages/query-devtools/src/Devtools.tsx (21 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-08-19T03:18:18.303Z
Learnt from: oscartbeaumont
Repo: TanStack/query PR: 9564
File: packages/solid-query-devtools/src/production.tsx:2-3
Timestamp: 2025-08-19T03:18:18.303Z
Learning: In the solid-query-devtools package, the codebase uses a pattern of type-only default imports combined with typeof for component type annotations (e.g., `import type SolidQueryDevtoolsComp from './devtools'` followed by `typeof SolidQueryDevtoolsComp`). This pattern is consistently used across index.tsx and production.tsx files, and the maintainers prefer consistency over changing this approach.

Applied to files:

  • packages/query-devtools/src/Devtools.tsx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Test
  • GitHub Check: Preview
🔇 Additional comments (1)
packages/query-devtools/src/Devtools.tsx (1)

861-861: ARIA labels on toggles, selects, and textarea are clear and descriptive

The added aria-labels for:

  • the view toggle radio group (“Toggle between queries and mutations view”),
  • sort <select>s (“Sort queries by” / “Sort mutations by”),
  • the “Hide disabled queries” radio group,
  • the error‑type <select>,
  • and the JSON edit <textarea>,

are all specific and accurately describe the control purpose. This should meaningfully improve screen‑reader navigation without changing visual behavior.

No changes requested here.

Also applies to: 935-935, 948-948, 1282-1283, 2250-2250, 2318-2318

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
packages/query-devtools/src/Devtools.tsx (1)

593-656: Consider adding aria-valuemax for complete range information.

The ARIA attributes and keyboard navigation implementation look excellent. However, the separator is missing an aria-valuemax attribute. While the maximum is dynamic (viewport size), you could set it to a reasonable approximation (e.g., 90% of viewport) or update it dynamically. This would help screen reader users understand the full resize range.

Consider adding:

         aria-valuenow={
           position() === 'top' || position() === 'bottom'
             ? Number(props.localStore.height || DEFAULT_HEIGHT)
             : Number(props.localStore.width || DEFAULT_WIDTH)
         }
+        aria-valuemax={
+          position() === 'top' || position() === 'bottom'
+            ? typeof window !== 'undefined' ? Math.floor(window.innerHeight * 0.9) : undefined
+            : typeof window !== 'undefined' ? Math.floor(window.innerWidth * 0.9) : undefined
+        }
         tabindex="0"
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a7957fb and 1117ab8.

📒 Files selected for processing (1)
  • packages/query-devtools/src/Devtools.tsx (29 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-08-19T03:18:18.303Z
Learnt from: oscartbeaumont
Repo: TanStack/query PR: 9564
File: packages/solid-query-devtools/src/production.tsx:2-3
Timestamp: 2025-08-19T03:18:18.303Z
Learning: In the solid-query-devtools package, the codebase uses a pattern of type-only default imports combined with typeof for component type annotations (e.g., `import type SolidQueryDevtoolsComp from './devtools'` followed by `typeof SolidQueryDevtoolsComp`). This pattern is consistently used across index.tsx and production.tsx files, and the maintainers prefer consistency over changing this approach.

Applied to files:

  • packages/query-devtools/src/Devtools.tsx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Test
  • GitHub Check: Preview
🔇 Additional comments (11)
packages/query-devtools/src/Devtools.tsx (11)

420-425: Good accessibility enhancement with a minor consideration.

Auto-focusing the close button when the panel opens helps keyboard and screen reader users quickly discover the panel and have a clear exit point. However, be aware this moves focus away from where the user was previously interacting, which could be disruptive in some workflows (e.g., if they triggered the panel via keyboard shortcut while focused on application content).


865-865: LGTM!

The aria-label clearly describes the purpose of the radio group toggle.


939-939: LGTM!

Clear aria-labels for the sort select elements, properly differentiated for queries vs mutations.

Also applies to: 953-953


1287-1287: LGTM!

Descriptive aria-label for the disabled queries visibility setting.


1481-1481: Excellent accessibility pattern!

The aria-label enhancement to include disabled and static states, combined with marking the visual indicators as aria-hidden="true", is the correct approach. This prevents duplicate announcements while ensuring screen reader users receive all relevant information.

Also applies to: 1490-1497


1786-1786: LGTM!

Proper use of aria-label to convey status information and aria-hidden to suppress the decorative visual indicator.

Also applies to: 1818-1818


2020-2024: LGTM!

Proper use of role="heading" with aria-level="2" to provide semantic document structure for assistive technologies without changing the visual hierarchy. This significantly improves navigation for screen reader users.

Also applies to: 2056-2060, 2284-2288, 2369-2373


2039-2040: LGTM!

Correct use of role="status" with aria-live="polite" for status indicators. The "polite" setting appropriately ensures status changes are announced without interrupting other screen reader output.

Also applies to: 2484-2485


2080-2081: LGTM!

Proper use of aria-hidden="true" on decorative status indicators. The button labels already convey the action, so hiding the visual dots prevents redundant announcements.

Also applies to: 2106-2106, 2131-2131, 2157-2157, 2207-2207, 2237-2237, 2256-2256


2332-2332: LGTM!

The textarea aria-label clearly describes its purpose. The heading structure in MutationDetails consistently follows the same accessible pattern as QueryDetails, providing proper semantic navigation for screen reader users.

Also applies to: 2458-2561


3018-3026: Review focus management pattern.

The :focus-visible implementation is good and provides proper keyboard focus indication. However, the plain :focus rule (lines 3018-3021) removes the outline, which could cause accessibility issues in browsers that don't fully support :focus-visible. While the background color change provides some visual feedback, relying solely on it may not meet WCAG contrast requirements in all cases.

Consider whether the plain :focus rule is necessary, or if you can rely on default browser behavior + :focus-visible override for better accessibility coverage.

Since this is in the chill mode review and the background color change provides some visual feedback, this is more of a "good to verify" than a critical issue.

@mattcosta7 mattcosta7 changed the title Handle some additional query devtools accessibility findings fix(devtools): Handle some additional query devtools accessibility findings Dec 10, 2025
}
document.removeEventListener('mousemove', runDrag, false)
document.removeEventListener('mouseUp', unsubscribe, false)
document.removeEventListener('mouseup', unsubscribe, false)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was suggested by coderabbit - it's outside of the current PR's scope, but figured it worth updating while here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant