Skip to content

Wake Chromium accessibility trees per PID#78

Open
FuJacob wants to merge 1 commit into
mainfrom
FuJacob/chromium-ax-wake
Open

Wake Chromium accessibility trees per PID#78
FuJacob wants to merge 1 commit into
mainfrom
FuJacob/chromium-ax-wake

Conversation

@FuJacob
Copy link
Copy Markdown
Owner

@FuJacob FuJacob commented Apr 28, 2026

Summary

Restore Chromium-family Accessibility wake-up in the focus pipeline so Tabby can see usable AX trees in Chrome, Arc, Edge, Brave, and common Electron shells. The change adds a dedicated wake service that tracks wake state per PID, sets AXManualAccessibility on both app and renderer-owned AX elements, and confirms wake success by waiting for AXChildren to become non-empty before treating the process as ready.

Validation

xcodebuild -scheme tabby -destination 'platform=macOS' build
# ** BUILD SUCCEEDED **

xcodebuild -scheme tabby -destination 'platform=macOS' test
# Test run did not complete in this environment: the hosted tabbyTests bundle failed to load because the test bundle Team ID did not match the app process, and the run then terminated inside an unrelated llama Metal teardown assertion.

Linked issues

Fixes #19

Risk / rollout notes

  • The wake service intentionally keys readiness by process ID instead of bundle ID because Electron renderer processes can restart underneath the same app shell.
  • Renderer wake-up is done with a bounded descendant walk on every tracked Chromium-family bundle instead of brittle version detection. That is slightly more AX work, but materially safer for Electron 28+ webviews.
  • This PR restores the primary AX data source. It does not implement the separate key-event prefix fallback from #17.

@FuJacob
Copy link
Copy Markdown
Owner Author

FuJacob commented Apr 29, 2026

@copilot resolve the merge conflicts in this pull request

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.

Chromium AX wake via AXManualAccessibility

1 participant