a11y: add accessible-navigation fallback button to ConfirmSwiper - #3464
Open
sethforprivacy wants to merge 1 commit into
Open
a11y: add accessible-navigation fallback button to ConfirmSwiper#3464sethforprivacy wants to merge 1 commit into
sethforprivacy wants to merge 1 commit into
Conversation
VoiceOver and TalkBack intercept horizontal drags, so the drag-only ConfirmSwiper hard-blocked screen-reader users from confirming a send, a bridge, a WalletConnect session approval, or a WalletConnect signing request. Mirror the existing StandardSlideButton pattern: when MediaQuery.accessibleNavigation is true, render a NewPrimaryButton labelled with the new optional accessibleNavigationModeButtonText (defaulting to swiperText) that invokes onConfirmed directly. The swipe path is untouched for sighted users, and now announces itself as one node whose label is swiperText, with the flowing label and arrow knob excluded so they no longer read as separate stops. Call sites pass existing localized action labels: send for the send sheet, wc_action_approve for WalletConnect connection approval, and confirm for bridging and signing.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Issue Number (if Applicable): Related to #3402, #3406 — Jira CW-1574
Description
Part 2 of the screen-reader accessibility remediation (VoiceOver/TalkBack). This removes the single hardest blocker:
ConfirmSwiper— the swipe-to-confirm control gating send, bridge, WalletConnect session approval, and WalletConnect signing — was a bareGestureDetectorrequiring a horizontal drag. VoiceOver and TalkBack intercept horizontal swipes for navigation, so a screen-reader user could not complete any of those flows at all.Changes
ConfirmSwiper: whenMediaQuery.accessibleNavigationis true (i.e., a screen reader is active), it now renders a conventional full-widthNewPrimaryButtoninstead of the swiper — the exact pattern the legacy UI already uses inStandardSlideButton(lib/src/widgets/standard_slide_button_widget.dart). New optionalaccessibleNavigationModeButtonTextnames the button; it falls back toswiperText.send, WalletConnect approve →wc_action_approve, bridge and WalletConnect sign →confirm.Notes for reviewers
swipe_to_bridge, which would be misleading on a non-swipe button). A futurebridge_actionkey would be a small improvement.wc_signing_request_sheet.dartalso uses "Confirm" since its swipe label is chosen dynamically by callers; threading an operation-specific label through would touch more surface than this PR wants to.onTapin the non-accessible branch — activation without the deliberate swipe is only possible when the OS reports accessible navigation, same as the legacy control.Verification
flutter analyze(Flutter 3.41.9, same as CI) — zero new issues vsdevbaseline.Pull Request - Checklist