-
Notifications
You must be signed in to change notification settings - Fork 3k
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
[HOLD for newdot C+ payment] [$1000] Web - Emoji Reaction - Reaction emoji is highlighted twice when using Tab key #15796
Comments
Triggered auto assignment to @kadiealexander ( |
Bug0 Triage Checklist (Main S/O)
|
Reproduced on Mac OS in Chrome: 2023-03-10_14-48-48.copy.mp4 |
Job added to Upwork: https://www.upwork.com/jobs/~010d30323d77b01052 |
Current assignee @kadiealexander is eligible for the External assigner, not assigning anyone new. |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @parasharrajat ( |
Triggered auto assignment to @pecanoro ( |
ProposalPlease re-state the problem that we are trying to solve in this issue.The emoji reaction is highlighted twice when navigating using Tab key. What is the root cause of that problem?Currently, we have 2 ways of rendering a Tooltip and it is controlled by the App/src/components/Tooltip/index.js Lines 203 to 210 in b69b5f3
Let's look at the difference between setting the
The component above will be rendered like this:
As you can see above, rendering Tooltip with What changes do you think we should make in order to solve the problem?As I said above, It sounds like I'm supporting to use the The above changes will also prevent such kind of this issue. more infoThe mentioned issue above easily happens if we wrap the Tooltip children with a View. For example:
On screen, it looks fine. But because we have the margin right, we are able to hover over the right of the text by 16 and the tooltip will show and also it won't be center positioned. But with the changes suggested above, the issue will never happen because all the positioning and hovering logic is relative to the children. Last thing, we shouldn't always set the setting the focusable to false is actually the main point for the issue. The refactor is trying to make the component clearer and also prevent a Text to be navigable by tab key I can open a draft PR if you want to see the changes needed. What alternative solutions did you explore? (Optional)(my previous main solution) App/src/components/Reactions/MiniQuickEmojiReactions.js Lines 68 to 73 in 657b439
App/src/components/BaseMiniContextMenuItem.js Lines 49 to 51 in 657b439
So, we can pass like |
Please re-state the problem that we are trying to solve in this issue.Context menu item is highlighted twice ( have two focusable elements ) What is the root cause of that problem?When using the tooltip's "View" feature to encompass any clickable component, it can lead to two elements being in focus while navigating via the "tab" key - the clickable element that performs an action and the non-interactive element. App/src/components/Tooltip/index.js Lines 151 to 159 in 657b439
What changes do you think we should make in order to solve the problem?We should add I previously expressed my concerns on this matter here, and while it was acknowledged and addressed, it was not implemented in the PR. What alternative solutions did you explore? (Optional) |
Thanks, everyone for the proposals. FYI, I have reviewed the proposals. But I need to confirm a few things before we move ahead on this issue. Started with
|
I think this is the best time to do a little refactor to the Tooltip component. The reason behind absolute is to have the tooltip hover area the same size as the component, but currently it will only work for a single child view, if there are multiple children, we need a wrapper which is totally makes sense. Here are some changes that we need: We should just get rid of the absolute property and force every tooltip to only have a single child, similar to TouchableOpactiy. So, every tooltip that we have now that have multiple children need to be wrapped by a View (I only found one, AvatarWithIndicator ). This will solve all the current (double tab) issue and future issues like this one #15808 (there are several times this kind of issues getting reported). |
@bernhardoj What and why is missing from proposal? I mean you didn't explain what are you trying to achieve in second paragraph and why. Why should we get rid of absolute prop? Do you mind following the format if you are proposing? |
I have updated my proposal above to include the refactor explanation. I'm a little bit struggling to explain it, so if something is not clear/missing, please ask it 😄. |
ProposalPlease re-state the problem that we are trying to solve in this issue.Context Menu Items are Tabbable twice. What is the root cause of that problem?We have two nested focusable elements, the Pressable and the Tooltip. The Tooltip is made focusable intentionally here and this bug was addressed already but decided to be ignored as keyboard navigation was not a concern. More context: I'm the author of the linked PR and the sole purpose of having the Tooltip focusable is so the blur event from its children bubbles up so we can hide it. That being said the Tooltip need to be focusable but not necessary tabbable i.e. What changes do you think we should make in order to solve the problem?Set How focusable prop behaves on RNW (View):
What alternative solutions did you explore? (Optional)None |
Looks like something related to As a reminder, please make sure that all proposals are not workarounds and that any and all attempt to fix the issue holistically have been made before proceeding with a solution. Proposals to change our Feel free to drop a note in #expensify-open-source with any questions. |
Not overdue, proposals still under review |
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
Last PR merged. |
@parasharrajat before I issue an Upworks contract, are you being paid via NewDot now? I've issued an Upworks contract to @bernhardoj :) |
@kadiealexander I just realized there are 2 contracts on upwork |
Please hold my payments for now. |
@bernhardoj super weird! I've closed one and paid the other. @parasharrajat, could you please complete this checklist while waiting for your NewDot payment? |
@kadiealexander thanks! |
@parasharrajat Please, fill out the list whenever you have a few minutes so we can finally close this one! |
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
Regression Test Steps
Do you agree 👍 or 👎 ? |
@kadiealexander All yours! |
Completed Bug0 checklist: #15796 (comment) Payouts due:
Eligible for 50% #urgency bonus? No Upwork job is here. |
All done, will shift to weekly while we wait for Newdot payment to be issued. |
Payment Requested. |
Reviewed details for @parasharrajat. These details are accurate based on summary from Business Reviewer and are now approved for payment in NewDot. |
We are good to close this @kadiealexander |
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results. If a regression has occurred and you are the assigned CM follow the instructions here. If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future. |
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
Action Performed:
Expected Result:
Reaction emoji is highlighted once when using Tab key
Actual Result:
Reaction emoji is highlighted twice when using Tab key
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Version Number: 1.2.81.0
Reproducible in staging?: Yes
Reproducible in production?: No
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Recording.2291.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: