Skip to content

Tests: disable browser renderer accessibility#4029

Merged
nstepien merged 3 commits intomainfrom
unaccess
Apr 6, 2026
Merged

Tests: disable browser renderer accessibility#4029
nstepien merged 3 commits intomainfrom
unaccess

Conversation

@nstepien
Copy link
Copy Markdown
Collaborator

@nstepien nstepien commented Apr 6, 2026

I was checking out an example in the mdn docs that slowed down my entire OS for a few seconds for some reason, regardless of the browser I tried. With Claude's help, I found out that the browser sends accessibility notifications on DOM changes via synchronous cross-process COM calls, and the desktop renderer depends on that same synchronous interface, which is why the entire OS became sluggish. In my specific case though, the Claude desktop app registers itself as a "listener/consumer", as if it's a screen reader, so Chrome automatically turned on accessibility modes and sent notifications on DOM changes.

Thankfully these accessibility features can be disabled in Chromium/Firefox.
It improves test perf a little bit, at least on Windows, especially when an app enables such accessibility modes and tests are DOM-heavy, and may reduce memory usage.
You can also check Chrome's accessibility internals in chrome://accessibility/, where you can enable/disable these modes.


Before/after for npm t editcell keyboard, notice how Firefox does not seem affected, while on Chrome keyboardNavigation.test.tsx is ~1000ms slower and renderEditCell.test.tsx is ~600ms slower.
Running channel: 'chromium' is most likely related too.

Slowdown comparison:

Chrome key edit
before without claude ×1 ×1
before with claude ×1.6 ×1.38
after without claude ×1 ×1
after with claude ×1 ×1

Before, with the Claude desktop app closed

 ✓  browser (chromium)  test/browser/keyboardNavigation.test.tsx (9 tests) 1484ms
 ✓  browser (chromium)  test/browser/column/renderEditCell.test.tsx (19 tests) 1660ms
 ✓  browser (firefox)  test/browser/keyboardNavigation.test.tsx (9 tests) 1443ms
 ✓  browser (firefox)  test/browser/column/renderEditCell.test.tsx (19 tests) 1810ms

 Test Files  4 passed (4)
      Tests  56 passed (56)
   Start at  14:52:34
   Duration  6.64s (transform 0ms, setup 261ms, import 274ms, tests 6.40s, environment 0ms)

 ✓  browser (chromium)  test/browser/keyboardNavigation.test.tsx (9 tests) 1441ms
 ✓  browser (chromium)  test/browser/column/renderEditCell.test.tsx (19 tests) 1634ms
 ✓  browser (firefox)  test/browser/keyboardNavigation.test.tsx (9 tests) 1426ms
 ✓  browser (firefox)  test/browser/column/renderEditCell.test.tsx (19 tests) 1789ms

 Test Files  4 passed (4)
      Tests  56 passed (56)
   Start at  14:52:43
   Duration  7.70s (transform 0ms, setup 285ms, import 265ms, tests 6.29s, environment 0ms)

 ✓  browser (chromium)  test/browser/keyboardNavigation.test.tsx (9 tests) 1457ms
 ✓  browser (chromium)  test/browser/column/renderEditCell.test.tsx (19 tests) 1650ms
 ✓  browser (firefox)  test/browser/keyboardNavigation.test.tsx (9 tests) 1425ms
 ✓  browser (firefox)  test/browser/column/renderEditCell.test.tsx (19 tests) 1803ms

 Test Files  4 passed (4)
      Tests  56 passed (56)
   Start at  14:52:52
   Duration  6.65s (transform 0ms, setup 270ms, import 275ms, tests 6.34s, environment 0ms)

Before, with the Claude desktop app open

 ✓  browser (chromium)  test/browser/keyboardNavigation.test.tsx (9 tests) 2314ms
   ✓ navigation when active cell not in the viewport  1279ms
 ✓  browser (chromium)  test/browser/column/renderEditCell.test.tsx (19 tests) 2280ms
 ✓  browser (firefox)  test/browser/keyboardNavigation.test.tsx (9 tests) 1441ms
 ✓  browser (firefox)  test/browser/column/renderEditCell.test.tsx (19 tests) 1791ms

 Test Files  4 passed (4)
      Tests  56 passed (56)
   Start at  14:54:03
   Duration  7.71s (transform 0ms, setup 273ms, import 261ms, tests 7.83s, environment 0ms)

 ✓  browser (chromium)  test/browser/keyboardNavigation.test.tsx (9 tests) 2389ms
   ✓ navigation when active cell not in the viewport  1286ms
 ✓  browser (chromium)  test/browser/column/renderEditCell.test.tsx (19 tests) 2224ms
 ✓  browser (firefox)  test/browser/keyboardNavigation.test.tsx (9 tests) 1413ms
 ✓  browser (firefox)  test/browser/column/renderEditCell.test.tsx (19 tests) 1799ms

 Test Files  4 passed (4)
      Tests  56 passed (56)
   Start at  14:54:13
   Duration  6.85s (transform 0ms, setup 274ms, import 271ms, tests 7.82s, environment 0ms)

 ✓  browser (chromium)  test/browser/keyboardNavigation.test.tsx (9 tests) 2443ms
   ✓ navigation when active cell not in the viewport  1309ms
 ✓  browser (chromium)  test/browser/column/renderEditCell.test.tsx (19 tests) 2297ms
 ✓  browser (firefox)  test/browser/keyboardNavigation.test.tsx (9 tests) 1440ms
 ✓  browser (firefox)  test/browser/column/renderEditCell.test.tsx (19 tests) 1791ms

 Test Files  4 passed (4)
      Tests  56 passed (56)
   Start at  14:54:22
   Duration  6.94s (transform 0ms, setup 267ms, import 267ms, tests 7.97s, environment 0ms)

