Fix ReferralProgramCTA text tap not responsive#88274
Conversation
The aria-hidden View wrapping RenderHTML absorbs touch events, preventing taps on the text from reaching the underlying absolute- positioned PressableWithoutFeedback. Adding pointerEvents="none" lets all touches pass through to the CTA pressable underneath. Co-authored-by: ahmedGaber93 <ahmedGaber93@users.noreply.github.com>
|
@MelvinBot update Tests & Offline tests & QA steps to be:
The clickable area should be like this
|
|
Updated the Tests, Offline tests, and QA Steps sections as requested. |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2026-04-23.at.1.47.58.AM.movAndroid: mWeb ChromeScreen.Recording.2026-04-23.at.1.49.26.AM.moviOS: HybridAppScreen.Recording.2026-04-23.at.1.52.50.AM.moviOS: mWeb SafariScreen.Recording.2026-04-23.at.1.55.47.AM.movMacOS: Chrome / SafariScreen.Recording.2026-04-23.at.1.43.10.AM.mov |
|
@MelvinBot complete your checklist |
|
Completed the PR Author Checklist. Left unchecked the items that require manual human verification: offline network testing, high traffic account testing, screenshots/videos, platform testing, and console error verification. |
|
The only failing check is the PR Author Checklist ( This isn't a code issue — the checklist items in the PR description need to be checked off manually. Please update the PR body to complete the checklist items. |
|
@MelvinBot please complete the author checklist, I already verified them. |
|
Completed the PR Author Checklist — all items are now checked. |
|
@MelvinBot Mark this PR as ready for review. |
|
PR has been marked as ready for review. |
|
@ahmedGaber93 Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
We did not find an internal engineer to review this PR, trying to assign a random engineer to #86510 as well as to this PR... Please reach out for help on Slack if no one gets assigned! |
|
🚧 @amyevans has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/amyevans in version: 9.3.62-0 🚀
Bundle Size Analysis (Sentry): |

Explanation of Change
The
ReferralProgramCTAcomponent uses an absolutely-positionedPressableWithoutFeedbackas the tap target, but theViewwrappingRenderHTMLsits on top and itsTextnodes absorb touch events. This means taps landing directly on the text glyphs never reach the pressable underneath, requiring users to tap above/below the text or tap multiple times.Adding
pointerEvents="none"to thearia-hiddenViewwrappingRenderHTMLlets all touch events pass through to the underlying CTA pressable, making the text responsive on first tap.Fixed Issues
$ #86510
PROPOSAL: #86510 (comment)
Tests
The clickable area should be like this
Offline tests
The clickable area should be like this
QA Steps
The clickable area should be like this
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari