Sync all AccessibilityControllers when an a11y query is received. #1283
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In commit 0367360, the syncing of
AccessibilityController
s was broken by changing thelastUseTime
property from being global to being local to anAccessibilityController
. This resulted in a newly createdAccessibilityController
(e.g. for a Popup) not syncing immediately, essentially making its contents invisible to the OS's a11y.RelNode: Fix syncing of
AccessibilityController
to correctly expose Dialog/Popup/DropdownMenu contents to the OS's a11y system.Proposed Changes
Make the accessibility
lastUseTime
flag global again, and correctly sync all liveAccessibilityController
s when it is modified.Testing
Tested manually with this:
Unfortunately I couldn't make a working unit test for this because the querying itself (of accessibles) on an
AccessibleController
causes it to sync. A Heisenberg's accessible.Issues Fixed
Fixes: https://youtrack.jetbrains.com/issue/COMPOSE-1303/VoiceOver-doesnt-read-DropDown-menu