After, with the Claude desktop app open

 ✓  browser (chromium)  test/browser/keyboardNavigation.test.tsx (9 tests) 1454ms
 ✓  browser (chromium)  test/browser/column/renderEditCell.test.tsx (19 tests) 1653ms
 ✓  browser (firefox)  test/browser/keyboardNavigation.test.tsx (9 tests) 1412ms
 ✓  browser (firefox)  test/browser/column/renderEditCell.test.tsx (19 tests) 1813ms

 Test Files  4 passed (4)
      Tests  56 passed (56)
   Start at  14:55:23
   Duration  6.63s (transform 0ms, setup 268ms, import 264ms, tests 6.33s, environment 0ms)

 ✓  browser (chromium)  test/browser/keyboardNavigation.test.tsx (9 tests) 1462ms
 ✓  browser (chromium)  test/browser/column/renderEditCell.test.tsx (19 tests) 1649ms
 ✓  browser (firefox)  test/browser/keyboardNavigation.test.tsx (9 tests) 1413ms
 ✓  browser (firefox)  test/browser/column/renderEditCell.test.tsx (19 tests) 1827ms

 Test Files  4 passed (4)
      Tests  56 passed (56)
   Start at  14:55:32
   Duration  6.62s (transform 0ms, setup 267ms, import 264ms, tests 6.35s, environment 0ms)

 ✓  browser (chromium)  test/browser/keyboardNavigation.test.tsx (9 tests) 1454ms
 ✓  browser (chromium)  test/browser/column/renderEditCell.test.tsx (19 tests) 1653ms
 ✓  browser (firefox)  test/browser/keyboardNavigation.test.tsx (9 tests) 1421ms
 ✓  browser (firefox)  test/browser/column/renderEditCell.test.tsx (19 tests) 1829ms

 Test Files  4 passed (4)
      Tests  56 passed (56)
   Start at  14:55:41
   Duration  6.63s (transform 0ms, setup 267ms, import 262ms, tests 6.36s, environment 0ms)

After, with the Claude desktop app closed

 ✓  browser (chromium)  test/browser/keyboardNavigation.test.tsx (9 tests) 1493ms
 ✓  browser (chromium)  test/browser/column/renderEditCell.test.tsx (19 tests) 1629ms
 ✓  browser (firefox)  test/browser/keyboardNavigation.test.tsx (9 tests) 1422ms
 ✓  browser (firefox)  test/browser/column/renderEditCell.test.tsx (19 tests) 1822ms

 Test Files  4 passed (4)
      Tests  56 passed (56)
   Start at  14:56:41
   Duration  6.64s (transform 0ms, setup 268ms, import 258ms, tests 6.37s, environment 0ms)

 ✓  browser (chromium)  test/browser/keyboardNavigation.test.tsx (9 tests) 1441ms
 ✓  browser (chromium)  test/browser/column/renderEditCell.test.tsx (19 tests) 1645ms
 ✓  browser (firefox)  test/browser/keyboardNavigation.test.tsx (9 tests) 1430ms
 ✓  browser (firefox)  test/browser/column/renderEditCell.test.tsx (19 tests) 1820ms

 Test Files  4 passed (4)
      Tests  56 passed (56)
   Start at  14:56:50
   Duration  6.67s (transform 0ms, setup 263ms, import 261ms, tests 6.34s, environment 0ms)

 RUN  v4.1.2 D:/repos/react-data-grid

 ✓  browser (chromium)  test/browser/keyboardNavigation.test.tsx (9 tests) 1464ms
 ✓  browser (chromium)  test/browser/column/renderEditCell.test.tsx (19 tests) 1651ms
 ✓  browser (firefox)  test/browser/keyboardNavigation.test.tsx (9 tests) 1428ms
 ✓  browser (firefox)  test/browser/column/renderEditCell.test.tsx (19 tests) 1824ms

 Test Files  4 passed (4)
      Tests  56 passed (56)
   Start at  14:56:59
   Duration  6.89s (transform 0ms, setup 269ms, import 261ms, tests 6.37s, environment 0ms)

@nstepien nstepien self-assigned this Apr 6, 2026
@nstepien nstepien marked this pull request as ready for review April 6, 2026 01:38
@nstepien nstepien requested a review from amanmahajan7 as a code owner April 6, 2026 01:38
@nstepien nstepien enabled auto-merge (squash) April 6, 2026 01:38
@nstepien nstepien merged commit 09ebcb8 into main Apr 6, 2026
2 checks passed
@nstepien nstepien deleted the unaccess branch April 6, 2026 14:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants