-
Notifications
You must be signed in to change notification settings - Fork 3.9k
fix: Screen Reader: Global: Focus is lost when returning to the previous screen #91752
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
TaduJR
wants to merge
115
commits into
Expensify:main
Choose a base branch
from
TaduJR:fix-Screen-Reader-Global-Focus-is-lost-when-returning-to-the-previous-screen
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+4,698
−476
Open
Changes from all commits
Commits
Show all changes
115 commits
Select commit
Hold shift + click to select a range
6c7e04d
fix: Screen Reader: Global: Focus is lost when returning to the previ…
TaduJR 2d66e4e
fix: cap stale press triggers; log Accessibility cache-warm failures;…
TaduJR 6562712
fix: Android forward auto-focus for mid-session TalkBack; consolidate…
TaduJR e4f3f8e
fix: capture/restore focus on native PUSH_PARAMS via compound key
TaduJR 068e3c7
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR 394f13f
fix: deterministic Android backward focus via native ACTION_ACCESSIBI…
TaduJR 75b0a42
fix: revert Android focus to sendAccessibilityEvent + idle-callback r…
TaduJR e383907
chore: remove unused eslint-disable directives
TaduJR 5645674
fix: clear trigger entry when skipNextFocusRestore is honoured (web +…
TaduJR 74f5b90
fix: capture trigger via ref pass-through; drop findNodeHandle usages
TaduJR 801c6e7
fix: initial focus on back button on screen mount
TaduJR 4a372a4
fix: registry-based focus return survives react-native-screens detach…
TaduJR 43d16d8
fix: disambiguate registry by id/nativeID/testID before accessibility…
TaduJR f688ab0
fix: distinguish programmatic focus via DOM attribute
TaduJR c346334
chore: tighten focus-return registry test fixtures
TaduJR 57e38af
test: lock in data-programmatic-focus role suppression
TaduJR 94f1325
fix: fallback route context so partial @react-navigation/native mocks…
TaduJR 71d6103
test: spread requireActual in @react-navigation/native mocks to prese…
TaduJR b1467db
chore: convert single-line comments to /* */ block format
TaduJR 9547045
chore: model programmatic focus as {role, isProgrammatic} context ins…
TaduJR 74e06bc
refactor: SR-gate registry registration; rename to isRoleSuppressed
TaduJR 62a8d04
fix: skip upcoming-transition wait for PUSH_PARAMS focus restore
TaduJR e7f413e
fix: revert save-path to skipNextFocusRestore
TaduJR 4a4ff47
test: fix NavigationRouteContext mock crash
TaduJR b960997
fix: type react-navigation mock spread
TaduJR d008d72
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR 9417a84
chore: trim scheduleRestore comment
TaduJR af0a898
refactor: harden screen-reader focus restoration and tidy module layout
TaduJR 49ba12b
fix: keep screen-reader focus on save by keying menu rows on a stable…
TaduJR 31a3289
fix: run web focus restore on TransitionTracker and end the 1s back-n…
TaduJR 951a537
fix: recover focus when a trigger remounts mid-restore
TaduJR 973c81d
fix: don't restore focus to the wrong row when list items share an ac…
TaduJR 1d3e8d2
fix: stop a stale Back/Save press from leaking into a later focus res…
TaduJR c1eabc0
fix: key Corpay confirmation rows by field id so duplicate section la…
TaduJR c910f4d
chore: CI restart
TaduJR 21c223f
fix: use a stable focus-return id for Corpay confirmation rows
TaduJR 44a0fd0
fix: return focus to the edited field when saving an existing expense
TaduJR d2619e6
Merge branch 'Expensify:main' into fix-Screen-Reader-Global-Focus-is-…
TaduJR 59d6217
fix: honor focus-restore skip on PUSH_PARAMS reverts and harden initi…
TaduJR 7ef676a
fix: correct mobile-web screen-reader focus issues
TaduJR 393b0ec
fix: key native focus-restore on identity props, not the a11y label
TaduJR fcc85bb
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR 0eeb4bc
perf: warm AccessibilityInfo once across all subscribers, not per mount
TaduJR bf2af1b
fix: clear AccessibilityInfo memoized warm on rejection so the next c…
TaduJR 7733817
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR bdfa1d7
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR 6edc70c
refactor: default-export markProgrammaticFocus
TaduJR c190746
fix: drop the trigger entry on all skipNextFocusRestore paths
TaduJR cb4b036
chore: CI restart
TaduJR d0746ec
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR 78a0fbe
fix: pass isOffline to updateMoneyRequestMerchant in the merchant step
TaduJR 9ac40e4
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR 0f03b20
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR ed43253
chore: CI restart
TaduJR effc8bc
fix: use armNavigateBack() in the clear-merchant branch
TaduJR 073293e
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR 8ebaf1e
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR 7d45fc2
chore: replace unsafe type assertions with typed mocks
TaduJR fb12165
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR a66e2ec
fix: claim initial focus on the chat back button and the modal launcher
TaduJR 27e1a32
refactor: extract useInitialFocusRef and restoreFocusWithModality pri…
TaduJR ea46446
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR 669b046
refactor: drop useCallback from useInitialFocusRef
TaduJR 4c94311
fix: tighten focus-claim/restore invariants on PUSH_PARAMS, re-presen…
TaduJR 9cde887
fix: tie-break the registry rescue on back-button collisions
TaduJR a0720dc
chore: thread stable pressableTestID through value-displaying rows
TaduJR 1928468
fix: react to late node attachment in useScreenInitialFocus
TaduJR 6db0f77
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR eb19a7a
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR c15b896
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR 7ad59fb
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR e3f2a8d
fix: pause parent focus-trap during launcher restore to block checkFo…
TaduJR f38900c
refactor: tighten contracts and clean up the subsystem
TaduJR cd3ba14
chore: a11y label, helper extractions, constants
TaduJR 2d6236c
test: pin aria-label dialog-semantics contract
TaduJR 8f999c1
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR 514de41
fix: bail native scheduleRestore early; preserve parent-trap pause state
TaduJR 8a20de7
fix: re-warm SR/RM caches on app foreground to recover from missed ch…
TaduJR 264f691
fix: arbiter release, accessibility cache, monotonic TTL
TaduJR 063554b
fix: gate SR at restore time so cold-start press survives capture
TaduJR 8ed283e
fix: distinguish SR-unknown from SR-off; drop try/finally for RC
TaduJR 690f47c
fix: cancel pending restore before scheduleRestore's early-bail
TaduJR 04a56fb
fix: encapsulate warmed flag in makeWarmCache; reset on refresh
TaduJR 640792d
fix: generation-token warm cache; consume known-off trigger; drop man…
TaduJR 960baa1
fix: tag navigation transitions distinct from keyboard/modal
TaduJR fb24811
fix: preserve any-transition waiters; thread preventScroll through re…
TaduJR 48a61ad
fix: gate fall-through on nav-active only; stable IDs for confirmatio…
TaduJR 640ce5f
fix: iOS resume, duplicates, exception safety
TaduJR 1f78b41
fix: defer PUSH_PARAMS attempt; decouple row IDs from edited fields
TaduJR 92a25ab
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR 74424d6
chore: CI restart
TaduJR cf697bb
chore: CI restart
TaduJR 26c1107
Merge branch 'fix-Screen-Reader-Global-Focus-is-lost-when-returning-t…
TaduJR 06fb6f6
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR c5357af
fix: annotate restoreFocusWithModality mock return as void
TaduJR f33b542
fix: catch stale-handle focus throws; gate chat header initial focus …
TaduJR e63ad5a
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR 8db84ab
fix: register pressable during SR warm-up to match capture-side gate
TaduJR 7817c62
fix: notify SR subscribers when AppState resume invalidates warm flag
TaduJR 43c08c2
fix: fall through to registry rescue when stale native handle throws
TaduJR 02bde58
fix: fire fast + registry-rescue in parallel; drop boolean stale-hand…
TaduJR 8d40270
fix: fall through to registry rescue when stale native handle throws
TaduJR 5c22fbd
fix: harden focus-return dialog viewport observer, save-arm count, ha…
TaduJR 0a68193
refactor: harden focus-return rescue, list keys, and transition handles
TaduJR 01ea0b9
fix: revert list keys; back-fill dialog label; re-arm save-nav
TaduJR 91de9ca
fix: clear stale arm + skip-before-setter
TaduJR 96a6a0c
fix: symmetric arm-time snapshot; hoist split out of retry loop
TaduJR c86f986
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR 9da0fc2
chore: add comments and some tests
TaduJR 4fd277c
chore: knip
TaduJR 67592ac
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR e7adc29
fix: defensive focus-return during screen-reader warm-up window
TaduJR 5d1d227
chore: drop unused ScreenReaderState type export
TaduJR 8471c93
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR 6e4b3b2
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.